Sistema de Atendimento WhatsApp com IA 100% Gratuito: Guia Passo a Passo Simplificado

Opa! Vou te ensinar como montar seu chatbot WhatsApp gratuito de forma bem simples, como se você nunca tivesse mexido com essas ferramentas. Vamos por partes, sem pressa!

O Que Vamos Construir (Visão Geral)

Imagina o seguinte cenário:

  1. Cliente manda mensagem no seu WhatsApp
  2. Sistema recebe automaticamente
  3. IA processa e entende a mensagem
  4. Resposta inteligente é enviada
  5. Tudo fica salvo no banco de dados

Resultado: Atendimento 24/7 sem você precisar estar online!

Ferramentas Que Vamos Usar (Todas Gratuitas)

  • Railway: Para hospedar o n8n (cérebro do sistema)
  • n8n: Para criar a automação
  • Evolution API: Para conectar com WhatsApp
  • Groq: Para a inteligência artificial
  • Supabase: Para salvar as conversas

 

Preparando o Terreno

Passo 1.1: Criando Contas Necessárias

1.1.1 – Conta no Railway (Hospedagem)

  1. Acesse: https://railway.app
  2. Clique em “Login”
  3. Escolha “Continue with GitHub”
  4. Se não tem GitHub, crie em: https://github.com
  5. Autorize o Railway a acessar seu GitHub

Como saber se deu certo: Você vai ver o dashboard do Railway com “New Project”

1.1.2 – Conta no Groq (IA)

  1. Acesse: https://console.groq.com
  2. Clique em “Sign Up”
  3. Use seu email ou Google
  4. Confirme o email se necessário

Como saber se deu certo: Você vai ver o painel do Groq

1.1.3 – Conta no Supabase (Banco de Dados)

  1. Acesse: https://supabase.com
  2. Clique em “Start your project”
  3. Entre com GitHub (mesmo do Railway)
  4. Autorize o Supabase

Como saber se deu certo: Você vai ver “Create a new project”

Passo 1.2: Pegando as Chaves de API

1.2.1 – Chave do Groq

  1. No painel do Groq, clique em “API Keys” (menu lateral)

  2. Clique em “Create API Key”

  3. Dê um nome: “MeuBot”

  4. Clique em “Submit”

  5. IMPORTANTE: Copie a chave e salve num bloco de notas

  6. Vai ser algo como: gsk_abc123def456...

1.2.2 – Dados do Supabase

  1. No Supabase, clique em “New project”
  2. Escolha sua organização
  3. Nome do projeto: “chatbot-whatsapp”
  4. Senha do banco: Crie uma senha forte e anote
  5. Região: “South America (São Paulo)”
  6. Clique em “Create new project”
  7. Aguarde 2-3 minutos (vai aparecer uma tela de loading)

Quando terminar:

  1. Vá em “Settings” → “API”

  2. Anote esses dois valores:

  3. Project URLhttps://abc123.supabase.co

  4. anon publiceyJ0eXAiOiJKV1Q... (chave longa)

PARTE 2: Configurando o n8n (Cérebro do Sistema)

Passo 2.1: Subindo o n8n no Railway

2.1.1 – Criando o Projeto

  1. No Railway, clique em “New Project”
  2. Escolha “Deploy from GitHub repo”
  3. Clique em “Configure GitHub App”
  4. Autorize o Railway a ver seus repositórios
  5. Volte e clique em “Deploy from GitHub repo” novamente

2.1.2 – Usando Template do n8n

  1. Na busca, digite: “n8n”
  2. Escolha o template oficial “n8n”
  3. Clique em “Deploy Now”
  4. Nome do projeto: “meu-chatbot-n8n”

2.1.3 – Configurando Variáveis Após o deploy, você vai ver o projeto criado:

  1. Clique no projeto
  2. Vá na aba “Variables”
  3. Adicione essas variáveis (clique em “New Variable” para cada uma):
Nome: N8N_BASIC_AUTH_ACTIVE
Valor: true

Nome: N8N_BASIC_AUTH_USER  
Valor: admin

Nome: N8N_BASIC_AUTH_PASSWORD
Valor: minhasenha123

Nome: N8N_HOST
Valor: 0.0.0.0

Nome: N8N_PORT
Valor: 5678

