Terminez d'abord "Leçon 4 : Travailler avec les nœuds et connecter des services externes" pour débloquer cette leçon.Aller à la leçon précédente

Que sont les expressions dans n8n

Les expressions n8n permettent de référencer des données dynamiquement au lieu de coder des valeurs en dur. Lorsque vous connectez des nœuds entre eux, les données circulent d'un nœud au suivant sous forme d'objets JSON. Les expressions vous offrent un moyen d'accéder à ce JSON et d'en extraire exactement la valeur dont vous avez besoin — ou de la transformer avant de la transmettre.

Chaque expression dans n8n est entourée par des doubles accolades. À l'intérieur de ces accolades, vous écrivez du code compatible JavaScript, et n8n l'évalue à l'exécution lorsque le workflow se déclenche.

javascript
{{ $json.email }}

Cette expression lit le champ email depuis les données d'entrée du nœud courant. C'est simple, mais ce pattern constitue le fondement de tout ce que vous ferez avec le mapping de données.

diagramme montrant les données circulant du Nœud A (sortie JSON) vers un évaluateur d'expression, puis vers le Nœud B en tant que valeur résolue

Variables clés que vous utiliserez au quotidien

n8n expose plusieurs variables intégrées à l'intérieur des expressions. Maîtriser ces trois-ci couvre la grande majorité des workflows réels.

La première est $json, qui fait référence à l'objet de données de l'item courant. Si un nœud précédent a renvoyé un enregistrement utilisateur, $json.name vous donne le champ nom de l'utilisateur.

La deuxième est $node, qui permet de revenir à n'importe quel nœud nommé dans le workflow. C'est utile lorsque vous avez besoin de données provenant d'un nœud qui n'est pas le prédécesseur immédiat.

javascript
{{ $node["HTTP Request"].json.body.id }}

La troisième est $now, qui renvoie le timestamp courant sous forme d'objet DateTime Luxon. Vous pouvez appeler directement les méthodes Luxon dessus.

javascript
{{ $now.toISO() }}

n8n intègre Luxon pour la manipulation des dates et expose également la bibliothèque standard JavaScript complète : les méthodes de chaînes, Math et les utilitaires JSON fonctionnent tous dans les expressions.

Transformer les données avec des expressions

Les expressions ne servent pas uniquement à lire des valeurs — vous pouvez les transformer inline. Les patterns courants incluent la concaténation de chaînes, le formatage de nombres, les conditions et les opérations sur les tableaux.

Construire un nom complet à partir de deux champs :

javascript
{{ $json.firstName + " " + $json.lastName }}

Une condition simple pour définir une valeur de secours lorsqu'un champ pourrait être absent :

javascript
{{ $json.phone ? $json.phone : "N/A" }}

Formater une date arrivant sous forme de timestamp Unix :

javascript
{{ DateTime.fromSeconds($json.createdAt).toFormat("yyyy-MM-dd") }}

Le nœud Set est l'endroit le plus naturel pour utiliser ces expressions. Ajoutez-le entre deux nœuds chaque fois que vous devez renommer des champs, combiner des valeurs ou supprimer les champs dont vous n'avez pas besoin en aval.

diagramme : le Nœud Webhook produit du JSON brut → le Nœud Set applique des expressions pour remodeler les champs → le Nœud HTTP Request envoie un payload propre

Mapper les données entre les nœuds

Le mapping de données consiste à relier la sortie d'un nœud à l'entrée d'un autre. Dans l'interface n8n, vous pouvez glisser un champ directement sur un paramètre cible, et n8n écrit l'expression pour vous. Mais comprendre ce qu'elle génère vous aide à la corriger lorsque quelque chose se passe mal.

Lorsqu'un nœud renvoie plusieurs items, $json fait référence à chaque item individuellement au fur et à mesure que n8n itère. Ainsi, si votre nœud précédent a renvoyé 50 lignes, chaque expression est évaluée 50 fois — une fois par item. C'est le comportement par défaut et il ne nécessite aucune configuration supplémentaire.

Si vous avez besoin d'agréger tous les items dans une seule structure — par exemple, pour construire un tableau d'emails à partir de toutes les lignes — utilisez le nœud Code avec $input.all().

javascript
const emails = $input.all().map(item => item.json.email);
return [{ json: { emailList: emails } }];

Le nœud Code exécute du JavaScript complet et constitue l'outil adapté lorsqu'une expression à l'intérieur d'un paramètre de champ devient trop complexe à lire.

Erreurs courantes et comment les éviter

L'erreur la plus fréquente est de référencer un champ qui n'existe pas, ce qui renvoie undefined et peut silencieusement casser les nœuds en aval. Utilisez toujours le panneau de prévisualisation de l'éditeur d'expressions — il affiche la valeur résolue avant que vous n'enregistriez.

Un deuxième problème courant est d'oublier que $json fait référence à l'entrée du nœud courant, et non à sa sortie. Si vous êtes dans un nœud Set et que vous voulez des données de deux étapes en arrière, utilisez $node["NodeName"].json à la place.

Une troisième erreur consiste à traiter $now comme une simple chaîne de caractères. C'est un objet Luxon, donc le comparer directement à une chaîne de date ne fonctionnera pas. Convertissez les deux côtés dans le même type d'abord.

javascript
{{ $now.toISODate() === "2025-01-15" }}

Résumé

Les expressions sont ce qui rend les workflows n8n dynamiques. Le pattern central — doubles accolades autour d'une expression JavaScript lisant depuis $json, $node ou $now — couvre la plupart des scénarios. Utilisez le nœud Set pour le mapping et le renommage de champs simples, et passez au nœud Code lorsque la logique devient complexe. Vérifiez toujours les expressions dans le panneau de prévisualisation avant de lancer un workflow en production.

Entraînement

Point de contrôle de la leçon

Révisez la leçon et recevez des conseils sur votre travail.

0/1
Répondu · 0/1