Terminez d'abord "Leçon 3 : Méthodes d'authentification — Clés API, OAuth2 et en-têtes" pour débloquer cette leçon.Aller à la leçon précédente

Introduction

Lorsque vous connectez plusieurs services dans n8n, les données brutes provenant d'une API correspondent rarement au format attendu par la suivante. Vous devez remodeler les champs, filtrer les enregistrements non pertinents et acheminer les données vers différentes branches selon des conditions. n8n fournit trois nœuds principaux pour cela : Set (pour le mapping simple de champs), Function (pour une logique JavaScript personnalisée) et IF (pour le routage conditionnel). Maîtriser ces nœuds transforme un workflow linéaire en une automatisation intelligente et multi-chemins.

Remodeler les données avec le nœud Set

Le nœud Set vous permet de créer de nouveaux champs ou de renommer ceux existants sans écrire de code. C'est l'outil de prédilection pour les transformations simples comme extraire une propriété imbriquée, combiner des champs ou ajouter des valeurs statiques.

Supposons qu'un webhook délivre ce payload :

json
{
"user": {
"firstName": "Alice",
"lastName": "Johnson"
},
"orderTotal": 149.99
}

Vous voulez l'envoyer vers un CRM qui attend `full_name` et `amount`. Ajoutez un nœud Set après le webhook, configurez deux champs : `full_name` avec l'expression `{{json.user.firstName}} {{json.user.lastName}}`, et `amount` avec `{{$json.orderTotal}}`. La sortie devient :

json
{
"full_name": "Alice Johnson",
"amount": 149.99
}

Le nœud Set prend en charge les expressions utilisant les doubles accolades. Vous pouvez référencer `json‘pourl′eˊleˊmentcourant,‘json` pour l'élément courant, `node['NodeName'].json` pour la sortie d'un autre nœud, et des fonctions intégrées comme `now‘ou‘now` ou `today`. Pour les opérations arithmétiques ou sur chaînes de caractères, écrivez du JavaScript classique entre les accolades : `{{$json.price * 1.1}}` ajoute une marge de 10%.

diagramme montrant les données du webhook entrant dans le nœud Set, les champs étant remappés, puis la sortie vers le nœud CRM

Logique personnalisée avec le nœud Function

Lorsque les expressions du nœud Set deviennent trop complexes, passez au nœud Function. Il exécute du JavaScript arbitraire et vous donne le contrôle total sur le tableau d'entrée. Le nœud reçoit `items` (un tableau d'objets, chacun avec une propriété `json`) et doit retourner un tableau dans la même structure.

Exemple : filtrer les commandes inférieures à 100 $ et ajouter un niveau de remise :

javascript
for (let i = 0; i < items.length; i++) {
const order = items[i].json;
if (order.amount < 100) {
items.splice(i, 1);
i--;
continue;
}
order.discount_tier = order.amount >= 500 ? 'gold' : 'silver';
}
return items;

Cela modifie le tableau items en place. Pour des transformations complexes, vous pouvez mapper sur les items et retourner un nouveau tableau :

javascript
return items.map(item => ({
json: {
customer_id: item.json.user.id,
total: Math.round(item.json.amount),
tags: item.json.categories.join(', ')
}
}));

Le nœud Function a accès à la bibliothèque standard Node.js et à quelques helpers comme `$input.all()` pour obtenir tous les items entrants. Évitez les opérations asynchrones sauf si vous comprenez la gestion des promises ; pour les appels API à l'intérieur des fonctions, utilisez plutôt le nœud HTTP Request et chaînez-les.

Routage conditionnel avec le nœud IF

Le nœud IF divise votre workflow en deux branches : true et false. Il évalue une ou plusieurs conditions sur chaque item et envoie les items correspondants vers le chemin correspondant.

Ajoutez un nœud IF après votre source de données. Définissez le type de condition sur `Number` pour comparer des montants, `String` pour la correspondance de texte, `Boolean` pour des flags. Vous pouvez combiner plusieurs conditions avec une logique AND/OR.

Exemple de workflow : un webhook Typeform envoie des réponses à un sondage. Utilisez le nœud IF avec la condition `{{$json.score}} > 8`. Connectez la sortie true à un nœud Slack qui publie les retours positifs dans un canal. Connectez la sortie false à un nœud Google Sheets qui consigne les problèmes pour examen.

javascript
// Condition in IF node:
// Value 1: {{$json.score}}
// Operation: Larger
// Value 2: 8

Le nœud IF ne modifie pas les données ; il se contente d'acheminer. Si vous devez transformer avant d'acheminer, placez un nœud Set ou Function avant le nœud IF. Si les deux branches ont besoin de la même action de suivi, fusionnez-les à l'aide d'un nœud Merge (choisissez le mode « Append » pour combiner les sorties).

diagramme montrant les données entrant dans le nœud IF, se divisant en branche true allant vers Slack et branche false allant vers Google Sheets

Combiner les nœuds dans des workflows multi-services

Les workflows réels enchaînent ces nœuds. Pattern : Webhook → Function (nettoyer les données) → IF (router par type) → Set (formater pour API A) → HTTP Request (envoyer à API A), et la branche false va vers Set (formater pour API B) → HTTP Request (envoyer à API B).

Erreur fréquente : oublier que chaque nœud traite les items indépendamment. Si un nœud Function filtre des items, les nœuds en aval ne voient que les items restants. Si vous avez besoin des données originales plus tard, stockez-les dans une variable à l'intérieur du nœud Function ou utilisez un nœud Set tôt dans le flux pour copier les champs dont vous aurez besoin.

Autre piège : des expressions complexes dans le nœud Set qui échouent silencieusement. Testez toujours avec Execute Workflow et inspectez la sortie de chaque nœud. Si une expression retourne undefined, le champ est omis de la sortie. Utilisez `{{$json.field || 'default'}}` pour fournir des valeurs de secours.

Résumé

Le nœud Set gère le mapping simple de champs et les expressions. Le nœud Function offre un contrôle JavaScript complet pour le filtrage, l'agrégation et les transformations complexes. Le nœud IF achemine les données vers différents chemins selon des conditions. Combinez-les pour construire des workflows qui s'adaptent intelligemment aux données entrantes. Validez toujours les transformations en exécutant le workflow avec des données d'exemple réelles et en vérifiant les sorties intermédiaires avant de connecter des services 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
Leçon 4 : Transformer et acheminer les données entre les services