Pular para o conteúdo principal
O adaptador do WhatsApp Cloud API só traduz: confere a assinatura do webhook da Meta, extrai cada mensagem com o handle do cliente e o item pronto para registrar, e registra a resposta do agente pela resposta da API de envio. Ele não manda mensagem: quem fala com a Graph API é o seu código.

Instalar

A integração em TypeScript está no @niadra/sdk no npm.

As cinco primitivas

subscribe() (Python) e whatsAppChallenge() (TypeScript) respondem ao desafio de assinatura da Meta no GET.

Exemplo mínimo

O mesmo código está em examples/whatsapp_webhook.py e examples/whatsapp-cloud.ts. O flush() depois de record() faz o turno, e o V1 que ele prova, chegarem antes da primeira leitura.

Limites

  • O adaptador nunca envia mensagem nem chama a Graph API; ele traduz o webhook e registra o que o seu código enviou.
  • Mídia chega como referência (id, tipo MIME, SHA-256): baixe os bytes da Graph API, passe a upload_media() e entregue o resultado em upload= (com a sua transcript= de uma nota de voz). O texto de um PDF, de uma imagem ou de um arquivo do Office (DOCX, XLSX, PPTX) só é lido dentro da célula, e só quando o espaço lista o tipo em media.extract_text_from; o tipo vem dos bytes, nunca do MIME declarado. Toda a leitura acontece no servidor de modelos, num processo filho por documento, um por vez: a camada de texto do PDF, e OCR (RapidOCR com o reconhecedor PP-OCRv6 small) da imagem, redimensionada, e de cada página digitalizada do PDF, renderizada a 200 dpi; um arquivo do Office com macros é recusado. Um arquivo que falha (413 ou 422) é tratado como arquivo sem texto, e nenhum arquivo sai da região. O texto mantém as quebras de linha, passa pelo redator antes da extração e vira um turno derivado.
  • Cada WhatsAppMessage traz o wa_id e, para um nome de usuário do WhatsApp, o id com escopo da conta Business (BSUID); statuses e outros campos do webhook ficam de fora.
  • Testado com cargas públicas do formato da Meta e assinaturas calculadas no teste; nenhuma conta da Meta é necessária.

Próximos passos

Agentes de WhatsApp

identidade pelo número, V1 pelo canal e o turno legível pelos outros agentes.

Twilio

WhatsApp e SMS pela Twilio, com o mesmo desenho.