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 Tools → If/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.
| Operator | Description | Example |
|---|---|---|
equals | Égal à | status equals "active" |
not_equals | Différent de | type != "test" |
greater_than | Supérieur à | score > 80 |
greater_than_or_equal | Supérieur ou égal | count >= 10 |
less_than | Inférieur à | price < 100 |
less_than_or_equal | Inférieur ou égal | items <= 5 |
contains | Chaîne contient | email contains "@gmail" |
not_contains | Ne contient pas | url not_contains "test" |
starts_with | Chaîne commence par | name starts_with "Dr." |
ends_with | Chaîne se termine par | file ends_with ".pdf" |
is_empty | Valeur vide/null | data is_empty |
is_not_empty | Valeur présente | result 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