Campos do webhook do WhatsApp, e para onde cada um vai
Uma conta do WhatsApp Business entrega eventos como campos nomeados. Dois carregam conteúdo de conversa e são roteados para o seu endpoint. Seis carregam estado operacional e são a base do monitoramento. Saber qual é qual decide a sua arquitetura.
- Dois campos de mensagem, seis operacionais
- O roteamento é definido por conta
- Campos nomeados, não um payload genérico
Nada é cobrado por 7 dias. Cancele quando quiser.
Campos do caminho de mensagem: messages e smb_message_echoes.
Campos operacionais guardados para monitoramento.
Override por conta do WhatsApp Business, que é o que separa os dois grupos.
O que cada campo carrega?
messages carrega tudo o que um cliente envia para o número: texto, referências de mídia, respostas e reações. smb_message_echoes carrega o que a sua equipe envia pelo app do WhatsApp Business, que só existe em um número com Coexistência e é como o software enxerga as respostas de uma pessoa.
account_update carrega o estado da conexão: PARTNER_REMOVED quando o app é desinstalado da conta, ACCOUNT_OFFBOARDED, ACCOUNT_RECONNECTED, e eventos de restrição ou de violação. phone_number_quality_update carrega mudanças de classificação de qualidade e de throughput. account_alerts carrega alertas que a Meta levanta contra a conta, e account_review_update carrega o resultado de uma revisão.
business_capability_update carrega mudanças de limite de mensagens e de capacidades, e phone_number_name_update carrega aprovações e recusas do nome de exibição.
Por que essa separação importa na arquitetura?
Porque ela decide se o conteúdo das conversas chega ou não a um provedor.
O override manda os dois campos de mensagem para o seu endpoint direto da Meta. Os seis campos operacionais seguem para o provedor, e é isso que torna possível ter painel e alertas sem ninguém guardar uma mensagem.
É também por isso que a afirmação de não armazenar mensagens pode ser estrutural, e não apenas uma política. Se os campos de mensagem são entregues em outro lugar, não existe caminho de código no qual eles poderiam ser armazenados. No nosso caso, uma conta sem override cai no callback padrão, onde o handler descarta esses eventos sem persistir nada.
Quais campos o seu handler deve esperar?
Só os dois campos de mensagem, se o override estiver definido, e vale escrever o handler para ignorar qualquer outra coisa em vez de falhar com ela.
A Meta acrescenta campos com o tempo e o formato de um payload pode ganhar chaves sem aviso. Um handler que decide pelo nome do campo e ignora o que não reconhece continua funcionando; um que presume um formato quebra no primeiro evento desconhecido.
Também vale tratar smb_message_echoes de forma explícita em vez de encarar como ruído. Sem ele, o software não tem ideia de que uma pessoa já respondeu, e é assim que um cliente acaba com duas respostas para a mesma pergunta.
Erros comuns
- Presumir um payload genérico. Todo evento nomeia o seu campo, e o handler deve decidir por ele.
- Ignorar smb_message_echoes. Sem ele o software responde em cima de uma pessoa que já respondeu.
- Falhar em campos não reconhecidos em vez de pular. A Meta acrescenta campos sem pedir licença.
A EasyCoexistence assina os campos operacionais para monitoramento e roteia os dois campos de mensagem para o seu endpoint, ou os descarta sem persistir se você não tiver definido um.
Perguntas frequentes
Posso receber apenas alguns campos?
O override move o caminho de mensagem para você. A separação operacional é fixa, porque o monitoramento é construído a partir dela.
smb_message_echoes existe em um número Cloud API normal?
Não. Ele existe porque um número com Coexistência tem uma pessoa enviando pelo app além do software enviando pela API.
O que acontece com os eventos de mensagem se eu não definir destino?
Eles chegam ao nosso callback padrão e são descartados sem serem persistidos.
Os nomes dos campos são da Meta ou seus?
Da Meta. Nada aqui é um nome que inventamos, e é por isso que vale aprender uma vez.
Continue lendo
Pronto para começar?
Configure o WhatsApp Coexistence em minutos, não em meses. O aplicativo continua funcionando no celular.
Começar teste grátisNada é cobrado por 7 dias. Cancele quando quiser.Verificado em