Este tutorial irá guiá-lo na instalação e configuração de um agente de IA integrado ao WhatsApp, utilizando soluções gratuitas como Docker, N8N, WAHA (API de WhatsApp) e o banco de dados Redis. É ideal para quem deseja iniciar no mundo das automações sem investir em uma VPS no momento.
O que você vai precisar (Pré-requisitos):
- Um computador com acesso à internet.
- Outro número de telefone para testar a automação (não pode ser o mesmo número do chat).
Passo 1: Preparando o Ambiente Docker
Baixar e Instalar o Docker Desktop:
- Vá ao site do Docker: https://www.docker.com/.
- Clique em “Download Docker Desktop” e escolha a opção correspondente ao seu sistema operacional (macOS, Windows ou Linux).
- Instale o aplicativo Docker em sua máquina.
Baixar o Arquivo
docker-compose
:
version: '3.8'
services:
redis:
image: redis:latest
platform: linux/amd64
command: redis-server --requirepass default
environment:
REDIS_USER: default
REDIS_PASSWORD: default
ports:
- "6379:6379"
postgres:
image: postgres:latest
platform: linux/amd64
environment:
POSTGRES_USER: default
POSTGRES_PASSWORD: default
POSTGRES_DB: default
ports:
- "5432:5432"
volumes:
- pgdata:/var/lib/postgresql/data
waha:
image: devlikeapro/waha:latest
platform: linux/amd64
environment:
WHATSAPP_HOOK_URL: http://host.docker.internal:5678/webhook/webhook
WHATSAPP_DEFAULT_ENGINE: GOWS
WHATSAPP_HOOK_EVENTS: message
volumes:
- waha_sessions:/app/.sessions
- waha_media:/app/.media
ports:
- "3000:3000"
n8n:
image: n8nio/n8n:latest
platform: linux/amd64
environment:
WEBHOOK_URL: http://host.docker.internal:5678
N8N_HOST: host.docker.internal
GENERIC_TIMEZONE: America/Sao_Paulo
N8N_LOG_LEVEL: debug
N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE: true
volumes:
- n8n_data:/home/node/.n8n
ports:
- "5678:5678"
volumes:
pgdata:
waha_sessions:
waha_media:
n8n_data:
Organizar os Arquivos:
- Nos seus downloads, crie uma nova pasta e dê o nome de n8n
- Mova o arquivo
docker-compose
que você baixou para dentro desta nova pasta.
Executar o Comando Docker Compose:
- Dentro da pasta n8n, clique com o botão direito do mouse e selecione “Abrir no terminal” (ou opção similar, como “Abrir no PowerShell aqui”).
- No terminal, digite o seguinte comando e pressione Enter:
docker-compose up -d
- Este comando fará o download e a instalação automática do N8N, do WAHA (a API do WhatsApp) e do Redis no seu Docker, além de um Postgres de bônus.
- Você pode fechar o terminal e a pasta após a execução.
Verificar a Estrutura no Docker:
- Abra o aplicativo Docker Desktop.
- Você deverá ver a estrutura que acabou de ser criada, incluindo N8N, Redis, WAHA e Postgres.
Passo 2: Configurando o WAHA (API do WhatsApp)
Acessar o Painel do WAHA:
- No aplicativo Docker, localize a linha do WAHA e clique no link que aparece ao passar o mouse sobre ela. Ele abrirá no seu navegador.
- No painel do WAHA, vá para a opção “dashboard”.
Conectar o WhatsApp:
- Na seção “default” que já existe, clique em “start”.
- No seu celular, abra o WhatsApp:
- Vá nos três pontinhos (ou configurações, dependendo do OS).
- Selecione “Dispositivos conectados”.
- Toque em “Conectar um dispositivo”.
- Clique em “Login” (se aparecer a opção) e leia o QR Code que aparece na tela do seu computador com a câmera do celular.
- Após a leitura do QR Code, seu WhatsApp estará conectado.
Passo 3: Configurando o N8N
Acessar o N8N:
- Volte ao aplicativo Docker e, desta vez, clique no link do “N8N”. Ele abrirá no seu navegador.
Configuração Inicial do N8N:
- No formulário de cadastro, coloque um e-mail, nome, sobrenome e uma senha, depois clique em “next”.
- Na próxima tela, clique na primeira opção e selecione que “não está usando para trabalho”.
- Você pode optar por “Google” (para estatísticas de uso) e clicar em “iniciar”.
Ativar Funções Extras (Chave de Ativação):
- O N8N lhe dará uma chave para ativar funções pagas gratuitamente. Clique para ele enviar uma chave de graça.
- Verifique seu e-mail e copie a chave de ativação.
- No N8N, vá nos três pontinhos no canto, depois em “settings”.
- Selecione “enteration key” e cole a sua chave.
- Clique em “activate”. Seu N8N estará ativado com funções pagas de graça “para sempre”.
Instalar a Extensão do WAHA (Community Node):
- No N8N, no menu lateral, vá em “community nodes”.
- Clique em “instalar community node”.
- Digite
n8n-nodes-waha
. - Marque a caixinha e clique em “install”.
Passo 4: Criando e Configurando o Workflow (Fluxo de Trabalho) do N8N
Iniciar um Novo Workflow:
- Volte para a página inicial do N8N e clique para iniciar um workflow do zero.
- Renomeie o workflow para “WhatsApp” (ou outro nome de sua preferência).
Adicionar o Trigger (Gatilho) Webhook:
- Clique no botão “+” e adicione um node do tipo “Webhook”.
- Na configuração do Webhook:
- Method: Selecione “POST”.
- Path: Digite
webhook
.- Importante: Este
URL
deve ser exatamente como configurado como URL do webhook global no Docker Compose do WAHA.
- Importante: Este
- Copie a “URL de teste” que aparece no node do Webhook.
Configurar o Webhook no WAHA:
- Vá novamente ao dashboard do seu WAHA.
- Nas configurações da sua sessão, clique para adicionar um webhook.
- Cole a “URL de teste” que você copiou do N8N.
- Em “events”, deselecione o primeiro evento e deixe apenas o evento “message” marcado.
- Clique em “update”.
Testar o Webhook:
- Volte ao N8N, no node do Webhook, e clique para “escutar um evento de teste”.
- Envie um “Olá” para o seu número do WhatsApp (conectado ao WAHA) através de outro número de celular (não pode ser no chat para si mesmo).
- No N8N, você deverá ver os dados da mensagem aparecerem no node do Webhook.
- Para salvar esses dados para sempre tê-los disponíveis, clique no ícone de “pin” no canto do painel de dados.
Passo 5: Tratamento dos Dados Recebidos (Node “Set”)
Adicionar o Node “Set”:
- Clique fora do node do Webhook.
- Clique no botão “+” e adicione um novo node do tipo “Set”.
- Você pode renomear este node para “dados”, pois ele será usado para filtrar e selecionar apenas os dados essenciais do Webhook.
Configurar os Campos do Node “Set”:
- Adicione os seguintes campos e arraste os dados correspondentes do output do Webhook para eles:
session
: Arraste o campoevent
do Webhook para cá.chatID
: Arraste o campopayload.from
(que está dentro depayload
) do Webhook para cá.pushname
: Arraste o campodata.pushName
(que está dentro dedata
) do Webhook para cá.payloadID
: Arraste o campopayloadId
(que está em cima) do Webhook para cá.event
: Arraste o campoevent
(do primeiro nível) do Webhook para cá.message
: Arraste o campobody
(que está dentro debody
) do Webhook para cá.fromme
: Arraste o campopayload.fromMe
do Webhook para cá.
- Teste novamente o fluxo para garantir que os dados estão sendo corretamente filtrados.
- Clique fora do node “dados” e salve o workflow.
- Adicione os seguintes campos e arraste os dados correspondentes do output do Webhook para eles:
Passo 6: Lógica Condicional (Node “Switch”)
Adicionar o Node “Switch”:
- Conecte o output do node “dados” ao input de um novo node do tipo “Switch”.
- Este node criará diferentes rotas para diferentes tipos de eventos. Por enquanto, trataremos apenas o evento “message”.
Configurar a Condição:
- No node “Switch”, compare se o campo
event
(do node “dados”) é igual amessage
. - Teste para verificar se a saída ocorre na perna correta (geralmente a “True” ou a primeira saída).
- Salve.
- No node “Switch”, compare se o campo
Passo 7: Configurando o Agente de IA (Node “AI Agent”)
Adicionar o Node “AI Agent”:
- Conecte a saída “True” (ou a saída que representa o evento “message”) do node “Switch” ao input de um novo node do tipo “AI Agent”.
- Este é o coração do seu agente de IA.
Configurar o Prompt:
- Na opção de configuração do prompt, mude para “define Below” (definir abaixo).
- No campo de prompt, arraste o campo
message
(do node “dados”) para cá. - Clique em “add option” e adicione “assist message”.
- Neste campo, digite as instruções para o seu agente, definindo o que ele deve fazer. Por exemplo:
- “Você é um guia atendende de uma livraria seja simpático com so clientes”.
Configurar o Modelo de Chat (Google Gemini):
- Em “Chat Model”, selecione “Google Gemini”.
- Criar Credencial:
- Clique em “Select Credential” e depois em “Create Credential”.
- Será solicitada uma API Key.
- Para obter uma API Key gratuita do Google Gemini:
- Abra o Google e pesquise por Gemini API Key.
- Acesse o primeiro site (geralmente o Google AI Studio) e faça login com sua conta Google.
- Vá em “go to Google AI Studio”.
- No canto superior, clique em “get API key”.
- Depois, clique em “criar chave de API”.
- Selecione um projeto (ou crie um novo) e gere a chave.
- Copie a chave de API gerada.
- Volte ao N8N, cole a chave de API no campo
API Key
e clique em “salvar”. A conexão deve ser feita com sucesso.
- Escolher o Modelo Gemini:
- O modelo padrão pode ser o “1.0 Pro”. Clique nele e troque para “Gemini 2.0 flash”, que é considerado muito melhor.
- Configuração Opcional (Sampling Temperature):
- Em “add option”, você pode adicionar
sampling temperature
para controlar o quanto a IA “alucina”. - O valor padrão é 0.4. Se a IA estiver muito “maluca”, você pode diminuir para 0.2 ou 0.1.
- Em “add option”, você pode adicionar
- Clique fora do node e salve as configurações.
Passo 8: Configurando a Memória (Node “Redis Chat Memory”)
Adicionar o Node “Redis Chat Memory”:
- Conecte o output do node “AI Agent” ao input de um novo node do tipo “Redis Chat Memory”.
- O Redis já está configurado no seu Docker Compose.
Configurar Credencial Redis:
- Clique em “Select Credential” e depois em “Create New Credential”.
- Password: Digite
default
(exatamente como está). - User: Deixe em branco.
- Host: Apague
localhost
e digitehost.docker.internal
. - Clique em “salvar”. A conexão deve ser feita com sucesso.
Configurar a Memória Redis:
- Em “session ID”, deixe a opção “definir abaixo”.
- Em “key”, arraste o campo
chat ID
(do node “dados”) para cá. - Em “session time to live”, defina o tempo em segundos que o histórico de conversas será salvo. Por exemplo,
3600
para 1 hora. - Em “context window length”, defina quantas mensagens serão passadas para a IA como contexto. Por exemplo,
15
. - Clique fora do node e salve as configurações.
Passo 9: Respondendo via WhatsApp (Nós WAHA)
Node para Marcar Mensagem como Vista (Opcional, mas útil):
- Clique no botão “+” e adicione um novo node do tipo “WAHA”.
- Action: Selecione “Send” (apesar do nome, neste contexto o objetivo é processar a mensagem recebida e marcá-la como visualizada).
- Configurar Credencial WAHA:
- Clique em “Select Credential” e “Create New Credential”.
- Em “host URL”, apague
localhost
e digitehost.docker.internal:3000
. - Clique em “salvar”. A conexão será feita com sucesso.
- Configurar o Node:
- Clique para trazer os dados anteriores.
session
: Arraste o camposession
do node “dados”.chat ID
: Arraste o campochat ID
do node “dados”.Message ID
: Arraste o campopayload ID
do node “dados”.
- Teste: Se você enviar uma mensagem para seu número e observar no WhatsApp, verá que ele a “visualizou” (indicado pelo visto azul duplo).
Node para Enviar Mensagem de Resposta:
- Clique no botão “+” novamente e adicione outro node do tipo “WAHA”.
- Action: Selecione “Send Message”.
- A credencial já estará preenchida.
- Configurar o Node:
session
: Arraste o camposession
do node “dados”.chat ID
: Arraste o campochat ID
do node “dados”.- Em
text
, apague o texto padrão. - O que a gente quer responder é a mensagem que a IA gerou. Então, do lado do node “AI Agent”, arraste o output do “AI Agent” (que é o que a IA gerou com base na mensagem da pessoa) para o campo
text
.
- Teste: Clique em “testar” no node “Send Message”. Envie uma mensagem do seu outro número para o WhatsApp e observe a resposta.
- Clique fora do node e salve o workflow.
Passo 10: Ativar o Workflow
- Com o workflow finalizado, clique no botão “Ativar” (ou “Activate”) no canto superior do N8N.
- Marque a opção para ativar.
Limitações desta Instalação:
- Por estar rodando na rede local do seu computador, você não conseguirá fazer com que outros programas ou softwares enviem webhooks para o seu N8N.
- Esqueça outros tipos de automações que dependem de webhooks externos para esta instalação específica.
- Esta instalação é somente para a automação do WhatsApp utilizando o WAHA e nada mais além disso.
- É possível contornar a limitação de webhooks externos usando programas como o Anyrock, mas isso não está coberto neste tutorial.
Conclusão
Parabéns! Você tem agora uma estrutura completa para criar automações com um agente de IA integrado ao WhatsApp sem pagar nada. Pense nisso como ter um assistente pessoal altamente treinado, vivendo dentro do seu próprio computador, pronto para responder às mensagens do WhatsApp de acordo com as instruções que você deu, e com a capacidade de lembrar de conversas passadas.