Was wir automatisiert haben — und warum n8n

Anfang 2026 standen wir vor einem klassischen Skalierungsproblem: Zu viele manuelle Prozesse, zu wenig Zeit. Jede neue Trial-Anmeldung auf agentic-movers.com erforderte manuelles Onboarding per E-Mail. YouTube-Videos wurden händisch analysiert. Instagram-Posts wurden einzeln geplant. Das war nicht skalierbar.

Wir hätten zu Make oder Zapier greifen können. Wir haben es kurz versucht. Dann haben wir uns für n8n entschieden — und seitdem nicht zurückgeschaut. Die Entscheidung war klar: n8n ist Open Source, self-hostable, und kostet auf unserem VPS effektiv null Euro zusätzlich. Und es hat über 400 native Integrationen — von Supabase bis zur Instagram Graph API.

Innerhalb von zwei Wochen lief unsere komplette Automatisierungsinfrastruktur: Trial-Email-Sequenz, YouTube-Content-Pipeline, IG-Post-Queue. Hier zeigen wir, wie wir das gemacht haben.

n8n vs. Make vs. Zapier — kurzer Klartext-Vergleich

Bevor wir in die Technik gehen, ein kurzer Vergleich für alle die noch entscheiden: Wir haben alle drei Tools evaluiert. Unser Fazit in einer Tabelle:

Kriterium n8n Make Zapier
Self-hostable Ja (gratis) Nein Nein
Preis (monatlich) €0 (self-hosted) ab €9 ab €19
Native Integrationen 400+ 1.500+ 6.000+
Code-Node (JS/Python) Ja Eingeschränkt Ja (teuer)
AI Agent Nodes Nativ (LangChain) Begrenzt Begrenzt
Datenkontrolle 100% (eigener Server) Cloud only Cloud only
Execution Limits Keine (self-hosted) Operations/Mo Tasks/Mo

Zapier hat mehr Integrationen — aber wenn wir für jede Ausführung zahlen und keine Code-Freiheit haben, ist das für eine KI-getriebene Pipeline kein realistisches Setup. n8n gewinnt für uns klar, weil wir volle Kontrolle brauchen: eigene Daten, eigene KI-Calls, eigene Logik.

Unser Stack: Docker + VPS + n8n + Supabase + Claude

n8n läuft bei uns in Docker auf einem VPS bei Hostinger — kostet rund €8 pro Monat. n8n verbinden wir dann mit unseren zentralen Tools: Supabase als Datenbank und Event-Bus, Claude API (Anthropic) für alle KI-Tasks, Gmail für E-Mails, Telegram für interne Alerts und die Instagram Graph API für Content-Publishing.

Hier ist unser docker-compose Setup für n8n:

docker-compose.yml — n8n Self-Hosted Setup
version: '3.8'

services:
  n8n:
    image: n8nio/n8n:latest
    restart: unless-stopped
    ports:
      - "127.0.0.1:5678:5678"  # nur lokal, Caddy reversed proxy
    environment:
      - N8N_HOST=n8n.agentic-movers.com
      - N8N_PROTOCOL=https
      - WEBHOOK_URL=https://n8n.agentic-movers.com/
      - N8N_ENCRYPTION_KEY=${N8N_ENCRYPTION_KEY}
      - DB_TYPE=postgresdb
      - DB_POSTGRESDB_HOST=db.xxxx.supabase.co
      - DB_POSTGRESDB_DATABASE=n8n
      - DB_POSTGRESDB_USER=n8n_user
      - DB_POSTGRESDB_PASSWORD=${DB_PASSWORD}
      - EXECUTIONS_PROCESS=main
      - N8N_METRICS=true
    volumes:
      - n8n_data:/home/node/.n8n

volumes:
  n8n_data:
Wichtig: Wir binden n8n nur auf 127.0.0.1, nicht auf 0.0.0.0. Caddy läuft davor und terminiert SSL. Niemals n8n direkt ins Internet exponieren.

Workflow 1: Trial Email Sequenz

Das war unser erster und kritischster Workflow: Sobald sich jemand für den 7-Tage-Trial auf agentic-movers.com anmeldet, läuft folgendes ab:

Webhook POST Supabase INSERT Email #1 (Welcome)
↓ Wait 24h
Email #2 (Onboarding) Wait 48h Email #3 (Use Case)
↓ Wait 48h
Email #4 (Deep Dive) Wait 24h Email #5 (Social Proof)
↓ Wait 24h
Email #6 (Conversion) Supabase UPDATE status Telegram Alert

Der Webhook-Node empfängt die Signup-Daten, ein Supabase-Node schreibt den neuen User direkt in unsere Datenbank (Tabelle trial_users), und dann startet die 6-teilige Email-Sequenz mit n8n Wait-Nodes. Wait-Nodes sind eines der unterschätzten Features von n8n — der Workflow bleibt im "Waiting"-Status, wacht nach der definierten Zeit wieder auf, und sendet die nächste E-Mail. Kein Cronjob, keine externe Queue.

