Fluxo Follow Ups¶
Workflow de reengajamento automático. Roda a cada 11 minutos, busca leads que não responderam e envia mensagens de follow-up progressivas, respeitando horário comercial.
| Campo | Valor |
|---|---|
| ID | W1msnd1vZWkpFSDM |
| Status | ⚠️ Inativo (em desenvolvimento) |
| Trigger | Schedule — a cada 11 minutos |
| Nós | 65 |
| Trigger alternativo | Manual (botão "Execute workflow") |
Objetivo¶
Reengajar leads que pararam de responder. O workflow roda automaticamente a cada 11 minutos, identifica leads elegíveis para follow-up e envia mensagens progressivas. Cada follow-up é uma "rodada" com critérios diferentes de tempo e conteúdo.
Arquitetura Geral¶
O workflow tem 4 rodadas de follow-up paralelas, cada uma com seus próprios critérios de elegibilidade. Todas rodam simultaneamente a cada execução.
Schedule (a cada 11 min)
│
▼
Verificar Horário Comercial
│
├── Fora do horário → Para
│
└── Dentro do horário → Buscar dados UaZapi
│
▼
┌────────┼────────┬────────┐
▼ ▼ ▼ ▼
FUP 1 FUP 2 FUP 3 FUP 4
(rodada) (rodada) (rodada) (rodada)
│ │ │ │
└────────┼────────┴────────┘
▼
Juntar todos que receberam
│
▼
Salvar lista de telefones
Horário Comercial¶
Antes de executar qualquer follow-up, o sistema verifica:
Verificação em 3 etapas:¶
- Horário Comercial? (Switch) — Verifica se estamos dentro do horário de operação
- Hoje é sábado? (Filter) — Tratamento especial para sábados (horário reduzido ou sem follow-up)
- Verificar horário comercial (Filter) — Validação final
Se fora do horário → a execução é ignorada silenciosamente. O scheduler roda de novo em 11 minutos.
Estrutura de Cada Rodada (FUP)¶
Cada rodada segue o mesmo padrão com 8 nós:
Controle - fup{N} → Define critérios (qual follow-up, tempo mínimo)
│
▼
Buscar - fup{N} → Consulta leads elegíveis (Supabase: leads, getAll)
│
▼
Filtro{N} → Filtra por critérios específicos da rodada
│
▼
Remover duplicados{N} → Evita enviar para o mesmo lead duas vezes
│
▼
Enviar mensagem{N} → POST via UaZapi (/send/text)
│
├── Marcar fup - true{N} → Atualiza flag no Supabase (leads, update)
│
└── Preparar p/ salvar{N} → Formata mensagem
│
▼
Inserir msg na memória{N} → Salva na n8n_chat_histories
Envio da Mensagem¶
POST {URL Base}/send/text
Headers:
token: {token}
Body:
number: {telefone_do_lead}
text: {mensagem_de_follow_up}
Pós-envio (dupla ação)¶
Após enviar cada follow-up, duas coisas acontecem em paralelo:
- Marca follow-up — Atualiza a tabela
leadspara registrar que o lead recebeu aquela rodada - Salva na memória — Insere a mensagem na
n8n_chat_historiespara que o Agente de IA tenha contexto se o lead responder depois
Rodadas de Follow-Up¶
| Rodada | Nó de controle | Critério de elegibilidade | Tipo de mensagem |
|---|---|---|---|
| FUP 1 | Controle - fup |
Lead não respondeu após 1ª abordagem | Lembrete gentil |
| FUP 2 | Controle - fup1 |
Lead não respondeu após FUP 1 | Reforço de valor |
| FUP 3 | Controle - fup2 |
Lead não respondeu após FUP 2 | Urgência/escassez |
| FUP 4 | Controle - fup3 |
Lead não respondeu após FUP 3 | Última tentativa |
Nota
Os critérios exatos de tempo entre cada rodada (ex: 24h, 48h, 72h) são definidos nos nós de Controle e Filtro de cada rodada. Consulte os parâmetros no n8n para os valores atuais.
Consolidação Final¶
Depois que todas as 4 rodadas terminam, o sistema:
- Juntar todos que receberam — Merge das 4 saídas
- Concatenar — Junta todos os telefones que receberam follow-up nesta execução
- Salvar lista — Registra no
executionDatapara auditoria
Dados UaZapi¶
O nó Dados Uazapi fornece os dados da instância WhatsApp para todas as 4 rodadas:
URL Base— URL do servidor UaZapiToken— Token de autenticação
Tabelas Supabase¶
| Tabela | Operação | Finalidade |
|---|---|---|
leads |
getAll, update | Buscar leads elegíveis + marcar follow-up enviado |
n8n_chat_histories |
create | Salvar mensagem de follow-up na memória do agente |
Credenciais¶
| Serviço | Credential |
|---|---|
| Supabase | ferramentas@harmoniza.pro |
Regras de Negócio¶
- Horário comercial obrigatório — Follow-ups nunca são enviados fora do horário
- Sábados — Tratamento especial (pode ter horário reduzido ou nenhum envio)
- Anti-duplicidade — Cada rodada remove duplicados antes de enviar
- Memória — Toda mensagem de follow-up é salva no histórico para dar contexto ao Agente de IA
- Progressão — As 4 rodadas são sequenciais por lead (FUP 1 → 2 → 3 → 4), mas executadas em paralelo para diferentes leads
- Frequência — O scheduler roda a cada 11 minutos, mas cada lead só recebe 1 follow-up por rodada
Status Atual¶
Workflow inativo
Este workflow está desativado no n8n (active: false). Precisa ser ativado manualmente quando estiver pronto para produção. Pode ser testado usando o trigger manual "When clicking 'Execute workflow'".
Troubleshooting¶
| Problema | Causa provável | Solução |
|---|---|---|
| Follow-ups não estão sendo enviados | Workflow inativo | Ativar no n8n |
| Lead recebeu follow-up fora do horário | Lógica de horário comercial falhou | Checar nós "Horário Comercial?" e filtros |
| Lead recebeu o mesmo follow-up 2x | Remoção de duplicados falhou | Verificar nó "Remover duplicados" |
| Agente não tem contexto do follow-up | Inserção na memória falhou | Checar nós "Preparar p/ salvar" e "Inserir msg na memória" |
| Follow-up enviado para lead transferido | Filtro não exclui transferidos | Adicionar condição transferido != true nos filtros |