AgentV8 Schedule — Geral
Status: Ativo | ID: RtIHagqnGxhC0Dym | Nodes: 213 | Última atualização: 18/03/2026
O que este workflow faz?
Este é o coração do atendimento automatizado da Fluity. Ele recebe mensagens de múltiplos canais (WhatsApp, Telegram, Facebook, Instagram e Webchat), processa o conteúdo com inteligência artificial e responde ao usuário pelo mesmo canal em que a mensagem chegou.
Em resumo:
Recebe → Filtra → Entende (texto, áudio ou imagem) → Pensa com IA → Responde
Canais suportados
| Canal | Tipo de entrada | Envio de resposta |
|---|---|---|
| Texto, áudio, imagem, documento | Texto, áudio (TTS), imagem | |
| Telegram | Texto, áudio, foto | Texto, áudio, foto |
| Facebook Messenger | Texto, imagem, áudio | Texto, imagem, áudio |
| Instagram (via Facebook) | Texto, imagem | Texto |
| Webchat | Texto | Texto |
Fluxo Geral
O workflow é dividido em 8 blocos funcionais que operam em sequência:
┌─────────────────────────────────────────────────────────┐
│ 1. ENTRADA (Triggers / Webhooks) │
│ WhatsApp · Telegram · Facebook · Instagram · Webchat │
└────────────────────────┬────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────┐
│ 2. CADASTRO E VERIFICAÇÃO │
│ Busca instância → Cadastra contato → Cria chat │
│ Verifica blacklist · Identifica lead de anúncio │
└────────────────────────┬────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────┐
│ 3. FILTRO E ROTEAMENTO │
│ IA ativa? · Tipo de mensagem? · Canal de origem? │
│ Pausar IA ↔ Reativar IA (atendimento humano) │
└────────────────────────┬────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────┐
│ 4. CONVERSÃO DE MÍDIA │
│ Áudio → Transcrição (Whisper) │
│ Imagem → Descrição (GPT-4 Vision) │
│ Texto → direto │
└────────────────────────┬────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────┐
│ 5. BUFFER DE MENSAGENS (Redis) │
│ Aguarda janela de tempo para consolidar mensagens │
│ picotadas antes de enviar ao agente │
└────────────────────────┬────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────┐
│ 6. PROCESSAMENTO COM IA (2 agentes em cascata) │
│ │
│ [Agente RAG] — busca na base vetorial + site │
│ ↓ │
│ [Atendente] — GPT-4.1 + memória PostgreSQL + MCP │
└────────────────────────┬────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────┐
│ 7. ENVIO DA RESPOSTA │
│ Texto · Áudio (TTS) · Imagem │
│ Pelo mesmo canal que chegou a mensagem │
└────────────────────────┬────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────┐
│ 8. PÓS-PROCESSAMENTO │
│ Salva histórico no Supabase · Limpa cache Redis │
│ Atualiza fila de atendimento │
└─────────────────────────────────────────────────────────┘Detalhamento por bloco
Bloco 1 — Entrada (Triggers)
O workflow aguarda mensagens simultâneas em 7 webhooks:
| Webhook | Canal | Método HTTP |
|---|---|---|
Webhook EVO | WhatsApp (Evolution API) | POST |
Webhook Webchat | Webchat | POST |
WB Telegram | Telegram | POST |
WB - Facebook | Facebook Messenger | POST |
WB facebook GET | Validação do Facebook | GET |
WB facebook GET1 | Validação do Instagram | GET |
WB facebook GET2 | Instagram (mensagens) | GET |
Bloco 2 — Cadastro e Verificação
Após receber a mensagem, o workflow:
- Busca a instância configurada no Supabase (tabela
instances) - Verifica se o contato está na blacklist — se estiver, encerra sem responder
- Cadastra ou atualiza o contato via API REST do Supabase (
contacts) - Cria ou recupera o chat via função RPC no Supabase (
get_or_create_chat) - Identifica se a mensagem veio de um anúncio e salva o lead em
prompt_ads_clientes
Bloco 3 — Filtro e Roteamento
Com o chat identificado, o sistema verifica:
- IA está ativa? → Se pausada por um humano, ignora a mensagem
- Tipo de mensagem → Texto, áudio, imagem ou documento
- Canal de origem → Para rotear a resposta corretamente
Comandos especiais também são processados aqui:
- Palavra-chave de pausa →
Pausar IA(humano assume o atendimento) - Palavra-chave de reativação →
Reativar IA
Bloco 4 — Conversão de Mídia
O agente de IA só trabalha com texto, então mídias são convertidas:
| Tipo | Processo | Modelo |
|---|---|---|
| Áudio (WhatsApp) | Base64 → Binário → Transcrição | OpenAI Whisper |
| Áudio (Telegram) | Download → Transcrição | OpenAI Whisper |
| Áudio (Facebook) | Download → Transcrição | OpenAI Whisper |
| Imagem (WhatsApp) | Base64 → Binário → Análise visual | GPT-4 Vision |
| Imagem (Telegram) | Download → Análise visual | GPT-4 Vision |
Bloco 5 — Buffer de Mensagens (Redis)
Este bloco resolve o problema das mensagens picotadas — quando o usuário manda várias mensagens rápidas em vez de uma só.
O sistema usa o Redis como cache temporário:
- Salva a mensagem no Redis com chave única por contato+canal
- Aguarda uma janela de tempo (Wait)
- Verifica se chegou alguma mensagem nova nesse intervalo
- Se sim, consolida tudo em uma mensagem única antes de enviar ao agente
Isso evita que o agente responda cada fragmento separadamente.
Bloco 6 — Processamento com IA
Dois agentes operam em sequência:
Agente RAG
- Modelo: GPT-4.1-mini
- Função: Busca informações relevantes na base de conhecimento antes de responder
- Ferramentas:
buscar_documentos— consulta o Vector Store no Supabase (busca semântica compgvector)site_consultas— chama um sub-workflow para consultas externas
Agente Atendente
- Modelo: GPT-4.1
- Função: Agente principal que interage com o usuário
- Características:
- Prompt dinâmico carregado do Supabase (personalizável por instância)
- Memória de contexto via PostgreSQL (mantém histórico da conversa)
- Acesso a ferramentas externas via protocolo MCP
A saída do agente pode ser: texto, audio, imagem ou parser (estruturado).
Bloco 7 — Envio da Resposta
A resposta é roteada pelo canal de origem:
| Saída | Telegram | Facebook/Instagram | |
|---|---|---|---|
| Texto | Evolution API | Telegram Bot API | Graph API v19.0 |
| Áudio | Evolution API (TTS) | Telegram Bot API | Graph API v19.0 |
| Imagem | Evolution API | Telegram Bot API | Graph API v19.0 |
Mensagens longas são automaticamente divididas em partes com um delay de 1 segundo entre cada uma para parecer mais natural.
Bloco 8 — Pós-processamento
Após o envio:
- Histórico da conversa salvo no Supabase (
chat_messages) - Cache do Redis limpo para o contato
- Fila de atendimento atualizada
- Webhook respondido com
200 OK
Integrações e APIs
Serviços externos utilizados
| Serviço | Para que serve |
|---|---|
| WhatsApp — Evolution API | Receber e enviar mensagens WhatsApp, obter mídia em base64 |
| Telegram Bot API | Receber e enviar mensagens Telegram |
| Facebook Graph API v19.0 | Facebook Messenger + Instagram (receber e enviar) |
| OpenAI | Transcrição de áudio (Whisper), análise de imagem (Vision), geração de texto (GPT-4.1), geração de áudio TTS, embeddings |
| Supabase | Banco de dados principal, Vector Store para RAG, funções RPC |
| PostgreSQL | Memória de histórico do agente de IA |
| Redis | Buffer temporário de mensagens (anti-picotamento) |
| MCP Fluity | Ferramentas externas acessadas pelo agente Atendente |
Chamadas HTTP diretas
| Node | Método | Endpoint |
|---|---|---|
| HTTP Clientes | POST | supabase.co/rest/v1/contacts |
| HTTP Chats | POST | supabase.co/rest/v1/rpc/get_or_create_chat |
| HTTP Chats - Webchat | POST | supabase.co/rest/v1/rpc/start_webchat |
| Obter mídia EVO | POST | {server_url}/chat/getBase64FromMediaMessage/{instance} |
| Send Facebook (texto) | POST | graph.facebook.com/v19.0/me/messages |
| Send IMG Facebook | POST | graph.facebook.com/v19.0/me/messages |
| Upload Arquivo Facebook | POST | graph.facebook.com/v19.0/{page_id}/message_attachments |
| Download IMG/Áudio | GET | URL dinâmica do conteúdo recebido |
| Consulta Instagram | GET | graph.facebook.com/v19.0/{IGSID} |
| MCP Client | SSE | mcp.fluity.space/mcp/{token} |
Modelos de IA utilizados
| Modelo | Onde | Para quê |
|---|---|---|
gpt-4.1 | Agente Atendente | Resposta principal ao usuário |
gpt-4.1-mini | Agente RAG | Busca e síntese na base de conhecimento |
gpt-4.1 (Vision) | Análise de imagem | Descrever imagens recebidas |
whisper-1 | Transcrição | Converter áudios em texto |
tts-1 | Geração de áudio | Converter respostas em áudio |
text-embedding-3-small | Embeddings | Busca semântica no Vector Store |
Tabelas do Supabase utilizadas
| Tabela / Função | Para quê |
|---|---|
instances | Configurações de cada instância do agente |
contacts | Cadastro de contatos/clientes |
flows | Chats ativos e seu estado |
chat_messages | Histórico de mensagens |
prompt_ads_clientes | Leads vindos de anúncios |
instance_contact_lists | Blacklist por instância |
events | Eventos relacionados ao atendimento |
rpc/get_or_create_chat | Função que busca ou cria um chat |
rpc/start_webchat | Função para iniciar chat via webchat |
documents (vector) | Base de conhecimento para RAG |