O bloco Condition ramifica um workflow em expressões booleanas. Ele checa cada branch em ordem e roda o caminho da primeira que for verdadeira, sem chamada a modelo. Quando você quer que um modelo decida a rota, use um Router.
Configuração
Conditions
Uma lista de branches: um if, qualquer número de linhas else if e um else final. Cada branch guarda uma expressão JavaScript que avalia para true ou false, e se conecta ao seu próprio caminho. O Zoen as checa de cima para baixo e toma o primeiro branch verdadeiro; o branch else roda quando nenhum bate.
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'Se uma expressão lançar erro, por exemplo porque lê um campo que não está lá, o bloco erra e a execução segue o error path se um estiver conectado. Proteja valores ausentes com optional chaining (?.) ou um null check.
Saídas
| Saída | O que é |
|---|---|
<condition.conditionResult> | O resultado booleano do branch que bateu |
<condition.selectedOption> | O id do branch que bateu |
<condition.selectedPath> | O bloco de destino para o qual o workflow roteou |
Exemplos
Rotear um ticket de suporte por prioridade
O Condition checa <start.priority> e roda um caminho downstream. O outro não roda, então uma referência a um bloco no caminho que não rodou volta vazia.
Moderar conteúdo por score
Um Agent pontua o conteúdo, e o Condition publica ou bloqueia com base em <moderate.toxicity>.
Ramificar onboarding por tier da conta
Um Function lê a conta, e o Condition manda contas enterprise pelo setup guiado e todo o resto pelo quick start.
Boas práticas
- Ordene branches do específico ao geral. O primeiro branch verdadeiro vence, então coloque checagens estreitas antes das catch-alls.
- Sempre dê um caminho para execuções sem match. Conecte o branch else, ou faça a última condição
true, para nada terminar em silêncio. - Mantenha expressões simples. Checagens booleanas curtas são fáceis de ler e debugar. Faça lógica pesada num bloco Function primeiro e ramifique no resultado.
- Proteja valores ausentes. Use optional chaining (
?.) ou um null check para um campo ausente não lançar erro.