Skip to main content

Construindo Fluxos

Visão geral

O ZappFlux Flow Editor é um construtor visual de arrastar e soltar que permite criar interações complexas e multicanais de chatbot e sequências de automação sem escrever código. Os fluxos são compostos de Blocos — unidades individuais de lógica, conteúdo ou ação — conectados entre si para formar um caminho de conversa. Arquitetura:
O que você pode construir com fluxos:
  • Chatbots com tecnologia de IA para WhatsApp, Web, Instagram e muito mais
  • Formulários de captura de leads com ramificação condicional
  • Sistemas de triagem de suporte ao cliente com transferência humana
  • Fluxos de trabalho de reserva e agendamento de consultas
  • Assistentes de comércio eletrônico com cobrança de pagamentos
  • Sequências de integração e pesquisas interativas

Começando

Criando um novo fluxo

  1. Navigate to Dashboard → Tools → ZappFlux → Flows
  2. Click New Flow (or the + button)
  3. Give your flow a name
  4. Choose a starting template or start from blank
  5. The flow editor opens automatically
###Layout do Editor
  • Pan: Clique e arraste no espaço vazio da tela
  • Zoom: roda de rolagem ou gesto de pinça (trackpad)
  • Selecionar bloco: clique em um bloco
  • Mover Bloco: Clique e arraste um bloco para reposicionar
  • Conectar blocos: arraste da alça de saída (lado direito) de um bloco para a alça de entrada (lado esquerdo) de outro
  • Excluir conexão: Clique na seta entre os blocos e pressione Excluir

Tipos de bloco

Os blocos são organizados em quatro categorias: Bolhas, Entradas, Lógica e Integrações.

💬 Bolhas — Envio de conteúdo aos usuários

Os blocos de bolhas enviam conteúdo ao usuário. O fluxo não pausa nesses blocos — eles são executados e passam imediatamente para o próximo bloco.

Texto

Envia uma mensagem de texto simples ou formatada ao usuário. Propriedades:
  • Conteúdo da mensagem (suporta formatação Markdown)
  • Interpolação variável usando {{variable_name}}
  • Atraso de digitação opcional (simula tempo de resposta realista)
Exemplo:

Imagem

Exibe uma imagem para o usuário na conversa. Propriedades:
  • Fonte da imagem: faça upload de um arquivo (PNG, JPG, GIF, WebP) ou insira um URL público
  • Texto alternativo para acessibilidade
  • Legenda opcional abaixo da imagem

Vídeo

Incorpora um vídeo no fluxo da conversa. Propriedades:
  • Fontes suportadas: YouTube, Vimeo ou URL direto do arquivo de vídeo
  • Opção de reprodução automática
  • Título/legenda do vídeo

Áudio

Reproduz uma mensagem de áudio ou clipe na conversa. Propriedades:
  • Fonte de áudio: carregue um arquivo (MP3, WAV, OGG) ou insira um URL
  • Exibido como um widget de reprodutor de áudio padrão

Incorporar

Incorpora conteúdo da web externo usando um iframe diretamente dentro do fluxo. Propriedades:
  • URL para incorporar (deve suportar incorporação de iframe)
  • Dimensões (largura e altura)
  • Útil para incorporar calendários, mapas ou páginas de produtos

📥 Entradas — Coletando informações dos usuários

Os blocos de entrada pausam o fluxo e aguardam a resposta do usuário antes de continuar. A resposta é armazenada automaticamente em uma variável para uso posterior no fluxo.

Entrada de texto

Captura texto de formato livre do usuário. Propriedades:
  • Texto de espaço reservado mostrado no campo de entrada
  • Variável para armazenar a resposta
  • Limite de caracteres opcional
  • Etiqueta do botão (“Enviar”, “Enviar” ou texto personalizado)

Número

Captura um valor numérico com validação opcional. Propriedades:
  • Restrições de valor mínimo e máximo
  • Mensagem de erro mostrada se a validação falhar
  • Variável para armazenar a resposta

E-mail

Captura um endereço de e-mail com validação automática de formato. Propriedades:
  • Validação de formato de e-mail integrada (rejeita entradas malformadas)
  • Mensagem de erro personalizada para entrada inválida
  • Variável para armazenar a resposta

Telefone

