Scrydon

Condition

Créez une logique conditionnelle et des embranchements dans vos workflows

Le bloc Condition vous permet d'embrancer le chemin d'exécution de votre workflow en fonction d'expressions booléennes. Il évalue les conditions et achemine le workflow en conséquence, vous permettant de créer des workflows dynamiques et réactifs avec différents chemins d'exécution.

Condition Block

Les blocs Condition permettent une prise de décision déterministe sans nécessiter de LLM, ce qui les rend idéaux pour les logiques d'embranchement simples.

Vue d'ensemble

Insérer une branche après avoir connecté les sorties

Cliquez sur + Ajouter une condition entre les cartes pour insérer une condition vide à cet endroit. Le dernier bouton, juste avant Else, ajoute une condition à la fin. Aucune boîte de dialogue ni aucun panneau contextuel ne s'ouvre. Les connexions existantes restent attachées à leurs conditions ; la nouvelle condition démarre sans connexion.

Faites glisser une condition par sa poignée à gauche, ou utilisez les flèches haut/bas, pour changer l'ordre d'évaluation. Les expressions et les connexions suivent la condition. Else reste toujours en dernier. Chaque insertion ou déplacement terminé constitue une étape d'annulation/rétablissement. Appuyez sur Échap pour annuler un glissement en cours. En cas de conflit avec une autre modification, vérifiez les branches actuelles avant de réessayer.

Le bloc Condition vous permet de :

Créer une logique d'embranchement : Acheminer les workflows en fonction d'expressions booléennes

Prendre des décisions basées sur les données : Évaluer des conditions à partir des sorties des blocs précédents

Gérer plusieurs scénarios : Définir plusieurs conditions avec des chemins différents

Fournir un acheminement déterministe : Prendre des décisions sans nécessiter de LLM

Fonctionnement

Le bloc Condition fonctionne selon un processus d'évaluation séquentielle :

  1. Évaluer l'expression - Traite l'expression booléenne en utilisant les données actuelles du workflow
  2. Déterminer le résultat - Renvoie vrai ou faux en fonction de l'évaluation de l'expression
  3. Acheminer le workflow - Dirige l'exécution vers le bloc de destination approprié en fonction du résultat
  4. Fournir du contexte - Génère des métadonnées sur la décision pour le débogage et la supervision

Options de configuration

Conditions

Définissez une ou plusieurs conditions à évaluer. Chaque condition comprend :

  • Expression : Une expression de données qui s'évalue à vrai ou faux (voir Syntaxe d'expression prise en charge)
  • Chemin : Le bloc de destination vers lequel acheminer si la condition est vraie
  • Description : Explication optionnelle de ce que vérifie la condition

Vous pouvez créer plusieurs conditions évaluées dans l'ordre, la première condition correspondante déterminant le chemin d'exécution.

Format des expressions de condition

Les conditions utilisent un sous-ensemble sûr, limité aux données, de la syntaxe d'expression JavaScript et peuvent référencer des valeurs d'entrée des blocs précédents. Les expressions sont évaluées par un interpréteur strict — et non par eval() — de sorte que seules les constructions listées dans Syntaxe d'expression prise en charge sont disponibles.

// Check if a score is above a threshold
<agent.score> > 75

Accéder aux résultats

Après l'évaluation d'une condition, vous pouvez accéder à ses sorties :

  • <condition.result> : Résultat booléen de l'évaluation de la condition
  • <condition.matched_condition> : Identifiant de la condition qui a correspondu
  • <condition.content> : Description du résultat de l'évaluation
  • <condition.path> : Détails de la destination d'acheminement choisie

Fonctionnalités avancées

Expressions complexes

Combinez les opérateurs et les méthodes prises en charge sur les chaînes, les tableaux et les nombres :

// String operations
<user.email>.endsWith('@company.com')

// Array operations
<api.tags>.includes('urgent')

// Mathematical operations
<agent.confidence> * 100 > 85

// Nested values and indexes
<api.result>.status === 'ok' && <api.items>[0].id === 42

// Fallback for a null value
(<api.label> ?? 'none') !== 'none'

Syntaxe d'expression prise en charge

Les conditions sont évaluées par un interpréteur strict sur les données de votre workflow. Tout ce qui sort de cette liste fait échouer l'étape avec une erreur explicite au lieu de s'exécuter.

