Créer des processus
Boucles et conditions
Répéter des étapes pour chaque élément d'une liste et n'exécuter une étape que sous condition.
Répéter des étapes
flow.foreach répète les count étapes qui le suivent pour chaque élément d'une liste.
{ "id": "boucle", "type": "flow.foreach", "label": "Pour chaque facture",
"props": { "list": "factures", "item": "facture", "count": "4" } }- Produisez la liste avant la boucle :
ui.table,data.table,file.list,mail.read… - Indiquez dans
listle nom de la variable (sans accolades). - Choisissez dans
itemle nom de l'élément courant, puis utilisez-le dans le corps :{{facture.montant}}. - Comptez les étapes du corps dans
count, conditions comprises.
Exécuter une étape sous condition
flow.if évalue une expression. Si elle est fausse :
otherwise: "skip"saute l'étape suivante uniquement ;otherwise: "stop"arrête le processus (fin normale, sans erreur).
{ "id": "seuil", "type": "flow.if", "label": "Montant au-dessus du seuil ?",
"props": { "condition": "{{facture.montant}} > {{seuil}}", "otherwise": "skip" } }La syntaxe complète des conditions est décrite dans Expressions.
Conditionner plusieurs étapes
Il n'existe pas de bloc « sinon ». Deux solutions :
- répéter la condition devant chaque étape concernée ;
- regrouper les étapes dans un sous-processus, puis conditionner un unique
flow.call.
Exemple complet
Le corps de cette boucle compte 4 étapes : classer, tracer, condition, validation. La validation n'est demandée qu'au-delà du seuil.
[
{ "id": "boucle", "type": "flow.foreach", "label": "Pour chaque facture", "props": { "list": "factures", "item": "facture", "count": "4" } },
{ "id": "classer", "type": "ai.classify", "label": "Classer la dépense", "props": { "input": "{{facture.objet}}", "labels": "Informatique, Fournitures", "into": "categorie" } },
{ "id": "tracer", "type": "log.write", "label": "Tracer", "props": { "message": "{{facture.fournisseur}} → {{categorie}}", "level": "info" } },
{ "id": "seuil", "type": "flow.if", "label": "Au-dessus du seuil ?", "props": { "condition": "{{facture.montant}} > {{seuil}}", "otherwise": "skip" } },
{ "id": "valider", "type": "human.approve", "label": "Faire valider", "props": { "question": "Valider {{facture.fournisseur}} ({{facture.montant}} €) ?", "into": "decision" } }
]Mis à jour le 28 octobre 2026