Brouillon auto

Guide n8n : Maîtriser les opérateurs JavaScript

Pourquoi comprendre les opérateurs change tout dans n8n ?

Si vous utilisez n8n, vous savez que les expressions dynamiques sont au cœur des workflows : elles rendent les champs intelligents grâce au moteur JavaScript intégré.
Mais derrière ces doubles accolades {{ … }}, se cache toute la puissance du langage JavaScript moderne.
Savoir comment fonctionnent les opérateurs, c’est comprendre comment rendre vos automatisations à la fois plus fiables, plus claires et plus rapides.

L’objectif de cet article est de vous apprendre à :

  • manipuler les opérateurs JavaScript modernes (?., ??, ?:) dans n8n ;
  • éviter les erreurs courantes liées aux champs manquants ;
  • rendre vos expressions dynamiques lisibles et robustes.

Avant de commencer, ouvrez la console de votre navigateur (F12 → “Console”).
Tous les exemples peuvent y être testés directement. Cela vous permettra de visualiser immédiatement le comportement de chaque opérateur.

1. Les opérateurs logiques : &&, || et !

Ces opérateurs permettent de construire des conditions simples, de vérifier plusieurs règles ou d’inverser une logique.
Ils sont essentiels pour tout automatisateur, car ils décident souvent de l’orientation d’un flux ou du déclenchement d’une action.

🚀 Agents IA n8n : une formation pratique pour accélerer votre productivité avec le No Code !

Les formations n8n vous ouvrent les portes d’une automatisation intelligente, fluide et évolutive. Vous y apprendrez à construire des workflows sur mesure, à interconnecter vos outils métiers, à transformer vos données, et même à intégrer des agents IA ou des systèmes RAG dans vos scénarios. Grâce à une approche progressive et concrète, vous gagnez en clarté, en efficacité, et en autonomie pour faire de n8n un véritable levier de productivité dans vos projets.

  • && (ET logique) : vérifie que les deux conditions sont vraies.
    Si la première est fausse, il s’arrête immédiatement.
  • || (OU logique) : renvoie la première valeur “vraie”.
    Il est souvent utilisé pour fournir une valeur de secours.
  • ! (NON logique) : inverse la valeur booléenne.

Exemples à tester

let user = { active: true, email: "demo@test.com" };

user.active && user.email;  // "demo@test.com"
user.name || "inconnu";     // "inconnu"
!user.active;               // false

Dans n8n

{{ $json.email || "non fourni" }}

Cette expression affichera la valeur de $json.email si elle existe, sinon "non fourni".

Astuce

|| est très pratique mais a une limite : il considère les valeurs 0, false et "" comme fausses.
Si vous voulez une logique plus précise (par exemple, garder false comme valeur légitime), utilisez ??, que nous verrons plus loin.

2. L’opérateur ?. : l’enchaînement optionnel

L’opérateur ?., appelé optional chaining, permet d’accéder à une propriété d’un objet sans provoquer d’erreur si cette propriété n’existe pas.
En JavaScript, accéder à une clé manquante déclenche une erreur : Cannot read properties of undefined.
?. interrompt l’évaluation et renvoie simplement undefined, ce qui évite de casser un workflow.

Exemples à tester

let client = {};
console.log(client.user.email);  // ❌ Erreur
console.log(client.user?.email); // ✅ undefined

Grâce à ?., vous pouvez chaîner plusieurs niveaux :

client?.user?.address?.city; // undefined si un des niveaux est manquant

Dans n8n

{{ $json.user?.email }}

Empêche une erreur si la clé user ou email n’existe pas dans le JSON d’entrée.

Bonnes pratiques

  • Utilisez ?. dès que vous accédez à des champs incertains (API, Webhooks, fichiers JSON incomplets).
  • Combinez-le avec ?? pour ajouter une valeur de secours.

3. L’opérateur ?? : la coalescence nulle

L’opérateur ??, appelé nullish coalescing, permet de définir une valeur par défaut uniquement si la valeur de gauche est null ou undefined.
Contrairement à ||, il ne traite pas 0, false ou "" comme “faux”.
C’est un opérateur de précision, idéal pour les workflows où la distinction entre “vide” et “inexistant” compte.

Exemples à tester

let user = { age: 0, city: null };

user.age || 18;  // 18  (car 0 est considéré "faux")
user.age ?? 18;  // 0   (car 0 est une vraie valeur)

user.city ?? "Non précisée"; // "Non précisée"

Dans n8n

{{ $json.user?.email ?? "non fourni" }}

Renvoie “non fourni” si email est absent, mais conserve une valeur vide si le champ existe.

Astuce

?? est plus fiable que || pour les API renvoyant des nombres ou des booléens.
Par exemple, false ?? true renverra false, là où false || true renverrait true.

4. L’opérateur ternaire ?: : une condition compacte

Le ternaire est une forme abrégée du if / else.
Il permet d’évaluer une condition et de retourner une valeur selon qu’elle est vraie ou fausse.

La syntaxe est :

condition ? valeurSiVrai : valeurSiFausse

C’est l’un des opérateurs les plus utilisés dans n8n, car il permet de personnaliser un message, un score ou une route d’exécution sans créer de nœud conditionnel.