So sieht die Webhook-Node-Konfiguration aus:

Webhook Node — Konfiguration (JSON-Export)
{
  "nodes": [{
    "name": "Trial Signup Webhook",
    "type": "n8n-nodes-base.webhook",
    "parameters": {
      "httpMethod": "POST",
      "path": "trial-signup",
      "responseMode": "responseNode",
      "options": {
        "allowedOrigins": "https://agentic-movers.com",
        "rawBody": false
      }
    }
  }]
}

Das Resultat: Jeder neue Trial-User bekommt innerhalb von Sekunden seine Welcome-Mail — und danach über 6 Tage automatisch die gesamte Onboarding-Sequenz. Null manuelle Arbeit.

Workflow 2: YouTube-Video-Pipeline mit Claude

Unser zweiter zentraler Workflow analysiert täglich neue YouTube-Videos aus unserem KI/Tech-Feed und extrahiert mit Claude konkrete Ideen und Optimierungsmöglichkeiten. Der Trigger ist ein RSS-Feed-Node der alle 6 Stunden prüft ob neue Videos erschienen sind.

Neue Videos werden transkribiert (wir nutzen yt-dlp + faster-whisper auf unserem VPS via Execute Command Node), dann schicken wir den vollen Transkript-Text an die Claude API. Claude gibt strukturierte Insights zurück: konkrete Tool-Empfehlungen, Workflow-Ideen, Optimierungspotentiale. Diese landen automatisch in unserem Supabase yt_intelligence-Table und als formatierte Zusammenfassung in unserem Telegram-Channel.

Hier ein Beispiel wie wir n8n Expressions nutzen um die Claude-Antwort zu formatieren:

n8n Expression — Claude Response Formatting
// In einem Set-Node: Telegram-Nachricht aus Claude-Antwort bauen
"🎬 *{{ $json.video_title }}*\n\n" +
"📋 *Key Insights:*\n" +
"{{ $('Claude API').item.json.choices[0].message.content }}\n\n" +
"🔗 [Video ansehen](https://youtube.com/watch?v={{ $json.video_id }})\n" +
"📅 Analysiert: {{ $now.toFormat('dd.MM.yyyy HH:mm') }}"

// Duplikat-Check via Supabase BEFORE Transkription
// Verhindert doppelte API-Kosten:
$('Supabase Check').item.json.count === 0
  ? "proceed"
  : "skip"

Der Duplikat-Check ist entscheidend: Bevor wir ein Video transkribieren, schauen wir in der yt_intelligence-Tabelle nach ob die Video-ID schon existiert. Das vermeidet redundante API-Kosten bei jedem Workflow-Run. n8n's IF-Node macht das zu einem Einzeiler.

Lessons Learned nach 2 Wochen Betrieb

01

Wait-Nodes sind unterschätzt

Für Email-Sequenzen braucht man keine externe Queue. n8n's Wait-Node persistiert den Workflow-State — einfach und robust.

02

Supabase als Event-Bus

Statt direkter API-zu-API-Calls schreiben wir Events nach Supabase. n8n pollt oder reagiert auf Webhooks. Entkopplung spart viel Debugging.

03

Error-Workflows einrichten

n8n hat Error-Trigger-Nodes. Wir routen alle Fehler direkt nach Telegram. So sehen wir Probleme bevor User sie merken.

04

Execution-Daten retention

Standardmäßig speichert n8n alle Execution-Daten. Bei hohem Volumen: EXECUTIONS_DATA_SAVE_ON_SUCCESS=none setzen, sonst wächst die DB stark.

05

Code-Nodes für Logik, nicht für Integrationen

Native Nodes > Custom Code. Nur wenn es keinen nativen Node gibt, Code-Node nutzen. Native Nodes sind stabiler und werden gewartet.

06

Credentials zentral verwalten

Alle API-Keys einmal in n8n-Credentials hinterlegen. Kein Hardcoding in Workflow-Nodes. Bei Key-Rotation: eine Stelle ändern, alle Workflows laufen sofort.

Die wichtigste Erkenntnis: n8n ist kein Workflow-Tool, es ist eine Automatisierungsplattform. Mit dem AI Agent Node, nativen LangChain-Integrationen und der Möglichkeit, Claude direkt einzubinden, hat sich n8n bei uns zur operativen Schaltzentrale entwickelt. Alles läuft darüber — von der ersten User-Interaktion bis zur Content-Distribution.

Dein erster n8n-Workflow in 7 Tagen

Teste agentic-movers.com 7 Tage kostenlos — inklusive Zugang zu unseren fertigen n8n-Workflow-Templates und der vollständigen Automatisierungs-Infrastruktur.

7 Tage kostenlos testen → Lieber Step-by-Step lernen? Zum n8n-Kurs: "Build AI Workflows Without Code" →