Intermediário 18 minn8n

n8n + Ollama : automatizar com IA 100 % locale

O n8n é a ferramenta de automação sem código mais convincente como alternativa ao Zapier ou ao Make, com um diferencial decisivo: pode ser hospedado por você. Combinado com o Ollama, você obtém uma cadeia completa em que os dados nunca saem da sua máquina — e-mails traduzidos, artigos resumidos, leads classificados, tudo sem chamadas a APIs externas. Este guia de automação com n8n e Ollama detalha a instalação, o nó nativo do Ollama e três fluxos de trabalho práticos prontos para copiar.

Por Mohamed Meguedmi·Atualização 2026-08-27·Testado no Windows, macOS e Linux

#Por que combinar n8n e Ollama?

n8n é um orquestrador visual: você conecta nós (trigger, HTTP, banco de dados, LLM…) sem escrever código, e o fluxo de trabalho roda em segundo plano por meio de um cron, um webhook ou uma caixa de e-mail. Todos os concorrentes voltados ao grande público (Zapier, Make, Power Automate) cobram por volume e exigem que seus dados passem pelos servidores deles.

Ollama, por sua vez, expõe um LLM local em http://localhost:11434 com uma API HTTP compatível. O n8n inclui desde o final de 2023 um nó Ollama nativo (e um nó compatível com OpenAI que também funciona). Resultado: um fluxo de trabalho que resume PDFs de clientes ou classifica e-mails de RH nunca faz um único byte sair da sua infraestrutura.

i
Combo em uma frase
n8n = o cérebro que coordena. Ollama = a mão que redige, traduz ou classifica. Ambos rodam na sua máquina e se comunicam por HTTP local.

#Pré-requisitos

O kit Agentes Locais

Agentes que agem na sua máquina: Cline agêntico, MCP, n8n + Ollama, automações locais.

  • Espaço online vitalício
  • PDF + arquivos
  • Atualizações vitalícias
Ollama instalado
Daemon ativo na porta 11434. Verifique com curl http://localhost:11434. Se você estiver começando do zero, siga primeiro o guia de instalação do Ollama do site.
Um modelo baixado
ollama pull qwen3.5:9b para versatilidade, ou qwen3.5:4b se você quiser algo mais leve. Para fluxos de trabalho de classificação, granite4.2:8b é sólido e muito econômico em tokens.
Docker + Docker Compose
O n8n pode ser implantado em poucos segundos com Docker. Docker Desktop no Windows/macOS, Docker Engine no Linux.
8 GB de RAM livres
n8n consome ~500 MB, e o Ollama carrega o modelo na VRAM (~6,6 GB para um 9B Q4). Reserve uma boa margem se quiser vários workflows simultâneos.
Um pouco de paciência para o no-code
O n8n é visual, mas não mágico: entender JSON e as expressões {{ $json.field }} continua útil.
→
Modelo recomendado para começar
qwen3.5:9b em Q4_K_M. Bom em francês, 256k de contexto, suporta ferramentas (chamada de função) e visão, cabe em 6,6 GB de VRAM. Se você tiver 12 GB ou mais, passe para qwen3.5:9b-q8_0 (11 GB) para classificação — a precisão melhora claramente.

#1. Instalar o n8n com hospedagem própria via Docker

O método oficial e mais simples é uma imagem Docker mantida pela equipe n8n. Crie uma pasta dedicada e um arquivo 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"

A linha extra_hosts é a chave: a partir do contêiner n8n, você chamará Ollama via http://host.docker.internal:11434 em vez de localhost (que apontaria para o próprio contêiner). Em sistemas Linux apenas, essa dica exige a diretiva host-gateway.

Iniciar o n8n
docker compose up -d
docker compose logs -f n8n

Abra http://localhost:5678. No primeiro acesso, o n8n pede que você crie uma conta de proprietário — ela permanece local, sem telemetria obrigatória. Após fazer login, você chega à área de trabalho vazia.

!
Expor o n8n na Internet?
Para uso pessoal, mantenha o n8n dentro da sua rede local (LAN). Se você precisar expô-lo (webhooks públicos), use obrigatoriamente um proxy reverso com HTTPS (Caddy, Traefik) e ative N8N_BASIC_AUTH_ACTIVE=true. Uma instância n8n exposta sem autenticação = acesso completo aos seus workflows e credenciais.

#2. Configurar o nó Ollama no n8n

