Aller au contenu principal

Sous-workflow

Vous pouvez appeler un workflow depuis un autre workflow, ce qui vous permet de créer une architecture modulaire de type microservices. Cela constitue également une solution efficace pour découper un workflow trop volumineux, notamment lorsqu’il provoque des problèmes de mémoire. Pour créer un sous-workflow, vous devez utiliser les nœuds Exécuter un workflow et Déclencheur « Lorsqu’un autre workflow l’exécute ».

Les exécutions de sous-workflow ne comptent ni dans la limite mensuelle d’exécutions de votre forfait, ni dans le nombre maximal de workflow actifs autorisés.

Configuration et utilisation des sous-workflow

Cette section explique comment configurer à la fois le workflow parent et le sous-workflow.

Créer un sous-workflow

  1. Créez un nouveau workflow.

Créer un sous-workflow à partir d’un workflow existant

Vous pouvez également créer directement un sous-workflow depuis un workflow parent existant en utilisant le nœud Exécuter un workflow. Dans la configuration du nœud, sélectionnez Base de données et Depuis la liste, puis choisissez Créer un sous-workflow dans la liste.

Vous pouvez aussi extraire directement des nœuds sélectionnés en tant que sous-workflow via l’option de conversion accessible dans le menu contextuel (clic droit).

  1. (Facultatif) : Configurez quels workflow sont autorisés à appeler ce sous-workflow :

    1. Cliquez sur le menu Options Icône du menu Options > Paramètres pour ouvrir la fenêtre Paramètres du workflow.
    2. Modifiez le paramètre Ce workflow peut être exécuté par les éléments suivants. Pour plus d’informations, consultez la documentation sur les paramètres des workflow.
  2. Ajoutez un nœud déclencheur Déclencheur « Lorsqu’un autre workflow l’exécute » (dans la recherche de déclencheurs, ce nœud s’affiche également sous le libellé Lorsqu’il est exécuté par un autre workflow).

  3. Définissez le mode de données d’entrée, qui détermine comment les données d’entrée du sous-workflow sont spécifiées :

    • Définir via les champs ci-dessous : choisissez ce mode pour définir explicitement les noms et types de données que le workflow appelant doit fournir. Le nœud Exécuter un workflow du workflow appelant lira automatiquement ces champs.
    • Définir via un exemple JSON : choisissez ce mode pour fournir un exemple d’objet JSON illustrant les entrées attendues et leurs types.
    • Accepter toutes les données : choisissez ce mode pour accepter sans restriction toutes les données reçues. Le sous-workflow ne définit alors aucune entrée obligatoire, et vous devrez gérer manuellement les cas d’incohérence ou d’absence de données.
  4. Ajoutez d’autres nœuds si nécessaire pour compléter la logique du sous-workflow.

  5. Enregistrez le sous-workflow.

Important : Un sous-workflow ne doit contenir aucune erreur
Si le sous-workflow contient des erreurs, le workflow parent ne pourra pas le déclencher.

Charger des données historiques avant de construire le sous-workflow
Cette fonctionnalité nécessite la capacité de charger des données issues d’exécutions antérieures, disponible sur n8n Cloud et les offres communautaires enregistrées.

Si vous souhaitez charger des données avant de construire votre sous-workflow :

  1. Créez le sous-workflow et ajoutez-y un nœud Déclencheur « Lorsqu’un autre workflow l’exécute ».
  2. Réglez le mode de données d’entrée sur Accepter toutes les données, ou définissez les entrées via des champs ou un exemple JSON si elles sont connues.
  3. Dans les paramètres du sous-workflow, changez Enregistrer les exécutions réussies sur Enregistrer.
  4. Passez à la configuration du workflow parent et exécutez-le.
  5. Suivez les étapes pour charger les données depuis une exécution historique.
  6. Si nécessaire, ajustez le mode de données d’entrée pour qu’il corresponde aux données envoyées par le workflow parent.

Vous pouvez désormais épingler des données d’exemple dans le nœud déclencheur, ce qui vous permet de développer le reste du workflow avec des données réelles.

Appeler un sous-workflow

  1. Ouvrez le workflow parent depuis lequel vous souhaitez appeler le sous-workflow.
  2. Ajoutez un nœud Exécuter un workflow.
  3. Dans ce nœud, spécifiez le sous-workflow à appeler. Vous pouvez le faire via son ID, en chargeant un workflow depuis un fichier local, en collant directement le JSON du workflow comme paramètre du nœud, ou en indiquant une URL ciblant le workflow.

Où trouver l’ID de votre workflow ?
L’ID d’un sous-workflow correspond à la chaîne alphanumérique située à la fin de son URL.

  1. Remplissez les champs d’entrée requis, tels que définis dans le sous-workflow.
  2. Enregistrez votre workflow.

Lors de l’exécution, le workflow transmettra les données au sous-workflow et déclenchera son exécution.

Vous pouvez suivre le flux d’exécution du workflow parent vers le sous-workflow en ouvrant le nœud Exécuter un workflow et en cliquant sur le lien Voir l’exécution enfant. De même, les journaux d’exécution du sous-workflow contiennent un lien vers l’exécution du workflow parent, permettant une navigation bidirectionnelle.

Comment les données sont transmises entre workflow

Prenons un exemple concret : le Workflow A contient un nœud Exécuter un workflow qui appelle un autre workflow nommé Workflow B :

  1. Le nœud Exécuter un workflow transmet les données au nœud Déclencheur « Lorsqu’un autre workflow l’exécute » du Workflow B (affiché sur le canevas sous le libellé « Lorsqu’il est exécuté par un autre workflow »).
  2. Le dernier nœud du Workflow B renvoie les données au nœud Exécuter un workflow du Workflow A.

Conversion en sous-workflow

Pour savoir comment transformer un workflow existant en sous-workflow, consultez la documentation sur la conversion en sous-workflow.