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 :
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 :
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 :
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.
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 :
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 :
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.
Point de contrôle de la leçon
Révisez la leçon et recevez des conseils sur votre travail.