O que é
Assine whatsapp.echo_message.updated.
Você recebe este evento quando a YCloud processa um status de eco de saída correspondente para um Agent criado via API. Mantenha o conteúdo da mensagem do evento criado: as atualizações de status omitem o conteúdo da mensagem e type. As atualizações com falha incluem detalhes de erro de origem quando disponíveis.
O contrato atual mantém o nome do evento inalterado e expõe as alterações de status sob whatsappMessage, correspondendo ao objeto usado pelo evento criado correspondente.
Antes de começar
- Faça a integração do Agent por meio da API REST pública.
- Assine um endpoint de webhook ativo na mesma conta em
whatsapp.echo_message.updated.
- Verifique
YCloud-Signature em relação ao corpo bruto da solicitação, aceite cada evento de forma duradoura e processe-o de modo idempotente.
Agents criados pelo Console não emitem este webhook de cliente. A sincronização da Caixa de Entrada deles é um fluxo separado.
Consulte Configurar webhooks para obter instruções sobre a configuração do endpoint.
Como funciona
Todos os exemplos usam identificadores de espaço reservado. Faça o roteamento pelo type externo e leia whatsappMessage, não whatsappMetaBusinessAgent, whatsappEchoMessage ou data.
Elimine a duplicação de entregas repetidas com o id externo. O createTime externo é a hora do evento de webhook; o updateTime aninhado e as horas específicas de status são horários de origem no formato RFC 3339.
- Faça a correspondência das atualizações com o evento criado por
id ou wamid, com escopo definido para sua conta e número comercial.
- O telefone do cliente e o BSUID são independentes. Quando o status de origem fornece ambos
recipient_id e recipient_user_id, o evento inclui to junto com recipientUserId ou parentRecipientUserId.
- Se um item de status omitir essas identidades e o mesmo callback contiver exatamente um contato, a YCloud poderá usar o
wa_id e o user_id explícitos desse contato. Com zero ou vários contatos, as identidades ausentes permanecerão omitidas; elas nunca são inferidas uma a partir da outra.
from é incluído apenas quando o callback de origem fornece um número de telefone de exibição comercial válido. Ele não é derivado de phoneNumberId.
- Mantenha o histórico de eventos separado do status atual da sua mensagem. Um evento
sent tardio pode chegar após read; registre-o sem fazer downgrade do status atual.
- O exemplo de envio tardio abaixo refere-se à mensagem do exemplo de leitura. O exemplo com falha refere-se a uma mensagem diferente.
- Status inalterados e de mesma classificação repetidos são suprimidos durante o processamento. Isso não garante a entrega HTTP exatamente uma vez.
- Um status recebido antes do seu registro de eco correspondente pode ser tentado novamente internamente. Não dependa da ordem de entrega.
- Status normais de mensagens enviadas via API usam
whatsapp.message.updated, não este evento.
Solicitação
A YCloud envia estes corpos JSON em solicitações HTTP POST para o URL de webhook configurado.
Resposta
Retorne uma resposta 2xx após aceitar cada evento de forma duradoura. Processe tarefas lentas de forma assíncrona.
Mensagem de eco entregue
Solicitação
Faça a correlação com o evento criado por id ou wamid. Eventos atualizados omitem o conteúdo e o tipo da mensagem.
Resposta
Explicação
Registre a transição para entregue e retenha o conteúdo da mensagem recebido no evento criado.
Mensagem de eco lida
Solicitação
Faça a correlação com o evento criado por id ou wamid. Eventos atualizados omitem o conteúdo e o tipo da mensagem.
Resposta
Explicação
Registre a transição para lida usando updateTime e readTime como horários de eventos de origem.
Status de envio tardio após leitura
Solicitação
Um status de origem de classificação inferior pode chegar após a leitura. Registre o evento sem fazer downgrade do status atual da sua mensagem.
Resposta
Explicação
Mantenha este evento no histórico de entrega, mas não faça downgrade de um status atual posterior, como read.
Solicitação
Esta é uma mensagem com falha separada, não uma transição a partir de lida. As atualizações com falha incluem detalhes de erro de origem quando disponíveis.
Resposta
Explicação
Use errorCode e errorMessage para diagnóstico quando o callback de origem fornecê-los.
Exemplos relacionados