Robô de Atendimento (Construtor de Fluxo)
O Robô de Atendimento (ChatFlow / FlowBuilder) é o construtor visual de fluxos automáticos: um canvas de cards ligados por linhas onde você monta o atendimento robotizado — desde a saudação até agendamento, cobrança PIX, agente de IA, formulários, templates Meta e muito mais — sem escrever código.
Não confundir com o Copilot (assistente que o atendente liga por cima de um ticket já assumido) nem com o Prompt AI da conexão (IA generativa simples por conexão): o Robô de Atendimento é o motor de fluxo que decide o caminho da conversa antes de chegar (ou não) a um atendente humano.
Caminho: menu lateral → Robô de Atendimento (ChatFlow)
[[FOTO]]
O canvas
Cada fluxo é um quadro de cards (etapas) ligados por linhas (condições). O nó Início representa a entrada do fluxo e pode ser arrastado como qualquer outro (só não pode ser excluído).
O que cada card mostra
Lista de interações
Uma linha por interação da etapa, com ícone + resumo de 1 linha (ex.: “Enviar mensagem: Olá, tudo bem?”)
Interações de sistema
Ficam em itálico cinza com ícone roxo — não mandam nada visível ao contato (PIX, agente de IA, webhook, etiqueta, kanban, salvar dado…), diferenciadas visualmente do conteúdo enviado
Miniatura grande de mídia
Quando a etapa tem MediaField: imagem em destaque (capa), vídeo com mini player (clique liga o play real) ou ícone de documento com o nome do arquivo
Rodapé de condições
Uma linha por condição “Se”, na mesma ordem configurada no card — cada linha nasce da sua própria âncora de saída, então as linhas do canvas não se sobrepõem mais mesmo com várias condições apontando para destinos diferentes
Estatísticas por etapa
Mini-linha com 3 chips coloridos (enviadas / responderam / sem resposta) — cada chip só aparece se tiver valor > 0
Limitação conhecida: se duas condições da mesma etapa apontam para o mesmo destino, o canvas ainda desenha só uma linha (a âncora usada é a da primeira condição que casa) — isso é uma limitação do modelo de dados salvo, não afeta a execução real do fluxo.
[[FOTO]]
Posições salvas
Mova qualquer card (inclusive o Início) livremente pelo canvas — a posição é salva e restaurada ao reabrir o fluxo, igual aos demais nós.
Barra de ferramentas
Salvar
Grava o fluxo (nós, linhas, interações e condições)
Organizar
Reorganiza automaticamente os cards no canvas
Testar Fluxo
Abre o simulador (ver seção dedicada)
?
Abre o guia com todas as interações e condições disponíveis, com ícone/título/descrição de cada uma
Atualizar (⟳) das estatísticas
Recarrega os contadores enviadas/responderam/sem resposta de todas as etapas
Configurações
Ajustes gerais do fluxo (ver card “Início”)
[[FOTO]]
Adicionar uma etapa e suas interações
Clique em + para criar um card novo, depois clique nele para abrir o formulário da etapa (node_form). No topo do modal:
Botão ? (canto do cabeçalho) abre o guia com todas as interações e condições.
Toolbar de ícones: cada ícone adiciona uma interação ao card. Uma etapa pode ter várias interações em sequência (ex.: mensagem + botões + etiqueta).
Catálogo de interações
Enviar Mensagem
Texto simples, com variáveis ({{name}}, {{protocol}} etc.) e emojis
Enviar Mídia
Imagem, vídeo, áudio ou documento — com legenda, gravação de áudio/vídeo pelo navegador, botão Galeria (reaproveita arquivo já no storage do tenant), nota de voz (PTT) e nota de vídeo (PTV)
Enviar Botão
Até 3 botões de resposta rápida; cada botão pode levar a uma condição diferente
Enviar Lista
Menu de opções em lista (WhatsApp), útil para muitas alternativas
Webhook
Chama URL externa (GET/POST); pode aguardar a resposta antes de continuar
Delay
Pausa o fluxo por um tempo configurável
Etiqueta (Tag)
Adiciona/remove etiqueta do contato
Kanban
Move o ticket para uma coluna do Kanban
Salvar Dado
Grava a última resposta do contato num campo/variável
Capturar Variável
Captura a resposta numa variável nomeada, reutilizável em mensagens seguintes
Agendamento (5 etapas)
Listar Serviços → Listar Profissionais → Listar Datas → Listar Horários → Criar Agendamento — motor modular de agendamento (mesmo motor único usado no painel/chatbot/Typebot)
Consultar Agendamentos
Mostra ao contato os agendamentos em aberto/futuros (até 5: data/hora, serviço, profissional e status), com mensagem configurável para quando não houver nenhum
Agente de IA
Delega a etapa a um assistente de IA cadastrado (Modo Agente em Configurações → Abacus), que responde com base no prompt/base de conhecimento
Follow-up
Envia mensagem automática se o contato não responder dentro de um tempo definido
Notificar Atendente
Ação 8 do fluxo de ações — aviso interno (sino + push) para um usuário ou grupo, com texto e título em variáveis
Localização
Envia uma localização (latitude/longitude) fixa
Contato (vCard)
Envia um cartão de contato com nome e telefone
PIX
Nativo do WhatsApp (Baileys/WhatsMeow/DigiAPI) ou via HubPay (todos os canais) — toggle Tipo de PIX no card
Formulário (WhatsApp Flows)
Envia um formulário nativo do WhatsApp para coletar dados estruturados
Carrossel
Manual (cartões montados na hora, imagem por URL ou galeria) ou carrossel cadastrado em Mensagens Rápidas → Carrossel
SMS
Envia SMS pelo provedor configurado no sistema (ex. Comtele); sem provedor configurado, a etapa é pulada sem travar o fluxo
Template Meta (WABA)
Envia um template já aprovado da conexão WABA oficial com as variáveis preenchidas
A ação Notificar Atendente (dentro do menu “Ação” de uma condição) não é terminal — o fluxo continua avançando normalmente depois de disparar o aviso.
[[FOTO]]
Matriz de canais e fallbacks
Interações “ricas” nem sempre existem nativamente em todos os canais. Quando o canal não suporta o recurso nativo, o sistema aplica um fallback automático (texto ou variação equivalente) em vez de falhar a etapa:
Localização
Nativo (mensagem de localização real)
Fallback: texto com link do Google Maps
Contato (vCard)
Nativo (cartão de contato real)
Fallback: texto com os dados do contato
PIX nativo
Nativo (Baileys payment_info; WhatsMeow enfileirado; DigiAPI via botão “copiar”)
Sem suporte nativo — use PIX via HubPay, que funciona em qualquer canal
Formulário (Flow)
Nativo (WhatsApp Flows)
Sem esse caminho no motor hoje — cai no fallback de texto configurável
Carrossel
Nativo (nativeCarousel, mesmo shape do atendimento manual/campanha)
Fallback: sequência de mídia + texto por cartão
Nota de voz (PTT)
Suportado (Baileys/WhatsMeow); DigiAPI segue a flag asVoiceNote
Meta não distingui nota de voz de áudio comum — sempre “áudio”
Nota de vídeo (PTV)
Suportado (Baileys ptv; WhatsMeow via rota própria); DigiAPI sem suporte (vídeo comum)
Meta não distingue PTV — sempre vídeo comum
Legenda em mídia
Suportada em todos os canais nativos
Suportada
Template Meta
Não se aplica (recurso é da API oficial)
Nativo — envio direto via template aprovado
Gravar áudio/vídeo no builder
Grava no navegador (mesmo caminho do upload manual), independe do canal de saída
—
PIX HubPay é agnóstico de canal — funciona em qualquer canal, desde que o HubPay esteja configurado no tenant; sem HubPay habilitado, a etapa loga e é pulada (com fallback de texto opcional).
[[FOTO]]
Condições (“Se”)
Cada card pode ter uma ou mais condições que decidem o próximo passo. Todas comparam a resposta do contato (ou o contexto do ticket) contra o que você configurar:
Qualquer resposta
Segue assim que o contato responder qualquer coisa, sem checar conteúdo
Respostas
Compara a resposta com uma lista de valores esperados, usando o tipo de comparação escolhido (veja abaixo)
Continuar sem resposta
Avança automaticamente sem esperar resposta do contato
Horário atual
Decide pelo dia da semana e faixa de horário (ex.: dentro/fora do expediente)
Tipo de mídia recebida
Áudio, imagem, vídeo, documento, localização ou qualquer mídia
Etiqueta do contato
Contato possui (ou não possui) determinadas etiquetas
Origem de campanha
O ticket chegou por uma campanha WABA específica (ou qualquer campanha)
Tipos de comparação (condição “Respostas”)
Igual a
Texto deve ser exatamente igual
Contém
Texto deve conter a palavra/frase
Começa com
Texto deve começar com a palavra/frase
Termina com
Texto deve terminar com a palavra/frase
Regex
Expressão regular personalizada
Maior que
Resposta numérica maior que o valor configurado
Menor que
Resposta numérica menor que o valor configurado
Entre
Resposta numérica dentro de um intervalo (mín./máx.)
Acentos e maiúsculas não importam: a comparação de texto normaliza acentuação (NFD, remove marcas diacríticas) antes de comparar — “nao”, “não” e “NÃO” casam igual. Comparações numéricas aceitam vírgula decimal (padrão BR).
[[FOTO]]
Simulador “Testar Fluxo”
Botão Testar Fluxo na barra do canvas abre um painel lateral que reproduz a conversa sem enviar nada de verdade — 100% no navegador, sem chamadas de rede, testando o fluxo como está no canvas agora (mesmo sem salvar).
Como usar
O simulador começa no nó Início e renderiza bolhas de chat para mensagem, mídia, botões (clicáveis), lista (clicável), localização, contato, carrossel e formulário.
Interações de sistema (PIX, agente de IA, webhook, etiqueta, kanban, salvar dado, capturar variável, follow-up, delay, agendamento, subfluxo) aparecem como card cinza “Executaria: …”.
Digite uma resposta de texto para testar condições de Respostas (mesma normalização de acentos do motor real) ou clique num botão/item de lista para testar essas condições.
Toggles de contexto simulado no topo do painel: fora do expediente (testa condição Horário), contato com etiqueta X (busca as etiquetas reais do tenant), mídia recebida: [tipo] (testa condição Mídia).
Limitações do simulador
Continuar sem resposta
Só dispara sozinho quando a etapa não tem nenhuma interação — no fluxo real depende de timeout assíncrono, que o simulador (síncrono) não reproduz
Origem de campanha
Sem campanha real disponível — só casa condições sem campanha específica configurada (“qualquer campanha”)
Ir para outro fluxo / chamar subfluxo
Mostra apenas “Navegaria para outro fluxo (id: X)”, não carrega de fato o fluxo de destino
Nomes de agente/kanban/tag
Quando a interação nunca guardou o nome (só o id), o simulador mostra o id cru — mesma limitação dos cards do canvas
[[FOTO]]
Estatísticas por etapa
Cada card mostra, quando há dados, 3 contadores:
Enviadas
Toda vez que as interações da etapa são de fato disparadas ao contato
Responderam
A condição que casou não é “sem resposta” nem “horário” (ou seja, o contato realmente respondeu algo)
Sem resposta
A condição que casou foi a de “continuar sem resposta” (timeout)
Os contadores acumulam desde sempre (sem período/expiração) e são recarregados ao abrir o builder ou pelo botão de atualizar na toolbar. Servem para identificar rapidamente onde o fluxo perde gente — etapas com muito “sem resposta” geralmente precisam de mensagem mais clara, atalho de repetição ou timeout mais curto.
[[FOTO]]
Regras importantes
O nó Início pode ser movido e tem posição salva como qualquer card, mas continua protegido contra exclusão/edição de tipo.
Interações “ricas” sem suporte nativo no canal do ticket caem em fallback automático (ver matriz acima) — o fluxo nunca trava por falta de suporte do canal.
Mídia gravada (áudio/vídeo) no builder nasce com nota de voz/PTV ligada por padrão; ajuste o toggle correspondente se quiser enviar como arquivo comum.
PIX nativo depende do canal do ticket; PIX via HubPay funciona em qualquer canal, mas exige HubPay configurado no tenant.
O agente de IA usado na interação Agente de IA precisa estar marcado como Modo Agente em Configurações → Abacus — se o select mostrar poucos agentes, use o botão de atualizar (o carregamento agora percorre todas as páginas de configs do tenant, não só a primeira).
Dicas de uso
Use o botão ? sempre que uma interação nova parecer confusa — o guia lista todas com exemplo de uso.
Monte fluxos curtos por card; prefira várias etapas pequenas a um card com muitas interações.
Sempre teste no simulador antes de publicar mudanças em fluxos com muitos usuários ativos.
Acompanhe as estatísticas por etapa semanalmente — etapas com “sem resposta” alto indicam texto confuso ou timeout curto demais.
Prefira condição de mídia/etiqueta a texto livre quando a decisão do fluxo depender de algo objetivo (evita falha de comparação por digitação).
Para campanhas rastreáveis, combine origem de campanha (condição CAMPAIGN) com fluxos dedicados por campanha.
Atualizado