Por que automatizar o atendimento no WhatsApp com n8n e Evolution API?

Você perde horas respondendo mensagens repetitivas no WhatsApp, enquanto clientes esperam na fila e sua equipe não escala? Automatizar o atendimento no WhatsApp com n8n e Evolution API resolve isso em até 80% do tempo. Com esse setup, você responde 24/7, reduz custos com atendentes e personaliza respostas sem precisar de desenvolvedores.

Comparado a soluções prontas como Zapier ou Make, o n8n + Evolution API oferece mais controle, custo zero em mensagens (você usa seu número) e flexibilidade para integrar IA avançada. Enquanto o Zapier cobra por automação e limita conexões, aqui você self-hosted ou usa n8n Cloud por R$ 20/mês e paga apenas pela infra do Evolution API (ou usa a versão gratuita dele).

O que é necessário para começar: pré-requisitos e ferramentas

Você precisa de:

  • Número de WhatsApp (pode ser um número pessoal ou oficial — o Evolution API não exige o Business API oficial para testes);
  • Conta no n8n (cloud por R$ 20/mês ou self-hosted via Docker);
  • Evolution API (versão gratuita com limite de 100 mensagens/dia ou paga para mais);
  • Servidor ou ngrok (para expor seu n8n local na web durante testes);
  • Conta OpenAI (opcional) se quiser IA generativa nas respostas (ou use o OpenRouter gratuitamente).

Documentação oficial do n8n tem todos os detalhes de instalação e configuração.

Passo a passo: configurando o Evolution API para o WhatsApp

Passo 1: Crie uma conta no Evolution API em https://evolution-api.com. O cadastro é gratuito e leva 2 minutos.

Passo 2: Configure seu número WhatsApp. Vá em "Settings" > "Instance" > "Create Instance". Escolha "WhatsApp" e siga o passo a passo para escanear o QR Code gerado. Funciona com número pessoal ou oficial — não precisa do Business API.

Passo 3: Obtenha seu token de autenticação. No dashboard, copie o "API Key" gerado na sua instância. Ele será usado no n8n para autenticar as requisições.

Passo 4: Teste a conexão com curl ou Postman. Envie uma mensagem teste via API e verifique se o Evolution responde. Exemplo de curl:

curl -X POST \
  https://[sua-url-evolution]/message/sendText \
  -H 'Content-Type: application/json' \
  -H 'apikey: SEU_TOKEN_AQUI' \
  -d '{
    "number": "5511999999999@c.us",
    "text": "Teste de automação"
  }'

Resultado esperado: Se o status code for 200, sua conexão está funcionando. Veja os principais status codes na tabela abaixo:

CódigoSignificado
200Sucesso — mensagem enviada
401Token inválido ou expirado
404Número não encontrado ou não autorizado
429Rate limit atingido (limite de mensagens)

Curiosidade técnica: O Evolution API usa webhooks para receber mensagens. Se você não configurar um endpoint para receber os eventos, as mensagens chegam via polling (a cada 5 segundos). Para automação em tempo real, você precisa expor um webhook URL do n8n para o Evolution API registrar.

Criando o fluxo de automação no n8n: do zero ao funcionando

Passo 1: Crie um novo fluxo no n8n. Nomeie como "Automação WhatsApp".

Passo 2: Adicione um node Webhook. Configure o método como POST e copie a URL gerada (ela será usada no Evolution API).

Resultado esperado: O n8n fica aguardando mensagens pela URL do webhook. Exemplo de URL: https://seu-n8n.com/webhook/whatsautomation.

Passo 3: Adicione um node HTTP Request. Configure como POST, URL: https://[sua-url-evolution]/message/sendText, e adicione os headers:

  • Content-Type: application/json
  • apikey: {{ $env.EVOLUTION_API_KEY }}

Passo 4: Adicione um node Function. Nele, processe o payload da mensagem recebida e defina a resposta. Exemplo:

// Extrai o número e a mensagem do webhook
const number = items[0].json.from;
const message = items[0].json.body;

// Formata a resposta const response = { number: number, text: Recebemos sua mensagem: "${message}". Em breve responderemos! };

return [response];