Captura um número de telefone com seleção de código de país. Propriedades:
  • Seletor de código de país (opcional — pode ser bloqueado para um país específico)
  • Validação de formato
  • Variável para armazenar a resposta

Data/Hora

Exibe um calendário ou seletor de horário para o usuário selecionar uma data e/ou hora. Propriedades:
  • Modo: somente data, somente hora ou data + hora
  • Restrições de data mínima e máxima
  • Variável para armazenar o valor selecionado

Botões

Apresenta um conjunto de opções predefinidas para o usuário escolher. Este é um dos blocos de entrada mais comumente usados ​​para navegação de menus e árvores de decisão. Propriedades:
  • Até 10 opções de botões
  • Cada botão possui um rótulo e um valor opcional (pode ser diferente do rótulo de exibição)
  • Modo de escolha múltipla vs. única
  • Variável para armazenar a(s) opção(ões) selecionada(s)
Dicas:
  • Mantenha os rótulos dos botões curtos (menos de 40 caracteres) para renderização consistente em todos os canais
  • Use botões em vez de entradas de texto livre sempre que possível para melhorar a qualidade dos dados e reduzir respostas ambíguas

Escolha de imagem

Uma versão visual dos botões – os usuários selecionam opções baseadas em imagens. Propriedades:
  • Cada opção possui uma imagem (upload ou URL) e um rótulo
  • Seleção única ou múltipla
  • Variável para armazenar a(s) seleção(ões)

Carregamento de arquivo

Permite ao usuário fazer upload de um arquivo dentro da conversa. Propriedades:
  • Tipos de arquivos aceitos (PDF, imagens, documentos, etc.)
  • Limite máximo de tamanho de arquivo
  • Variável para armazenar a URL do arquivo enviado

Pagamento

Recebe o pagamento do usuário sem sair da conversa. Processadores suportados:
  • Stripe — Cartões de crédito/débito, Apple Pay, Google Pay
  • PayPal — saldo do PayPal, contas bancárias vinculadas, cartões
Propriedades:
  • Valor (fixo ou retirado de uma variável)
  • Moeda
  • Nome/descrição do item
  • Variável para armazenar o status do pagamento e ID da transação
Os bloqueios de pagamento exigem que as credenciais do Stripe ou PayPal sejam configuradas em Configurações de fluxo → Integrações antes do uso.

Avaliação

Coleta uma classificação do usuário (classificação por estrelas ou escala numérica). Propriedades:
  • Tipo de classificação: Estrelas (1–5) ou Número (1–10)
  • Etiqueta opcional por valor de classificação
  • Variável para armazenar a classificação

⚡ Lógica — Controlando o comportamento do fluxo

Os blocos lógicos controlam como o fluxo executa, ramifica e processa dados. Eles não enviam conteúdo visível ao usuário.

Definir variável

Cria ou atualiza um valor de variável sem entrada do usuário. Propriedades:
  • Nome da variável a ser definida
  • Valor: um valor estático, outra variável ou uma expressão JavaScript
Usos comuns:
  • Inicializando variáveis de contador (set count = 0)
  • Formatação de valores (set full_name = "{{first_name}} {{last_name}}")
  • Armazenar carimbos de data/hora ou valores calculados

Doença

Ramifica o fluxo com base em uma comparação lógica — o equivalente ZappFlux de uma instrução If/Else. Propriedades:
  • Lado esquerdo: uma variável
  • Operador: igual, diferente, contém, maior que, menor que, está vazio, não está vazio
  • Lado direito: um valor ou outra variável
  • Múltiplas condições podem ser encadeadas com AND/OR
Exemplo:

Redirecionar

Envia o usuário para uma URL externa, encerrando a sessão de fluxo. Propriedades:
  • URL de destino (estático ou criado a partir de variáveis)
  • Abrir em: mesma aba ou nova aba
  • Atraso opcional antes do redirecionamento

Roteiro

Executa JavaScript personalizado dentro do contexto do fluxo. Propriedades:
  • Bloco de código JavaScript personalizado
  • Acesso a todas as variáveis de fluxo via variables.variable_name
  • Pode definir variáveis usando setVariable('variable_name', value)
Casos de uso:
  • Formatação ou análise de string complexa
  • Cálculos matemáticos além de expressões simples
  • Manipulação e formatação de datas
  • Chamando APIs do navegador (para fluxos da web)