O n8n oferece duas formas de chamar o Ollama: o nó dedicado "Ollama Chat Model" (integrado à parte LangChain do n8n) e uma chamada HTTP genérica. O nó dedicado é uma solução mais organizada para agentes e cadeias; a chamada HTTP oferece mais controle. Ambos funcionam.

  1. 01
    Adicionar um nó Ollama
    No canvas, digite "/" e procure por "Ollama". Escolha "Ollama Chat Model" (em AI > Language Models).
  2. 02
    Criar uma credencial
    No campo Credential, clique em "Create new". Base URL: http://host.docker.internal:11434 (do container Docker) ou http://localhost:11434 se o n8n estiver rodando nativamente. Sem chave API — é local.
  3. 03
    Testar a conexão
    n8n testa automaticamente e lista os modelos disponíveis. Se a lista estiver vazia, verifique com docker exec n8n curl http://host.docker.internal:11434/api/tags a partir do host.
  4. 04
    Escolher o modelo
    No menu suspenso Model, selecione qwen3.5:9b (ou o modelo que você baixou). Mantenha Temperature no valor padrão de 0.7 e reduza para 0.2 para tarefas determinísticas (classificação, extração).
i
O nó HTTP Request continua útil
Para chamadas mais específicas (streaming, saída forçada em formato JSON, parâmetros avançados num_ctx ou stop), um nó HTTP Request com o método POST para http://host.docker.internal:11434/api/generate oferece 100% de controle. O corpo da requisição é o mesmo JSON da documentação do Ollama.

#3. Primeiro fluxo de trabalho: resumir um fluxo RSS

