Verboo

Flow Builder

O Flow Builder é o editor visual de fluxos conversacionais determinísticos. Ele permite construir jornadas de conversa completas sem programar, conectando nós que representam cada etapa da interação com o usuário.

Estrutura Geral de um Flow

[Nó Inicial] ──► [Saudação]
                      │
               ┌──────┴──────┐
               ▼             ▼
          [#comprar]    [#suporte]
               │             │
               ▼             ▼
         [Coleta CPF]  [Abre Ticket]
               │
               ▼
         [Confirmar Pedido]
               │
     ┌─────────┴─────────┐
     ▼                   ▼
[✅ Sucesso]     [%anything_else]

Um flow é composto por:

  • Nós — pontos de decisão e resposta
  • Edges — conexões entre nós
  • Responses — conteúdo enviado ao usuário
  • Triggers — eventos especiais (início, fallback)
  • Intents — exemplos de frases treinadas
  • Entities — valores capturáveis (números, datas, nomes)

Nós (Nodes)

Cada nó representa um estado da conversa. Um nó possui:

Campo Descrição
Título Nome interno (não enviado ao usuário)
Condição Regra que ativa este nó
Responses Lista de respostas a enviar
Context Actions Variáveis a definir/capturar
Actions Integrações (webhooks, CRM, etc.)
SkipUserInput Executa sem aguardar mensagem do usuário
SelectChildrenByPriority Avalia filhos por ordem, não por correspondência

Nó Inicial

O flow sempre começa pelo Nó Inicial, que possui o ID fixo 000000000000000000000000. Ele é o ponto de entrada de toda conversa nova.

SkipUserInput

Quando ativado, o nó é processado imediatamente após o nó anterior, sem esperar uma nova mensagem do usuário. Útil para:

  • Nós de transição intermediária
  • Confirmações automáticas
  • Sequências de mensagens encadeadas

SelectChildrenByPriority

Quando ativado, os nós filhos são avaliados na ordem em que aparecem no fluxo, e o primeiro que satisfazer a condição é ativado. Sem esta flag, o sistema avalia todos e pode escolher o mais relevante.


Condições

Cada nó (exceto o inicial) precisa de uma condição para ser ativado.

Intents (`#`)

Representam a intenção por trás da mensagem do usuário. São treinadas com exemplos de frases:

#comprar       → "quero comprar", "me interessa", "pode me enviar o preço?"
#cancelar      → "cancelar pedido", "não quero mais", "desistir"
#suporte       → "não está funcionando", "preciso de ajuda", "problema"

Para usar: #nome_da_intent

Entidades (`@`)

Representam valores específicos dentro da mensagem do usuário. São configuradas com sinônimos e valores:

@numero        → "42", "cento e vinte", "3" (números em geral)
@cpf           → CPF formatado
@data          → datas em formatos variados
@produto       → "camiseta", "tênis", "calça" (com sinônimos)

Para usar: @nome_da_entidade

Condição de Sistema (`%`)

Condições especiais predefinidas pela plataforma:

Condição Descrição
%anything_else Qualquer mensagem que não corresponda a nenhum outro nó (fallback global)

Operadores

Você pode combinar múltiplas condições:

Operador Sintaxe Exemplo
E (AND) E- #comprar E- @produto
OU (OR) OU- #sim OU- #confirmar
Igual =- @status =- ativo
Diferente !=- @status !=- cancelado

Tipos de Resposta

Cada nó pode ter um ou mais responses associados. O tipo define como o conteúdo é apresentado ao usuário.

`text` — Resposta Única

Envia uma mensagem de texto simples:

Olá! Seja bem-vindo à Empresa X. Como posso te ajudar?

`multiple` — Resposta Aleatória

Define várias opções de texto. O sistema escolhe aleatoriamente uma delas a cada execução. Ótimo para variar respostas repetitivas:

Opção 1: "Entendido! Vou verificar isso para você."
Opção 2: "Certo, deixa eu checar aqui."
Opção 3: "Perfeito! Um momento enquanto consulto."

`options` — Botões / Opções Selecionáveis

Apresenta botões de resposta rápida para o usuário escolher:

Qual serviço você precisa?
┌─────────────┐
│ 💰 Financeiro│
├─────────────┤
│ 🔧 Suporte  │
├─────────────┤
│ 📦 Pedidos  │
└─────────────┘

Cada botão cria uma edge para o nó correspondente.


Connections (Edges)

Edges são as conexões entre nós. Cada tipo define como o fluxo se move:

Tipo Descrição
flow Transição normal após resposta
jump Pula diretamente para outro nó sem processamento
button Criado automaticamente pelos botões de options
jump_and_process Pula para outro nó e o processa como se fosse uma mensagem nova
jump_and_response Pula e envia a resposta do nó de destino

Triggers

Triggers são eventos especiais que disparam ações independentes do fluxo de nós.

`START_CONVERSATION`

Executado quando uma nova conversa começa. Ideal para:

  • Enviar mensagem de boas-vindas
  • Capturar dados iniciais
  • Configurar variáveis de contexto iniciais

Ações disponíveis no trigger:

  • RESPONSE — envia uma resposta
  • JUMP_TO — vai para um nó específico
  • SET_CONTEXT — define variáveis de contexto
  • JUMP_AND_PROCESS — vai para um nó e o processa

`MISSING_ANYTHING_ELSE`

Executado quando o sistema não encontra nenhum nó correspondente à mensagem do usuário (e não há nó com %anything_else). É o fallback de último recurso.


Context Actions

Context Actions permitem salvar e capturar dados durante o fluxo. São executadas no momento em que o nó é ativado.

Usuário: "Meu CPF é 123.456.789-00"
                    ↓
         [Nó: Capturar CPF]
         Context Action:
           type: set_entity
           key: cpf_usuario
           value: @cpf
                    ↓
         Variável $cpf_usuario = "123.456.789-00"

Veja a documentação completa em Variáveis ($).


Intents e Entities: Treinamento

Para que o sistema reconheça #intents e @entities, é necessário treinar o chatbot com exemplos:

Intents

Cada intent precisa de pelo menos 3 exemplos de frases que expressem aquela intenção:

Intent: #comprar
Exemplos:
- "quero comprar"
- "me interessa adquirir"
- "quanto custa?"
- "tem disponível?"
- "pode me passar o preço?"

Quanto mais variados os exemplos, melhor o reconhecimento.

Entities

Cada entidade precisa de sinônimos ou valores aceitos:

Entity: @tamanho_roupa
Valores: P, M, G, GG, XG
Sinônimos:
  P → "pequeno", "small", "P"
  M → "médio", "medium", "M"
  G → "grande", "large", "G"

Versões de Snapshot

Cada vez que você publica um flow, é criada uma nova versão (snapshot). A plataforma mantém o histórico de versões, permitindo:

  • Rollback para versão anterior
  • Comparação entre versões
  • A/B testing de fluxos

O flow só fica ativo para novos usuários após a publicação.