Resultado esperado: O node Function converte a mensagem bruta em um JSON estruturado para o Evolution API.

Passo 5: Adicione um node Set. Configure para definir os valores de saída. Exemplo:

  • Chave: body, Valor: {{ JSON.stringify($json) }}
  • Chave: headers, Valor: {"Content-Type": "application/json"}

Passo 6: Adicione um node HTTP Request para enviar a resposta ao cliente. Use a mesma URL do passo 3.

Passo 7: Adicione um node Switch para lógica condicional. Exemplo: se a mensagem conter "orcamento", envie uma resposta específica; se não, use o fallback.

Resultado final: Seu fluxo deve ficar assim:

Fluxo de automação de WhatsApp no n8n com nodes HTTP Request e Function

Curiosidade técnica: O node Wait é útil para simular "digitação" no WhatsApp (adicione um delay de 1-2 segundos entre mensagens para parecer mais humano). Use 1-2 segundos de espera entre HTTP Request e Function para evitar bloqueios por spam.

Como integrar IA generativa (ChatGPT, OpenAI) para respostas inteligentes

Você usa o node Function no n8n para chamar a API da OpenAI ou OpenRouter dentro do fluxo. Basta adicionar um node HTTP Request configurado para enviar o prompt estruturado para a API de IA e processar a resposta antes de enviar ao cliente.

Exemplo prático: crie um node Function que extrai a mensagem do cliente, formata um prompt com contexto comercial, chama a OpenAI via API e retorna a resposta formatada para o Evolution API.

Configuração do node HTTP Request para OpenAI:

  • Método: POST
  • URL: https://api.openai.com/v1/chat/completions (ou a URL do OpenRouter se usar a alternativa gratuita)
  • Headers:
    • Content-Type: application/json
    • Authorization: Bearer {{ $env.OPENAI_API_KEY }}
  • Body (JSON):
    {
      "model": "gpt-4o-mini",
      "messages": [
        {"role": "system", "content": "Você é um assistente de atendimento comercial. Responda de forma clara, profissional e com tom amigável. Limite a 200 caracteres."},
        {"role": "user", "content": "{{ $('Function').item.json.mensagem_cliente }}"}
      ]
    }

Resultado esperado: A API da OpenAI retorna uma resposta estruturada que você extrai no node Function seguinte e envia automaticamente pelo WhatsApp.

Prompt engineering para atendimento comercial: Use prompts que incluem contexto como "o cliente pergunta sobre preço do produto X", "o cliente quer saber sobre frete para São Paulo" ou "o cliente pediu para cancelar pedido". Exemplo:

{
  "model": "gpt-4o-mini",
  "messages": [
    {"role": "system", "content": "Atenda o cliente como vendedor experiente. Responda apenas com o texto da resposta. Não inclua 'claro', 'com certeza' ou 'por favor'. Seja direto e comercial."},
    {"role": "user", "content": "Quero comprar 3 unidades do produto ABC pelo WhatsApp. Tem estoque?"}
  ]
}

Alternativas gratuitas: O OpenRouter permite usar modelos como Mistral 7B ou Llama 3 gratuitamente. Basta trocar a URL da API e adaptar o body para o formato dele.

Curiosidade técnica: O OpenRouter é útil para testes porque não exige cartão de crédito e suporta múltiplos modelos em uma única chamada. No n8n, basta mudar a URL para https://openrouter.ai/api/v1/chat/completions e incluir o header Authorization: Bearer {{ $env.OPENROUTER_API_KEY }}.

Tratando casos especiais: horários, palavras-chave e fallback

Você usa nodes Switch, Wait e Set para personalizar respostas por horário, palavras-chave ou fallback. Configure lógica condicional para desviar fluxo conforme a mensagem ou o momento do atendimento.

Exemplo prático: se o cliente perguntar sobre orçamento, envie um fluxo específico; se for fora do horário comercial, exiba uma mensagem de fallback; se a palavra-chave não for reconhecida, use o node Switch para enviar uma resposta genérica.