Os blocos de script são executados em um ambiente de área restrita. O acesso a APIs externas de dentro de um bloco de script não é compatível. Em vez disso, use o bloco Webhook para chamadas de API.

Espere

Introduz um atraso antes que o fluxo prossiga para o próximo bloco. Propriedades:
  • Duração: segundos, minutos ou horas
  • Mensagem opcional exibida ao usuário durante a espera

Pular

Teleporta a execução do fluxo para outro bloco dentro do mesmo fluxo ou para o início de um fluxo diferente (subfluxo). Propriedades:
  • Destino: um ID de bloco específico dentro do fluxo atual ou um outro fluxo inteiro
Usos comuns:
  • Voltando a um menu após a conclusão de um caminho
  • Vincular a um subfluxo reutilizável (por exemplo, um fluxo de perguntas frequentes compartilhado)
  • Criação de loops circulares para lógica de nova tentativa

Webhook

Faz uma solicitação HTTP para uma API ou serviço externo. Propriedades:
  • Método: GET, POST, PUT, PATCH, DELETE
  • URL: endpoint para chamar (suporta interpolação variável)
  • Cabeçalhos: pares de valores-chave (por exemplo, Autorização, Tipo de conteúdo)
  • Corpo: carga útil JSON (para métodos POST/PUT/PATCH)
  • Mapeamento de resposta: extraia valores da resposta e armazene-os em variáveis
Exemplos de casos de uso:
  • Envio de dados de leads para um CRM (HubSpot, Salesforce)
  • Procurando dados do usuário em seu próprio banco de dados
  • Acionamento de um pedido em uma plataforma de e-commerce
  • Publicação de dados em um webhook Zapier ou Make
Conecta esse fluxo a outro fluxo, executando-o como um subfluxo aninhado antes de retornar. Propriedades:
  • Selecione o fluxo de destino em um menu suspenso
  • Mapeamento de variáveis: passe variáveis do fluxo atual para o subfluxo
  • Após a conclusão do subfluxo, a execução retorna para o próximo bloco no fluxo pai

🔌 Integrações — Conectores Nativos

Os blocos de integração são conectores pré-construídos para ferramentas e serviços populares. Eles abstraem a complexidade das chamadas de webhook brutas com interfaces criadas especificamente.

OpenAI (ChatGPT)

Gera respostas baseadas em IA usando a API OpenAI. Propriedades:
  • Seleção de modelo (GPT-4o, GPT-4, GPT-3.5-turbo, etc.)
  • Prompt do sistema (defina a personalidade e as restrições da IA)
  • Mensagem do usuário: a entrada a ser enviada ao modelo (geralmente uma variável contendo a última mensagem do usuário)
  • Variável de resposta: onde a resposta da IA é armazenada
  • Avançado: temperatura, máximo de tokens, modo de histórico de conversas
Padrões comuns:
  • Passe {{user_message}} para OpenAI e exiba a resposta em um balão de texto
  • Use um prompt do sistema para restringir a IA a um domínio específico (por exemplo, “Você é um agente de atendimento ao cliente da Acme Corp. Responda apenas a perguntas sobre nossos produtos.”)
  • Ative o modo de histórico de conversas para manter o contexto em várias trocas

Planilhas Google

Lê ou grava em uma planilha do Planilhas Google. Propriedades:
  • Ação: Inserir linha, Atualizar linha, Obter linha ou Obter todas as linhas
  • Seleção de planilha e planilha (da sua conta do Google conectada)
  • Mapeamento de colunas: mapeie variáveis de fluxo para colunas da planilha
Requer uma conta do Google conectada em Configurações de fluxo → Integrações → Planilhas Google.
####Google Analytics Envia um evento personalizado para sua propriedade do Google Analytics 4. Propriedades:
  • Nome do evento
  • Parâmetros personalizados (pares de valores-chave, suporta variáveis)
Eventos comuns a serem monitorados:
  • flow_started — quando um usuário inicia o fluxo
  • lead_captured — quando as informações de contato são coletadas
  • payment_completed — quando um pagamento bem-sucedido é feito
  • human_requested — quando um usuário solicita um agente humano

Zapier / Make

Aciona um webhook no Zapier ou Make.com, conectando seu fluxo a milhares de aplicativos de terceiros. Propriedades:
  • URL do Webhook (do seu cenário Zap ou Make)
  • Carga útil de dados: selecione quais variáveis enviar

