Ressources · Intégration n8n

Nœud Code n8nConfigurer Code dans n8n.

Le nœud Code n8n exécute ton propre JavaScript ou Python sur les items qui traversent un workflow. Deux paramètres le pilotent : Language et Mode. Mode choisit entre une exécution unique sur tout le lot et une exécution par item. Utile le jour où aucun nœud livré ne fait la transformation voulue.

Avis vérifiés sur Trustpilot · Agence IA, automatisation & growth

Pourquoi automatiser

À quoi sert le nœud Code n8n ?

Code exécute le JavaScript ou le Python que tu écris toi-même, au milieu du workflow, sur les items que lui tend le nœud d'avant. La donnée circule en liste d'objets, chacun rangé sous une clé json, et ton script doit rendre cette même forme. Sa raison d'être tient en une phrase : couvrir la transformation ou la logique qu'aucun nœud livré ne sait faire.

Le premier réflexe utile porte sur l'agrégation. Un lot de lignes entre, et ce qui doit ressortir tient en une seule : un total, une valeur maximale, une liste mise bout à bout. Mode réglé sur Run Once for All Items met le lot entier à portée du script, qui renvoie un item unique, prêt à s'écrire dans Google Sheets comme une ligne de synthèse plutôt qu'un tableau à recoller ensuite.

Vient ensuite le travail de forme, fiche par fiche. Les réponses d'API arrivent imbriquées, avec des clés dont personne n'a l'usage, alors qu'une base relationnelle attend des colonnes plates. Run Once for Each Item laisse le script ne regarder qu'un objet à la fois et le remettre à plat : l'insertion dans MySQL cesse d'échouer sur une clé qui n'a jamais été une colonne. Ce que le script renvoie est exactement ce que le nœud suivant reçoit.

Troisième terrain, les calculs que l'interface n'offre pas : une date à cadrer, un JSON à interroger en profondeur, un score composé à partir de trois champs. En JavaScript, $today et $jmespath font ce travail ; côté Python, ce sont _today et _jmespath. Les templates publiés montrent le motif sur des revues de pull request GitHub, où le nœud Code prépare le texte avant de le confier à une chaîne IA.

Reste à savoir quand ne pas y toucher. Un nœud Code n'atteint jamais les credentials, c'est-à-dire les identifiants stockés par n8n : this.getCredentials() et $getCredentials() échouent, et cette barrière est volontaire, elle garde les données d'authentification hors du script. Un appel authentifié appartient donc au nœud HTTP Request, qui gère les credentials, ou au nœud dédié au service. Choisir dynamiquement entre deux credentials se règle avec un nœud Switch placé devant. Et pour se souvenir des fiches déjà traitées d'une exécution à l'autre, plutôt que de les empiler en static data, le nœud Remove Duplicates est prévu pour ça.

Les limites tiennent surtout aux modules. Le bac à sable JavaScript ignore import et export : le chargement passe par require. Sur n8n Cloud, l'import de modules n'est pas supporté ; en auto-hébergé, le module s'installe dans le même environnement que n8n ou l'image Docker officielle s'étend, puis les variables d'environnement NODE_FUNCTION_ALLOW_BUILTIN et NODE_FUNCTION_ALLOW_EXTERNAL l'autorisent. La version décrite ici est la version 2. Pour prendre les bons réflexes avant de se lancer, la Formation n8n couvre ce terrain.

Paramètres

Quels paramètres expose le nœud Code ?

Le nœud Code compte 2 paramètres. Pour chacun : le nœud tel que tu le configures dans n8n, ce que le paramètre change, et nos notes de terrain.

01

Mode

mode

Ce que tu vois dans n8n

Notes & cas d'usage

Mode fixe le nombre de passages du script sur les données entrantes. Ce réglage se pose en premier.

Paramètres clés

  • Run Once for All Items (runOnceForAllItems) : le code ne tourne qu'une fois, quel que soit le nombre d'items entrants, avec le lot entier sous la main.
  • Run Once for Each Item (runOnceForEachItem) : le code tourne autant de fois qu'il y a d'items entrants, un objet à la fois.
  • JavaScript et Python : la zone de code sous le sélecteur, là où tu écris ce qui s'exécute vraiment.
Cas d'usage
un agrégat de fin de lot réclame le premier réglage, une correction appliquée fiche par fiche réclame le second.
02

Language

