n8n avancé : Webhook et conception de branches conditionnelles IF/Switch

Le bouton orange « Test Workflow » a été cliqué pour la dix-septième fois.
À chaque fois, il fallait appuyer manuellement pour déclencher l’exécution. Est-ce que ça ne pourrait pas fonctionner comme une vraie API — quelqu’un appelle, et le workflow part tout seul ? On découvre ensuite que n8n a une chose appelée Webhook : en gros, c’est une sonnette ; quelqu’un appuie, et le workflow se met en route.
Cet article parle de comment installer cette sonnette, et surtout de comment, une fois installée, orienter les visiteurs vers des « pièces » différentes selon qui frappe à la porte. Si vous maîtrisez déjà les nœuds de base de n8n mais que vos workflows restent dans un état « passif », en attente, ce texte devrait ouvrir de nouvelles pistes.
Au programme :
- Les paramètres du nœud Webhook qui font mal aux yeux, et comment les configurer
- IF et Switch : deux frères, et lequel choisir selon le cas
- Un cas complet de traitement de commandes, prêt à réutiliser
- Les pièges à éviter en production
1. Configuration approfondie du nœud Webhook
Une précision d’abord : Webhook et déclencheur planifié, ce n’est pas la même chose.
Le déclencheur planifié, c’est un réveil : il sonne à intervalles réguliers, qu’il se passe quelque chose dehors ou non. Le Webhook, c’est la sonnette : quelqu’un appuie, et seulement là ça réagit — c’est le modèle événementiel. L’avantage : pas besoin d’aller regarder la porte toutes les cinq minutes ; le livreur appuie, vous le savez. Les données officielles indiquent que les Webhooks peuvent réduire la charge de 90-95% réduction du polling — en clair, moins de ressources, moins de temps perdu.
1.1 Quelle méthode HTTP choisir
En ouvrant le nœud Webhook, le premier champ est HTTP Method. n8n prend en charge DELETE, GET, HEAD, PATCH, POST et PUT.
Le choix dépend de l’usage :
- POST : recevoir des données (formulaire, notification de nouvelle commande). C’est le cas le plus courant.
- GET : déclenchement simple (lien court : un clic lance le workflow).
- PUT/PATCH : mise à jour (par exemple statut de commande).
En pratique, on utilise surtout POST pour pouvoir envoyer un body.
1.2 Quatre modes de réponse
Le paramètre « Response Mode » définit comment n8n répond à l’appelant :
| Mode | Quand l’utiliser |
|---|---|
| Immediately | Retour 200 immédiat, sans attendre la fin du workflow. Adapté aux tâches en arrière-plan. |
| When Last Node Finishes | Attendre la fin du workflow avant de renvoyer le résultat. Pour renvoyer des données. |
| Using ‘Respond to Webhook’ Node | Un nœud intermédiaire décide de la réponse. Flexible, mais un nœud de plus. |
| Streaming response | Sortie en flux pour les scénarios Agent IA (fonctionnalité récente). |
Attention : avec « Immediately », l’appelant reçoit 200 et part ; s’il y a une erreur plus loin, il ne le saura pas. Pour les tâches en arrière-plan, prévoir une notification d’erreur.
1.3 Paramètres de route façon REST
Le path peut être dynamique, par exemple orders/:orderId. Après les deux-points, le nom de variable est extrait automatiquement de l’URL.
Exemple : appel à /orders/12345, le workflow peut utiliser {{ $params.orderId }} et obtenir 12345. Plus propre que de tout passer en query string.
1.4 Limite de taille du payload
La taille maximale du payload Webhook est de 16MB payload maximal. Au-delà, erreur.
Si de gros fichiers sont nécessaires :
- Modifier la variable d’environnement
N8N_PAYLOAD_SIZE_MAX - Envoyer le fichier vers un stockage objet et ne passer qu’une URL au Webhook
En pratique, 16 Mo suffisent dans la plupart des cas. Pour de vrais gros fichiers, la deuxième option est plus fiable.
2. IF vs Switch : comment choisir le nœud de branche
Ces deux nœuds semblent proches : tous deux répartissent les données. Mal choisi, ça devient pénible — soit une cascade de IF en « spaghetti », soit un Switch surdimensionné pour deux sorties seulement.
2.1 Nœud IF : oui ou non
Le nœud IF n’a que deux sorties : true et false.
Comme à la porte : « C’est du frais ? » Oui → frigo ; non → devant la porte. Simple.
Types de conditions pris en charge : String, Number, Date & Time, Boolean, Array, Object. Exemples :
- String :
contains,starts with,ends with,matches regex - Number :
is greater than,is less than - Boolean :
is true,is false - Array :
contains,length greater than
2.2 Nœud Switch : plusieurs chemins
Le nœud Switch peut avoir plusieurs sorties. Idéal pour « Vous êtes de quel service ? » — finance par ici, technique par là, ops ailleurs.
Deux modes :
- Rules : une condition par sortie, comme un formulaire. Intuitif pour débuter.
- Expression : expression JavaScript qui renvoie le numéro de sortie. Plus souple pour une logique complexe.
2.3 Lequel choisir ? Tableau récapitulatif
| Scénario | Nœud recommandé | Raison |
|---|---|---|
| Vrai / faux uniquement | IF | Deux sorties suffisent |
| Trois branches ou plus | Switch | Un seul nœud, sans imbrication |
| Logique très complexe | Switch + Expression | Le code va plus vite que des dizaines de règles |
| Reconvergence ensuite | IF | Merge + IF, plus naturel |
Astuce : si vous enchaînez IF après IF après IF… il est temps de passer à Switch.
2.4 Comparaisons par type de données
IF et Switch acceptent les mêmes familles :
- String : exists, is empty, contains, matches regex…
- Number : supérieur, inférieur, égal…
- Date & Time : ordre chronologique
- Boolean : vrai / faux
- Array : longueur, élément présent
- Object : exists, empty, not empty
Date & Time est pratique : par exemple vérifier si une commande a dépassé un délai en comparant directement les dates.
3. Cas pratique : traitement automatique du statut de commande
Scène réelle. Un ami tient une petite boutique en ligne : commandes, notifications et appels, tout à la main dans le back-office. « n8n peut faire ça », j’ai dit ; il était sceptique.
Deux semaines plus tard, l’entrepôt lui demandait : « Comment ça se fait qu’on n’en rate plus aucune ? »
3.1 Objectif
Besoin simple :
- Nouvelle commande (pending) → alerter l’entrepôt pour préparer
- Payée (paid) → e-mail de confirmation au client
- Expédiée (shipped) → mise à jour logistique
- Annulée (cancelled) → remboursement
Quatre statuts : Switch en quatre branches.
3.2 Configuration Webhook
Nœud Webhook :
- HTTP Method : POST
- Path :
orders/:orderId - Response Mode : When Last Node Finishes (renvoyer le résultat du traitement)
- Authentication : Header Auth
Sécurité : Header Auth avec un header personnalisé X-Shop-Secret et une chaîne aléatoire. Seuls les systèmes qui connaissent ce secret peuvent appeler.
3.3 Logique Switch
Switch en mode Rules, quatre règles pour quatre statuts :
Règle 1 : {{ $json.status }} equals "pending" → sortie : pending
Règle 2 : {{ $json.status }} equals "paid" → sortie : paid
Règle 3 : {{ $json.status }} equals "shipped" → sortie : shipped
Règle 4 : {{ $json.status }} equals "cancelled" → sortie : cancelled
Fallback Output sur Extra Output : un statut inconnu (par ex. « unknown ») ne bloque pas le flux.
3.4 JSON du workflow complet
Import direct dans n8n :
{
"name": "Order Processing",
"nodes": [
{
"name": "Webhook",
"type": "n8n-nodes-base.webhook",
"position": [250, 300],
"parameters": {
"httpMethod": "POST",
"path": "orders/:orderId",
"responseMode": "responseNode",
"authentication": "headerAuth"
}
},
{
"name": "Switch",
"type": "n8n-nodes-base.switch",
"position": [500, 300],
"parameters": {
"mode": "rules",
"rules": [
{ "output": "pending", "conditions": { "value1": "{{ $json.status }}", "operation": "equals", "value2": "pending" } },
{ "output": "paid", "conditions": { "value1": "{{ $json.status }}", "operation": "equals", "value2": "paid" } },
{ "output": "shipped", "conditions": { "value1": "{{ $json.status }}", "operation": "equals", "value2": "shipped" } },
{ "output": "cancelled", "conditions": { "value1": "{{ $json.status }}", "operation": "equals", "value2": "cancelled" } }
],
"fallbackOutput": "extra"
}
},
{
"name": "Notify Warehouse",
"type": "n8n-nodes-base.slack",
"position": [750, 200]
},
{
"name": "Send Confirmation",
"type": "n8n-nodes-base.emailSend",
"position": [750, 300]
},
{
"name": "Update Tracking",
"type": "n8n-nodes-base.httpRequest",
"position": [750, 400]
},
{
"name": "Process Refund",
"type": "n8n-nodes-base.stripe",
"position": [750, 500]
}
],
"connections": {
"Webhook": { "main": [[{ "node": "Switch", "type": "main", "index": 0 }]] },
"Switch": {
"main": [
[{ "node": "Notify Warehouse", "type": "main", "index": 0 }],
[{ "node": "Send Confirmation", "type": "main", "index": 0 }],
[{ "node": "Update Tracking", "type": "main", "index": 0 }],
[{ "node": "Process Refund", "type": "main", "index": 0 }]
]
}
}
}
Coller ce JSON dans n8n pour importer. Remplacer la configuration Slack, Email, HTTP Request et Stripe par la vôtre.
3.5 Tests et mise en production
n8n expose deux URL :
- Test URL : développement ; exécution seulement lors des tests manuels
- Production URL : active après activation du workflow ; service réel
Déroulé type :
- Appeler la Test URL, vérifier l’ordre des nœuds et le flux de données
- Si tout est bon, activer le switch « Active » en haut à droite
- Donner la Production URL à la plateforme e-commerce (ou passer par Zapier)
Test avec curl :
curl -X POST https://your-n8n-instance.com/webhook/orders/12345 \
-H "Content-Type: application/json" \
-H "X-Shop-Secret: your-secret-key" \
-d '{"status": "paid", "customer_email": "[email protected]"}'
Réponse 200 et logs d’exécution : c’est bon.
4. Production : pièges à éviter
Un workflow qui tourne en test n’est pas encore prêt pour la prod. Quelques erreurs déjà vécues.
4.1 Ne pas négliger l’authentification
Header Auth, c’est la base. Si l’IP de l’appelant est fixe, ajouter une liste blanche IP renforce la sécurité.
Dans les options avancées du nœud Webhook, paramètre « IP Whitelist » : liste des IP autorisées. Les autres sont refusées avant même le déclenchement du workflow.
JWT Auth est plus robuste mais plus lourd à configurer. Pour un système maîtrisé en interne, Header Auth + IP Whitelist suffisent souvent.
4.2 Les erreurs doivent remonter
En cas d’échec du Webhook, l’appelant peut ne voir qu’un 500 sans détail côté n8n.
Ajouter un nœud Error Trigger qui envoie une notification Slack en cas d’erreur :
Error Trigger → Slack (message d'erreur + ID d'exécution)
Un problème la nuit apparaît sur le téléphone, sans attendre les plaintes du lendemain matin.
4.3 Astuce performance
Si le workflow enchaîne beaucoup d’API externes (stock, e-mail, paiement), la réponse peut être lente ; l’appelant peut time-out.
Dans ce cas, mode Immediately : 200 tout de suite, traitement en arrière-plan. Inconvénient : l’appelant n’a pas le résultat final sans autre canal.
Adapté : tâches batch, notifications non critiques. Peu adapté : confirmation de paiement, requêtes temps réel.
4.4 Déboguer avec les logs Execution
n8n enregistre chaque exécution. Menu « Executions » à gauche : entrées/sorties, durée par nœud, erreurs.
Détail : par défaut environ 1000 exécutions conservées. Fort volume : variable EXECUTIONS_DATA_MAX_AGE ou export périodique.
Les logs Test URL et Production URL sont séparés — ne pas les mélanger.
Synthèse
Le Webhook, c’est la sonnette de n8n : quelqu’un appuie, le workflow travaille. À la configuration, soigner HTTP Method et Response Mode ; utiliser les paramètres de route quand c’est possible, plutôt que d’alourdir la query string.
IF ou Switch ? Deux branches → IF ; trois ou plus → Switch. Éviter les IF imbriqués.
Le workflow commandes est réutilisable tel quel ; adapter Slack, Email et Stripe. Tester avec la Test URL avant d’activer.
Enfin, sécurité : Header Auth au minimum, IP Whitelist si possible, et notification d’erreur — sinon une panne peut passer inaperçue.
Des questions en commentaire, ou cherchez dans la communauté n8n : il y a beaucoup d’expérience partagée là-bas.
Configurer un workflow n8n Webhook
Construire de zéro un workflow de traitement de commandes déclenché par Webhook, avec branches conditionnelles et authentification
⏱️ Estimated time: 30 min
- 1
Step 1: Configurer le nœud Webhook
Paramètres de base :
• HTTP Method : POST (réception de données)
• Path : orders/:orderId (paramètre de route dynamique)
• Response Mode : When Last Node Finishes (renvoyer le résultat du traitement)
• Authentication : Header Auth (sécurité) - 2
Step 2: Concevoir les branches Switch
Quatre règles de branche :
• pending → alerter l'entrepôt
• paid → e-mail de confirmation
• shipped → mise à jour logistique
• cancelled → traitement du remboursement
Définir Fallback Output sur Extra Output pour les statuts inconnus. - 3
Step 3: Ajouter les nœuds de traitement par branche
Un nœud par sortie :
• Slack : notification entrepôt
• Email : confirmation client
• HTTP Request : mise à jour logistique
• Stripe : remboursement
Remplacer par vos propres services. - 4
Step 4: Configurer l'authentification
Sécurité en production :
• Header Auth : X-Shop-Secret personnalisé
• IP Whitelist : limiter les IP appelantes
• Error Trigger : notification Slack en cas d'erreur - 5
Step 5: Tester et activer le workflow
Vérification :
• Tester avec Test URL et curl
• Consulter les logs Execution pour le flux de données
• Activer la Production URL une fois validé
• Configurer l'URL sur la plateforme e-commerce
FAQ
Quelle différence entre Webhook et déclencheur planifié ?
Comment choisir entre le nœud IF et le nœud Switch ?
• Deux branches (true/false) → nœud IF, simple et efficace
• Trois branches ou plus → nœud Switch, évite les IF imbriqués
• Logique complexe → Switch + mode Expression, expressions JavaScript plus souples
Dès que les IF s'empilent, envisager Switch.
Quelle est la limite de taille du payload Webhook ?
Comment sécuriser un Webhook ?
• Header Auth : header et secret personnalisés
• IP Whitelist : restreindre les adresses autorisées
• JWT Auth : plus sûr, configuration plus lourde
En développement, Header Auth suffit souvent ; en production, ajouter IP Whitelist si possible.
Quelle différence entre Immediately et When Last Node Finishes ?
Comment déboguer un workflow Webhook ?
• Menu Executions à gauche pour chaque appel
• Entrées/sorties, durées, messages d'erreur
• Logs Test URL et Production URL séparés
• Environ 1000 exécutions conservées par défaut ; réglable par variable d'environnement
Quels points de vigilance en production ?
• Authentification (Header Auth + IP Whitelist si possible)
• Notification d'erreurs (Error Trigger + Slack)
• Fort trafic : envisager Immediately + traitement asynchrone
• Exporter ou purger les logs d'exécution régulièrement
• Tester avec Test URL avant d'activer la Production URL
9 min de lecture · Publié le: 9 avr. 2026 · Mis à jour le: 27 juil. 2026
Guide pratique n8n
Si vous arrivez depuis la recherche, le plus rapide est de passer à l’article précédent ou suivant de cette série.
Précédent
Créer un workflow n8n : connexion des nœuds et conception de scénarios d'automatisation
Guide détaillé pour construire des workflows n8n : types de nœuds, configuration des déclencheurs, logique de passage des données, cas pratiques (alerte météo, notification de formulaire, synchronisation, intégration IA).
Partie 1 sur 3
Suivant
Automatisation des workflows IA : n8n + Agent, du débutant à l'expert
De Zapier à n8n, parcours de l'automatisation des workflows IA. Maîtrisez l'Agent n8n, l'intégration MCP et un cas client support intelligent pour construire des flux efficaces.
Partie 3 sur 3



Commentaires
Connectez-vous avec GitHub pour laisser un commentaire