Nome: WEBHOOK_URL
Valor: https://meu-chatbot-n8n.up.railway.app


ATENÇÃO: No último item, substitua “meu-chatbot-n8n” pelo nome real do seu projeto!

2.1.4 – Pegando a URL do seu n8n

  1. Vá na aba “Settings”
  2. Procure por “Domains”
  3. Você vai ver algo como: https://meu-chatbot-n8n.up.railway.app
  4. Anote essa URL – é o endereço do seu n8n!

Passo 2.2: Testando o n8n

  1. Abra a URL do seu n8n no navegador
  2. Vai aparecer uma tela de login
  3. Usuário: admin
  4. Senha: minhasenha123 (ou a que você colocou)
  5. Sucesso: Você vai ver a interface do n8n!

Se não funcionou:

  • Aguarde 2-3 minutos (Railway demora pra subir)
  • Verifique se as variáveis estão corretas
  • Tente acessar novamente

Configurando o Banco de Dados

Passo 3.1: Criando as Tabelas no Supabase

3.1.1 – Acessando o Editor SQL

  1. No seu projeto Supabase, vá em “SQL Editor” (menu lateral)
  2. Clique em “New query”

3.1.2 – Criando as Tabelas Cole esse código e clique em “Run”:

-- Tabela para guardar as conversas
CREATE TABLE conversations (
  id SERIAL PRIMARY KEY,
  phone VARCHAR(20) NOT NULL UNIQUE,
  name VARCHAR(100),
  created_at TIMESTAMP DEFAULT NOW(),
  updated_at TIMESTAMP DEFAULT NOW(),
  status VARCHAR(20) DEFAULT 'active'
);

-- Tabela para guardar as mensagens
CREATE TABLE messages (
  id SERIAL PRIMARY KEY,
  phone VARCHAR(20) NOT NULL,
  message_text TEXT NOT NULL,
  is_from_user BOOLEAN DEFAULT true,
  created_at TIMESTAMP DEFAULT NOW()
);

-- Tabela para configurações do bot
CREATE TABLE bot_settings (
  id SERIAL PRIMARY KEY,
  setting_name VARCHAR(50) UNIQUE NOT NULL,
  setting_value TEXT,
  description TEXT
);

-- Inserindo configurações básicas
INSERT INTO bot_settings (setting_name, setting_value, description) VALUES
('company_name', 'Minha Empresa', 'Nome da sua empresa'),
('business_hours', '08:00-18:00', 'Horário de funcionamento'),
('welcome_message', 'Olá! Como posso ajudar você hoje?', 'Mensagem de boas-vindas');

Como saber se deu certo: Vai aparecer “Success. No rows returned” e você vai ver as tabelas criadas no menu “Table Editor”.

Passo 3.2: Configurando Permissões

3.2.1 – Desabilitando RLS (Simplificando)

  1. Vá em “Authentication” → “Policies”

  2. Para cada tabela (conversations, messages, bot_settings):

  3. Clique na tabela

  4. Clique em “Disable RLS” se estiver habilitado

Por que fazer isso: Para simplificar o tutorial. Em produção, você deveria configurar as políticas de segurança.

Configurando a Evolution API (WhatsApp)

Passo 4.1: Subindo a Evolution API

4.1.1 – Novo Projeto no Railway

  1. No Railway, clique em “New Project” novamente
  2. Escolha “Empty Project”
  3. Nome: “evolution-api-whatsapp”

4.1.2 – Adicionando o Serviço

  1. Clique em “Add Service”
  2. Escolha “GitHub Repo”
  3. Na busca, digite: EvolutionAPI/evolution-api
  4. Clique no repositório oficial
  5. Clique em “Deploy”

4.1.3 – Configurando Variáveis da Evolution Vá na aba “Variables” e adicione:

Nome: SERVER_TYPE
Valor: http

Nome: SERVER_PORT
Valor: 8080

Nome: CORS_ORIGIN
Valor: *

Nome: DEL_INSTANCE
Valor: false

Nome: STORE_MESSAGES
Valor: true

Nome: STORE_CONTACTS
Valor: true

Nome: STORE_CHATS
Valor: true

Nome: WEBHOOK_URL
Valor: https://meu-chatbot-n8n.up.railway.app/webhook/whatsapp

