Intermédiaire 18 minn8n

n8n + Ollama : automatiser avec une IA 100 % locale (tutoriel)

n8n est l'outil d'automatisation no-code le plus crédible face à Zapier ou Make, avec un atout décisif : il s'auto-héberge. Couplé à Ollama, vous obtenez une chaîne complète où la donnée ne quitte jamais votre machine — emails traduits, articles résumés, leads triés, le tout sans appel API externe. Ce guide n8n ollama automatisation détaille l'installation, le nœud Ollama natif et trois workflows concrets prêts à copier.

Par Mohamed Meguedmi·Màj 2026-05-12·Testé sur Windows, macOS, Linux

#Pourquoi coupler n8n et Ollama ?

n8n est un orchestrateur visuel : vous connectez des nœuds (trigger, HTTP, base de données, LLM…) sans écrire de code, et le workflow tourne en arrière-plan sur un cron, un webhook ou une boîte mail. Tous les concurrents grand public (Zapier, Make, Power Automate) facturent au volume et exigent que vos données transitent par leurs serveurs.

Ollama, lui, expose un LLM local sur http://localhost:11434 avec une API HTTP compatible. n8n embarque depuis fin 2023 un nœud Ollama natif (et un nœud OpenAI-compatible qui marche aussi). Résultat : un workflow qui résume des PDF clients ou trie des emails RH ne fait jamais sortir un seul octet de votre infrastructure.

i
Le combo en une phrase
n8n = le cerveau qui orchestre. Ollama = la main qui rédige, traduit ou classifie. Ils tournent tous les deux sur votre machine et se parlent en HTTP local.

#Prérequis

Ollama installé
Daemon actif sur le port 11434. Vérifiez avec curl http://localhost:11434. Si vous partez de zéro, suivez d'abord le guide d'installation Ollama du site.
Un modèle téléchargé
ollama pull llama3.1:8b pour la polyvalence, ou mistral:7b si vous voulez plus léger. Pour les workflows de classification, qwen2.5:7b est solide.
Docker + Docker Compose
n8n se déploie en quelques secondes avec Docker. Docker Desktop sur Windows/macOS, Docker Engine sur Linux.
8 Go de RAM libres
n8n consomme ~500 Mo, Ollama charge le modèle en VRAM (5 Go pour un 7B Q4). Comptez large si vous voulez plusieurs workflows simultanés.
Un peu de patience pour le no-code
n8n est visuel mais pas magique : comprendre JSON et les expressions {{ $json.field }} reste utile.
Modèle recommandé pour démarrer
llama3.1:8b en Q4_K_M. Bon en français, supporte les outils (function calling), tient en 5 Go de VRAM. Si vous avez 12 Go ou plus, montez à qwen2.5:14b pour la classification — la précision saute clairement.

#1. Installer n8n en self-hosted via Docker

La méthode officielle et la plus simple est une image Docker maintenue par l'équipe n8n. Créez un dossier dédié et un fichier docker-compose.yml :

docker-compose.yml
services:
  n8n:
    image: docker.n8n.io/n8nio/n8n
    container_name: n8n
    restart: unless-stopped
    ports:
      - "5678:5678"
    environment:
      - N8N_HOST=localhost
      - N8N_PORT=5678
      - N8N_PROTOCOL=http
      - GENERIC_TIMEZONE=Europe/Paris
      - N8N_SECURE_COOKIE=false
    volumes:
      - ./n8n_data:/home/node/.n8n
    extra_hosts:
      - "host.docker.internal:host-gateway"

La ligne extra_hosts est la clé : depuis le conteneur n8n, vous appellerez Ollama via http://host.docker.internal:11434 plutôt que localhost (qui pointerait sur le conteneur lui-même). Sur Linux uniquement, cette astuce nécessite la directive host-gateway.

Démarrer n8n
docker compose up -d
docker compose logs -f n8n

Ouvrez http://localhost:5678. À la première connexion, n8n vous demande de créer un compte propriétaire — il reste local, aucune télémétrie obligatoire. Une fois connecté, vous arrivez sur le canvas vide.

!
Exposer n8n sur Internet ?
Pour un usage personnel, gardez n8n derrière votre LAN. Si vous devez l'exposer (webhooks publics), passez impérativement par un reverse proxy avec HTTPS (Caddy, Traefik) et activez N8N_BASIC_AUTH_ACTIVE=true. Une instance n8n exposée sans auth = accès complet à vos workflows et credentials.

#2. Configurer le nœud Ollama dans n8n

