Zapier kostet schnell hunderte Euro im Monat, sobald Workflows komplexer werden. n8n ist die self-hosted Alternative: gleiche Konzepte, volle Kontrolle über Daten, und keine laufenden Kosten außer dem eigenen Server. Der Einstieg ist einfacher als gedacht.
Was ist n8n?
n8n (ausgesprochen “n-eight-n”) ist ein Open-Source-Workflow-Automatisierungstool mit visuellem Editor. Nodes werden per Drag-and-Drop verbunden, Daten fließen von einem Schritt zum nächsten. Über 400 Integrationen sind eingebaut — von HTTP-Requests über Datenbanken bis zu KI-Modellen.
Das Besondere: n8n kann vollständig self-hosted betrieben werden. Alle Daten bleiben auf deinem Server.
Installation mit Docker
Die einfachste Variante für den Einstieg:
docker run -d \
--name n8n \
-p 5678:5678 \
-v n8n_data:/home/node/.n8n \
n8nio/n8n
Danach erreichbar unter http://localhost:5678. Beim ersten Aufruf wird ein Admin-Account angelegt.
Produktiv: Docker Compose mit Postgres
Für den dauerhaften Betrieb empfiehlt sich eine externe Datenbank:
services:
n8n:
image: n8nio/n8n
restart: unless-stopped
ports:
- "5678:5678"
environment:
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=postgres
- DB_POSTGRESDB_DATABASE=n8n
- DB_POSTGRESDB_USER=n8n
- DB_POSTGRESDB_PASSWORD=sicheres_passwort
- N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER=admin
- N8N_BASIC_AUTH_PASSWORD=sicheres_passwort
- WEBHOOK_URL=https://n8n.deine-domain.de
volumes:
- n8n_data:/home/node/.n8n
depends_on:
- postgres
postgres:
image: postgres:16
restart: unless-stopped
environment:
- POSTGRES_DB=n8n
- POSTGRES_USER=n8n
- POSTGRES_PASSWORD=sicheres_passwort
volumes:
- postgres_data:/var/lib/postgresql/data
volumes:
n8n_data:
postgres_data:
Grundkonzepte
Bevor der erste Workflow entsteht, helfen drei Begriffe:
Trigger: Jeder Workflow startet mit einem Trigger — einem Webhook, einem Schedule (Cron), einem manuellen Aufruf oder einem Event aus einer Integration.
Node: Ein einzelner Verarbeitungsschritt. Jede Node hat Inputs (Daten die reinkommen) und Outputs (Daten die rausgehen). Nodes können Daten transformieren, HTTP-Requests senden, Datenbanken abfragen oder KI-Modelle aufrufen.
Item: Die Dateneinheit in n8n. Jede Node verarbeitet eine Liste von Items. Wenn ein HTTP-Request ein Array von Objekten zurückgibt, hat die nächste Node mehrere Items zur Verfügung.
Erster Workflow: Täglicher Wetter-Report per Telegram
Ein konkretes Beispiel das alle Grundkonzepte zeigt:
- Schedule Trigger: Täglich um 7:00 Uhr
- HTTP Request: GET
https://wttr.in/Berlin?format=3— gibt die aktuelle Wetterlage zurück - Telegram Node: Nachricht mit dem Ergebnis an einen Chat oder Bot senden
Nodes verbinden: Output des Triggers zieht man mit der Maus auf den Input des HTTP-Requests, HTTP-Request-Output auf Telegram. Fertig.
Praktisches Beispiel: Webhook → Verarbeitung → Antwort
Webhooks sind der mächtigste Einstiegspunkt. n8n generiert eine URL, externe Dienste können Daten dorthin senden.
Workflow: GitHub-Webhook bei neuem Issue → KI-Zusammenfassung → Slack-Benachrichtigung
Webhook (POST /webhook/github-issues)
→ IF: issue.action == "opened"
→ HTTP Request: Ollama API (Zusammenfassung generieren)
→ Slack: Nachricht in #dev-channel posten
→ else: Workflow beenden
Der Webhook-Node in n8n gibt dir eine URL wie https://n8n.example.com/webhook/github-issues. Diese URL trägst du in den GitHub-Repository-Settings unter Webhooks ein.
KI in n8n integrieren
n8n hat native Nodes für OpenAI, aber auch für lokale Modelle via HTTP-Request. Mit Ollama:
- HTTP Request Node mit Method
POST - URL:
http://dein-server:11434/v1/chat/completions - Body (JSON):
{
"model": "llama3.2",
"messages": [
{"role": "system", "content": "Du bist ein hilfreicher Assistent."},
{"role": "user", "content": "{{ $json.text }}"}
]
}
{{ $json.text }} ist n8n-Expression-Syntax — damit greifst du auf Daten aus vorherigen Nodes zu.
Seit n8n 1.x gibt es außerdem dedizierte AI Agent Nodes, die Reasoning und Tool-Use direkt im visuellen Editor ermöglichen.
Nützliche eingebaute Nodes
| Node | Verwendung |
|---|---|
| HTTP Request | Beliebige REST-APIs ansprechen |
| Code | JavaScript oder Python direkt ausführen |
| IF / Switch | Bedingte Verzweigungen |
| Set | Felder umbenennen, ergänzen, entfernen |
| Split In Batches | Große Listen in Batches verarbeiten |
| Wait | Workflow pausieren (z.B. auf Webhook-Antwort warten) |
| Merge | Mehrere Datenstränge zusammenführen |
| Postgres / MySQL | Direkter Datenbankzugriff |
| Schedule Trigger | Cron-basierte Ausführung |
| Webhook | HTTP-Endpunkt für eingehende Requests |
Fehlerbehandlung
n8n bietet zwei Mechanismen:
Error Workflow: Ein separater Workflow der bei Fehler aufgerufen wird. Dort kannst du Alerts senden, Logs schreiben oder Retry-Logik implementieren. Einstellbar pro Workflow unter Settings → Error Workflow.
Try/Catch im Code Node:
try {
const result = await $http.get('https://api.example.com/data');
return [{ json: result }];
} catch (error) {
return [{ json: { error: error.message, failed: true } }];
}
Tipps für den produktiven Betrieb
Credentials zentral verwalten: API-Keys niemals hart in Workflows eintragen. n8n hat einen eingebauten Credential-Store — alle sensiblen Daten dort ablegen, Nodes referenzieren die gespeicherten Credentials.
Workflows versionieren: n8n erlaubt den Export von Workflows als JSON. Diese JSONs gehören ins Git-Repository.
Executions-Log im Blick behalten: Unter Executions siehst du jeden Workflow-Durchlauf mit Input und Output jeder Node. Unschätzbar beim Debugging.
Queued Executions: Bei produktiven Workloads die Queue-Einstellung aktivieren (EXECUTIONS_MODE=queue + Redis) — verhindert parallele Ausführung desselben Workflows.
Fazit
n8n ist für Home-Server und kleine Teams das, was Zapier für Enterprise-Budgets ist — aber ohne monatliche Kosten und mit voller Datenkontrolle. Der visuelle Editor senkt die Einstiegshürde, der Code-Node gibt Flexibilität wenn es komplexer wird. Wer einmal einen produktiven Webhook-Workflow aufgebaut hat, findet schnell Dutzende weitere Anwendungsfälle im Alltag.