IMPORTANTE: No WEBHOOK_URL, use a URL do seu n8n (do Passo 2.1.4)!

4.1.4 – Pegando a URL da Evolution API

  1. Vá em “Settings” → “Domains”
  2. Anote a URL: https://evolution-api-whatsapp.up.railway.app

Passo 4.2: Conectando seu WhatsApp

4.2.1 – Criando uma Instância Vamos usar um programa chamado Postman ou Insomnia para fazer requisições. Se não tem, pode usar o site httpie.io:

  1. Acesse: https://httpie.io/app

  2. Método: POST

  3. URL: https://SUA_EVOLUTION_URL/instance/create

  4. Headers:

  5. Content-Typeapplication/json

  6. Body (JSON):

{
  "instanceName": "meubot",
  "token": "meutoken123",
  "qrcode": true,
  "webhook": "https://SUA_N8N_URL/webhook/whatsapp"
}

Substitua:

  • SUA_EVOLUTION_URL pela URL da sua Evolution API
  • SUA_N8N_URL pela URL do seu n8n
  1. Clique em “Send”

4.2.2 – Escaneando o QR Code Se deu certo, você vai receber uma resposta com:

  • qrcode: Uma string gigante
  • code: Uma imagem em base64

Para ver o QR Code:

  1. Copie o valor do qrcode
  2. Acesse: https://qr-code-generator.com
  3. Cole o código
  4. Escaneie com seu WhatsApp

Como saber se conectou: Faça uma nova requisição GET para: https://SUA_EVOLUTION_URL/instance/connectionState/meubot

Deve retornar: "state": "open"

Criando o Workflow no n8n (A Mágica Acontece)

Passo 5.1: Criando o Workflow Básico

5.1.1 – Acessando o n8n

  1. Abra seu n8n: https://meu-chatbot-n8n.up.railway.app
  2. Faça login (admin / minhasenha123)
  3. Clique em “New Workflow”