Configuração de horários com node Wait:

  • Adicione um node Wait antes do envio de resposta.
  • Configure o tempo em segundos: 18h (64800 segundos) para fechar após as 18h.
  • Use a expressão JavaScript no node Set para verificar horário:
  • // Verifica se é horário comercial (8h-18h)
    const hora = new Date().getHours();
    if (hora >= 8 && hora < 18) {
      return "horario_comercial";
    } else {
      return "horario_fora";
    }

Configuração de palavras-chave com node Switch:

CondiçãoNode Switch expressãoResposta esperada
Palavra "orcamento"items[0].json.body.toLowerCase().includes("orcamento")Enviar link do orçamento ou perguntar detalhes
Palavra "horario"items[0].json.body.toLowerCase().includes("horario")Informar horário de atendimento (8h-18h)
Palavra "cancelar"items[0].json.body.toLowerCase().includes("cancelar")Perguntar motivo e confirmar ação
Nenhuma palavra-chavetrueResposta genérica ou fallback

Configuração de fallback com node Set:

  • Adicione um node Set após o Switch.
  • Configure a mensagem de fallback:
  • {
      "text": "Desculpe, não entendi. Nossa equipe responderá em breve. Entre em contato pelo telefone (11) 99999-9999."
    }

Resultado esperado: O fluxo agora desvia automaticamente para respostas específicas conforme palavras-chave ou horário, sem precisar de intervenção manual.

Curiosidade técnica: O node Wait é útil para simular "tempo de resposta humana". Configure delays de 1 a 3 segundos entre nodes para evitar bloqueios por spam do WhatsApp. Use 2 segundos entre o node HTTP Request para enviar mensagem e o node Function seguinte.

Deploy e monitoramento: colocando seu chatbot no ar

Você tem três opções para colocar o chatbot no ar: n8n Cloud, self-hosted via Docker ou servidor próprio. A escolha depende de custo, controle e escalabilidade.

Comparação de opções:

OpçãoCustoControleVantagem principal
n8n CloudR$ 20/mêsMédioFácil deploy, sem configuração de servidor
Self-hosted (Docker)R$ 5-10/mês (VPS)AltoPersonalização total, ideal para IA avançada
Servidor próprioR$ 0 (se já tiver hardware)TotalMax control, ideal para empresas com infra própria

Deploy no n8n Cloud:

  1. Acesse https://n8n.io e crie uma conta na n8n Cloud.
  2. Importe seu fluxo via JSON (Export do n8n local).
  3. Configure as variáveis de ambiente no painel da n8n Cloud: EVOLUTION_API_KEY, OPENAI_API_KEY (se usar IA).
  4. Configure o webhook externo do n8n Cloud no Evolution API (vá em "Settings" > "Webhook URL").
  5. Resultado esperado: Seu chatbot fica online em até 5 minutos, acessível via URL pública do n8n Cloud.

