Skip to content

Se / Senão (condição) — Tomada de decisão

Para que serve

É a bifurcação da estrada: o fluxo chega aqui, avalia uma condição e toma um caminho diferente dependendo da resposta. Se a condição for verdadeira, vai por um lado. Se for falsa, vai pelo outro.

Quando usar
  • Verificar a resposta do contato antes de continuar ("o contato disse 'sim' ou 'não'?").
  • Tomar caminhos diferentes dependendo de dados do contato (plano, categoria, status).
  • Checar se uma variável tem determinado valor antes de executar uma ação.
  • Qualquer momento em que o fluxo precisa decidir entre duas ou mais possibilidades.
Passo a passo
  1. Arraste o bloco **Se / Senão (condição)** para o canvas a partir da categoria **Lógica**.
    Painel de busca de blocos aberto no canvas, com as categorias e a lista de nós disponíveis para arrastar

    Painel de busca de blocos aberto no canvas, com as categorias e a lista de nós disponíveis para arrastar

  2. Clique no bloco para abrir o painel de configuração.
  3. Configure a **condição IF**: selecione a variável, o operador e o valor a comparar.
  4. Se precisar de mais de duas possibilidades, clique em **+ Adicionar ELSE IF** e configure cada condição adicional.
  5. No canvas, cada condição gera uma **saída separada** (IF, ELSE IF 1, ELSE IF 2...) mais uma saída **ELSE** (para quando nenhuma condição for verdadeira). Conecte cada saída ao caminho correto.
    Fluxo de exemplo no canvas com um nó de condição gerando duas saídas (IF/ELSE) conectadas a caminhos diferentes

    Fluxo de exemplo no canvas com um nó de condição gerando duas saídas (IF/ELSE) conectadas a caminhos diferentes

Campos
CampoO que faz
VariávelQual dado você quer avaliar (resposta do contato, campo do CRM, variável do fluxo, etc.)
OperadorComo comparar: é igual a, contém, começa com, é maior que, está vazio, etc.
ValorCom o que comparar a variável
ELSE IFCondições adicionais (opcional; cria mais saídas no canvas)
TítuloNome interno do nó no canvas

Operadores disponíveis

OperadorExemplo de uso
é igual aresposta é igual a sim
não é igual astatus não é igual a ativo
contémmensagem contém urgente (texto) ou tags_contato contém vip (lista)
não contémemail não contém @ (texto) ou tags_contato não contém bloqueado (lista)
começa comcpf começa com 123
termina comemail termina com @gmail.com
está vaziotelefone está vazio
não está vazionome não está vazio
é maior que / é maior ou igual avalor é maior que 1000
é menor que / é menor ou igual avalor é menor que 1000
está na lista / não está na listacategoria está na lista vip, premium
contém todospermissoes contém todos ler, escrever (lista tem todos os valores informados)
contém algumcanais_ativos contém algum whatsapp, email (lista tem pelo menos um dos valores informados)
quantidade igual a / maior que / menor queitens_carrinho quantidade igual a 0

Operadores em variáveis de lista

Quando a variável escolhida é uma lista (ex.: list_operator.result, ou qualquer variável do tipo lista), os operadores contém e não contém passam a verificar se o valor é um dos itens da lista — não mais uma busca de um trecho dentro de um texto. Em variáveis de texto, esse comportamento de buscar um trecho é mantido (ex.: mensagem contém urgente). É o tipo da variável que decide como o operador se comporta.

Além disso, listas ganham operadores próprios:

  • contém todos — todos os valores informados (separados por vírgula) estão na lista.
  • contém algum — pelo menos um dos valores informados está na lista.
  • quantidade igual a / maior que / menor que — compara o tamanho da lista com um número.

Sub-condições para listas de objetos

Quando a lista é composta por objetos (ex.: uma lista de pedidos, cada um com status, valor, etc.), dá para checar uma condição sobre um campo específico de cada item, sem precisar de um nó Operações com lista antes. É a chamada sub-condição de variável.

  • O operador principal define o agregado: contém (pelo menos um item da lista satisfaz a sub-condição), não contém (nenhum item satisfaz) ou contém todos (todos os itens satisfazem).
  • Dentro da sub-condição, é possível combinar várias checagens de campo com E (todas) ou OU (qualquer uma) — igual à combinação de condições do próprio Se/Senão.
  • Lista vazia: contém é sempre falso, não contém é sempre verdadeiro, contém todos é sempre falso.

Exemplo: variável pedidos (lista de objetos) → operador principal contém → sub-condição status é igual a pago. Lê-se como "SE pedidos contém item onde status é igual a 'pago'" — verdadeiro assim que existir ao menos um pedido pago na lista.

Exemplo

Após perguntar "Você já é nosso cliente? (sim/não)", o fluxo usa IF/ELSE para decidir:

  • IF resposta é igual a sim → direciona para o fluxo de cliente existente
  • ELSE IF resposta é igual a não → direciona para o fluxo de cadastro
  • ELSE → envia "Não entendi sua resposta. Digite 'sim' ou 'não', por favor."
Fluxo de exemplo no canvas com um nó de condição gerando duas saídas (IF/ELSE) conectadas a caminhos diferentes

Fluxo de exemplo no canvas com um nó de condição gerando duas saídas (IF/ELSE) conectadas a caminhos diferentes

Receita: filtrar uma lista antes do SE/SENÃO

Um padrão muito comum: você tem uma lista (pedidos, agendamentos, tickets) vinda de uma API ou de uma Busca de dados externos, e quer decidir o caminho do fluxo com base em "existe pelo menos um item que atende a uma condição?". A forma mais simples de resolver isso hoje é combinar o nó Operações com lista com um Se/Senão (condição) logo depois.

  1. Antes do Se/Senão, adicione um nó **Operações com lista** e configure o **Filtrar por** com a condição desejada (ex.: campo `status`, operador igual a, valor `pago`).
  2. Conecte a saída do Operações com lista ao Se/Senão (condição).
  3. No Se/Senão, configure a condição IF com a variável {{list_operator.result}} e o operador **não está vazio**.
  4. Conecte a saída **IF** (lista filtrada não vazia) e a saída **ELSE** (nenhum item atendeu ao filtro) aos caminhos correspondentes.

Exemplo: lista de pedidos do cliente → filtra status igual a pago → resultado em {{list_operator.result}}. Se esse resultado não estiver vazio, o cliente tem ao menos um pedido pago; direciona para o ramo "cliente tem pedido pago". Se estiver vazio, segue pelo ELSE.

Dica
Se você só precisa saber se existe *algum* item que bate com um campo (sem precisar da lista filtrada inteira), a [sub-condição de variável](#sub-condições-para-listas-de-objetos) permite fazer a mesma checagem direto no Se/Senão, sem precisar do nó Operações com lista antes.
Dica
Você pode encadear vários nós Se/Senão (condição) em sequência para criar lógicas complexas. Mas se tiver muitas condições, considere usar um [Classificador de Questões](/guia/flow-builder/ia/classificador) — ele usa IA para interpretar respostas livres e distribuir em categorias.

Saiba mais