Guia para configurar o robô de atendimento no WhatsApp antes e depois do número estar ativo.
⚠️ Arquitetura: O webhook neste repositório é PoC/protótipo. Para produção, use o devflow-whatsapp-platform como backend oficial. Ver ARQUITETURA-DELEGACAO.md.
- Conta Facebook
- Número de telefone (novo chip ou existente) para WhatsApp Business
- Acesse Meta for Developers
- Login com Facebook
- My Apps → Create App
- Tipo: Business
- Nome sugerido: DevFlow WhatsApp Platform
- Dentro do app: Add Product
- WhatsApp → Set Up
- Cria automaticamente:
- WhatsApp Business Account
- Ambiente da WhatsApp Cloud API
Você verá (mesmo sem número):
- Phone Number ID (temporário ou do API tester)
- API tester para testes
| Variável | Onde pegar | Exemplo |
|---|---|---|
WHATSAPP_ACCESS_TOKEN |
Meta Developers → WhatsApp → API Setup → Token | EAAx... |
WHATSAPP_PHONE_NUMBER_ID |
Meta Developers → WhatsApp → Phone numbers | 123456789 |
WHATSAPP_VERIFY_TOKEN |
Você escolhe (string qualquer) | devflow_verify_123 |
WHATSAPP_DEMO_MODE |
Opcional: true para mensagem demo especial |
false |
| Variável | Descrição |
|---|---|
NEXT_PUBLIC_WHATSAPP_NUMBER |
Número com DDI (ex: 5513999999999) |
NEXT_PUBLIC_WHATSAPP_DEFAULT_TEXT |
Mensagem ao clicar no botão |
https://whatsapp.devflowlabs.com.br/api/webhook/whatsapp
(Se usar API separada: https://api.devflowlabs.com.br/webhook/whatsapp)
- WhatsApp → Configuration
- Webhook → Edit
- Callback URL:
https://whatsapp.devflowlabs.com.br/api/webhook/whatsapp - Verify Token: o mesmo valor de
WHATSAPP_VERIFY_TOKEN - Clique em Verify and Save
- Em Webhook fields, marque: messages
ngrok http 3000
# App whatsapp-platform em dev (porta típica 3000). Use: https://xxxx.ngrok.io/api/webhook/whatsapp- Meta Developers → WhatsApp → Phone numbers
- Add phone number (ou usar o do API tester para testes)
- Validar o número via SMS/ligação
- Copiar o Phone Number ID gerado
- Atualizar
WHATSAPP_PHONE_NUMBER_IDna Vercel - Novo deploy
src/modules/whatsapp/
├── messages.ts # Mensagens padrão (boas-vindas, menu, etc.)
├── messageParser.ts # Parser de intenção (1, 2, 3, menu, etc.)
├── sendMessage.ts # Envio via WhatsApp Cloud API
├── webhookHandler.ts # Lógica de resposta
└── index.ts # Exports
Mensagem recebida
↓
Parse (menu, 1, 2, 3, oi, etc.)
↓
Resposta correspondente
- Boas-vindas — Oi, olá, bom dia, etc.
- Menu — menu, ajuda, 0
- Opção 1 — Como funciona a automação
- Opção 2 — Link da demo
- Opção 3 — Falar com especialista
- Modo demo — Se
WHATSAPP_DEMO_MODE=true, mensagem "demo" especial - Fallback — Não entendi, envie "menu"
- Número validado no Meta Developers
-
WHATSAPP_PHONE_NUMBER_IDatualizado -
WHATSAPP_ACCESS_TOKENconfigurado (token permanente) -
WHATSAPP_VERIFY_TOKENigual no Meta e no .env - Deploy novo na Vercel
- Testar enviando mensagem para o número