O n8n e o WhatsApp: um fluxo de mensagens com a Evolution API

O n8n não fala com o WhatsApp sozinho. O fluxo habitual põe a Evolution API no meio: ela é a ponte para o WhatsApp, e o n8n é o cérebro. Quando chega uma mensagem, a Evolution API avisa o n8n por webhook; para responder, o n8n faz um pedido HTTP à Evolution API. Ambos são programas de terceiros, que se instalam num VPS seu.

Há um risco que convém conhecer. Na ligação por QR code (Baileys), o WhatsApp não é oficial: o número pode ser bloqueado, sobretudo se enviar muitas mensagens, ou a quem não pediu. Veja Baileys ou Cloud API: o risco e as regras antes de pôr clientes reais neste fluxo.

As duas direcções

Direcção Como se faz No n8n
Receber uma mensagem Na Evolution API configura o webhook da instância para o endereço de produção do n8n e escolhe o evento de mensagens recebidas. Um nó Webhook como gatilho.
Enviar uma mensagem O n8n chama o ponto de envio da Evolution API, com a chave da API num cabeçalho e o número e o texto no corpo. Um nó de pedido HTTP.

Os nomes exactos dos pontos de acesso e dos campos mudam com a versão da Evolution API. Use a documentação dela para a sua versão, e não um exemplo copiado de um tutorial antigo. A Evolution API em si está em instalar a Evolution API com Docker Compose.

Montar o fluxo

1 Ponha os dois no mesmo VPS, na mesma rede do Docker. Dentro de um contentor, localhost é o próprio contentor, por isso o n8n chama a Evolution API pelo nome do serviço no compose, e não por localhost.
2 Crie a instância e ligue-a com o QR code. Veja enviar a primeira mensagem com a Evolution API.
3 Crie o fluxo com um nó Webhook e copie o endereço de produção para a Evolution API. O de teste só serve enquanto desenha. Veja webhooks do n8n.
4 Ignore as mensagens que a própria instância enviou. Os dados que chegam dizem se a mensagem é sua. Sem este filtro, o fluxo responde às suas próprias respostas, num ciclo sem fim.
5 Responda com um nó de pedido HTTP à Evolution API. Guarde a chave da API na credencial do n8n, nunca escrita no fluxo.
6 Ponha pausas e limites. Evite enviar muitas mensagens seguidas para números diferentes.

Quando não funciona

Sintoma Causa provável
O fluxo nunca arranca A Evolution API está a enviar para o endereço de teste, ou o fluxo está inactivo.
O pedido de envio dá erro de ligação Usou localhost em vez do nome do serviço, ou os contentores não partilham a rede.
401 ou 403 na Evolution API A chave da API não está a ir no cabeçalho, ou é outra.
Funciona e depois pára A instância desligou-se do WhatsApp. Veja a instância presa em «connecting».
O mesmo fluxo, passo a passo, está em Evolution API e n8n: um fluxo a funcionar. Para proteger a Evolution API, veja proteger a Evolution API.

Precisa de um VPS para correr o n8n e a Evolution API?

Ver os servidores VPS

VEJA TAMBÉM

O que é a Evolution API

Evolution API e n8n: um fluxo a funcionar

Receber mensagens: webhooks da Evolution API

WhatsApp para negócios: os riscos e as boas práticas

  • 0 Utilizadores acharam útil
Esta resposta foi útil?