Bate-papo

Transfere a conversa para um agente humano em uma caixa de entrada do Chatwoot. Propriedades:
  • URL da API Chatwoot e token de acesso
  • Caixa de entrada para atribuir a conversa
  • Atribuição de agente (opcional)
  • Atributos personalizados para passar para Chatwoot

Enviar e-mail

Envia um email transacional de dentro do fluxo. Propriedades:
  • Do nome e endereço de e-mail
  • Para endereçar (suporta variáveis)
  • Linha de assunto (suporta variáveis)
  • Corpo: HTML ou texto simples (suporta variáveis)
  • Provedor: credenciais SMTP ou SendGrid configuradas em Configurações de fluxo

Ações ZappWay

Executa ações específicas do ecossistema ZappWay. Ações disponíveis:
  • Atualizar as variáveis do contato atual
  • Atribuir uma conversa a um agente específico
  • Adicionar ou remover tags de um contato
  • Acione uma notificação na caixa de entrada do ZappWay

Variáveis

Variáveis ​​são a memória do seu fluxo. Eles armazenam informações coletadas de usuários e dados recuperados de integrações e podem ser referenciados em qualquer lugar do seu fluxo.

Usando variáveis ​​em texto

Para inserir uma variável em qualquer campo de texto, digite {{ e selecione a variável no menu suspenso de preenchimento automático:

Tipos de variáveis

Variáveis ​​​​do sistema

ZappWay preenche automaticamente um conjunto de variáveis ​​integradas para cada sessão:

Ramificação de fluxo e lógica condicional

A maioria dos fluxos do mundo real não são lineares – eles se ramificam com base nas respostas e condições do usuário.

Ramificação Simples (Botões)

O padrão de ramificação mais simples: cada opção de botão se conecta a um caminho diferente.

Filial Baseada em Condição

Use o bloco Condição quando a ramificação depender de valores de variáveis ​​em vez de cliques diretos no botão.

Condições aninhadas

As condições podem ser encadeadas para lidar com cenários complexos:

Publicando um fluxo

As alterações feitas no editor são salvas automaticamente como rascunho, mas não ficam visíveis para os usuários finais até que você as publique. Para publicar:
  1. Termine de editar seu fluxo
  2. Clique em Publicar no canto superior direito do editor
  3. Confirme a caixa de diálogo se solicitado
  4. Seu fluxo agora está ativo em seu URL público
A publicação de um fluxo ativa imediatamente suas alterações para todos os usuários ativos. Se você estiver fazendo alterações significativas em um fluxo com tráfego ativo, considere duplicar o fluxo, editar a cópia e trocá-la quando estiver pronto.

Modo de visualização

Antes de publicar, teste seu fluxo usando o recurso integrado Visualização:
  1. Click the Preview button (play icon) in the toolbar
  2. A live preview of the flow opens in a side panel or new tab
  3. Interact with the flow exactly as an end user would
  4. All blocks execute normally in preview, including integrations
O modo de visualização executa ações reais de integração (por exemplo, ele grava no Planilhas Google, envia e-mails e liga para webhooks). Se quiser testar sem acionar ações reais, desative temporariamente os blocos de integração clicando com o botão direito neles e selecionando Desativar.

Melhores práticas

1. Comece com um mapa de conversa claro Antes de abrir o editor, esboce a conversa em um papel ou quadro branco. Defina o objetivo de cada caminho, os dados que você precisa coletar e os possíveis pontos de decisão. Os fluxos construídos sem um plano tornam-se insustentáveis ​​rapidamente. 2. Use botões em entradas de texto livre Sempre que a escolha do usuário puder ser restrita a um conjunto conhecido de opções, use Botões em vez de Entrada de Texto. Isso produz dados mais limpos, reduz erros e simplifica a lógica condicional. 3. Sempre lide com o inesperado Adicione um botão “Outro” ou “Outra coisa” a qualquer menu e use substitutos de entrada de texto para perguntas abertas. Os usuários sempre dirão algo que você não previu – certifique-se de que o fluxo lide com isso de maneira elegante. **4. Nomeie as variáveis de forma clara e consistente ** Use nomes descritivos, em letras minúsculas e separados por sublinhado: user_email e não email2 ou Email. A nomenclatura consistente facilita a manutenção dos fluxos e reduz erros na lógica condicional. 5. Teste todos os caminhos antes de ir ao ar Use o modo de visualização para percorrer cada ramificação do seu fluxo, não apenas o caminho feliz. Teste especificamente casos extremos: entradas vazias, e-mails inválidos, respostas de texto muito longas e cliques inesperados em botões. 6. Mantenha os fluxos focados Um único fluxo deve atingir um único objetivo (captura de leads, triagem de suporte, consulta de pedidos). Use os blocos Jump e Flow Link para modularizar fluxos complexos em subfluxos menores e reutilizáveis.
Dica profissional: Use o bloco Script com console.log(variables) para despejar todos os valores de variáveis atuais durante a depuração. Abra o console do navegador (F12) no modo de visualização para ver a saída em tempo real — é a maneira mais rápida de diagnosticar por que uma condição não está se ramificando conforme o esperado.

Solução de problemas

Problema: o fluxo não responde à entrada do usuário

Sintomas:
  • Mensagens são enviadas mas o fluxo não avança
  • O bloco de entrada parece estar preso
Soluções:
  1. Verifique se o bloco de entrada tem uma variável atribuída – blocos sem uma variável de destino podem não salvar as respostas corretamente
  2. Verifique se a saída do bloco está conectada ao próximo bloco
  3. Visualize o fluxo e verifique se há erros no console do navegador
  4. Certifique-se de que o canal esteja conectado corretamente em Configurações → Canais
  5. Republicar o fluxo após fazer as correções

Problema: o bloco de condição não ramifica corretamente

Sintomas:
  • O fluxo sempre segue o mesmo ramo, independentemente do valor da variável
  • Comportamento inesperado na lógica condicional
Soluções:
  1. Use o bloco Script antes da condição para registrar o valor da variável: console.log(variables.your_variable)
  2. Verifique a distinção entre maiúsculas e minúsculas — “Pro” não é igual a “pro” em uma comparação de igualdade exata; use letras minúsculas consistentemente
  3. Verifique se a variável está realmente sendo definida antes da execução do bloco de condição
  4. Verifique se há espaços em branco à esquerda ou à direita no valor da variável - use o bloco Script para cortá-lo: setVariable('plan', variables.plan.trim())

Problema: o bloco Webhook retorna um erro

Sintomas:
  • O bloco Webhook mostra um indicador de erro vermelho
  • Os dados de integração não estão sendo enviados ou recebidos
Soluções:
  1. Clique no bloco Webhook para visualizar a resposta no painel de propriedades – verifique o código de status HTTP e a mensagem de erro
  2. Verifique se o URL está correto e acessível na Internet
  3. Verifique se os cabeçalhos necessários (por exemplo, Authorization: Bearer your_token) estão incluídos
  4. Valide a estrutura do corpo JSON usando uma ferramenta como JSONLint
  5. Teste o endpoint do webhook de forma independente usando Postman ou curl antes de adicioná-lo ao fluxo

Problema: Bloco OpenAI não gera respostas

Sintomas:
  • O bloco AI parece travar ou retorna respostas vazias
  • Erro “Chave de API inválida” no bloco
Soluções:
  1. Verifique se a chave da API OpenAI está salva corretamente em Configurações de fluxo → Integrações → OpenAI
  2. Verifique se há problemas de cobrança em sua conta OpenAI – uma cota esgotada faz com que todas as chamadas de API falhem
  3. Certifique-se de que o modelo selecionado no bloco esteja disponível em seu plano OpenAI
  4. Verifique se a variável de entrada da mensagem do usuário não está vazia quando o bloco é executado

Apoiar

Precisa de ajuda para construir fluxos? Entre em contato com o suporte ZappWay:
  • E-mail: support@zappway.ai
  • Incluir: nome do fluxo, capturas de tela dos blocos em questão e uma descrição do comportamento esperado versus real
Forneça estes detalhes ao relatar problemas:
  • Qual tipo de bloco está causando o problema
  • O canal que você está testando
  • Se o problema ocorre no modo de visualização, ao vivo ou em ambos
  • Quaisquer mensagens de erro mostradas no bloco ou no console do navegador
Recursos Adicionais:
Última atualização: março de 2026 Plataforma: ZappFlux Flow Builder | Painel ZappWay