n8n propose deux façons d'appeler Ollama : le nœud dédié "Ollama Chat Model" (intégré dans la branche LangChain de n8n) et un appel HTTP générique. Le nœud dédié est plus propre pour les agents et chaînes ; l'appel HTTP donne plus de contrôle. Les deux fonctionnent.

  1. 01
    Ajouter un nœud Ollama
    Sur le canvas, tapez "/" et cherchez "Ollama". Choisissez "Ollama Chat Model" (sous AI > Language Models).
  2. 02
    Créer une credential
    Dans le champ Credential, cliquez "Create new". Base URL : http://host.docker.internal:11434 (depuis le conteneur Docker) ou http://localhost:11434 si n8n tourne en natif. Pas d'API key — c'est local.
  3. 03
    Tester la connexion
    n8n teste automatiquement et liste les modèles disponibles. Si la liste est vide, vérifiez avec docker exec n8n curl http://host.docker.internal:11434/api/tags depuis l'hôte.
  4. 04
    Choisir le modèle
    Dans le dropdown Model, sélectionnez llama3.1:8b (ou celui que vous avez tiré). Laissez Temperature à 0.7 par défaut, abaissez à 0.2 pour des tâches déterministes (classification, extraction).
i
Le nœud HTTP Request reste utile
Pour des appels plus exotiques (streaming, format JSON forcé, paramètres avancés num_ctx ou stop), un nœud HTTP Request POST sur http://host.docker.internal:11434/api/generate offre 100 % de contrôle. Le body est le même JSON que la doc Ollama.

#3. Premier workflow : résumer un flux RSS