language

Ce que tu vois dans n8n

Notes & cas d'usage

Deux moteurs sont proposés sous Language, et le choix engage surtout les aides intégrées disponibles dans la zone de code. La structure de données à renvoyer, elle, ne bouge pas d'un iota.

Paramètres clés

  • JavaScript (javaScript) : donne accès aux variables luxon comme $today pour les dates et à $jmespath pour interroger des structures JSON.
  • Python (pythonNative) : donne les méthodes et variables intégrées équivalentes, _today pour les dates et _jmespath pour les requêtes.
Cas d'usage
une équipe data qui vit déjà en Python ne change pas d'habitude pour un nœud ; ailleurs, JavaScript reste le terrain des tutoriels publiés.
Besoin d'aide

Besoin d'aide pour automatiser Code avec n8n ?

L'équipe te répond directement.

Chaque message est lu par une personne.

FAQ

Nœud Code dans n8n : les questions fréquentes

01Le nœud Code est-il inclus dans n8n, sur Cloud comme en auto-hébergé ?
Oui. Code est un nœud core livré avec n8n : rien à installer, aucun coût supplémentaire côté n8n, aussi bien sur n8n Cloud que sur une instance auto-hébergée en Community Edition sous licence Sustainable Use. n8n s'auto-héberge avec Docker ou npm, ou s'utilise sur n8n Cloud, l'offre hébergée par n8n, et un workflow se comporte pareil dans les deux cas. Une nuance concerne ce nœud précis : l'import de modules externes n'est pas supporté sur Cloud, seulement en auto-hébergé, là où tu maîtrises l'environnement.
02Que faut-il configurer avant que le nœud Code fonctionne ?
Rien côté compte. Le nœud Code n'a ni credential, c'est-à-dire aucun identifiant à enregistrer, ni sélecteur Authentication : pas de clé à coller, aucune application à autoriser. Tu choisis un Language, tu choisis un Mode, tu écris le code. C'est aussi une limite dure : un nœud Code ne peut pas accéder aux credentials, par conception, ce qui tient les données d'authentification à l'écart de ton script. Le nœud a en revanche besoin d'un déclencheur devant lui, puisqu'il n'ouvre pas un workflow. Un Schedule Trigger, un Webhook ou le trigger d'un outil font le travail.
03Quelles sont les limites du nœud Code ?
Trois comptent en pratique. Ton code doit renvoyer la structure attendue par n8n, une liste d'objets rangés chacun sous une clé json qui pointe vers un objet ; sinon le nœud échoue avec une erreur sur les items ou sur cette clé qui n'est pas un objet. Ne rien renvoyer, ou renvoyer undefined, produit la même famille d'erreurs. Le bac à sable JavaScript refuse import et export : les modules passent par require, et uniquement en auto-hébergé, module installé et autorisé par variables d'environnement. La version actuelle du nœud est la 2.
04Quand choisir le nœud Code n8n plutôt qu'un autre nœud ?
Prends Code quand la transformation ou la logique n'a pas de nœud à elle : remettre à plat des données imbriquées, calculer une valeur à partir de plusieurs champs, trier ou agréger un lot. Prends autre chose dès qu'un nœud couvre déjà le besoin. Un appel d'API authentifié part dans le nœud HTTP Request, qui gère les identifiants, ou dans le nœud dédié au service. Le routage entre plusieurs identifiants revient à un nœud Switch placé avant eux. Ignorer les fiches déjà traitées lors d'une exécution précédente, c'est le travail du nœud Remove Duplicates, qui garde cet état pour toi.
05n8n ou Make quand il faut du code sur mesure ?
Ça dépend de l'endroit où ce code doit tourner. Make est une plateforme d'automatisation hébergée, sans option d'auto-hébergement, facturée à l'opération : un workflow qui boucle sur beaucoup d'items a donc un coût qui suit le volume. n8n tourne sur ton propre serveur via Docker ou npm, ou sur n8n Cloud si tu préfères ne rien héberger, et le workflow se comporte de la même façon. Si les données doivent rester dans ton infrastructure, ou s'il te faut des modules installés à côté de n8n, l'auto-hébergement tranche. Si toucher un serveur ne te tente pas, compare plutôt les deux offres hébergées.
Hack'celeration Lab

Reçois nos tips intégration chaque semaine.

Pas de spam. Désinscription à tout moment.