Type Message Router (Subflow)
Mensagens do WhatsApp podem conter diversos tipos de anexos (áudios, imagens, arquivos, contatos, localização). Cada tipo precisa de processamento específico antes de ser enviado para a IA. Este subflow resolve:
- Transcrever áudios automaticamente
- Converter imagens para base64 (para análise visual com LLMs)
- Extrair metadados de arquivos, contatos e localizações
- Normalizar todos os tipos para formato texto que a IA possa processar
O Que Este Fluxo Faz
Fluxo de Processamento
- Recebe trigger do workflow Chatwoot Messages
- Filtra contato de desenvolvimento:
- Se for contato de dev → Envia para workflow de desenvolvimento
- Caso contrário → Continua processamento normal
- Divide anexos com Split Out (processa cada anexo separadamente)
- Identifica tipo via Switch e roteia para processamento específico:
Tipo: Image
- Busca imagem no Chatwoot (via
data_url) - Extrai dados binários e converte para base64
- Salva base64 na tabela
message:content: Base64 da imagemtype:"image"processed:0
Tipo: Audio
- Busca áudio no Chatwoot (via
data_url) - Envia para OpenAI Whisper API (modelo
gpt-4o-transcribe) - Recebe transcrição em texto
- Salva na tabela
message:content:"Transcrição de audio: {texto}"type:"text"
- Cria anotação privada no Chatwoot com a transcrição
Tipo: File
- Extrai URL do arquivo
- Salva na tabela
message:content:"URL do arquivo: {url}"type:"text"
Tipo: Contact
- Extrai nome e telefone do contato compartilhado
- Salva na tabela
message:content:"Nome do Contato: {nome}, Telefone: {telefone}"type:"text"
Tipo: Location
- Extrai coordenadas (latitude e longitude)
- Salva na tabela
message:content:"Latitude: {lat}, Longitude: {long}"type:"text"
Setup
1. Configurar Credenciais OpenAI
- No N8N, vá em Credentials > HTTP Header Auth
- Crie credencial "OpenAI Inci Brasil":
- Name:
Authorization - Value:
Bearer sk-YOUR-OPENAI-API-KEY
- Name:
2. Configurar Credencial Chatwoot (User)
Para criar anotações privadas no Chatwoot:
- Crie um usuário bot no Chatwoot
- Gere um Access Token em Settings > Profile Settings
- No N8N, crie credencial HTTP Header Auth:
- Name:
api_access_token - Value:
{TOKEN}
- Name:
3. Configurar Banco de Dados
Este subflow usa a mesma tabela message do workflow principal. Veja o schema completo em Chatwoot Messages.
4. Webhook de Desenvolvimento (Opcional)
O nó Send Event to Developers permite testar anexos em ambiente separado:
- Crie um contato de teste no Chatwoot (anote o
contact_id) - Atualize o Switch com o ID do contato
- Configure o workflow de desenvolvimento (ID:
SPN4OG0dHzRkvXlh)
Observações Importantes
- ✅ Este é um subflow, executado por Chatwoot Messages
- ✅ Áudios são transcritos automaticamente com OpenAI Whisper
- ✅ Imagens são convertidas para base64 para análise visual
- ⚠️ Transcrição de áudio consome créditos da OpenAI
- ⚠️ Imagens grandes podem exceder limites de base64
- ⚠️ Retry configurado para busca de anexos (5 tentativas com 5s de espera)
- ⚠️ Todos os tipos são convertidos para texto antes do processamento com IA
Workflows Relacionados
- Chatwoot Messages: Workflow principal que invoca este subflow
- Chatwoot Messages - Sender: Envia respostas processadas de volta