Chatwoot Messages - Sender
Após a IA gerar respostas, é necessário:
- Enviar mensagens de volta ao Chatwoot com credenciais corretas de cada bot
- Respeitar a ordem das mensagens (quando IA retorna múltiplas respostas)
- Simular digitação no WhatsApp ("typing indicator")
- Atualizar status da conversa no banco de dados
- Suportar múltiplas contas Chatwoot com bots diferentes
O Que Este Fluxo Faz
Fluxo Principal
-
Recebe dados via Execute Workflow Trigger:
data.messages: Array de mensagens a enviartrigger: Dados da conversa original do Chatwootphone_number_id: ID do número WhatsApp (opcional)
-
Divide mensagens (Split Out) e ordena por
indexcrescente -
Loop em cada mensagem (Split in Batches):
- Processa 1 mensagem por vez
- Garante ordem correta de envio
-
Atualiza conversa no banco:
status: 0 (resetado para novo processamento)last_interaction_at: Timestamp atual
-
Envia indicador de digitação (se
phone_number_idfornecido):- Marca mensagem como lida no WhatsApp
- Ativa typing indicator via API do Facebook
-
Identifica conta via Switch baseado em
account.id:- Account 1 → Bot Comercial
- Account 3 → Bot Suporte (SóEducador)
- Account 4 → Bot Conecta
- Account 5 → Bot Eduhot
- Account 6 → Bot Estetus
-
Envia mensagem ao Chatwoot usando credenciais do bot correto:
- Método: POST
- URL:
https://chatwoot.zamply.com.br/api/v1/accounts/{account_id}/conversations/{conversation_id}/messages - Body:
message_type:"outgoing"content: Texto da mensagem
-
Retorna ao loop até processar todas as mensagens
Setup
1. Configurar Bots no Chatwoot
Para cada conta, crie um usuário bot:
- Chatwoot Super Admin Dash > Settings > Agents > Add Agent
- Anote o token para configurar no N8N
- Chatwoot > Channel > Agents > Add Agent
2. Configurar Credenciais no N8N
Crie uma credencial HTTP Header Auth para cada bot:
| Credencial | Account ID | Nome no Chatwoot |
|---|---|---|
| Bot Chatwoot - Comercial | 1 | Comercial - Inci Brasil |
| Bot Chatwoot - Atendimento SóEducador | 3 | SóEducador |
| Bot Chatwoot - Inci Conecta | 4 | Inci Conecta |
| Bot Chatwoot - Eduhot | 5 | Eduhot |
| Bot Chatwoot - Estetus | 6 | Estetus |
Configuração:
- Name:
api_access_token - Value: Token do bot (gerado no Chatwoot)
3. Configurar Facebook API (Typing Indicator)
Para enviar "typing indicator" no WhatsApp:
-
Obtenha o Phone Number ID:
- Acesse https://developers.facebook.com/
- Vá em Seu App > WhatsApp > Configuração
- Copie o ID do número de telefone (ex:
1323147952771978) - ⚠️ Importante: Este ID é diferente do ID da conta WhatsApp Business
-
Obtenha um System User Token no Facebook Business Manager
-
Crie credencial "Facebook Inci Brasil" no N8N:
- Type: HTTP Header Auth
- Name:
Authorization - Value:
Bearer {TOKEN}
-
Certifique-se de passar o
phone_number_idao chamar este workflow
4. Adicionar Nova Conta
Para suportar uma nova conta Chatwoot:
-
No nó Verify account id (Switch), clique em "Add Routing Rule"
-
Configure:
- Condição:
{{ $('Trigger').first().json.trigger.account.id }}equals{NOVO_ACCOUNT_ID} - Output Name: Nome do account (ex: "9")
- Condição:
-
Adicione um nó HTTP Request:
- Nome:
Send message bot {nome} - URL:
https://chatwoot.zamply.com.br/api/v1/accounts/{{ $('Trigger').last().json.trigger.account.id }}/conversations/{{ $('Trigger').last().json.trigger.conversation.id }}/messages - Credencial: Nova credencial com token do bot
- Body:
{
"message_type": "outgoing",
"content": "={{ $('Loop Over Items').item.json.content }}"
}
- Nome:
-
Conecte a saída do Switch ao novo nó
Formato de Entrada Esperado
O workflow que chama este sender deve fornecer dados no formato:
{
"data": {
"messages": [
{
"index": 0,
"content": "Primeira mensagem"
},
{
"index": 1,
"content": "Segunda mensagem"
}
]
},
"trigger": {
"account": { "id": 3, "name": "SóEducador" },
"conversation": { "id": 13299 },
"inbox": { "id": 8 }
},
"phone_number_id": "1323147952771978"
}
Observações Importantes
- ✅ Este é um subflow, executado após processamento com IA
- ✅ Mensagens são enviadas em ordem (ordenadas por
index) - ✅ Suporta múltiplas contas Chatwoot automaticamente
- ✅ Typing indicator só funciona se
phone_number_idfor fornecido - ⚠️ O
phone_number_idé o ID do número de telefone no Facebook Developers (não confundir com ID da conta WhatsApp Business) - ⚠️ Se credencial do bot estiver incorreta, mensagens não são enviadas
- ⚠️ Não há retry automático - falhas devem ser tratadas no workflow chamador
- ⚠️ O nó Wait (1 segundo) evita rate limit do Chatwoot
Workflows Relacionados
- Chatwoot Messages: Workflow que processa mensagens e chama este sender
- Type Message Router: Processa anexos antes de enviar para IA