Tema
Referência do nó
Kind
if_elseCategoriaLógicaSe / 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
- 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
- Clique no bloco para abrir o painel de configuração.
- Configure a **condição IF**: selecione a variável, o operador e o valor a comparar.
- Se precisar de mais de duas possibilidades, clique em **+ Adicionar ELSE IF** e configure cada condição adicional.
- 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
Campos
| Campo | O que faz |
|---|---|
| Variável | Qual dado você quer avaliar (resposta do contato, campo do CRM, variável do fluxo, etc.) |
| Operador | Como comparar: é igual a, contém, começa com, é maior que, está vazio, etc. |
| Valor | Com o que comparar a variável |
| ELSE IF | Condições adicionais (opcional; cria mais saídas no canvas) |
| Título | Nome interno do nó no canvas |
Operadores disponíveis
| Operador | Exemplo de uso |
|---|---|
| é igual a | resposta é igual a sim |
| não é igual a | status não é igual a ativo |
| contém | mensagem contém urgente (texto) ou tags_contato contém vip (lista) |
| não contém | email não contém @ (texto) ou tags_contato não contém bloqueado (lista) |
| começa com | cpf começa com 123 |
| termina com | email termina com @gmail.com |
| está vazio | telefone está vazio |
| não está vazio | nome não está vazio |
| é maior que / é maior ou igual a | valor é maior que 1000 |
| é menor que / é menor ou igual a | valor é menor que 1000 |
| está na lista / não está na lista | categoria está na lista vip, premium |
| contém todos | permissoes contém todos ler, escrever (lista tem todos os valores informados) |
| contém algum | canais_ativos contém algum whatsapp, email (lista tem pelo menos um dos valores informados) |
| quantidade igual a / maior que / menor que | itens_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 asim→ direciona para o fluxo de cliente existente - ELSE IF
respostaé igual anã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
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.
- 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`).
- Conecte a saída do Operações com lista ao Se/Senão (condição).
- No Se/Senão, configure a condição IF com a variável
{{list_operator.result}}e o operador **não está vazio**. - 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.
Atenção
Sempre conecte a saída **ELSE** a algum bloco — mesmo que seja apenas uma mensagem de "não entendi". Deixar a saída ELSE desconectada faz o fluxo terminar silenciosamente quando nenhuma condição é atendida, e o contato fica sem resposta.
Saiba mais
- Operações com lista — filtrar uma lista antes de checar a condição
- Classificar pergunta — interpretar respostas livres com IA em vez de encadear vários IF/ELSE
- Esperar Resposta de Texto — coletar a resposta que alimenta a condição