Exemples à tester

let score = 82;
score > 80 ? "Premium" : "Standard"; // "Premium"

Vous pouvez aussi l’impliquer dans une logique plus complexe :

let score = 92;
score > 90 ? "VIP" : score > 70 ? "Premium" : "Standard";

Dans n8n

{{ $json.score > 80 ? "Premium" : "Standard" }}

Bonnes pratiques

  • Ne dépassez pas deux niveaux de ternaires imbriqués, sinon la lecture devient difficile.
  • Pour les cas plus complexes, préférez un nœud If ou Function.

5. Les opérateurs arithmétiques et comparatifs

Les opérateurs arithmétiques servent à effectuer des calculs.
Les comparatifs permettent de tester les valeurs numériques ou textuelles.

Arithmétiques : +, -, *, /, %, **
Comparatifs : >, <, >=, <=, ===, !==

Exemples à tester

let prixHT = 100;
let tva = 0.2;
let prixTTC = prixHT * (1 + tva); // 120
prixTTC > 150 ? "Cher" : "Abordable"; // "Abordable"

Dans n8n

{{ ($json.price * 1.2) > 150 ? "Cher" : "Abordable" }}

Astuce

Toujours utiliser === et !== (comparaison stricte) pour éviter les conversions automatiques de type ("5" == 5 est vrai, mais "5" === 5 est faux).

6. Les opérateurs de structure : [], … et ?.[]

Ces opérateurs permettent de manipuler des objets et des tableaux JSON.

  • [] : accéder à un élément par son index ou une clé dynamique.
  • ... : étendre (fusionner) des objets ou des tableaux.
  • ?.[] : accéder à un tableau de façon sécurisée, sans erreur si vide.

Exemples à tester

let user = { name: "Alice", age: 30 };
let extra = { city: "Paris" };
let full = { ...user, ...extra };  // fusion d’objets
console.log(full); // {name: "Alice", age: 30, city: "Paris"}

let clients = [];
clients?.[0]?.name ?? "Aucun client"; // "Aucun client"

Dans n8n

{{ $json.items?.[0]?.id ?? "Non défini" }}

7. Atelier pratique : combiner les opérateurs

Les opérateurs prennent tout leur sens lorsqu’ils sont combinés dans une logique réelle.
L’objectif est de rendre vos workflows résistants aux champs manquants et de personnaliser les sorties en fonction des données.

Code à tester dans la console

let user = { name: "Léa", score: 72 };
let message = `${user.name} - ${user.score > 80 ? "Premium" : "Standard"} - ${user.address?.city ?? "NC"}`;
console.log(message);

Puis ajoutez :

user.address = { city: "Lyon" };

et relancez le code.
Vous verrez que les trois opérateurs (?., ??, ?:) s’enchaînent pour créer une expression robuste et propre.

8. Application directe dans n8n

Ces opérateurs sont utilisables dans tous les champs d’expression n8n :

  • {{ $json.user?.email ?? "non fourni" }}
  • {{ $json.score > 90 ? "VIP" : "Standard" }}
  • {{ $json.items?.[0]?.id ?? "NC" }}

Ils sont idéaux dans :

  • les nœuds Set, pour formater les données,
  • les If et Switch, pour des logiques dynamiques,
  • les HTTP Request, pour construire des corps JSON conditionnels.

9. Autres opérateurs utiles à connaître

CatégorieOpérateurDescription
TypetypeofRenvoie le type d’une variable ("string", "number", etc.).
Présence'clé' in objetVérifie si une propriété existe.
SuppressiondeleteSupprime une clé d’un objet (à éviter dans les expressions n8n).
Modulo%Donne le reste d’une division (5 % 2 === 1).
Puissance**Élève un nombre à une puissance (3 ** 2 === 9).

10. Bonnes pratiques

  • Testez toujours vos expressions dans le Preview Panel de n8n.
  • Documentez vos expressions complexes avec une Sticky Note.
  • Déplacez toute logique trop longue dans un Function Node.
  • N’utilisez pas de chaînes trop imbriquées : la lisibilité est aussi une forme de performance.
  • Dans un contexte collaboratif, commentez les expressions critiques.

Pour résumé ce guide n8n

Les opérateurs modernes (?., ??, ?:) ne sont pas de simples raccourcis syntaxiques : ce sont des outils de robustesse et de clarté.
Bien utilisés, ils transforment vos workflows n8n en systèmes logiques fiables, capables de s’adapter à des données partielles ou incertaines sans provoquer d’erreur.

En les maîtrisant, vous franchissez un cap : vos automatisations deviennent plus intelligentes, plus modulaires et plus faciles à maintenir.


Franck Scandolera est formateur et consultant en automatisation et data analytics.
Fondateur de Formations-Analytics.com, il accompagne depuis plus de 15 ans les entreprises et indépendants dans la montée en compétences sur n8n, Make, Notion, et les outils no-code / low-code.
Expert reconnu pour ses formations certifiées Qualiopi, il conçoit des parcours pratiques centrés sur la performance, la modularité et la fiabilité des workflows.

« Automatiser, ce n’est pas remplacer l’humain, c’est lui redonner du temps pour ce qui compte. »

Retour en haut
Formations Analytics