Deploy self-hosted com Docker:

  1. Instale o Docker e o Docker Compose no seu servidor ou VPS (Ubuntu 22.04 recomendado).
  2. Crie um arquivo docker-compose.yml com a configuração do n8n e Evolution API:
  3. version: '3'
    services:
      n8n:
        image: n8nio/n8n
        restart: always
        ports:
          - "5678:5678"
        environment:
          - N8N_BASIC_AUTH_ACTIVE=true
          - N8N_BASIC_AUTH_USER=seu-usuario
          - N8N_BASIC_AUTH_PASSWORD=sua-senha
          - GENERIC_TIMEZONE=America/Sao_Paulo
        volumes:
          - ./n8n_data:/home/node/.n8n
      evolution-api:
        image: atendai/evolution-api
        restart: always
        ports:
          - "8080:8080"
        environment:
          - SERVER_URL=https://seu-dominio.com
          - AUTHENTICATION_API_KEY=SUA_CHAVE_API
  4. Execute docker-compose up -d para subir os containers.
  5. Configure o domínio ou IP público com HTTPS (use Let's Encrypt com Certbot).
  6. Resultado esperado: Seu n8n fica acessível em https://seu-dominio.com:5678 e o Evolution API em https://seu-dominio.com:8080.

Monitoramento de logs no n8n:

  • Acesse o painel do n8n em https://seu-dominio.com:5678.
  • Vá em "Executions" para ver o histórico de execuções do fluxo.
  • Clique em qualquer execução para ver logs detalhados (requests, responses, erros).
  • Use o node IF para criar alertas via Telegram ou email quando houver erros.

Ferramentas de analytics:

  • Google Analytics: Adicione o código de rastreio no HTML do seu site (se usar chatbot em site) ou no webhook do n8n para rastrear interações.
  • Planilha simples: Exporte logs do n8n via API ou CSV e analise em planilha com tabelas dinâmicas. Exemplo de dados para exportar: número do cliente, horário, palavra-chave, resposta enviada.
  • Metabase: Instale o Metabase em um servidor próprio para criar dashboards avançados com dados do n8n (use a API do n8n para puxar dados).

Curiosidade técnica: O n8n Cloud não permite acesso SSH ou personalização avançada, mas é ideal para quem quer testar rápido. Para produção com IA avançada, o self-hosted é obrigatório — a OpenAI e Evolution API têm limites de taxa que podem ser ajustados no servidor próprio.

Erros comuns e como resolvê-los: guia de troubleshooting

Você encontra problemas frequentes como token expirado, número não autorizado ou mensagens não chegando. Aqui está um guia rápido de resolução com dicas de debug.

Lista de erros comuns e soluções:

ErroCausa provávelSoluçãoDebug
401 Unauthorized no Evolution APIToken inválido ou expiradoGere um novo token no dashboard do Evolution API e atualize no n8nVerifique logs do n8n: "apikey inválido"
404 Not Found no Evolution APINúmero não autorizado ou não cadastradoVerifique se o número está cadastrado na instância do Evolution API e se o QR Code foi escaneado corretamenteTeste enviar mensagem manual via API com curl
429 Too Many RequestsLimite de mensagens atingido (100/dia na versão gratuita)Upgrade para plano pago do Evolution API ou aguarde 24hVerifique no dashboard do Evolution API: "Limite de mensagens"
Mensagens não chegam no WhatsAppWebhook não configurado ou URL não acessívelCertifique-se de que o webhook do n8n está exposto na internet (use ngrok para testes locais) e registrado no Evolution APIVerifique no Evolution API: "Webhook URL" e faça um teste com curl para o webhook
Respostas não são enviadas pelo Evolution APIPayload JSON mal formatado ou número inválidoValide o JSON no node Function. Exemplo: número deve ser no formato 5511999999999@c.usVerifique logs do n8n: "invalid number format"
Fluxo trava no node HTTP RequestTimeout ou URL errada no nodeVerifique a URL do Evolution API e adicione timeout de 10s no node HTTP RequestVerifique logs do n8n: "ECONNRESET" ou "timeout"
n8n não recebe mensagens do Evolution APIWebhook não registrado ou URL não públicaNo Evolution API, vá em "Settings" > "Webhook URL" e cole a URL do webhook do n8n (deve ser HTTPS)Teste enviar uma mensagem do WhatsApp e verifique no n8n: "Webhook triggered"

Dicas de debug rápidas:

  • Logs do n8n: Acesse "Executions" > clique em uma execução > "Output" para ver o que rolou em cada node.
  • Logs do Evolution API: Acesse o dashboard do Evolution API > "Logs" para ver erros de autenticação ou limite de mensagens.
  • Teste com curl: Simule requests para o Evolution API e n8n via terminal para isolar o problema. Exemplo:
  • # Teste de webhook para o n8n
    curl -X POST https://seu-n8n.com/webhook/whatsautomation \
      -H "Content-Type: application/json" \
      -d '{"from": "5511999999999@c.us", "body": "teste"}'
  • Verifique o número no WhatsApp: Teste enviar uma mensagem manual para o número cadastrado no Evolution API. Se não funcionar, o problema é de autorização no WhatsApp (reinstale o app ou escaneie o QR Code novamente).
  • HTTPS obrigatório: O Evolution API e n8n só funcionam com URLs HTTPS. Use ngrok para testes locais ou configure HTTPS no seu servidor com Certbot.

Curiosidade técnica: O Evolution API armazena mensagens não entregues em uma fila interna por 24h. Se uma mensagem falhar, você pode recuperá-la via API com o endpoint /message/queue para debug. Isso é útil quando o cliente reclama que não recebeu resposta, mas o n8n não registrou erro.

Perguntas frequentes sobre Como automatizar o atendimento ao cliente no WhatsApp usando n8n e a Evolution API

Preciso ter um número oficial do WhatsApp Business para usar o Evolution API?

Não, o Evolution API funciona com números pessoais ou oficiais. Você pode usar um número pessoal para testes ou um número Business sem precisar da API oficial do WhatsApp, que é paga e restritiva.

O Evolution API é pago ou tem versão gratuita?

Sim, há uma versão gratuita com limite de 100 mensagens por dia. Para volumes maiores, existem planos pagos. A versão gratuita é ideal para testes e pequenas empresas que não enviam muitas mensagens diariamente.

Como evitar que o chatbot responda de forma repetitiva ou robótica?

Use prompts de IA bem estruturados no node Function do n8n, adicione delays com o node Wait para simular digitação humana e personalize respostas com lógica condicional no node Switch. Evite respostas genéricas e inclua variações de texto para cada cenário.

Posso usar o n8n em cloud ou preciso instalar no meu servidor?

Você pode usar tanto o n8n Cloud (R$ 20/mês) quanto self-hosted via Docker ou servidor próprio. A escolha depende de custo, controle e necessidade de personalização. O n8n Cloud é ideal para quem quer testar rápido sem configuração.

Quais são os custos envolvidos nesse tipo de automação?

Os custos principais são: n8n Cloud (R$ 20/mês) ou servidor (R$ 5-10/mês), Evolution API (gratuito até 100 mensagens/dia ou pago para mais) e, se usar IA, OpenAI ou OpenRouter (gratuito em versões limitadas). O custo total pode ser zero se usar apenas a versão gratuita do Evolution API.

Como lidar com mensagens fora do horário comercial?

Configure um node Wait para fechar o atendimento após o horário comercial e um node Set para enviar uma mensagem de fallback. Use lógica condicional no node Switch para desviar o fluxo conforme o horário, informando quando a equipe retornará.

É possível integrar o WhatsApp com outras ferramentas além do n8n?

Sim, o Evolution API pode ser integrado com qualquer ferramenta que suporte HTTP Request, como Make (Integromat), Zapier ou até mesmo planilhas via Google Apps Script. No entanto, o n8n oferece mais flexibilidade para automações avançadas.

Como testar o fluxo antes de colocar em produção?

Use o ngrok para expor seu n8n local na web durante testes e registre o webhook no Evolution API. Teste cada node individualmente, verifique os logs do n8n e do Evolution API, e simule mensagens manualmente via curl ou Postman antes de ativar o chatbot para clientes reais.

Automação no WhatsApp: o futuro do atendimento já começou

Automatizar o atendimento no WhatsApp com n8n e Evolution API não é apenas uma tendência, mas uma necessidade para pequenas empresas que querem escalar sem aumentar custos. Com esse guia, você aprendeu desde a configuração inicial até a integração com IA generativa, passando por troubleshooting e deploy seguro. O resultado? Um chatbot 24/7 que responde instantaneamente, reduz filas e libera sua equipe para tarefas estratégicas.

Resumo rápido do que você conquistou:

  • Entendeu por que essa combinação é ideal para reduzir custos e ganhar escalabilidade.
  • Configurou o Evolution API em minutos e criou um fluxo funcional no n8n.
  • Integrou IA generativa para respostas inteligentes e personalizadas.
  • Aprendeu a lidar com casos especiais como horários e palavras-chave.
  • Colocou seu chatbot no ar com opções de n8n Cloud ou self-hosted.
  • Dominou técnicas de debug para resolver problemas comuns.

Agora é hora de colocar em prática! Experimente hoje mesmo com um número de WhatsApp pessoal e veja como sua operação pode mudar em questão de horas. E se quiser ir além, explore nossa categoria de Automação Comercial para mais tutoriais como este!

Quer mais sobre o assunto? Veja todos os artigos de Ferramentas de IA ou a lista completa de artigos.