Polydesk-logotype
Polydesk.ai — Header
n8n : Automatisation Open-Source avec IA, Workflows et Agents *,*::before,*::after{margin:0;padding:0;box-sizing:border-box} :root{ –bg:#fafbfd;–bg-card:#fff;–bg-hover:#f7f8fb;–bg-surface:#f1f3f8; –border:#e2e5ee;–border-hover:#c8cdd9; –text:#1e1e2e;–text-2:#4b5563;–text-3:#6b7280; –purple:#7c3aed;–pink:#c026d3;–orange:#d97706;–blue:#3b6cf5; –teal:#0d9488;–green:#059669;–red:#dc2626;–cyan:#0891b2; –tool-color:#ea4b71; –r-sm:8px;–r-md:12px;–r-lg:16px;–r-xl:20px;–r-pill:999px; –f-d:’Sora’,sans-serif;–f-b:’Instrument Sans’,sans-serif;–f-m:’JetBrains Mono’,monospace; –max:1200px;–ease:.3s cubic-bezier(.4,0,.2,1); –sh-s:0 1px 2px rgba(0,0,0,.04);–sh-m:0 2px 8px rgba(0,0,0,.05),0 1px 3px rgba(0,0,0,.04); –sh-l:0 4px 20px rgba(0,0,0,.06),0 2px 6px rgba(0,0,0,.03);–sh-xl:0 8px 32px rgba(0,0,0,.08),0 2px 8px rgba(0,0,0,.04); } html{scroll-behavior:smooth;overflow-x:hidden} body{font-family:var(–f-b);background:var(–bg);color:var(–text);line-height:1.7;-webkit-font-smoothing:antialiased;overflow-x:hidden;word-wrap:break-word;overflow-wrap:break-word} a{color:inherit;text-decoration:none} a.sp-card,a.sp-card *,a.related-link,a.related-link *{text-decoration:none!important} .ct{max-width:var(–max);margin:0 auto;padding:0 24px;overflow:hidden} /* ── Blur Orbs ── */ .blur-orbs{position:fixed;inset:0;pointer-events:none;z-index:0;overflow:hidden} .blur-orb{position:absolute;border-radius:50%;filter:blur(100px);animation:od 22s ease-in-out infinite alternate} .o1{width:500px;height:500px;background:rgba(234,75,113,.10);top:-8%;right:-6%;animation-duration:24s} .o2{width:420px;height:420px;background:rgba(124,58,237,.10);top:10%;left:-10%;animation-duration:28s;animation-direction:alternate-reverse} .o3{width:350px;height:350px;background:rgba(192,38,211,.08);bottom:20%;right:20%;animation-duration:26s;animation-delay:-8s} .o4{width:300px;height:300px;background:rgba(5,150,105,.08);bottom:-5%;left:15%;animation-duration:30s;animation-direction:alternate-reverse;animation-delay:-12s} @keyframes od{0%{transform:translate(0,0) scale(1)}100%{transform:translate(40px,30px) scale(1.15)}} /* ═══ HERO ═══ */ .hero{padding:72px 0 48px;position:relative;z-index:1} .hero-inner{display:flex;align-items:center;gap:20px;flex-wrap:wrap} .hero-logo{width:64px;height:64px;border-radius:var(–r-lg);border:1px solid var(–border);background:var(–bg-card);display:flex;align-items:center;justify-content:center;box-shadow:var(–sh-m);overflow:hidden;flex-shrink:0} .hero-logo img{width:40px;height:40px;object-fit:contain} .hero-text{flex:1;min-width:280px} .hero-text h1{font-family:var(–f-d);font-size:clamp(1.8rem,4vw,2.6rem);font-weight:800;line-height:1.12;letter-spacing:-1.2px;margin-bottom:6px} .hero-tagline{font-size:1.05rem;color:var(–text-2);margin-bottom:14px;max-width:560px} .hero-badges{display:flex;gap:8px;flex-wrap:wrap;align-items:center} .h-badge{font-family:var(–f-m);font-size:.68rem;font-weight:600;padding:5px 14px;border-radius:var(–r-pill);display:inline-flex;align-items:center;gap:5px} .h-badge-cat{background:rgba(234,75,113,.06);border:1px solid rgba(234,75,113,.18);color:var(–tool-color)} .h-badge-oss{background:rgba(5,150,105,.06);border:1px solid rgba(5,150,105,.18);color:var(–green)} .hero-cta{margin-left:auto;flex-shrink:0} .hero-cta a{font-family:var(–f-d);font-size:.85rem;font-weight:600;padding:11px 24px;border-radius:var(–r-pill);background:var(–tool-color);color:#fff;display:inline-flex;align-items:center;gap:7px;transition:all var(–ease);box-shadow:0 2px 8px rgba(234,75,113,.2)} .hero-cta a:hover{transform:translateY(-2px);box-shadow:0 4px 16px rgba(234,75,113,.3)} /* ═══ LAYOUT 2-COL ═══ */ .layout{display:grid;grid-template-columns:1fr 300px;gap:48px;position:relative;z-index:1;padding-bottom:100px} @media(max-width:960px){.layout{grid-template-columns:1fr;gap:32px}.sidebar{display:none}} /* ── MAIN ── */ .main h2{font-family:var(–f-d);font-size:1.35rem;font-weight:700;letter-spacing:-.5px;margin:48px 0 16px;padding-top:24px;scroll-margin-top:24px} .main h2:first-child{margin-top:0} .main h3{font-family:var(–f-d);font-size:1.08rem;font-weight:650;letter-spacing:-.3px;margin:28px 0 10px} .main p{font-size:.95rem;color:var(–text-2);margin-bottom:16px;line-height:1.75} .main strong{color:var(–text);font-weight:600} .main a{color:var(–purple);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px} .main a:hover{color:var(–pink)} .main code{font-family:var(–f-m);font-size:.84em;background:#f1f0f5;color:var(–purple);padding:.12em .38em;border-radius:4px} /* ── PRICING TABLE ── */ .table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:20px 0 24px} .table-wrap table{width:100%;border-collapse:separate;border-spacing:0;border:1px solid var(–border);border-radius:var(–r-lg);overflow:hidden;font-size:.9rem;line-height:1.6;min-width:600px} .table-wrap thead{background:linear-gradient(135deg,var(–purple),var(–pink),var(–orange));color:#fff} .table-wrap th{padding:.75rem 1rem;font-weight:600;text-align:left;border:none;font-family:var(–f-d);font-size:.82rem;letter-spacing:.01em} .table-wrap td{padding:.65rem 1rem;border-top:1px solid var(–border)} .table-wrap tbody tr:nth-child(even){background:var(–bg-surface)} .table-wrap tbody tr{transition:background var(–ease)} .table-wrap tbody tr:hover{background:rgba(124,58,237,.04)} /* ── CALLOUT ── */ .callout{position:relative;padding:16px 18px 16px 48px;margin:20px 0;border-radius:var(–r-md);border:1px solid var(–border);background:var(–bg-card);font-size:.9rem;line-height:1.65;box-shadow:var(–sh-s);color:var(–text-2)} .callout::before{position:absolute;left:16px;top:16px;font-size:1.15rem} .callout strong{display:block;margin-bottom:4px;color:var(–text);font-size:.92rem} .callout-info{border-left:4px solid var(–purple)} .callout-info::before{content: »ℹ️ »} .callout-tip{border-left:4px solid var(–green);background:#f0fdf9} .callout-tip::before{content: »💡 »} .callout-warning{border-left:4px solid var(–orange);background:#fffbeb} .callout-warning::before{content: »⚠️ »} /* ── VERDICT BOX ── */ .verdict{background:var(–bg-card);border:1px solid var(–border);border-radius:var(–r-xl);padding:32px;margin:32px 0 40px;box-shadow:var(–sh-m);position:relative;overflow:hidden} .verdict::before{content: »;position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(–tool-color),var(–purple),var(–pink))} .verdict-title{font-family:var(–f-d);font-size:1.15rem;font-weight:700;margin-bottom:14px;display:flex;align-items:center;gap:10px} .verdict-title .verdict-icon{font-size:1.3rem} .verdict-summary{font-size:.93rem;color:var(–text-2);line-height:1.75;margin-bottom:24px} .verdict-lists{display:grid;grid-template-columns:1fr 1fr;gap:24px} @media(max-width:600px){.verdict-lists{grid-template-columns:1fr}} .verdict-col h4{font-family:var(–f-d);font-size:.85rem;font-weight:700;margin-bottom:12px;display:flex;align-items:center;gap:6px} .verdict-col ul{list-style:none;display:flex;flex-direction:column;gap:10px} .verdict-col li{font-size:.9rem;color:var(–text-2);padding-left:22px;position:relative;line-height:1.6} .verdict-col li::before{content: »;position:absolute;left:0;top:7px;width:10px;height:10px;border-radius:50%} .v-pros li::before{background:rgba(5,150,105,.12);border:2px solid var(–green)} .v-cons li::before{background:rgba(220,38,38,.08);border:2px solid var(–red)} .verdict-ideal{margin-top:24px;padding-top:18px;border-top:1px solid var(–border);font-size:.9rem;color:var(–text-2);line-height:1.7} .verdict-ideal strong{color:var(–tool-color)} /* ── SUB-PAGES GRID ── */ .sp-section{margin-top:48px} .sp-section h2{margin-top:0!important} .sp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;margin-top:20px} .sp-card{position:relative;background:var(–bg-card);border:1px solid var(–border);border-radius:var(–r-lg);padding:22px 20px;transition:all var(–ease);cursor:pointer;display:flex;flex-direction:column;gap:8px;box-shadow:var(–sh-s);overflow:hidden} .sp-card::before{content: »;position:absolute;top:0;left:0;right:0;height:2px;background:var(–tool-color);opacity:0;transition:opacity var(–ease)} .sp-card:hover{border-color:var(–border-hover);transform:translateY(-3px);box-shadow:var(–sh-l)} .sp-card:hover::before{opacity:1} .sp-card-emoji{font-size:1.5rem} .sp-card-title{font-family:var(–f-d);font-size:.92rem;font-weight:600;line-height:1.3;transition:color .2s} .sp-card:hover .sp-card-title{color:var(–tool-color)} .sp-card-desc{font-size:.82rem;color:var(–text-3);line-height:1.55} .sp-card-type{font-family:var(–f-m);font-size:.6rem;font-weight:600;text-transform:uppercase;letter-spacing:1px;padding:4px 10px;border-radius:var(–r-pill);width:fit-content;margin-top:auto} .sp-card-type.guide{color:var(–teal);background:rgba(13,148,136,.06);border:1px solid rgba(13,148,136,.14)} .sp-card-type.vs{color:var(–orange);background:rgba(217,119,6,.06);border:1px solid rgba(217,119,6,.14)} .sp-card-type.ref{color:var(–purple);background:rgba(124,58,237,.06);border:1px solid rgba(124,58,237,.14)} /* ── SIDEBAR ── */ .sidebar{position:relative} .sidebar-sticky{position:sticky;top:24px;display:flex;flex-direction:column;gap:20px} /* TOC */ .toc{background:var(–bg-card);border:1px solid var(–border);border-radius:var(–r-lg);padding:20px;box-shadow:var(–sh-s)} .toc-title{font-family:var(–f-d);font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;color:var(–text-3);margin-bottom:14px;padding-bottom:12px;border-bottom:2px solid transparent;border-image:linear-gradient(90deg,var(–purple),var(–pink),var(–orange)) 1} .toc ul{list-style:none;display:flex;flex-direction:column;gap:4px} .toc a{display:block;font-size:.85rem;color:var(–text-2);padding:8px 14px;border-left:2px solid transparent;border-radius:0 var(–r-sm) var(–r-sm) 0;transition:all var(–ease)} .toc a:hover,.toc a.active{color:var(–purple);border-left-color:var(–purple)} /* RELATED */ .related{background:var(–bg-card);border:1px solid var(–border);border-radius:var(–r-lg);padding:20px;box-shadow:var(–sh-s)} .related-title{font-family:var(–f-d);font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;color:var(–text-3);margin-bottom:14px} .related-links{display:flex;flex-direction:column;gap:8px} .related-link{font-size:.85rem;color:var(–text-2);padding:8px 14px;border-radius:var(–r-sm);border:1px solid var(–border);transition:all var(–ease);display:flex;align-items:center;gap:8px} .related-link:hover{border-color:var(–purple);color:var(–purple);background:rgba(124,58,237,.03)} .related-link .rl-emoji{font-size:1rem;flex-shrink:0} /* ═══ RESPONSIVE ═══ */ @media(max-width:768px){ .ct{padding:0 16px} /* Hero — reduce top padding, stack vertically */ .hero{padding:24px 0 20px} .hero-inner{flex-direction:column;align-items:flex-start;gap:12px} .hero-logo{width:48px;height:48px} .hero-logo svg{width:30px;height:30px} .hero-text{min-width:0;width:100%} .hero-text h1{font-size:1.55rem;letter-spacing:-.6px;margin-bottom:4px} .hero-tagline{font-size:.9rem;margin-bottom:10px;line-height:1.6} .h-badge{font-size:.64rem;padding:4px 11px} .hero-cta{margin-left:0;margin-top:6px;width:100%} .hero-cta a{width:100%;justify-content:center;padding:13px 20px;border-radius:var(–r-md);font-size:.88rem} /* Main — safe text wrapping */ .main{max-width:100%;overflow:hidden} .main h2{font-size:1.15rem;margin:28px 0 10px;padding-top:14px} .main h3{font-size:.98rem;margin:18px 0 8px} .main p{font-size:.88rem;margin-bottom:12px;line-height:1.7} .main strong{word-break:break-word} /* Callouts */ .callout{padding:12px 12px 12px 38px;margin:14px 0;font-size:.84rem;line-height:1.6} .callout::before{left:11px;top:12px;font-size:1rem} .callout strong{font-size:.86rem} /* Verdict */ .verdict{padding:18px 14px;margin:20px 0 24px;border-radius:var(–r-md)} .verdict-title{font-size:.98rem;gap:8px} .verdict-title .verdict-icon{font-size:1.1rem} .verdict-summary{font-size:.86rem;margin-bottom:16px;line-height:1.7} .verdict-lists{grid-template-columns:1fr;gap:16px} .verdict-col h4{font-size:.8rem} .verdict-col li{font-size:.84rem;padding-left:20px;line-height:1.55} .verdict-col li::before{width:8px;height:8px;top:6px} .verdict-ideal{font-size:.84rem;margin-top:16px;padding-top:12px;line-height:1.6} /* Table — edge-to-edge scroll */ .table-wrap{margin:12px -16px 16px;padding:0 16px} .table-wrap table{font-size:.78rem;min-width:500px} .table-wrap th{padding:.5rem .6rem;font-size:.72rem} .table-wrap td{padding:.45rem .6rem} /* Sub-pages grid — single column, compact */ .sp-section{margin-top:28px} .sp-grid{grid-template-columns:1fr;gap:10px;margin-top:12px} .sp-card{padding:14px 12px;gap:5px;flex-direction:row;flex-wrap:wrap;align-items:center} .sp-card-emoji{font-size:1.2rem} .sp-card-title{font-size:.86rem;flex:1} .sp-card-desc{font-size:.78rem;width:100%;margin-top:2px} .sp-card-type{margin-top:4px} /* Layout */ .layout{gap:20px;padding-bottom:48px} } @media(max-width:400px){ .ct{padding:0 12px} .hero{padding:18px 0 16px} .hero-logo{width:42px;height:42px} .hero-logo svg{width:26px;height:26px} .hero-text h1{font-size:1.35rem} .hero-tagline{font-size:.84rem} .h-badge{font-size:.6rem;padding:3px 9px} .main h2{font-size:1.08rem} .main p{font-size:.85rem} .verdict{padding:14px 10px} .verdict-title{font-size:.92rem} .verdict-summary{font-size:.83rem} .table-wrap{margin:10px -12px 14px;padding:0 12px} .table-wrap table{min-width:440px} .callout{padding:10px 10px 10px 34px;font-size:.82rem} .callout::before{left:9px;top:10px;font-size:.92rem} }

n8n

La plateforme d’automatisation open-source qui combine workflows visuels, agents IA et self-hosting sans limites d’exécution.

⚡ Automatisation 🔓 Open-source

Qu’est-ce que n8n ?

n8n (prononcé « nodemation ») est la plateforme d’automatisation de workflows open-source la plus populaire, avec plus de 173 000 étoiles GitHub. Fondée en 2019 à Berlin par Jan Oberhauser, la société a levé 254 millions de dollars au total, dont un Series C de 180 millions en octobre 2025 mené par Accel avec la participation de NVentures (Nvidia), Meritech, Redpoint, Sequoia et Deutsche Telekom (T.Capital). Valorisation : 2,5 milliards de dollars. L’ARR dépasse 40 millions de dollars, avec une croissance du revenu de 10x sur un an et environ 787 employés.

Le principe est simple : un éditeur visuel node-based où vous reliez des blocs (triggers, actions, logique, IA) pour automatiser des tâches entre vos applications. Sans écrire de code, ou avec du JavaScript/Python quand vous en avez besoin. Contrairement à Zapier ou Make, n8n est distribué sous licence « fair-code » (Sustainable Use License) : vous pouvez l’auto-héberger gratuitement sur votre propre serveur avec des exécutions illimitées, ou utiliser le cloud managé n8n.io.

Parmi les clients notables : Volkswagen, Vodafone, Delivery Hero, Decathlon, KPMG, Twitch, Wayfair, Microsoft et Mistral AI. La communauté dépasse 200 000 utilisateurs actifs et alimente un écosystème de templates, nodes custom et intégrations communautaires.

Le positionnement clé de n8n n8n se situe entre l’automatisation pure (Zapier) et le développement custom. Vous obtenez la simplicité du no-code avec la puissance du code quand il le faut. C’est la plateforme de référence pour les équipes techniques qui construisent des agents IA et des pipelines complexes sans repartir de zéro.

Technologie et fonctionnalités IA

n8n propose plus de 500 intégrations natives (appelées « nodes ») couvrant CRM, bases de données, API, messageries et outils IA. La version 2.0, sortie en décembre 2025, a apporté un durcissement majeur pour l’entreprise : exécution sécurisée par défaut avec des task runners isolés, modèle publish/save pour séparer les brouillons des workflows en production, et versioning Git intégré.

Agents IA et orchestration

C’est le terrain où n8n se distingue le plus. La plateforme intègre des nodes AI Agent dédiés, de la mémoire conversationnelle, des évaluations (evals) et des patterns d’orchestration multi-agents. Vous connectez n’importe quel LLM (OpenAI, Anthropic, Mistral, modèles locaux via Ollama) en utilisant vos propres clés API. n8n ne facture pas l’inférence : vous payez directement le fournisseur de modèle.

La plateforme supporte aussi les nodes MCP (client et serveur) via le Model Context Protocol, ce qui permet d’exposer vos workflows comme des outils pour des agents externes ou d’appeler des serveurs MCP depuis vos automations.

Pipelines RAG

n8n permet de construire des pipelines RAG complets directement dans l’éditeur visuel : extraction de documents, chunking, embedding via des modèles au choix, stockage dans des bases vectorielles (Pinecone, Qdrant, Supabase, etc.), puis requêtage avec restitution contextuelle. Là où des outils comme LangChain ou LlamaIndex exigent du code Python, n8n rend ces pipelines accessibles à des profils moins techniques.

AI Workflow Builder n8n propose un assistant IA (inclus dans les plans cloud) qui génère des workflows à partir d’une description en langage naturel. Le nombre de crédits varie selon le plan : 50 (Starter), 150 (Pro), 1 000 (Enterprise).
Notre avis sur n8n

n8n est la meilleure option d’automatisation pour les équipes techniques qui veulent un contrôle total sur leurs workflows et leurs données. Le self-hosting gratuit avec exécutions illimitées est un avantage décisif face à Zapier et Make, dont les coûts explosent à l’échelle. La couche IA (agents, RAG, MCP) est la plus mature du marché dans cette catégorie. Si votre équipe est à l’aise avec Docker et un minimum de DevOps, n8n est un choix évident. Si vous cherchez du 100 % no-code sans friction, Zapier ou Make restent plus accessibles.

Forces

  • Self-hosting gratuit avec exécutions illimitées (Community Edition)
  • Orchestration d’agents IA, mémoire, evals et pipelines RAG natifs
  • 500+ intégrations, nodes MCP client/serveur
  • Code JavaScript et Python injectable dans chaque workflow
  • Facturation par exécution complète, pas par étape
  • 173 000+ étoiles GitHub, communauté massive et écosystème de templates

Limites

  • Courbe d’apprentissage plus raide que Zapier ou Make pour les non-techniciens
  • Le self-hosting nécessite des compétences DevOps (Docker, backup BDD, scaling)
  • Le plan Business self-hosted introduit une facturation par exécution (fin du « tout illimité »)
  • L’interface peut dérouter les utilisateurs venant du 100 % no-code
  • Support dédié réservé au plan Enterprise uniquement
→ Idéal pour : développeurs, équipes tech, startups et PME qui construisent des automations complexes (agents IA, sync de données, pipelines RAG) et veulent garder la maîtrise de leur infrastructure et de leurs coûts.

Pricing

n8n propose deux modes de déploiement : le cloud managé (hébergé par n8n, serveurs à Francfort, Allemagne) et le self-hosted (sur votre infrastructure). La Community Edition reste 100 % gratuite et illimitée en self-hosting.

Plan Prix Exécutions/mois Mode Points clés
Community Gratuit Illimitées Self-hosted Toutes les intégrations, users illimités, source dispo sur GitHub
Starter 20 €/mois 2 500 Cloud 1 projet partagé, 5 exécutions simultanées, 50 crédits AI Builder
Pro 50 €/mois 10 000 Cloud 3 projets, 20 simultanées, rôles admin, historique, Insights 7j
Business 667 €/mois 40 000 Self-hosted SSO/SAML/LDAP, Git, environnements multiples, Insights 30j
Enterprise Sur devis Custom Cloud ou self-hosted 200+ simultanées, support SLA, log streaming, 365j d’Insights

Tous les plans incluent des utilisateurs et workflows illimités. La facturation se fait par exécution complète du workflow (de bout en bout), et non par étape individuelle comme chez Zapier. Un workflow de 80 étapes coûte le même prix qu’un workflow de 2 étapes. C’est un avantage massif pour les automations complexes.

Les prix affichés sont en facturation annuelle (économie de ~17 %). Pour les startups de moins de 20 employés, n8n propose un plan Startup à -50 % sur le Business.

Attention au plan Business self-hosted Depuis la mise à jour pricing 2025/2026, le plan Business en self-hosting intègre une facturation par exécution (quota annuel). Les dépassements sont facturés 4 000 € par lot de 300 000 exécutions supplémentaires. La Community Edition reste gratuite et illimitée.

Fonctionnalités clés

Éditeur de workflows visuel. Le canvas node-based de n8n est son cœur. Vous glissez-déposez des nodes, les connectez par des arêtes, et définissez la logique avec des branchements conditionnels, des boucles, des merges de données et des error handlers. Chaque node peut être inspecté en temps réel pendant l’exécution, ce qui rend le debugging immédiat. Vous ajoutez du code JavaScript ou Python dans n’importe quel node « Code » pour les transformations complexes.

500+ intégrations natives. De Google Sheets à Slack, de PostgreSQL à Salesforce, de Stripe à Telegram, n8n connecte la quasi-totalité des outils SaaS du marché. Pour les services non couverts, le node HTTP Request permet d’appeler n’importe quelle API REST ou GraphQL, et un node Webhook permet de déclencher un workflow depuis l’extérieur. La communauté contribue régulièrement de nouveaux nodes custom.

Agents IA et mémoire. Les nodes AI Agent permettent de créer des agents autonomes qui raisonnent, appellent des outils et maintiennent un contexte conversationnel via des nodes de mémoire. Vous choisissez le LLM (GPT, Claude, Gemini, Mistral, Llama via Ollama), le type de mémoire (buffer, summary, vector store) et les outils que l’agent peut invoquer. C’est la stack la plus flexible du marché pour le prototypage d’agents IA en production.

Data Tables et Insights. Les Data Tables permettent de stocker et manipuler des données structurées directement dans n8n, sans base externe. Le dashboard Insights (disponible à partir du plan Pro) affiche les métriques d’exécution, le temps économisé et les tendances d’usage. Un outil pratique pour justifier le ROI de vos automations auprès du management.

Self-hosting et souveraineté des données. Avec Docker, vous déployez n8n sur n’importe quelle infrastructure en quelques minutes. Vos données restent chez vous, ce qui simplifie la conformité RGPD. Pour le cloud managé, les données sont hébergées à Francfort. L’architecture supporte le mode queue avec Redis pour la scalabilité horizontale sur plusieurs workers.

// Scroll-spy for TOC const sections = document.querySelectorAll(‘.main h2[id], .verdict[id], .sp-section[id]’); const tocLinks = document.querySelectorAll(‘.toc-link’); const spy = new IntersectionObserver(entries => { entries.forEach(e => { if (e.isIntersecting) { const id = e.target.id; tocLinks.forEach(l => l.classList.toggle(‘active’, l.getAttribute(‘href’) === ‘#’ + id)); } }); }, { rootMargin: ‘-10% 0px -80% 0px’ }); sections.forEach(s => spy.observe(s));
Polydesk.ai — Footer