Pris en charge

  • Littéraux : nombres, chaînes entre guillemets simples ou doubles, true, false, null
  • Références aux sorties des blocs précédents, et lectures en dessous — <api.result>.status, <api.items>[0], <api.map>['key']
  • .length sur les chaînes et les tableaux
  • Comparaison : ===, !==, ==, !=, <, >, <=, >=
  • Opérateurs logiques et unaires : &&, ||, !, ??, - unaire, typeof
  • L'opérateur conditionnel (ternaire) : <agent.score> > 50 ? 'high' : 'low'
  • Arithmétique et concaténation de chaînes : +, -, *, /, %
  • Méthodes de chaîne : includes, startsWith, endsWith, indexOf, lastIndexOf, trim, trimStart, trimEnd, toLowerCase, toUpperCase, slice, substring, charAt, at, concat, split, replace, replaceAll, toString
  • Méthodes de tableau : join, flat
  • Méthodes de nombre : toFixed, toPrecision
  • Littéraux de tableau et d'objet — une référence de bloc dont la valeur est un tableau ou un objet est interpolée sous forme de littéral JSON : <api.tags>.includes('urgent') s'exécute donc comme ["urgent","billing"].includes('urgent')

Non pris en charge

  • new (y compris new Date(...)), les littéraux d'expression régulière et les littéraux de gabarit
  • Les fonctions fléchées et toute méthode acceptant un rappel (map, filter, some, …)
  • L'affectation et le chaînage optionnel (?.)
  • Les objets globaux tels que Math, JSON, Date, process et fetch

Pour les dates, les expressions régulières ou toute transformation hors de ce sous-ensemble, calculez la valeur dans un bloc Function et comparez sa sortie dans le bloc Condition.

Limites

Un bloc Condition prend en charge au maximum 100 conditions, et chaque expression est limitée à 2 000 caractères. Le dépassement d'une limite fait échouer l'étape avec une erreur explicite.

Évaluation de plusieurs conditions

Les conditions sont évaluées dans l'ordre jusqu'à ce qu'une corresponde :

// Condition 1: Check for high priority
<ticket.priority> === 'high'

// Condition 2: Check for urgent keywords
<ticket.subject>.toLowerCase().includes('urgent')

// Condition 3: Default fallback
true

Gestion des erreurs

Une expression qui ne peut pas être évaluée fait échouer l'étape — elle ne retombe pas silencieusement sur else. Cela s'applique à :

  • Une référence qui ne correspond à aucun bloc, y compris à l'intérieur d'une expression composée && / ||
  • Une syntaxe hors du sous-ensemble pris en charge, comme new Date(...) ou un littéral d'expression régulière
  • Une expression ou une liste de conditions qui dépasse les limites documentées

Les valeurs null et undefined sont évaluées en toute sécurité — comparez-les explicitement avec === null ou fournissez une valeur de repli avec ??.

Entrées et sorties

  • Conditions : Tableau d'expressions booléennes à évaluer

  • Expressions : Expressions de données sur les sorties des blocs

  • Chemins d'acheminement : Blocs de destination pour chaque résultat de condition

Exemples d'utilisation

Acheminement du support client

Scénario : Acheminer les tickets de support selon la priorité

  1. Le bloc API récupère les données du ticket de support
  2. La condition vérifie si <api.priority> est égal à 'high'
  3. Tickets haute priorité → Agent avec outils d'escalade
  4. Tickets priorité normale → Agent de support standard

Modération de contenu

Scénario : Filtrer le contenu en fonction des résultats d'analyse

  1. L'agent analyse le contenu généré par les utilisateurs
  2. La condition vérifie si <agent.toxicity_score> > 0,7
  3. Contenu toxique → Workflow de modération
  4. Contenu propre → Workflow de publication

Flux d'intégration des utilisateurs

Scénario : Personnaliser l'intégration selon le type d'utilisateur

  1. Le bloc Fonction traite les données d'inscription de l'utilisateur
  2. La condition vérifie si <user.account_type> === 'enterprise'
  3. Utilisateurs entreprise → Workflow de configuration avancé
  4. Utilisateurs individuels → Workflow d'intégration simplifié

Bonnes pratiques

  • Ordonnez correctement les conditions : Placez les conditions plus spécifiques avant les conditions générales pour garantir que la logique spécifique ait la priorité sur les cas de repli
  • Incluez une condition par défaut : Ajoutez une condition attrape-tout (true) comme dernière condition pour gérer les cas non correspondants et éviter que l'exécution du workflow ne se bloque
  • Gardez les expressions simples : Utilisez des expressions booléennes claires et directes pour une meilleure lisibilité et un débogage facilité
  • Documentez vos conditions : Ajoutez des descriptions pour expliquer le but de chaque condition afin de faciliter la collaboration en équipe et la maintenance
  • Testez les cas limites : Vérifiez que les conditions gèrent correctement les valeurs aux bornes en testant avec des valeurs aux limites de vos plages de condition
Sur cette page

Sur cette page