# UKP — n8n Fondamentaux

> Source : NotebookLM "70-n8n-Fondamentaux" (14 sources) — https://notebooklm.google.com/notebook/9ab57b09-8557-4bcf-949e-0ec00d43461e
> Généré le : 2026-06-10
> Agents consommateurs : 70 (Automatisation)

---

## AXE 1 — ARCHITECTURE ET CONCEPTS FONDAMENTAUX

n8n est une plateforme d'automatisation "low-code" basée sur des données JSON circulant entre des nœuds.

### Composants de base

| Concept | Définition | Action IA |
|---|---|---|
| **Workflow** | Séquence de nœuds connectés | Concevoir par petits modules réutilisables |
| **Nœud** | Unité d'action (Trigger ou Action) | Vérifier les paramètres I/O de chaque nœud |
| **Items** | Points de données individuels (ex : une ligne de tableau) | Gérer l'itération automatique — n8n boucle par défaut sur les items |
| **Credentials** | Stockage sécurisé des accès API | Utiliser les types "Predefined" prioritairement aux "Generic" |

### Valeurs recommandées

- **Timezone :** Toujours définir `GENERIC_TIMEZONE` sur le fuseau client pour les triggers planifiés
- **Mode d'exécution :** Utiliser les sous-workflows pour les processus complexes afin d'optimiser la mémoire

---

## AXE 2 — TRIGGERS — DÉCLENCHEURS

Les triggers initient le workflow en réponse à un événement externe ou temporel.

### Triggers prioritaires

| Trigger | Paramètres clés | Pièges & Recommandations |
|---|---|---|
| **Webhook** | HTTP Method (POST recommandé), Path, Auth | **Piège :** URL de Test pour les réglages, URL Production pour le live |
| **Schedule** | Interval (Minutes, Hours, Cron), Timezone | **Recommandation :** Sauvegarder et *Publier* pour activer le trigger |
| **Error Trigger** | Workflow de destination | Créer un workflow d'erreur unique pour tous les workflows clients |
| **Execute Sub-workflow** | Input data mode (JSON / Fields) | Toujours définir un exemple JSON pour faciliter le mapping parent/enfant |

**Signal d'alerte :** Un webhook sans authentification (Basic Auth ou Header Auth) est une faille de sécurité critique.

---

## AXE 3 — NŒUDS ESSENTIELS À MAÎTRISER

### Logique et transformation

| Nœud | Configuration recommandée | Cas d'usage |
|---|---|---|
| **HTTP Request** | Batching (Items per batch), Timeout (ms), Auth | Appels API tiers sans intégration native |
| **IF** | Conditions typées (String, Number, Date) | Séparation de flux binaire (True/False) |
| **Merge** | Mode : Combine by Matching Fields | Jointure de données provenant de deux sources (ex : CRM + LinkedIn) |
| **Loop Over Items** | Batch Size : 1 à 10 | Éviter les rate limits des API |
| **Code** | Language : JavaScript — Run Once for Each Item | Transformations complexes impossibles via expressions |

### Valeurs recommandées pour HTTP Request

- **Timeout :** 5 000 ms minimum pour les API lentes
- **Never Error :** Activer si vous devez traiter manuellement les codes 4xx/5xx

---

## AXE 4 — GESTION DES ERREURS ET ROBUSTESSE

### Checklist de robustesse

1. **Retry on Fail :** Activer sur les nœuds réseau (HTTP Request, Gmail) — 3 tentatives
2. **Error Workflow :** Configurer un workflow d'alerte Slack/Email dans les paramètres du workflow
3. **Stop And Error :** Utiliser pour interrompre proprement le flux en cas de donnée métier invalide
4. **Continue On Fail :** Activer uniquement si l'échec du nœud n'est pas bloquant pour la suite

---

## AXE 5 — DÉPLOIEMENT DOCKER (SELF-HOSTED)

### Variables d'environnement essentielles

| Variable | Rôle | Valeur type |
|---|---|---|
| `N8N_ENCRYPTION_KEY` | Chiffre les credentials — unique par instance | Chaîne aléatoire 32+ chars |
| `TZ` | Timezone système | `Europe/Paris` |
| `GENERIC_TIMEZONE` | Timezone des triggers planifiés | `Europe/Paris` |
| `N8N_PAYLOAD_SIZE_MAX` | Taille max payload webhook (défaut 16 MB) | Augmenter si fichiers lourds |
| `DB_TYPE` | Type de base de données | `postgresdb` (prod) / `sqlite` (test) |

### Points critiques Docker

- **Volume :** Monter `n8n_data:/home/node/.n8n` — obligatoire pour ne pas perdre les workflows au redémarrage
- **Database :** PostgreSQL pour les volumes importants d'exécutions (SQLite = dev uniquement)
- **Procédure de mise à jour :** `docker-compose pull` → `docker-compose down` → `docker-compose up -d`
- **Tunnel :** Réservé au test local uniquement — utiliser Nginx/Traefik en production

---

## AXE 6 — LIMITES ET ANTI-PATTERNS

### Limites techniques

| Élément | Limite | Correction |
|---|---|---|
| **Payload Webhook** | 16 MB par défaut | Utiliser stockage externe ou diviser les données |
| **Mémoire VPS** | 2–4 GB courant | Diviser en sous-workflows si données trop volumineuses |
| **Code node** | Boucles imbriquées lourdes | Préférer les nœuds natifs n8n au JavaScript interprété |

### Anti-patterns à corriger

| Signal d'alerte | Correction |
|---|---|
| Workflow linéaire géant (difficile à débugger) | Convertir des blocs en sous-workflows via le menu contextuel |
| Credentials en clair dans les nœuds | Toujours utiliser l'onglet "Credentials" du nœud |
| Boucle IF infinie ("Always Output Data" actif par erreur) | Vérifier les conditions de sortie de chaque branche |
| Tunnel n8n utilisé en production | Remplacer par reverse proxy (Nginx/Traefik) ou n8n Cloud |
| Credentials stockés dans les nœuds Set | Utiliser les Credentials managés de n8n |