Caso típico: você acompanha 15 blogs de tecnologia e quer um resumo diário em francês sem ler tudo. O n8n recupera os novos artigos, o Ollama os resume e o resultado é enviado por e-mail ou gravado em um arquivo Markdown.

  1. 01
    Gatilho: Schedule Trigger
    Configure-o para executar todos os dias às 7h. Modo Cron expression: 0 7 * * *.
  2. 02
    Recuperar o feed: RSS Feed Trigger ou RSS Read
    URL do feed (ex.: https://blog.lemondeinformatique.fr/feed/). Ative "Return only new items" para não resumir os itens antigos novamente.
  3. 03
    Dividir se necessário: Split In Batches
    Se o fluxo retornar 10 artigos, limite a 5 para evitar sobrecarregar o Ollama. Batch size: 1, para processar artigo por artigo.
  4. 04
    Chamar Ollama
    Nó Ollama Chat Model com este prompt de sistema e o artigo como mensagem do usuário.
Conteúdo do nó 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
    Agrupar resumos: Merge ou Code
    Combine as saídas artigo a artigo em um único corpo de e-mail. Um nó Code (JavaScript) com items.map(i => `**${i.json.title}**\n${i.json.response}`).join('\n\n') basta.
  2. 02
    Enviar: Send Email ou gravar um arquivo
    Nó Email (SMTP) para seu endereço ou nó Write Binary File para /home/node/.n8n/daily-digest.md (persistido no volume do Docker).
→
Dica: contexto curto = velocidade
Em um modelo 9B em Q4, um artigo de 800 palavras é resumido em 4 a 6 segundos. Se você quiser acelerar, peça explicitamente "Leia apenas as primeiras 500 palavras" e trunque o conteúdo no n8n com uma expressão {{ $json.content.slice(0, 2000) }}.

#4. Fluxo de trabalho: tradução de e-mails recebidos

Caso típico: você recebe e-mails de fornecedores em inglês, alemão e espanhol. Você quer lê-los em francês sem o Google Translate (que coleta o conteúdo). O n8n monitora sua caixa de e-mails IMAP, o Ollama traduz, e o resultado vai para um marcador "Traduzido" ou para um rascunho de resposta.

  1. 01
    Gatilho: IMAP Email
    Configure suas credenciais IMAP (Gmail exige uma senha de aplicativo). Filtro: todos os e-mails não lidos da pasta INBOX. Polling a cada 10 minutos.
  2. 02
    Detectar o idioma: Ollama #1
    Primeira chamada ao Ollama com prompt de sistema: "Responda apenas com o código ISO 639-1 do idioma deste texto (fr, en, de, es...). Sem frases, apenas duas letras." Prompt: {{ $json.subject }} {{ $json.textPlain }}.
  3. 03
    Ramificar: nó IF
    Condição: {{ $json.response }} ≠ "fr". Se verdadeiro → traduzir. Se falso → ignorar (já está em francês).
  4. 04
    Traduzir: Ollama #2
    Prompt de sistema: "Traduza o texto seguinte para francês natural. Preserve a formatação (parágrafos, listas). Não comente, traduza diretamente." Prompt: o corpo do e-mail.
  5. 05
    Ação final
    Duas opções: nó Gmail "Add Label" + inserção da tradução no início da mensagem via "Reply Draft", ou simplesmente envio de uma notificação pelo Slack/Telegram com a versão traduzida.
!
Armadilha clássica: o HTML
Os e-mails costumam estar em HTML (assinaturas, imagens, tags de rastreamento). Use o campo textPlain em vez de html, ou adicione um nó HTML Extract para limpar o conteúdo antes de enviá-lo ao Ollama. Caso contrário, seu LLM tentará traduzir <table>...

#5. Fluxo de trabalho: classificar os leads recebidos

Caso típico: um formulário de contato preenche uma base de dados Airtable / Notion / Postgres. Você quer classificar automaticamente cada lead: Hot / Warm / Cold, setor de atividade, urgência. O n8n monitora a base, o Ollama lê a mensagem em texto livre e escreve as tags estruturadas.

Esse fluxo utiliza o modo JSON do Ollama, que força a saída a seguir um esquema. Essencial sempre que se fala de dados estruturados.

Corpo da requisição do nó HTTP Request para o Ollama
{
  "model": "qwen3.5:9b",
  "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
    No evento "New row in table Leads". Polling a cada 5 minutos, ou webhook se sua fonte permitir (mais responsivo).
  2. 02
    Chamada Ollama em modo JSON
    Nó HTTP Request com método POST para http://host.docker.internal:11434/api/generate, com o corpo acima. A resposta chega em $json.response (string JSON).
  3. 03
    Fazer o parsing: nó Code ou Set
    JSON.parse($input.first().json.response) extrai temperature, secteur, urgence. Se a análise sintática falhar (modelo que alucina), tente novamente com a temperatura em 0.
  4. 04
    Escrever no CRM
    Nó Airtable Update / Postgres Update com os três campos. Opcional: se temperature = Hot e urgence ≥ 4, acionar um nó Slack que envie uma notificação para commercial@boite.fr.
→
Por que usar temperature 0.1 aqui
Para classificação, você quer coerência: dois leads iguais devem receber a mesma etiqueta. Uma temperatura baixa (0 a 0,2) elimina a aleatoriedade do sampling. Reserve 0,7+ para tarefas criativas (redação, brainstorming).

#Dicas e solução de problemas

n8n não consegue se conectar ao Ollama
Erro ECONNREFUSED em localhost:11434? Você está dentro do Docker — use host.docker.internal. No Linux, verifique se extra_hosts está presente no compose e se o Ollama está escutando em 0.0.0.0 (OLLAMA_HOST=0.0.0.0:11434).
Workflow lento
Ollama faz o carregamento a frio do modelo (5–15 segundos na primeira vez). Para mantê-lo carregado, execute em paralelo uma tarefa cron que faça ping em /api/generate a cada 4 minutos, ou aumente o tempo de permanência com OLLAMA_KEEP_ALIVE=30m.
O modelo alucina na classificação
Sempre usar format: "json" + um prompt de sistema que liste os valores permitidos. Se o 9B em Q4 continuar impreciso, passar para qwen3.5:9b-q8_0 melhora significativamente a robustez do JSON.
Volumes Docker perdidos
O workflow e as credenciais estão em ./n8n_data. Nunca remova esse diretório sem fazer backup. Exporte seus workflows em JSON pelo menu (Settings > Workflows > Download) para versionar no Git.
Chamadas demais = saturação da VRAM
Se um workflow disparar 20 chamadas ao Ollama em paralelo, a GPU fica saturada. Use Split In Batches com tamanho de lote 1 ou adicione OLLAMA_NUM_PARALLEL=1 para serializar as chamadas.
Versões do n8n
O n8n lança uma versão principal a cada ~10 dias. docker compose pull && docker compose up -d faz a atualização. O nó Ollama é estável desde a versão 1.18+.
i
Versionar seus workflows
Um workflow exportado do n8n é um JSON limpo. Comite-o em um repositório Git privado: você mantém o histórico, pode restaurar se tudo der errado e compartilha facilmente com um colega.

#Para se aprofundar

Você tem um fluxo n8n + Ollama funcionando. Algumas sugestões de próximos passos:

Conectar um RAG
O guia de RAG com ChromaDB do site mostra como indexar seus PDFs e anotações. Você pode chamar esse pipeline RAG a partir do n8n por meio de um endpoint HTTP — seus workflows passam a usar o contexto da sua base de conhecimento.
Otimizar o modelo
Se seus fluxos de trabalho lidam com volume, leia o guia de quantização Q4/Q5/Q8: reduzir para Q4_K_M pode dividir a VRAM por dois sem perda visível em classificação.
Escolher um GPU dedicado
Se n8n + Ollama precisam rodar 24/7 em uma máquina, o guia de compra de GPU do site indica os patamares de 12/16/24 GB conforme os fluxos de trabalho que você pretende executar.
Este guia ajudou você?

Um comentário, um erro ou uma observação? Avise-nos; isso ajuda a melhorar o guia para todos.