Receber mensagens (webhook)
Configure o webhook da sua WhatsApp API para receber as mensagens que chegam em tempo real no n8n, Make ou no seu sistema — com filtro anti-loop.
Para sua automação reagir a mensagens que chegam, ela precisa receber um webhook: cada vez que entra uma mensagem, a API faz um POST com os dados dela para uma URL que você escolhe (do n8n, do Make ou do seu sistema).
Cliente manda mensagem ──▶ WhatsApp API ──▶ POST na sua URL (webhook) ──▶ sua automação responde
Jeito fácil: ligar pelo painel
A forma mais simples — sem comando nenhum:
-
Pegue a URL de webhook do seu destino:
- n8n: crie um fluxo com o nó Webhook e copie a “Test URL” / “Production URL”. Veja Integrar no n8n.
- Make: crie um cenário com o módulo Webhooks › Custom webhook e copie o endereço. Veja Integrar no Make.
- Sistema próprio: use a URL pública (HTTPS) que recebe POST.
-
No painel: Meus serviços → WhatsApp API → Gerenciar → seção Webhook.
-
Marque Habilitar webhook, cole sua URL e clique em Salvar webhook.
O que chega no webhook
Quando uma mensagem entra, sua URL recebe um POST em JSON com os dados da mensagem. Os campos mais usados:
| Campo | O que é |
|---|---|
messageid | id da mensagem (use pra responder/reagir) |
chatid / sender | quem enviou (ex.: 5511999999999@s.whatsapp.net) |
messageType | tipo (conversation, imageMessage, audioMessage…) |
text | o texto da mensagem (quando for texto) |
fromMe | true se foi você quem enviou |
messageTimestamp | data/hora |
Como ver o payload de verdade (recomendado)
- No nó Webhook, clique em Listen for test event.
- Mande uma mensagem para o seu número conectado (de outro celular).
- O n8n mostra o JSON exato que chegou — é nele que você puxa
text,sender, etc.
- No módulo Custom webhook, clique em Re-determine data structure.
- Mande uma mensagem para o seu número.
- O Make captura o formato e libera os campos pra usar nos próximos módulos.
Use um serviço como webhook.site: abra o site, copie a URL que ele te dá, cole no painel (Webhook → Salvar) e mande uma mensagem para seu número. O JSON aparece na tela do webhook.site.
Baixar mídia recebida (áudio, imagem, documento)
Quando chega uma mídia, o webhook traz o id da mensagem — mas o arquivo em si você baixa com POST /message/download:
curl -X POST https://rollin.uazapi.com/message/download \
-H "Content-Type: application/json" \
-H "token: SEU_TOKEN" \
-d '{ "id": "ID_DA_MENSAGEM_RECEBIDA" }'
A resposta traz um fileURL (link para baixar) e o mimetype. Para transcrever um áudio em texto, mande "transcribe": true:
curl -X POST https://rollin.uazapi.com/message/download \
-H "Content-Type: application/json" \
-H "token: SEU_TOKEN" \
-d '{ "id": "ID_DA_MENSAGEM_RECEBIDA", "transcribe": true }'
Boas práticas (evite perder mensagens)
Problemas comuns
| Sintoma | Causa | Solução |
|---|---|---|
| Webhook nunca chega | URL não é HTTPS pública | publique em HTTPS; teste com webhook.site |
| Chega em duplicidade | reconexão / reenvio | ignore repetidos pelo messageid |
| Recebo minhas próprias mensagens | filtro anti-loop desligado | mantenha wasSentByApi ligado (padrão) |
| n8n não captura | fluxo não está “ouvindo” | clique em Listen for test event antes de mandar a mensagem |
Próximos passos
Última atualização: