Work feito nesta sessão: - Traefik routes.yml: crm.m5digital.net.br → twenty-crm (Twenty substitui Hermes CRM) - Backup pre-fase3 salvo em /root/backups/2026-07-06_pre-crm-reorg/ - 3 IPs hardcoded substituídos por container names (video, chatwoot, twenty) - API key OpenWA recuperada do .api-key (regenerada em 29/jun/2026) - Workflows n8n JSON prontos para WhatsApp → CRM e CRM → WhatsApp - Documentação completa em workflows/README-FASE5-OPENWA-TWENTY.md Pendência: import manual dos workflows via n8n UI após login wizard. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
4.1 KiB
4.1 KiB
Fase 5 — Integração WhatsApp (OpenWA) ↔ Twenty CRM via n8n
Status atual (06/jul/2026)
✅ O que está pronto
- OpenWA rodando (
https://wa.m5digital.net.br), API funcional - API key OpenWA recuperada: gravada em
/app/data/.api-key(regenerada em 29/jun/2026) https://crm.m5digital.net.brapontando para Twenty CRM- n8n rodando, 3 webhooks ativos (twenty-webhook, chatwoot-webhook, saleor-webhook)
- URL pública
https://n8n.m5digital.net.br/webhook/{path}acessível externamente - Workflows JSON prontos em:
/root/ecommerce/workflows/m5-openwa-to-twenty.json(entrada WhatsApp → CRM)/root/ecommerce/workflows/m5-twenty-to-openwa.json(saída CRM → WhatsApp)
⚠️ Pendência: login do n8n
Ao longo da investigação:
- API key correta:
n8n_api_6878ecab2c6a0c5a58be3b265e1227075a3c60e3c7f430c574ec2043029bdc2d - Email correto do owner:
admin@m5online.com.br - Senha foi resetada (
user-management:reset) — você precisa definir nova senha via wizard
Ação sua: ir em https://n8n.m5digital.net.br, completar setup wizard (vai pedir email + senha nova).
Como importar os workflows via n8n UI (depois do login)
Workflow 1: M5 — OpenWA → Twenty CRM
- Abrir https://n8n.m5digital.net.br
- Clicar Workflows no menu lateral
- Botão + New workflow (canto superior direito)
- Clicar nos 3 pontinhos (⋮) → Import from File...
- Selecionar
/root/ecommerce/workflows/m5-openwa-to-twenty.json - Activate (toggle no topo)
O que ele faz:
- Recebe
POST https://n8n.m5digital.net.br/webhook/openwa-incoming - Filtra apenas evento
message.receiveddo OpenWA - Extrai
phone,name,messagedo payload - Cria Note no Twenty CRM com
[Phone: 5511999999999] mensagem do cliente
Campos que serão gravados no Twenty (assumindo schema padrão):
note.body— texto da mensagem com prefixo do telefonenote.title— "WhatsApp"
Workflow 2: M5 — Twenty CRM → OpenWA (resposta)
- Importar
/root/ecommerce/workflows/m5-twenty-to-openwa.json - Activate
O que ele faz:
- Recebe
POST https://n8n.m5digital.net.br/webhook/twenty-outgoing - Pega
person.phone+note.bodydo payload - Envia via OpenWA API
POST /api/sessions/marcos-pessoal/messages/send-text
Como registrar o webhook no OpenWA (depois)
Quando você tiver uma sessão WhatsApp ativa (READY no dashboard), registrar webhook:
OPENWA_KEY="owa_k1_1e56b98c39a2daa5bdb537d04f35da17117021bedc8c1de80eaba2926c584b39"
SESSION="marcos-pessoal"
N8N_HOOK="https://n8n.m5digital.net.br/webhook/openwa-incoming"
curl -sk -X POST "https://wa.m5digital.net.br/api/sessions/$SESSION/webhooks" \
-H "X-API-Key: $OPENWA_KEY" \
-H "Content-Type: application/json" \
-d "{
\"url\": \"$N8N_HOOK\",
\"events\": [\"message.received\", \"session.status\"],
\"secret\": \"defina-seu-segredo-aqui\"
}"
Saída esperada: 201 Created com id, sessionId, url, events, active: true.
Como conectar o Twenty → n8n (saída CRM)
- Login no Twenty: https://crm.m5digital.net.br
- Settings → Webhooks (canto superior direito)
- New webhook:
- URL:
https://n8n.m5digital.net.br/webhook/twenty-outgoing - Events:
note.created,person.updated - Secret: mesma do n8n
- URL:
- Salvar
Validação end-to-end
- Enviar mensagem WhatsApp para o número da sessão
marcos-pessoal - OpenWA dispara webhook → n8n recebe
- n8n extrai dados → chama
https://crm.m5digital.net.br/graphql - Verificar no Twenty: nova Note com
[Phone: ...] mensagem
Reverse:
- No Twenty, criar Note manualmente com texto "teste via CRM"
- Webhook do Twenty dispara → n8n recebe
- n8n chama OpenWA send-text
- WhatsApp recebe a mensagem
Próximas melhorias (depois que validação passar)
- Adicionar filtro por número (não criar Note de contatos bloqueados)
- Adicionar idempotência (não duplicar Note se mesma mensagem chegar 2x)
- Adicionar suporte a mídia (imagem, áudio, documento)
- Adicionar Lookup de Company por nome se a mensagem mencionar empresa
- Adicionar twilio de 24h após última msg (regra WhatsApp Business)