5.1.2 – Adicionando o Primeiro Nó (Webhook)

  1. Clique no “+” para adicionar um nó

  2. Procure por “Webhook”

  3. Clique em “Webhook”

  4. Configure:

  5. HTTP Method: POST

  6. Path: whatsapp

  7. Response: Immediately

  8. Clique em “Execute Node” para testar

  9. Anote a URL do webhook que aparece (algo como: https://seu-n8n.railway.app/webhook/whatsapp)

Passo 5.2: Processando a Mensagem

5.2.1 – Adicionando Nó de Código

  1. Clique no “+” após o Webhook
  2. Procure por “Code”
  3. Clique em “Code”
  4. Cole este código:
// Pegar dados da mensagem do WhatsApp
const webhookData = $input.first().json;

// Verificar se tem dados
if (!webhookData || !webhookData.data) {
  return [];
}

const data = webhookData.data;

// Extrair informações importantes
const phone = data.key?.remoteJid?.replace('@s.whatsapp.net', '') || '';
const message = data.message?.conversation || 
                data.message?.extendedTextMessage?.text || '';

// Se não tem mensagem válida, não processar
if (!message || !phone) {
  return [];
}

// Retornar dados organizados
return [{
  json: {
    phone: phone,
    message: message.trim(),
    timestamp: new Date().toISOString(),
    messageId: data.key?.id || ''
  }
}];
  1. Clique em “Execute Node” para testar

Passo 5.3: Consultando a IA

5.3.1 – Adicionando HTTP Request para Groq

  1. Adicione um novo nó “HTTP Request”

  2. Configure:

  3. Method: POST

  4. URL: https://api.groq.com/openai/v1/chat/completions

  5. Headers:

  6. AuthorizationBearer SUA_CHAVE_GROQ

  7. Content-Typeapplication/json

  8. Body (JSON):

{
  "messages": [
    {
      "role": "system",
      "content": "Você é um assistente virtual prestativo. Responda de forma cordial e útil. Mantenha as respostas curtas e objetivas."
    },
    {
      "role": "user",
      "content": "{{ $json.message }}"
    }
  ],
  "model": "llama3-8b-8192",
  "temperature": 0.7,
  "max_tokens": 200
}

IMPORTANTE: Substitua SUA_CHAVE_GROQ pela chave que você anotou no Passo 1.2.1!

Passo 5.4: Extraindo a Resposta da IA

5.4.1 – Nó de Código para Processar Resposta

  1. Adicione outro nó “Code”
  2. Cole este código:
// Pegar resposta da IA
const aiResponse = $input.first().json;
const originalData = $('Code').first().json; // Dados do primeiro nó de código

// Extrair a resposta
const botMessage = aiResponse.choices[0].message.content;

// Combinar tudo
return [{
  json: {
    ...originalData,
    botResponse: botMessage,
    tokensUsed: aiResponse.usage?.total_tokens || 0
  }
}];

Passo 5.5: Salvando no Banco de Dados

5.5.1 – Salvando Mensagem do Cliente

  1. Adicione nó “HTTP Request”

  2. Configure:

  3. Method: POST

  4. URL: https://SEU_PROJETO.supabase.co/rest/v1/messages

  5. Headers:

  6. apikeySUA_CHAVE_SUPABASE

  7. AuthorizationBearer SUA_CHAVE_SUPABASE

  8. Content-Typeapplication/json

  9. Body:

{
  "phone": "{{ $json.phone }}",
  "message_text": "{{ $json.message }}",
  "is_from_user": true
}

5.5.2 – Salvando Resposta do Bot

  1. Adicione outro nó “HTTP Request”
  2. Mesma configuração, mas Body:
{
  "phone": "{{ $json.phone }}",
  "message_text": "{{ $json.botResponse }}",
  "is_from_user": false
}

Passo 5.6: Enviando Resposta pelo WhatsApp

5.6.1 – Nó Final – Enviar Mensagem

  1. Adicione último nó “HTTP Request”

  2. Configure:

  3. Method: POST

  4. URL: https://SUA_EVOLUTION_URL/message/sendText/meubot

  5. Headers:

  6. Content-Typeapplication/json

  7. apikeymeutoken123

  8. Body:

{
  "number": "{{ $json.phone }}",
  "text": "{{ $json.botResponse }}"
}

Passo 5.7: Salvando e Ativando

  1. Salve o workflow: Ctrl+S ou clique no ícone de salvar
  2. Dê um nome: “ChatBot WhatsApp”
  3. Ative o workflow: Toggle no canto superior direito deve ficar verde

 

Testando Tudo

Passo 6.1: Teste Básico

6.1.1 – Enviando Mensagem de Teste

  1. Pegue o número que você conectou na Evolution API
  2. De outro WhatsApp, mande uma mensagem para esse número
  3. Exemplo: “Olá, como vocês funcionam?”

6.1.2 – Verificando se Funcionou

  1. No n8n, vá em “Executions” (menu lateral)
  2. Você deve ver uma execução recente
  3. Clique nela para ver o fluxo
  4. Cada nó deve estar verde (sucesso)

6.1.3 – Verificando no Banco

  1. No Supabase, vá em “Table Editor”
  2. Clique na tabela “messages”
  3. Você deve ver suas mensagens salvas

Passo 6.2: Troubleshooting Básico

Se não recebeu resposta:

  1. Verifique se o webhook está correto na Evolution API
  2. Veja se há erros nas execuções do n8n
  3. Confirme se as chaves de API estão corretas

Se a IA não responde:

  1. Teste a chave do Groq separadamente
  2. Verifique se não excedeu o limite gratuito
  3. Veja se o JSON está formatado corretamente

Se não salvou no banco:

  1. Confirme as credenciais do Supabase
  2. Verifique se as tabelas foram criadas
  3. Teste a conexão com o banco separadamente

Melhorias e Personalizações

Passo 7.1: Personalizando as Respostas

7.1.1 – Editando o Prompt da IA No nó HTTP Request do Groq, mude o prompt do sistema:

{
  "role": "system",
  "content": "Você é um assistente da empresa [SEU_NOME]. Somos especializados em [SEU_RAMO]. Nosso horário é de segunda a sexta, 8h às 18h. Seja cordial, prestativo e sempre ofereça ajuda. Se não souber algo específico, diga que vai verificar com a equipe."
}

7.1.2 – Adicionando Respostas Rápidas Antes do nó da IA, adicione um nó “Code” com respostas automáticas:

const message = $json.message.toLowerCase();

// Respostas rápidas para palavras-chave
const quickReplies = {
  'horario': 'Nosso horário de atendimento é de segunda a sexta, das 8h às 18h! 🕐',
  'preço': 'Para informações sobre preços, me conte mais sobre o que você precisa!',
  'obrigado': 'Por nada! Estou aqui para ajudar sempre! 😊',
  'tchau': 'Até logo! Qualquer coisa, é só chamar! 👋'
};

// Verificar se a mensagem contém alguma palavra-chave
for (const [keyword, reply] of Object.entries(quickReplies)) {
  if (message.includes(keyword)) {
    return [{
      json: {
        ...$json,
        botResponse: reply,
        skipAI: true // Flag para pular a IA
      }
    }];
  }
}

// Se não encontrou palavra-chave, continua para IA
return [$input.first()];

Passo 7.2: Sistema de Horário Comercial

Adicione este código antes da IA:

const now = new Date();
const hour = now.getHours();
const day = now.getDay(); // 0=domingo, 1=segunda...

// Verificar se está no horário comercial (seg-sex, 8h-18h)
const isBusinessHours = (day >= 1 && day <= 5) && (hour >= 8 && hour <= 18);

if (!isBusinessHours) {
  return [{
    json: {
      ...$json,
      botResponse: "Olá! Nosso atendimento é de segunda a sexta, das 8h às 18h. Deixe sua mensagem que retornaremos assim que possível! 📱",
      skipAI: true
    }
  }];
}

return [$input.first()];

Monitoramento e Manutenção

Passo 8.1: Acompanhando o Desempenho

8.1.1 – Dashboard no Supabase

  1. Vá em “SQL Editor”
  2. Crie uma query para estatísticas:
-- Mensagens por dia
SELECT 
  DATE(created_at) as data,
  COUNT(*) as total_mensagens,
  COUNT(CASE WHEN is_from_user = true THEN 1 END) as mensagens_clientes,
  COUNT(CASE WHEN is_from_user = false THEN 1 END) as respostas_bot
FROM messages 
WHERE created_at >= NOW() - INTERVAL '7 days'
GROUP BY DATE(created_at)
ORDER BY data DESC;

8.1.2 – Verificando Logs no n8n

  1. Menu “Executions” mostra todas as execuções
  2. Verde = sucesso, Vermelho = erro
  3. Clique em qualquer execução para ver detalhes

Passo 8.2: Backup e Segurança

8.2.1 – Exportando Workflow

  1. No n8n, abra seu workflow
  2. Menu “…” → “Export”
  3. Salve o arquivo JSON em local seguro

8.2.2 – Backup do Banco

  1. No Supabase, vá em “Settings” → “Database”
  2. Anote as informações de conexão
  3. Use um cliente PostgreSQL para backup regular

 

✅ Checklist de Funcionamento

Contas Criadas:

  • Railway configurado
  • Groq com API key
  • Supabase com projeto criado
  • GitHub conectado

Serviços Funcionando:

  • n8n acessível via browser
  • Evolution API respondendo
  • WhatsApp conectado (QR code escaneado)
  • Banco de dados com tabelas criadas

Workflow Ativo:

  • Webhook recebendo mensagens
  • IA processando e respondendo
  • Mensagens sendo salvas no banco
  • Respostas chegando no WhatsApp

Testes Realizados:

  • Mensagem de teste enviada e respondida
  • Dados aparecendo no Supabase
  • Execuções aparecendo no n8n sem erros

 Próximos Passos Sugeridos

  1. Personalize o prompt da IA para seu negócio
  2. Adicione respostas rápidas para perguntas comuns
  3. Configure horário comercial
  4. Monitore regularmente as execuções
  5. Faça backup do workflow mensalmente

 Dicas Importantes

  • Teste sempre antes de colocar em produção
  • Monitore os limites gratuitos das APIs
  • Mantenha as chaves de API seguras
  • Documente suas personalizações
  • Faça backup regular dos dados

Parabéns!  Você agora tem um sistema de atendimento WhatsApp com IA funcionando 24/7, completamente gratuito!

Se tiver dúvidas em algum passo específico, pode perguntar que eu explico com mais detalhes. O importante é ir devagar e testar cada etapa antes de passar para a próxima.

 Avalie este conteúdo: Este artigo foi útil para você? Deixe sua avaliação e comentários!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *