Ouvrir le Studio

Conditional

Branchez votre workflow selon des conditions

À quoi sert ce node ?

Le node Conditional évalue des conditions et oriente votre workflow vers différentes branches. Utilisez-le pour la validation des données, la gestion des erreurs, la logique A/B et tout scénario où l’exécution dépend des valeurs des données.

Usages courants :

  • Orienter selon les valeurs des données
  • Valider les données avant traitement
  • Gérer les situations d’erreur
  • Implémenter la logique métier

Configuration rapide

Ajouter le node Conditional

Trouvez-le dans ToolsIf/Else

Définir votre condition

Choisissez la valeur gauche, l’opérateur et la valeur droite

Connecter les deux branches

Connectez des nodes aux sorties True et False

Tester avec des données d’exemple

Vérifiez que le routage fonctionne comme prévu

Configuration

Champs obligatoires

left_value any required

La valeur à comparer (côté gauche de la condition).

Exemples :

  • Variable : {{WebScraper_0.wordCount}}
  • Statique : 100
  • Imbriqué : {{data.status}}
operator string required

L’opérateur de comparaison.

OperatorDescriptionExample
equalsÉgal àstatus equals "active"
not_equalsDifférent detype != "test"
greater_thanSupérieur àscore > 80
greater_than_or_equalSupérieur ou égalcount >= 10
less_thanInférieur àprice < 100
less_than_or_equalInférieur ou égalitems <= 5
containsChaîne contientemail contains "@gmail"
not_containsNe contient pasurl not_contains "test"
starts_withChaîne commence parname starts_with "Dr."
ends_withChaîne se termine parfile ends_with ".pdf"
is_emptyValeur vide/nulldata is_empty
is_not_emptyValeur présenteresult is_not_empty
right_value any

La valeur à laquelle comparer (côté droit).

Non requis pour is_empty et is_not_empty.

Champs optionnels

case_sensitive boolean default: true

Indique si les comparaisons de chaînes sont sensibles à la casse.

multiple_conditions array

Conditions supplémentaires combinées avec une logique AND/OR.

[
  {
    "left": "{{status}}",
    "operator": "equals",
    "right": "active",
    "logic": "AND"
  }
]

Sortie

Le node évalue et envoie vers l’une des deux sorties :

{
  "condition_met": true,
  "left_value": 150,
  "operator": "greater_than",
  "right_value": 100,
  "branch_taken": "true_branch"
}

Exemples

Validation des données

Vérifier que le contenu existe avant traitement :

Condition : {{WebScraper_0.content}} is_not_empty

True → Traiter le contenu
False → Journaliser "Aucun contenu trouvé"

Routage par score

Orienter les leads selon le score :

graph LR
    A[Lead] --> B{Score >= 80?}
    B -->|True| C[Hot Lead Flow]
    B -->|False| D{Score >= 50?}
    D -->|True| E[Warm Lead Flow]
    D -->|False| F[Nurture Flow]

Configuration :

  • Left : {{lead.score}}
  • Operator : greater_than_or_equal
  • Right : 80

Gestion des erreurs

Vérifier le statut de la réponse API :

Condition : {{HTTP_0.status}} equals 200

True → Traiter la réponse
False → Gérer l’erreur

Filtrage par type de contenu

Traiter uniquement les articles :

Condition : {{page.type}} equals "article"

True → Analyser l’article
False → Ignorer

Conditions multiples

Combinez des conditions avec AND/OR :

Logique AND (toutes doivent être vraies)

Condition 1 : score > 50
AND
Condition 2 : status equals "active"
AND
Condition 3 : region equals "US"

Les trois doivent être vraies pour la branche True.

Logique OR (au moins une peut être vraie)

Condition 1 : type equals "premium"
OR
Condition 2 : spending > 1000

L’une ou l’autre condition déclenche la branche True.

Logique mixte

(score > 80 AND status = "active") 
OR 
(type = "vip")

Modèles courants

Vérification null/vide

Validez toujours la présence des données :

graph LR
    A[Data] --> B{Not Empty?}
    B -->|Yes| C[Process]
    B -->|No| D[Handle Missing]

Vérification d’intervalle

Vérifier si une valeur est dans une plage :

graph LR
    A[Value] --> B{>= Min?}
    B -->|Yes| C{<= Max?}
    B -->|No| D[Below Range]
    C -->|Yes| E[In Range]
    C -->|No| F[Above Range]

Branchement à plusieurs voies

Orienter vers plusieurs chemins :

graph LR
    A[Input] --> B{Type A?}
    B -->|Yes| C[Process A]
    B -->|No| D{Type B?}
    D -->|Yes| E[Process B]
    D -->|No| F{Type C?}
    F -->|Yes| G[Process C]
    F -->|No| H[Default]

Pipeline de validation

Vérifier plusieurs exigences :

graph LR
    A[Input] --> B{Has Email?}
    B -->|No| F[Fail]
    B -->|Yes| C{Valid Format?}
    C -->|No| F
    C -->|Yes| D{Not Duplicate?}
    D -->|No| F
    D -->|Yes| E[Success]

Bonnes pratiques

Être explicite sur les types

Les nombres et les chaînes se comparent différemment :

❌ "100" equals 100  → Peut échouer (chaîne vs nombre)
✅ 100 equals 100    → Fonctionne (deux nombres)

Gérer la branche False

Connectez toujours les deux branches :

❌ Ne connecter que True, ignorer False
✅ Connecter les deux, même si False ne fait que journaliser

Utiliser des conditions explicites

Rendez les conditions lisibles :

❌ {{x}} > {{y}}
✅ {{lead.score}} greater_than {{threshold}}

Tester les cas limites

Vérifiez le comportement avec :

  • Valeurs vides
  • Valeurs null
  • Zéro
  • Valeurs aux bornes (exactement égales au seuil)

Problèmes courants

La condition est toujours True/False
  • Vérifier que les types correspondent (chaîne vs nombre)
  • Vérifier que les chemins des variables sont corrects
  • Journaliser les valeurs réellement comparées
La comparaison de chaînes échoue
  • Vérifier le réglage de sensibilité à la casse
  • Supprimer les espaces en début/fin des valeurs
  • Vérifier que l’encodage est identique
Comparaison numérique inattendue
  • S’assurer que les valeurs sont des nombres, pas des chaînes
  • Vérifier l’absence de valeurs null/undefined
  • Vérifier le format des nombres (décimales, etc.)
Les conditions multiples ne fonctionnent pas
  • Vérifier que la logique AND/OR est correcte
  • Tester chaque condition individuellement
  • S’assurer que toutes les valeurs sont accessibles

Nodes associés