Título do projeto
Automação completa de captação e atendimento (WhatsApp + Facebook/Forms + Google Ads) — integração, banco de dados, agenda e envio de mensagens (n8n / Node / API)
Resumo rápido
Procuro desenvolvedor(a) / equipe para finalizar e consertar um fluxo de automação já iniciado em n8n que recebe leads (site / Facebook / Google Ads), conversa por WhatsApp (envio/recebimento de texto e áudio), extrai informações (nome, cidade, grau de cuidado, para quem, prazo), armazena um histórico e agenda visitas no Google Calendar. Sistema precisa ser confiável, com logs, tratamento de erros e documentação.
Objetivo principal
Implementar e estabilizar um fluxo ponta a ponta que:
1. Recebe leads de várias fontes;
2. Conduz conversa inicial via WhatsApp (node n8n + provedor AvisaAPI/WhatsApp);
3. Extrai/normaliza dados e salva em data table (n8n) / banco estruturado;
4. Envia respostas personalizadas (texto e áudio) e mantém histórico por usuário;
5. Cria/agenda visitas no Google Calendar;
6. Fornece webhook/API para consulta e painel simples (opcional) e logs;
7. Documentação, testes e treinamento rápido.
⸻
Escopo detalhado (entregáveis)
Fase 0 — Levantamento & diagnóstico (entregável: relatório)
• Revisar o fluxo existente no n8n (screenshots e workflows que já existem).
• Listar pontos de falha atuais (merge nodes, pares de itens, nodes retornando undefined, json inválido no http request) e propor correções.
• Entregar um plano de ação com prioridades e estimativa de tempo por tarefa.
Fase 1 — Correção do fluxo atual (entregável: workflow funcional)
• Corrigir parsing/extração do texto (Code nodes): garantir que as variáveis extraídas (nome, cidade, grau_cuidado, para_quem, prazo) sejam normalizadas e retornem objetos consistentes.
• Garantir que os nodes Insert row e Update row(s) usem itens pareados corretamente (usar .first() ou .all() quando necessário) para evitar erros de “paired item data unavailable”.
• Corrigir o Merge final para enviar precisamente o json esperado para o http request (avaliar construir o json dentro de um code node e passar um objeto — não strings).
• Validar e consertar o corpo json do http request (construir objeto js -> json sem interpolação de strings quebradas).
• Ajustar IFs e branches (ex.: Quando inserir novo contato vs editar contato existente).
• Limpar duplicações no Data Table (remover linhas com template {{$
json.nome}}); garantir inserts com valores reais.
Fase 2 — Integrações externas (entregável: integrações documentadas)
• WhatsApp (AvisaAPI ou outro): configurar e validar envio/recebimento (texto e áudio).
• OpenAI/ChatGPT (se usado): configurar prompt-seed (Agatha persona) e garantir que a resposta seja curta, retornável e segura para envio.
• Google Calendar: criar evento de visita com todos os dados do lead; suporte a timezones.
• Facebook lead ads / Webhooks do site / Google Ads: criar/validar caminhos de entrada para que leads cheguem ao n8n.
Fase 3 — Banco de dados & histórico (entregável: db + etl)
• definir modelo de dados (contacts, conversations, messages, visits).
• Migrar/limpar dados existentes dos data tables do n8n para esquema consistente (pode ser n8n datatables ou PostgreSQL conforme sua escolha).
• Armazenar cada mensagem (texto/áudio/metadata) vinculada ao chat_id.
• Implementar rotinas para evitar duplicidade de envio (idempotência).
Fase 4 — Robustez, logs e tratamento de erro (entregável: monitor + runbook)
• Implementar retries para falhas de rede/em API.
• Validar e sanitizar payloads antes do envio (evitar JSON inválido).
• Logs com identificaçã o do item e razão do erro; alertas básicos (ex.: Slack / e-mail) para falhas críticas.
• Testes de carga leve (ex.: Envio em lote para validar Merge behavior).
Fase 5 — Documentação e transferência (entregável: docs + vídeo)
• Documentação técnica do fluxo (diagrama + explicação node por node).
• Procedimento de deploy e rollback.
• Vídeo curto (10–20 min) mostrando onde corrigir valores e como testar.
• Checklist de aceitação.
⸻
Fluxo proposto (alto nível)
1. Entrada: webhook (site) / Facebook lead / Google Ads -> respond to webhook node (n8n).
2. Code node 1: normaliza texto e extrai campos por regex / NLP leve.
3. Get row(s): procura chat_id no data table.
4. IF: existe contato? -> Update row / else Insert row.
5. Edit Fields: prepara resposta (prompt para Agatha).
6. Message a model (ChatGPT): gera texto de resposta curto (rega: max 3 frases).
7. Code node: monta payload final.
8. Update row(s) para salvar histórico.
9. Merge final (se necessário) -> HTTP Request para AvisaAPI (envio WhatsApp).
10. Se usuário confirma visita -> criar evento no Google Calendar.
Delivery term: Not specified