Pular para o conteúdo principal

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

  1. Recebe dados via Execute Workflow Trigger:

    • data.messages: Array de mensagens a enviar
    • trigger: Dados da conversa original do Chatwoot
    • phone_number_id: ID do número WhatsApp (opcional)
  2. Divide mensagens (Split Out) e ordena por index crescente

  3. Loop em cada mensagem (Split in Batches):

    • Processa 1 mensagem por vez
    • Garante ordem correta de envio
  4. Atualiza conversa no banco:

    • status: 0 (resetado para novo processamento)
    • last_interaction_at: Timestamp atual
  5. Envia indicador de digitação (se phone_number_id fornecido):

    • Marca mensagem como lida no WhatsApp
    • Ativa typing indicator via API do Facebook
  6. 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
  7. 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
  8. Retorna ao loop até processar todas as mensagens

Setup

1. Configurar Bots no Chatwoot

Para cada conta, crie um usuário bot:

  1. Chatwoot Super Admin Dash > Settings > Agents > Add Agent
  2. Anote o token para configurar no N8N
  3. Chatwoot > Channel > Agents > Add Agent

2. Configurar Credenciais no N8N

Crie uma credencial HTTP Header Auth para cada bot:

CredencialAccount IDNome no Chatwoot
Bot Chatwoot - Comercial1Comercial - Inci Brasil
Bot Chatwoot - Atendimento SóEducador3SóEducador
Bot Chatwoot - Inci Conecta4Inci Conecta
Bot Chatwoot - Eduhot5Eduhot
Bot Chatwoot - Estetus6Estetus

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:

  1. 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
  2. Obtenha um System User Token no Facebook Business Manager

  3. Crie credencial "Facebook Inci Brasil" no N8N:

    • Type: HTTP Header Auth
    • Name: Authorization
    • Value: Bearer {TOKEN}
  4. Certifique-se de passar o phone_number_id ao chamar este workflow

4. Adicionar Nova Conta

Para suportar uma nova conta Chatwoot:

  1. No nó Verify account id (Switch), clique em "Add Routing Rule"

  2. Configure:

    • Condição: {{ $('Trigger').first().json.trigger.account.id }} equals {NOVO_ACCOUNT_ID}
    • Output Name: Nome do account (ex: "9")
  3. 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 }}"
      }
  4. 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_id for 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