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ída | O 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.