N8N — Automações
AgentV8 — Disparos

AgentV8 — Disparos

Status: Ativo  |  ID: bVLqRhZ4sRmaqI8E  |  Nodes: 98  |  Última atualização: 18/03/2026

O que este workflow faz?

O AgentV8 - Disparos é o motor de comunicação multicanal da Fluity. Ele opera em dois modos distintos e complementares:

Modo 1 — Disparo via API: Recebe uma chamada externa, valida a autenticação, monta a mensagem a partir de um template com variáveis e envia ao contato via WhatsApp.

Modo 2 — Relay de Operador: Recebe mensagens enviadas por atendentes humanos no painel e as entrega ao cliente final via WhatsApp, Telegram ou Facebook Messenger, registrando tudo e atualizando o status do chat.


Canais suportados

CanalTextoImagemDocumentoVídeoCSAT
WhatsApp (Evolution API)
Telegram
Facebook Messenger

Modo 1 — Disparo via API

Fluxo completo

POST /webhook/{id}
  { auth_token, channel_id, phone, message_id, variables }


┌─────────────────────────────────┐
│  AUTENTICAÇÃO                   │
│  Valida Auth → busca token no   │
│  Supabase (api_disparos_auth)   │
│  Valida janela de 2 minutos     │
└────────────────┬────────────────┘
                 │ token inválido → 401

┌─────────────────────────────────┐
│  BUSCA DE DADOS                 │
│  Instância → Contato → Chat     │
│  (cria contato se não existir)  │
└────────────────┬────────────────┘
                 │ não encontrado → erro

┌─────────────────────────────────┐
│  MONTAGEM DA MENSAGEM           │
│  Busca template (message_id)    │
│  Substitui {{variáveis}}        │
│  do payload no conteúdo         │
└────────────────┬────────────────┘
                 │ variável faltando → erro

┌─────────────────────────────────┐
│  ENVIO                          │
│  Salva no Supabase              │
│  Envia via Evolution API        │
│  (delay de 4,2 segundos)        │
└────────────────┬────────────────┘

         200 OK (sucesso)

Sistema de autenticação

O disparo via API usa um sistema de token com janela de tempo de 2 minutos:

  1. O token é gerado e registrado na tabela api_disparos_auth_log
  2. O workflow busca o token recebido nessa tabela
  3. Valida se foi criado há menos de 2 minutos
  4. Tokens expirados retornam 401 Unauthorized

Motor de templates com variáveis

As mensagens são templates cadastrados no Supabase com suporte a variáveis dinâmicas:

Template: "Olá, {{nome}}! Sua consulta está agendada para {{data}} às {{horario}}."

Payload:  { "variables": { "nome": "Maria", "data": "20/03", "horario": "14h" } }

Resultado: "Olá, Maria! Sua consulta está agendada para 20/03 às 14h."
⚠️

Se alguma variável declarada no template não for enviada no payload, o workflow retorna erro listando quais estão faltando. O envio não ocorre com variáveis incompletas.

O campo variables aceita três formatos:

  • Objeto: { "nome": "Maria" }
  • Array: [{ "key": "nome", "value": "Maria" }]
  • String JSON de qualquer um dos formatos acima

Modo 2 — Relay de Operador

Quando um atendente humano envia uma mensagem pelo painel, o workflow a repassa ao cliente final e atualiza o chat para "Atendimento Humano", pausando a IA.

Webhooks por canal

WebhookCanal de entrega
sender_wppWhatsApp via Evolution API
sender_telegramTelegram via Bot API
Sender_facebookFacebook Messenger via Graph API
senderWhatsApp genérico (por instância)

Fluxo por canal

Todos os 4 webhooks seguem a mesma lógica:

POST do painel de atendimento


   Switch: tipo de evento?
    ├── operator_message_to_client
    │         │
    │         ▼
    │   Busca instância → Atualiza chat
    │   (ia=pausada, status=Atendimento Humano)
    │         │
    │         ▼
    │   Switch: tipo de mídia?
    │    ├── text     → Salva + Envia texto
    │    ├── image    → Salva + Envia imagem
    │    ├── document → Salva + Envia documento
    │    └── video    → Download → Converte → Salva + Envia vídeo

    └── csat_survey


         Aguarda 2 minutos


         Envia pesquisa de satisfação
💡

Ao receber qualquer mensagem de operador, o workflow automaticamente pausa a IA naquele chat (atendimento_ia = pause) e marca o status como "Atendimento Humano". O agente de IA não responderá mais nesse chat até ser reativado.

Envio de vídeo (WhatsApp)

O vídeo tem um tratamento especial no canal WhatsApp:

media_url (URL do vídeo)


HTTP Request (download do arquivo)


Extract from File (converte para base64)


Evolution API (envia como base64)

Integrações e APIs

ServiçoPara que serve
Evolution APIEnvio de texto, imagem, documento e vídeo via WhatsApp
Telegram Bot APIEnvio de texto, foto, documento e vídeo via Telegram
Meta Graph API v19.0Envio de mensagens via Facebook Messenger
SupabaseBanco principal: auth, instâncias, contatos, chats e mensagens

Endpoints HTTP diretos

NodeMétodoURL
Send Facebook (texto)POSTgraph.facebook.com/v19.0/me/messages
Send IMG_FacebookPOSTgraph.facebook.com/v19.0/me/messages
Send video_FacebookPOSTgraph.facebook.com/v19.0/me/messages
HTTP Request (download vídeo)GETURL dinâmica do campo media_url

Tabelas do Supabase

TabelaOperaçõesPara que serve
api_disparos_auth_logLeituraValidar tokens de autenticação da API
api_disparos_messagesLeituraBuscar templates de mensagem
instancesLeituraDados da instância: canal, org_id, access_token
contactsLeitura / EscritaBuscar ou criar contatos pelo telefone
chats_InstagramEscritaCriar chats (status Disparo API) ou atualizar para Atendimento Humano
chat_messages_instagramEscritaRegistrar todas as mensagens enviadas (todos os tipos e canais)

Lógica de decisão

Validações em sequência (Modo API)

VerificaçãoFalha →
Token válido (< 2 min)?401 — autenticação inválida
Instância existe?Erro — canal não encontrado
Mensagem (template) existe?Erro — template não encontrado
Todas as variáveis presentes?Erro — lista as variáveis faltando

Tipos de evento (Relay de Operador)

Evento recebidoAção
operator_message_to_clientEntrega a mensagem imediatamente ao contato
csat_surveyAguarda 2 minutos e envia pesquisa de satisfação

Tipos de mídia suportados por canal

TipoWhatsAppTelegramFacebook
text
image
document
video✅ (download + base64)