Condition

O bloco Condition ramifica um workflow com base em expressões booleanas. Ele avalia cada ramo em ordem e executa o caminho do primeiro que for verdadeiro, sem chamar nenhum modelo. Quando você quer que um modelo decida a rota, use um Router.

Configuração

Conditions

Uma lista de ramos: um if, quantas linhas de else if você quiser, e um else final. Cada ramo guarda uma expressão JavaScript que resulta em verdadeiro ou falso, e se conecta ao seu próprio caminho. O Studio avalia de cima para baixo e segue o primeiro ramo verdadeiro; o ramo else executa quando nenhum corresponde.

Referencie uma saída anterior dentro de uma expressão com uma connection tag:

<agent.score> > 75
<ticket.subject>.toLowerCase().includes('urgent')
<user.email>.endsWith('@company.com') && <user.plan> === 'pro'

Leia uma variável de ambiente com {{KEY}}:

{{MAX_RETRIES}} === 3
{{FEATURE_ON}} === true
{{TIER}} === 'pro'

Números, booleanos e null são comparados como literais. Todo outro valor é vinculado como string, então um apóstrofo, uma aspa ou uma quebra de linha dentro de um segredo não pode mudar o significado da expressão.

Se uma expressão lançar erro — por exemplo, porque lê um campo que não existe — o block falha e a execução segue o caminho de erro, se houver um conectado. Proteja valores ausentes com optional chaining (?.) ou uma verificação de null.

Saídas

SaídaO que é
<condition.conditionResult>O resultado booleano do ramo que correspondeu
<condition.selectedOption>O id do ramo que correspondeu
<condition.selectedPath>O block de destino para onde o workflow foi roteado

Exemplos

Rotear um ticket de suporte por prioridade

O Condition avalia <start.priority> e executa um caminho adiante. O outro não executa, então uma referência a um block do caminho que não rodou volta vazia.

Moderar conteúdo por pontuação

Um Agent pontua o conteúdo, e o Condition o libera ou o bloqueia com base em <moderate.toxicity>.

Ramificar o onboarding pelo tier da conta

Uma Function lê a conta, e o Condition manda contas enterprise para uma configuração guiada e todas as outras para o início rápido.

Boas práticas

  • Ordene os ramos do específico para o geral. O primeiro ramo verdadeiro vence, então coloque as verificações mais restritas antes das genéricas.
  • Sempre dê um caminho às execuções sem correspondência. Conecte o ramo else, ou faça a última condição ser true, para que nada termine em um beco sem saída silencioso.
  • Mantenha as expressões simples. Verificações booleanas curtas são fáceis de ler e depurar. Faça a lógica pesada antes, em um block Function, e ramifique com base no resultado dele.
  • Proteja valores ausentes. Use optional chaining (?.) ou uma verificação de null para que um campo inexistente não lance erro.

Common Questions

Não. Ele avalia expressões booleanas com sintaxe JavaScript diretamente, sem chamar nenhum modelo. Isso o torna rápido, determinístico e sem custo de API. Para roteamento com IA, use o bloco Router.
O workflow segue o ramo else. Se o ramo else não estiver conectado a um block seguinte, esse caminho termina normalmente, sem erro. Adicione uma condição final que seja simplesmente true para garantir uma correspondência.
De cima para baixo, na ordem em que foram definidas. O primeiro ramo que resultar em true determina o caminho, e os ramos seguintes não são avaliados depois de uma correspondência. Coloque as condições mais específicas antes das genéricas.
Operadores e métodos padrão: comparações (===, !==, >, <), operadores lógicos (&&, ||, !), métodos de string (.includes(), .endsWith(), .toLowerCase()), métodos de array (.includes(), .length), matemática e comparações de Date. Referencie saídas de blocks com a sintaxe <blockName.output>.
Se uma expressão referencia uma variável indefinida ou lança erro em tempo de execução, o block falha e a execução falha também, ou segue o caminho de erro, se houver um conectado. Use optional chaining (?.) ou verificações explícitas de null para tratar valores ausentes com segurança.