Configurando um webhook
É necessário o papel de Proprietário ou Administrador.Adicionar um webhook
Clique em Adicionar webhook, cole o URL HTTPS público do seu endpoint e escolha os tipos de eventos que pretende receber.
Guardar o segredo de assinatura
O Flowella gera um segredo de assinatura exclusivo para o webhook. Copie-o - irá utilizá-lo para verificar os pedidos recebidos.
Tipos de eventos
Pode subscrever qualquer um destes eventos de produto:| Evento | Quando ele é acionado |
|---|---|
message.received | Chegou uma mensagem de entrada WhatsApp de um contacto |
message.sent | O Flowella aceitou a sua mensagem de saída e submeteu-a ao Meta |
message.delivered | Meta confirmou que a mensagem foi entregue ao dispositivo do destinatário |
message.read | O destinatário abriu a mensagem |
message.failed | Meta retornou uma falha para a mensagem |
conversation.opened | Uma conversa passou para o estado aberto |
conversation.closed | Uma conversa foi encerrada |
optout.created | Um contacto optou por sair de um canal específico |
template.status_updated | Meta alterou o estado de um modelo (aprovado, rejeitado, pausado, desativado) |
webhook.test é enviado apenas quando clica em Enviar teste - não o subscreve explicitamente.
Formato do pedido
O Flowella envia um corpo JSON para o seu URL com estes cabeçalhos:Verificação de assinaturas
Cada pedido inclui um cabeçalhoX-Flowella-Signature. O valor é o HMAC-SHA256 hex digest do corpo do pedido em UTF-8 bruto chaveado com o segredo de assinatura do webhook.
Verifique antes de processar:
Respostas, tentativas e tempos limite
- Timeout: O Flowella aguarda até 10 segundos para que o seu endpoint responda.
- Success: qualquer resposta do
2xxé tratada como uma entrega bem sucedida. - Tentativas**: as entregas falhadas são repetidas até 3 tentativas com backoff.
- Desativação automática**: se um webhook acumular 10 falhas consecutivas, o Flowella desactiva-o. Terá de o reativar a partir de Configurações → Webhooks depois de corrigir o seu ponto final.
Idempotência
Os webhooks podem ser repetidos, portanto, o mesmo evento lógico pode chegar mais de uma vez. Para processar com segurança:- Use o
data.iddo evento (ou uma chave derivada comoevent + data.messageId) como uma chave de idempotência. - Mantenha uma cache de curta duração das chaves processadas (algumas horas são suficientes para novas tentativas).
- Tratar os duplicados como no-ops.
Listando e gerenciando entregas
Configurações → Webhooks mostra as tentativas de entrega recentes por webhook, incluindo:- Carimbo de data/hora
- Tipo de evento
- Status da resposta
- Um corpo de resposta truncado (até ~1 KB) para depuração
Desenvolvimento local
A maneira mais simples de desenvolver localmente contra webhooks é encaminhar um túnel público (por exemplo, ngrok ou Cloudflare Tunnel) para o seu servidor de desenvolvimento e apontar o URL do webhook para o host do túnel. Use Send test para disparar cargas sob demanda sem esperar pela atividade real do WhatsApp.Relacionado
Definições → Webhooks
Configurar pontos finais, segredos de assinatura e novas tentativas na aplicação.
Introdução à API
Autenticação, erros, paginação e limites de taxa para a API REST.
Chaves API
Criar e rodar os tokens portadores de que o seu ponto final possa necessitar.
Eventos de notificação
Os mesmos eventos entregues no feed in-app e no e-mail.