Cas type : vous suivez 15 blogs tech, vous voulez un résumé quotidien en français sans tout lire. n8n récupère les nouveaux articles, Ollama résume, le résultat part par email ou s'écrit dans un fichier Markdown.

  1. 01
    Trigger : Schedule Trigger
    Réglez-le sur tous les jours à 7h. Mode Cron expression : 0 7 * * *.
  2. 02
    Récupérer le flux : RSS Feed Trigger ou RSS Read
    URL du flux (ex: https://blog.lemondeinformatique.fr/feed/). Activez "Return only new items" pour ne pas re-résumer les anciens.
  3. 03
    Découper si besoin : Split In Batches
    Si le flux renvoie 10 articles, limitez à 5 pour éviter de saturer Ollama. Batch size : 1, pour traiter article par article.
  4. 04
    Appeler Ollama
    Nœud Ollama Chat Model avec ce system prompt et l'article en message utilisateur.
Contenu du nœud Ollama
{
  "system": "Tu es un assistant éditorial. Résume l'article en 3 puces de 15 mots maximum, en français, ton neutre. Pas d'intro, juste les puces.",
  "prompt": "Titre : {{ $json.title }}\n\nContenu : {{ $json.content }}"
}
  1. 01
    Agréger les résumés : Merge ou Code
    Combinez les sorties article par article en un seul corps de mail. Un nœud Code (JavaScript) avec items.map(i => `**${i.json.title}**\n${i.json.response}`).join('\n\n') suffit.
  2. 02
    Envoyer : Send Email ou écrire fichier
    Nœud Email (SMTP) vers votre adresse, ou nœud Write Binary File vers /home/node/.n8n/daily-digest.md (persisté dans le volume Docker).
Astuce : contexte court = vitesse
Sur un 8B en Q4, un article de 800 mots se résume en 4-6 secondes. Si vous voulez accélérer, demandez explicitement "Ne lis que les 500 premiers mots" et tronquez côté n8n avec une expression {{ $json.content.slice(0, 2000) }}.

#4. Workflow : traduction d'emails entrants

Cas type : vous recevez des emails fournisseurs en anglais, allemand, espagnol. Vous voulez les lire en français sans Google Translate (qui aspire le contenu). n8n surveille votre boîte IMAP, Ollama traduit, le résultat atterrit dans un label "Traduit" ou en réponse drafted.

  1. 01
    Trigger : IMAP Email
    Configurez vos credentials IMAP (Gmail nécessite un mot de passe d'application). Filtre : tous les emails non lus de la boîte INBOX. Polling toutes les 10 minutes.
  2. 02
    Détecter la langue : Ollama #1
    Premier appel Ollama avec system prompt : "Réponds uniquement par le code ISO 639-1 de la langue de ce texte (fr, en, de, es...). Pas de phrase, juste deux lettres." Prompt : {{ $json.subject }} {{ $json.textPlain }}.
  3. 03
    Brancher : nœud IF
    Condition : {{ $json.response }} ≠ "fr". Si vrai → traduire. Si faux → ignorer (déjà en français).
  4. 04
    Traduire : Ollama #2
    System prompt : "Traduis le texte suivant en français naturel. Préserve la mise en forme (paragraphes, listes). Ne commente pas, traduis directement." Prompt : le corps de l'email.
  5. 05
    Action finale
    Deux options : nœud Gmail "Add Label" + écriture de la traduction en tête du message via "Reply Draft", ou simplement envoi d'une notification Slack/Telegram avec la version traduite.
!
Piège classique : le HTML
Les emails sont souvent en HTML (signatures, images, balises tracking). Utilisez le champ textPlain plutôt que html, ou ajoutez un nœud HTML Extract pour nettoyer avant d'envoyer à Ollama. Sinon votre LLM essaie de traduire du <table>...

#5. Workflow : classifier des leads entrants

Cas type : un formulaire de contact remplit une base Airtable / Notion / Postgres. Vous voulez auto-classer chaque lead : Hot / Warm / Cold, secteur d'activité, urgence. n8n écoute la base, Ollama lit le message libre, écrit les tags structurés.

Ce workflow exploite le mode JSON d'Ollama, qui force la sortie à respecter un schéma. Indispensable dès qu'on parle de données structurées.

Body du nœud HTTP Request vers Ollama
{
  "model": "llama3.1:8b",
  "format": "json",
  "stream": false,
  "options": { "temperature": 0.1 },
  "system": "Tu es un assistant CRM. Réponds uniquement en JSON valide avec les clés : temperature (Hot/Warm/Cold), secteur (string court), urgence (1-5).",
  "prompt": "Message du lead : {{ $json.message }}\n\nEntreprise : {{ $json.company }}"
}
  1. 01
    Trigger : Airtable/Postgres Trigger
    Sur "New row in table Leads". Polling 5 min, ou webhook si votre source le permet (plus réactif).
  2. 02
    Appel Ollama en mode JSON
    Nœud HTTP Request POST sur http://host.docker.internal:11434/api/generate avec le body ci-dessus. La réponse arrive dans $json.response (string JSON).
  3. 03
    Parser : nœud Code ou Set
    JSON.parse($input.first().json.response) extrait temperature, secteur, urgence. Si parse échoue (modèle qui hallucine), retry avec une température à 0.
  4. 04
    Écrire dans le CRM
    Nœud Airtable Update / Postgres Update avec les trois champs. Optionnel : si temperature = Hot et urgence ≥ 4, déclencher un nœud Slack qui ping [email protected].
Pourquoi temperature 0.1 ici
Pour de la classification, vous voulez de la cohérence : deux leads identiques doivent recevoir le même tag. Une température basse (0 à 0.2) supprime l'aléa du sampling. Réservez 0.7+ aux tâches créatives (rédaction, brainstorming).

#Astuces & dépannage

n8n ne joint pas Ollama
Erreur ECONNREFUSED sur localhost:11434 ? Vous êtes dans Docker — utilisez host.docker.internal. Sur Linux, vérifiez que extra_hosts est bien dans le compose et que Ollama écoute sur 0.0.0.0 (OLLAMA_HOST=0.0.0.0:11434).
Workflow lent
Ollama charge le modèle à froid (5-15 s la première fois). Pour rester chaud, lancez en parallèle un cron qui ping /api/generate toutes les 4 minutes, ou augmentez OLLAMA_KEEP_ALIVE=30m.
Le modèle hallucine en classification
Toujours utiliser format: "json" + un system prompt qui liste les valeurs autorisées. Si Llama 3.1 8B reste flou, monter à qwen2.5:14b améliore nettement la robustesse JSON.
Volumes Docker perdus
Le workflow et les credentials vivent dans ./n8n_data. Ne supprimez jamais ce dossier sans backup. Exportez vos workflows en JSON via le menu (Settings > Workflows > Download) pour versionner sur Git.
Trop d'appels = saturation VRAM
Si un workflow déclenche 20 appels Ollama en parallèle, le GPU sature. Utilisez Split In Batches avec batch size 1 ou ajoutez OLLAMA_NUM_PARALLEL=1 pour sérialiser.
Versions n8n
n8n sort une release majeure tous les ~10 jours. docker compose pull && docker compose up -d met à jour. Le nœud Ollama est stable depuis la 1.18+.
i
Versionner vos workflows
Un workflow n8n exporté est un JSON propre. Committez-le dans un repo Git privé : vous gardez l'historique, vous pouvez restaurer si vous cassez tout, et vous partagez facilement avec un collègue.

#Pour aller plus loin

Vous avez une chaîne n8n + Ollama fonctionnelle. Quelques pistes naturelles ensuite :

Brancher un RAG
Le guide RAG ChromaDB du site montre comment indexer vos PDF/notes. Vous pouvez appeler ce pipeline RAG depuis n8n via un endpoint HTTP — vos workflows deviennent contextuels à votre base de connaissances.
Optimiser le modèle
Si vos workflows traitent du volume, lisez le guide quantification Q4/Q5/Q8 : descendre à Q4_K_M peut diviser la VRAM par deux sans perte visible sur de la classification.
Choisir un GPU dédié
Si n8n + Ollama doivent tourner 24/7 sur une machine, le guide d'achat GPU du site donne les seuils 12/16/24 Go selon vos workflows cibles.
Ce guide vous a aidé ?

Un retour, une erreur, une précision ? Faites-nous signe, ça améliore le guide pour tout le monde.