Au début, un workflow n8n tient sur un écran. Trois mois plus tard, il compte quarante nœuds, la même logique « nettoyer un numéro de téléphone » est copiée à quatre endroits, et plus personne n'ose y toucher. La solution est la même qu'en programmation : extraire des fonctions. Dans n8n, ces fonctions s'appellent des sous-workflows.
Ce tutoriel montre comment découper un workflow, passer des données proprement entre parent et enfant, gérer les erreurs, puis réutiliser ces mêmes sous-workflows comme outils d'un agent IA. Les noms exacts des nœuds peuvent varier un peu selon votre version de n8n ; la logique reste la même.
Quand découper ?
Quelques signaux simples :
- la même suite de nœuds apparaît dans plusieurs workflows ;
- une partie du workflow a un rôle clair qu'on peut nommer en une phrase (« créer ou mettre à jour un contact dans le CRM ») ;
- vous voulez tester une étape isolément sans relancer tout le scénario ;
- un agent IA doit pouvoir déclencher cette action à la demande.
À l'inverse, ne découpez pas une étape de deux nœuds utilisée une seule fois : vous ajouteriez de la complexité sans gain.
Étape 1 — Créer le sous-workflow
Créez un nouveau workflow et commencez-le par le déclencheur « When Executed by Another Workflow » (Execute Workflow Trigger). C'est sa porte d'entrée : il ne se lance que lorsqu'un autre workflow l'appelle.
Dans ses paramètres, définissez les entrées attendues plutôt que d'accepter « toutes les données ». Par exemple, pour un sous-workflow normaliser-contact :
-
nom(string) -
telephone(string) -
email(string)
Déclarer les champs a deux avantages : le workflow parent voit exactement quoi envoyer, et un agent IA saura plus tard quels paramètres fournir.
Étape 2 — Écrire la logique et soigner la sortie
Ajoutez vos nœuds : par exemple un nœud Code ou Edit Fields (Set) qui met l'e-mail en minuscules, retire les espaces du numéro et le met au format international (+212 pour un numéro marocain qui commence par 0).
Le point important : le dernier nœud exécuté renvoie ses données au parent. Terminez donc par un nœud Set qui ne garde que ce qui doit sortir, avec des noms stables :
{ "ok": true, "nom": "Salma Bennani", "telephone": "+212600000000", "email": "salma@example.com" } Une sortie courte et prévisible évite au parent de dépendre de détails internes qui changeront.
Étape 3 — L'appeler depuis le workflow parent
Dans le workflow principal, ajoutez le nœud Execute Workflow (« Execute Sub-workflow » dans les versions récentes) :
- Source : choisissez le sous-workflow dans la base de données (liste) plutôt que par ID collé à la main.
- Entrées : mappez les champs déclarés à l'étape 1 avec des expressions, par exemple
{{ $json.phone }}verstelephone. - Mode : par défaut, n8n exécute le sous-workflow une fois pour tous les items. Si votre logique traite un seul contact à la fois, activez l'exécution pour chaque item.
- Attendre la fin : laissez l'option « Wait for sub-workflow completion » activée si le parent a besoin du résultat. Désactivez-la pour une tâche « fire and forget » (envoi de notification, journalisation).
Lancez un test : dans l'onglet des exécutions, vous verrez l'exécution parent et un lien vers l'exécution enfant, ce qui facilite beaucoup le débogage.
Étape 4 — Gérer les erreurs proprement
Par défaut, si le sous-workflow échoue, le nœud Execute Workflow échoue aussi dans le parent. Deux approches :
- Échouer franchement : laissez remonter l'erreur, et comptez sur un Error Workflow configuré dans les paramètres du parent pour être alerté.
- Renvoyer un statut : dans le sous-workflow, interceptez les cas prévus (e-mail invalide, numéro manquant) et renvoyez
{ "ok": false, "raison": "telephone_manquant" }. Le parent route ensuite avec un nœud If surok.
La seconde approche est plus lisible pour les erreurs métier ; gardez la première pour les vraies pannes (API indisponible, identifiants expirés).
Étape 5 — Donner le sous-workflow comme outil à un agent IA
C'est là que le découpage devient vraiment rentable. Dans un workflow avec un nœud AI Agent, ajoutez un outil de type Call n8n Workflow Tool et pointez-le vers votre sous-workflow.
Trois réglages comptent :
- Nom de l'outil : court et explicite, par exemple
normaliser_contact. - Description : c'est elle que lit le modèle pour décider quand appeler l'outil. Soyez précis : « Nettoie et standardise le nom, le téléphone et l'e-mail d'un contact avant toute création dans le CRM. À appeler une fois par contact. »
- Paramètres : grâce aux entrées déclarées à l'étape 1, l'agent sait quels champs remplir. Vous pouvez laisser le modèle les remplir à partir de la conversation.
Un agent qui dispose de trois ou quatre sous-workflows bien décrits (chercher un client, créer une tâche, normaliser un contact, vérifier une disponibilité) est beaucoup plus fiable qu'un agent à qui on demande de « tout faire » dans un seul prompt. Et chaque action reste un workflow classique, testable et visible dans l'historique des exécutions.
Bonnes pratiques
- Nommez vos sous-workflows avec un préfixe commun (
[sub] normaliser-contact) pour les retrouver vite. - Documentez les entrées et la sortie dans une note collante en haut du sous-workflow.
- Versionnez avec prudence : modifier un sous-workflow change le comportement de tous ses appelants. Pour un changement cassant, créez une nouvelle version plutôt que d'écraser l'ancienne.
- Limitez les droits : un outil donné à un agent IA ne doit faire que ce qu'il dit. Pas de sous-workflow « exécuter n'importe quelle requête SQL ».
- Gardez une validation humaine pour les actions irréversibles (envoi à un client, suppression, paiement), même si l'agent peut les préparer.
Récapitulatif
- Un sous-workflow = un déclencheur « When Executed by Another Workflow », des entrées déclarées et une sortie propre.
- Le parent l'appelle avec Execute Workflow, une fois au total ou une fois par item.
- Les erreurs métier se renvoient sous forme de statut ; les vraies pannes remontent vers l'Error Workflow.
- Le même sous-workflow devient un outil d'agent IA, à condition de bien le nommer et le décrire.
Chez Flux Intelligent, nous structurons ainsi les automatisations et les agents IA que nous mettons en place pour des PME au Maroc. Si vous découpez vos propres workflows et bloquez sur un cas, posez votre question en commentaire.


