Terminez d'abord "Leçon 4 : Ajouter de la logique, des conditions et de la gestion des erreurs" pour débloquer cette leçon.Aller à la leçon précédente

Introduction

Dans n8n, la plupart des workflows peuvent être construits avec des nœuds natifs — chacun étant un wrapper autour d'un service spécifique. Mais l'automatisation métier réelle dépasse rarement ces frontières bien définies. Vous rencontrerez des cas où le service dont vous avez besoin n'a pas de nœud dédié, ou son nœud ne couvre pas un endpoint spécifique, ou vous devez transformer des données d'une manière que les nœuds intégrés rendent pénible. C'est là que les nœuds HTTP Request et Code prennent le relais. Cette leçon se concentre sur ces deux outils : comment appeler n'importe quelle API externe, et comment basculer vers du JavaScript ou Python personnalisé quand les nœuds visuels de n8n ne suffisent pas.

Appel d'API externes avec HTTP Request

Le nœud HTTP Request est votre connecteur universel. Il parle REST nativement et fonctionne avec tout service exposant un endpoint HTTP — même ceux qui n'ont aucun nœud n8n.

Une requête GET typique vers une API publique se présente ainsi dans la configuration du nœud n8n :

bash
curl -X GET "https://api.example.com/v1/customers/42" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Accept: application/json"

Dans l'interface du nœud HTTP Request, vous définissez la méthode sur GET, collez l'URL et ajoutez les deux en-têtes dans Headers. Le nœud renvoie le corps de la réponse sous forme d'objet JSON que les nœuds en aval peuvent référencer via les expressions n8n comme `$json.fieldName`.

Pour les requêtes POST envoyant des données, changez la méthode, définissez Send Body sur JSON et fournissez le corps. Par exemple, créer un enregistrement dans un CRM externe :

json
{
"name": "Acme Corp",
"email": "contact@acme.com",
"source": "n8n-workflow"
}
diagramme montrant le flux de données d'un nœud déclencheur via un nœud HTTP Request vers une API externe puis le retour dans les nœuds n8n en aval

Les options d'authentification comptent. Beaucoup d'API métier utilisent des tokens Bearer, OAuth2 ou des clés API passées en paramètres de requête. n8n supporte tout cela comme types d'identifiants, vous ne codez donc jamais de secrets en dur dans le nœud — référencez-les via le menu déroulant Credentials. Pour les services utilisant un schéma d'authentification personnalisé, définissez Authentication sur Generic Credential Type et fournissez les noms et valeurs d'en-têtes qui référencent les identifiants stockés.

Quand recourir aux nœuds Code

Les nœuds intégrés couvrent les 80% courants — boucles via SplitInBatches, mapping de données via les nœuds Set, logique conditionnelle via les nœuds IF. Les 20% restants sont là où les nœuds Code trouvent leur place : parsing de chaînes complexe, calculs statistiques, appels à des bibliothèques utilitaires, calculs de dates que le nœud Date de n8n gère malaisément, ou tout cas où chaîner cinq nœuds visuels est plus long à construire et plus dur à lire que dix lignes de code.

Le nœud Code dispose de deux modes. Le mode JavaScript s'exécute nativement dans le runtime Node.js de n8n et donne accès à tous les packages npm déjà installés. Le mode Python utilise Pyodide ou un worker Python hébergé selon votre configuration n8n.

Un cas d'usage courant : nettoyer des données mal formatées arrivant d'un webhook avant de les enregistrer. Supposons qu'un formulaire envoie des noms de pays en casses mixtes avec des espaces en fin de chaîne, et que vous ayez besoin des codes pays ISO pour une recherche externe :

javascript
const items = $input.all();
const countryMap = {
"united states": "US",
"united kingdom": "GB",
"vietnam": "VN",
"germany": "DE"
};
return items.map(item => {
const raw = (item.json.country || "").toLowerCase().trim();
const code = countryMap[raw] || "UNKNOWN";
return {
json: {
...item.json,
country_code: code
}
};
});

L'équivalent en mode Python serait quasi identique, en échangeant la syntaxe pour l'accès aux dictionnaires et les compréhensions de listes. Le même nœud gère les deux langages — choisissez celui que votre équipe lit le plus confortablement.

diagramme de décision montrant quand utiliser un nœud natif versus un nœud HTTP Request versus un nœud Code

Combiner HTTP Request et Code dans un même workflow

La vraie puissance apparaît quand vous les combinez. Un pattern courant : un nœud Code transforme les données entrantes, un nœud HTTP Request appelle un service externe pour de l'enrichissement, un second nœud Code post-traite la réponse, et le résultat est envoyé vers votre destination finale.

Exemple de flux — enrichissement de factures :

javascript
// Code node 1: normalize vendor names
const items = $input.all();
const cleaned = items.map(i => ({
json: {
invoice_id: i.json.id,
vendor: i.json.vendor_name.toLowerCase().replace(/[^a-z0-9]/g, "-")
}
}));
return cleaned;

Ensuite, un nœud HTTP Request interroge votre API comptable sur `GET /vendors/{vendor}` pour récupérer les conditions de paiement. Enfin, un nœud Code fusionne les résultats :

javascript
const items = $input.all();
return items.map(i => ({
json: {
invoice_id: i.json.invoice_id,
vendor: i.json.vendor,
payment_terms: i.json.payment_terms || "NET30",
flagged: !i.json.payment_terms
}
}));

Ce troisième nœud signale aussi les factures dont les conditions de paiement sont revenues vides — une petite logique métier qui nécessiterait des nœuds IF supplémentaires si elle était faite de façon visuelle.

Erreurs courantes

Quelques pièges à signaler avant de construire. Premièrement, ne mettez jamais d'identifiants directement dans le corps ou l'URL du nœud — utilisez toujours le système d'identifiants de n8n, sinon les secrets se retrouvent dans les exports de workflow et le contrôle de version. Deuxièmement, le nœud HTTP Request est par défaut sur "JSON response" — si votre API renvoie du XML ou du texte brut, basculez Response Format sinon vous verrez des erreurs de parsing. Troisièmement, les nœuds Code traitent les éléments par lots ; si vous avez besoin d'un état persistant entre les exécutions (compteurs, caches), c'est le rôle d'une base de données ou des static data de n8n, pas d'un nœud Code. Quatrièmement, attention à `await` dans le JavaScript du nœud Code — c'est supporté mais il faut l'envelopper dans une fonction async, ce qui piège beaucoup de débutants.

Résumé

Les nœuds HTTP Request donnent à n8n un moyen universel de parler à n'importe quelle API HTTP. Les nœuds Code comblent les lacunes là où la logique visuelle devient impraticable ou impossible. Les patterns ci-dessus — appels d'API externes, transformation de données et combinaison des deux — couvrent environ neuf intégrations personnalisées sur dix que vous construirez en production. Maîtrisez ces deux types de nœuds et vous ne serez plus limité à ce que les nœuds spécifiques aux services prennent en charge.

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