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"
    }
  ]
}
onCriteriaFailComportement
sauterSautez cette étape en silence et passez à la suivante. Bon pour un enrichissement facultatif.
arrêtMarquez l’exécution comme échouée. À utiliser pour des exigences strictes.
attendezSuspendez l'exécution jusqu'à ce que la condition soit satisfaite ou remplacée manuellement.

Opérateurs de conditions

OpérateurUtiliser pour
==  !=Correspondance exacte/différente (chaînes, booléens, énumérations)
>  <  >=  <=Comparaison numérique (scores, décomptes, dates)
estNull  isNotNullContrôle de présence (entrées optionnelles, résultats d'enrichissement optionnels)
contientVé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