KI-Social-Content-Pipeline
Eine n8n-Pipeline, die den täglichen Post einer Marke entwirft und plattformübergreifend automatisch veröffentlicht — ein Mensch gibt nur frei.
- 2025—
- live
- Architekt & Umsetzer
- Python, n8n, OpenAI, Gemini, Notion API, Meta Graph API
Den Feed einer Marke am Leben zu halten — Bild, Text, Hashtags, Posten auf jeder Plattform — war tägliche Handarbeit. Diese Pipeline erzeugt jeden Tag einen vollständigen, markenkonformen Post und veröffentlicht plattformübergreifend automatisch; ein Mensch gibt nur frei.
- Bild, Text, Hashtags, Posten — alles von Hand
- automatisch entworfen; ein Mensch gibt nur frei
3 Plattformen
seit 2025
Die technische Aufschlüsselung
Das geschäftliche Problem
Die Social-Präsenz einer Marke am Leben zu halten, ist tägliche Mühe, und sie bleibt an der Inhaberschaft hängen: ein brauchbares Bild finden — und beurteilen, ob es überhaupt gut genug zum Posten ist —, den Text schreiben, Titel, Hashtags und Emojis ausdenken, dann von Hand auf jeder Plattform einzeln posten. Lässt man ein paar Tage aus, stockt der Account; macht man es ordentlich, frisst es die Zeit, die nicht da ist. Das Ziel war eine Pipeline, die jeden Tag einen vollständigen, markenkonformen Post erzeugt und ihn plattformübergreifend automatisch veröffentlicht — wobei der Mensch nichts tut außer freigeben.
Die Architektur
Eine von n8n orchestrierte Pipeline auf einem selbstgehosteten Server, wobei die Publishing-Workflows aus Python code-generiert werden, damit sie versioniert und aus dem Quellcode reproduzierbar sind statt in einer UI von Hand zusammengeklickt.
Ein täglicher Lauf rotiert den Post-Typ (derselbe Typ läuft nie zwei Tage hintereinander) und wählt eine Veröffentlichungszeit aus einem datums-geseedeten Jitter, sodass das erneute Ausführen eines Tages denselben Zeitplan reproduziert statt eines zufälligen. Ein Copywriter-LLM entwirft den Text; ein separates Kritiker-LLM bewertet ihn anhand expliziter Markenregeln und schickt bei Problemen genau eine Überarbeitung zurück. Ein Bildmodell erzeugt das Visual, wo der Post-Typ es verlangt (manche Typen nutzen stattdessen ein menschliches Foto-Briefing). Der fertige Entwurf landet in einer Notion-Freigabe-Queue; ein Mensch gibt dort oder über einen Telegram-Bot frei, und erst dann veröffentlicht ein n8n-Auto-Poster — der die Queue alle zehn Minuten abfragt — auf Instagram (Feed + Reels), Facebook und Google Business Profile.
Ein Kritiker ist eine andere Rolle, keine zweite Meinung aus demselben Prompt — und der Generator hält nie die Schlüssel zum Veröffentlichen.
Lektions-Gedächtnis, das sich aufbaut. Jede Kritiker-Korrektur wird normalisiert, zu einer stabilen ID gehasht, dedupliziert und gezählt; die fünf jüngsten Korrekturen werden beim nächsten Lauf in den Prompt des Copywriters eingespeist. Das System hört auf, dieselben Fehler zu wiederholen, ganz ohne Neutraining — der Prompt trägt das institutionelle Gedächtnis (zum Beispiel: nie mit einer bestimmten Klischee-Phrase eröffnen — viermal moniert).
Entscheidungen & Abwägungen
Der Generator hält nie den Veröffentlichen-Knopf. Alles landet als Entwurf in der Freigabe-Queue, und ein separater Auto-Poster veröffentlicht nur, was ein Mensch freigegeben hat. Es ist die günstigste Versicherung, die ein markenbezogenes LLM-System kaufen kann — zum Preis eines täglichen menschlichen Kontaktpunkts, der es ehrlich hält.
Die Workflows aus Python code-generieren. Die Publishing-Graphen werden von Python aus dem Quellcode gebaut, nicht in der n8n-UI zusammengeklickt, damit sie diff-bar und reproduzierbar sind. Die Abwägung ist ein Build-Schritt zwischen dir und dem laufenden Workflow — und der schlimmste Bug lebte genau dort.
Deterministisches Scheduling. Die Post-Zeiten stammen aus einem datums-geseedeten Jitter, sodass das erneute Ausführen eines Tages idempotent und debuggbar ist, während der Feed weiterhin menschlich getaktet aussieht — nichts feuert durch einen erneuten Lauf doppelt.
Was gebrochen ist
Doppelte Posts gingen live — der kundenseitige Fall. Der Workflow-Generator verwendete identische Node-Namen für zwei Schritte erneut, und weil n8n seine Verbindungen über Node-Namen adressiert, sammelte der generierte Graph doppelte Kanten an: derselbe Post wurde zweimal auf Instagram und viermal auf Facebook und Google Business Profile veröffentlicht, bevor es jemand bemerkte. Der Fix war strukturell — eindeutige Node-Namen, ein Validierungslauf zur Build-Zeit mit expliziten Strukturprüfungen, eine Dry-Run-Variante des Workflows und eine echte Testsuite —, der aus „sieht in der UI richtig aus" ein „schlägt im Build fehl, wenn der Graph fehlerhaft ist" macht.
Das Härten des Prompts brachte das Modell zum Absturz. Nachdem der System-Prompt des Copywriters mit einer Bann-Liste und harten Regeln verschärft worden war, stürzte der erste Lauf mit einem Längenfehler ab: Mit einem langen, regelbeladenen Prompt plus einer strikten JSON-Schema-Vorgabe drehte das Modell, um jede Regel zu erfüllen, und erreichte seine ~16K-Ausgabegrenze, ohne das JSON je zu schließen. Die Ausgabe-Token zu deckeln verschob nur die Klippe; der eigentliche Fix war, den Prompt selbst zu verdichten.
Mehr Regeln machten die Ausgabe unzuverlässiger, nicht zuverlässiger — ab einem Punkt ist Prompt-Gewicht ein Kostenfaktor, kein Schutz.
Die Bilder zu den Plattformen zu bekommen, war eine eigene Saga: Die Social-APIs konnten die temporären Upload-URLs nicht abrufen, sodass jedes Bild vor dem Posten in einem dedizierten öffentlichen Speicher vorab bereitgestellt werden musste.
Das Ergebnis
Seit 2025 täglich im Produktivbetrieb. Der eigentliche Wert ist, die tägliche Produktionslast zu entfernen — ein Bild beschaffen, den Text schreiben, Titel und Hashtags ausdenken und über jede Plattform posten —, sodass der Account konsistent veröffentlicht, ohne dass jemand Zeit findet, jeden Post von Hand zu erstellen. Im selben Zeitraum wuchs der Account von ~350 auf ~1.200 Follower — ein korrelatives Signal über den Zeitraum, in dem die Pipeline lief, kein kontrolliertes Ergebnis und nicht die Kernaussage.