Boucles et conditions
Primitives de flux de contrôle pour les flux de travail complexes. Bouclez sur des tableaux, branchez sur des conditions et créez des chemins d'exécution dynamiques basés sur les résultats des étapes.
Boucles ForEach
Ajouter un loopConfig à n’importe quelle étape pour parcourir un tableau d’une étape précédente. L'étape s'exécute une fois par élément; l'article actuel est disponible en tant que {{currentItem.field}}.
loopConfig: {
source: "executionContent", // pull from a previous step's output
config: {
stepId: "load_investors", // which step's output to iterate
field: "listEntries", // dot-path to the array
filter: { // optional — only loop qualifying items
field: "score",
operator: ">=",
value: 70
}
}
}surÉchec: continue continue de parcourir les éléments ayant échoué; stop arrête toute la boucle au premier échec.
Conditions d’entrée (portes conditionnelles)
Ajouter entryConditions à n’importe quelle étape pour qu’elle ne s’exécute que lorsque les critères sont remplis. En cas d'échec, l'étape peut être ignorée, arrêter le flux de travail ou attendre.
entryConditions: {
onCriteriaFail: "skip", // "skip" | "stop" | "wait"
conditionText: "Only draft if score is high enough",
criteria: [
{
variable: "{{steps.score_step.score}}",
operator: ">=",
value: 75
},
{
variable: "{{input.documentFile}}",
operator: "isNotNull"
}
]
}| onCriteriaFail | Comportement |
|---|---|
| sauter | Sautez cette étape en silence et passez à la suivante. Bon pour un enrichissement facultatif. |
| arrêt | Marquez l’exécution comme échouée. À utiliser pour des exigences strictes. |
| attendez | Suspendez l'exécution jusqu'à ce que la condition soit satisfaite ou remplacée manuellement. |
Opérateurs de conditions
| Opérateur | Utiliser pour |
|---|---|
| == != | Correspondance exacte/différente (chaînes, booléens, énumérations) |
| > < >= <= | Comparaison numérique (scores, décomptes, dates) |
| estNull isNotNull | Contrôle de présence (entrées optionnelles, résultats d'enrichissement optionnels) |
| contient | Vérification de l'appartenance à une sous-chaîne ou à un tableau |
En attente de la fin d'une boucle
Si une étape en aval doit attendre la fin de toutes les itérations de la boucle avant de s'exécuter, ajoutez un loop_completion condition:
entryConditions: {
criteria: [
{
type: "loop_completion",
stepId: "enrich_each_company"
}
]
}Exemple: Enrichir → Filtrer → Brouillon
Étape 1Lire prospects liste (statut: nouveau). Retours listEntries[].
Étape 2Boucle listEntries, onFailure: continue. Enrichir {{currentItem.domain}} via Hunter.
Étape 3Notez chaque prospect enrichi. Condition d'entrée: email isNotNull (ignorer si rien n'a été trouvé).
Étape 4Projet de sensibilisation. Condition d'entrée: score >= 75, onCriteriaFail: skip — les scores faibles ont sauté silencieusement.
Boucles et traitement par lots
Boucles itérer séquentiellement au sein d’une seule exécution – un élément à la fois, dans l’ordre. Traitement par lots divise une liste en exécutions enfants parallèles s'exécutant simultanément. Utilisez des boucles pour les petites listes ou lorsque l'ordre est important; utilisez le traitement par lots pour les grands ensembles de données où la vitesse compte davantage.
Prochaines étapes
- Traitement par lots — Fan-out parallèle pour les grands ensembles de données
- Validation - Récupérez les mauvaises données avant l'exécution des boucles
- AI Steps — Utilisation des étapes AI dans les boucles
