Descrição do Projeto:
Contexto
Queremos implantar um SDR automatizado no WhatsApp, orquestrado em n8n, integrado à Evolution API (WhatsApp), Supabase (DB/PostgREST), GoHighLevel (CRM), Google Calendar e OpenAI para classificação de intenção, qualificação, microcopy e fallback conversacional. O funil atende 3 perfis (B2B / B2B2B / B2C), usa 5 perguntas essenciais, Aula Bônus como gatilho de agenda, no-show/resgate e métricas.
Objetivo
Entregar um conjunto de workflows n8n prontos + schema Supabase + integrações + templates de mensagem WhatsApp, rodando em produção com logs, testes e documentação mínima.
Escopo Técnico por Agente
0) Agente Router (Entrada WhatsApp)
Webhook HTTP para receber mensagens da Evolution API.
Normalização do payload.
IA Intent (OpenAI) para classificar {lead, scheduling, followup, education, default} e sugerir profile_hint {B2B | B2B2B | B2C} (regex de fallback).
Switch que encaminha para os webhooks dos demais agentes:
Agent 1 – Lead Manager
Agent 1Q – Qualificação + Diagnóstico
Agent 2 – Scheduler
Agent 3 – Educação/Aula Bônus
Agent 4 – Default IA
1) Agente Lead Manager (Supabase + GoHighLevel + Log)
Upsert idempotente em leads (Supabase PostgREST com on_conflict=phone + Prefer: resolution=merge-duplicates, return=representation).
Upsert no GoHighLevel (contacts/), adicionando tags: origin:whatsapp e profile:* quando houver.
Grava histórico de interação em lead_interactions (texto, hint_profile, trace_id).
Regras de saída (opcional): se não tiver profile_hint, direcionar para Qualificação; se intenção for agenda, seguir para Scheduler.
1Q) Agente Qualificação + Diagnóstico (com IA)
Conduz Pergunta 1 (botões B2B/B2B2B/B2C) + 5 perguntas de qualificação (passo a passo).
Persiste estado em lead_qual_state (phone, step, answers).
IA Scoring (OpenAI) para gerar {profile, score_total 0–10, heat{urgency, authority, budget, fit}, notes, next_best_action}.
Persiste resultado em lead_qualification e atualiza leads (stage='qualified', hint_profile, tags), tagueia no GHL (qualified, profile:*).
Chama Aula Bônus (botões ab_send/ab_later), integrando com o Agente de Educação.
3) Agente Educação / Pré-venda (Aula Bônus + IA Copy)
Seleciona a Aula Bônus por perfil (B2B/B2B2B/B2C) via envs/lookup.
IA Copywriter para gerar mensagem curta (máx. 2 linhas) e CTA Assisti (ab_watched).
Loga eventos em education_events (bonus_sent, bonus_watched).
Ao “Assisti”, oferece Ver horários (edu_sched) e retorna ao Router para acionar o Scheduler.
2) Agente Scheduler (Google Calendar + Supabase + GHL)
Oferece 3 horários (30 min) com base no FreeBusy do Google Calendar.
Ao escolher (pick|<ISO>), cria o evento no Google Calendar (OAuth cred no n8n).
Persiste em appointments (Supabase) e marca tags no GHL (appt:scheduled, profile:*).
Envia mensagem de confirmação (IA opcional para microcopy).
(Opcional) Gera link Google Meet automático (conferenceDataVersion).
4) Agente Default IA (Conversacional + Guardrails)
Chat curto (1–2 linhas) com IA; oferece rotas (agendar, status, soluções).
(Opcional) RAG com base de ofertas/regras (Supabase + pgvector).
Log em ai_events(kind='chat').
5) Follow-up/No-show/Resgate (pode ser parte do Scheduler ou um agente próprio)
Lembretes T-24h e T-1h (n8n Wait + Evolution).
No-show: mensagem automática com CTA Reagendar ou Falar com humano.
Resgate (>7 dias inativo): CTA Mandar aula / Ver horários.
IA Copy para microcopys de lembrete, no-show e resgate.
Integrações obrigatórias
Evolution API (WhatsApp): envio/recebimento, botões interativos e webhooks.
Supabase (PostgREST): CRUD com headers apikey e Authorization Bearer, uso de Prefer e on_conflict.
GoHighLevel (LeadConnector): upsert de contatos, tags e (opcional) atualização de pipelines/fields.
Google Calendar: OAuth2 no n8n, FreeBusy + criação de eventos.
OpenAI: Chat Completions para Intent, Scoring, Copy e Fallback. response_format=json_object.
Banco de dados (Supabase) — mínimo
leads (phone PK, name, origin, stage, hint_profile, tags text[], created_at, updated_at)
lead_interactions (id uuid, phone, type, source, trace_id, payload jsonb, created_at)
lead_qual_state (phone PK, step int, answers jsonb, updated_at)
lead_qualification (id uuid, phone, profile, answers jsonb, score_total int, score_breakdown jsonb, created_at)
education_events (id uuid, phone, profile, event text, data jsonb, created_at)
appointments (id uuid, phone, start_time, end_time, status, profile, source, trace_id, created_at, updated_at)
ai_events (id uuid, kind text, trace_id text, phone text, input jsonb, output jsonb, model text, created_at) (observabilidade IA)
Templates WhatsApp (Evolution) — mínimos
Pergunta 1 (perfil): 3 botões (B2B/B2B2B/B2C).
Aula Bônus: ab_send / ab_later; após envio, CTA ab_watched.
No-show: rebook / human.
Resgate: resend_bonus / resend_slots.
Mensagens curtas (2 linhas), PT-BR, com IA Copy opcional.
Entregáveis
Workflows n8n (JSON) importáveis.