Google Sheets zu Social Media mit n8n

Google Sheets zu Social Media mit n8n

Aus einer Tabelle mit n8n veröffentlichen, das Zeilen-Tracking-Problem, vor dem niemand warnt, und wann ein CSV-Import die bessere Antwort ist.

Eine Tabelle ist ein schneller Ort, um einen Monat Beiträge zu schreiben. Sie herauszuholen ist der Teil, der sich zu automatisieren lohnt, aber nicht immer mit einem Workflow.

Zuerst: Ist das ein Batch oder ein Stream?

Ein Batch. Du schreibst einen Monat Beiträge, bist fertig und willst sie eingereiht haben. Du brauchst kein n8n. Exportiere als CSV und importiere es: Der Bulk-Composer von BulkPublish liest eine content-Spalte plus optional scheduled_at und media_urls. Zwei Minuten, nichts zu warten.

Ein Stream. Zeilen werden fortlaufend hinzugefügt, von mehreren Personen, und sollen veröffentlicht werden, sobald sie erscheinen. Dafür ist der Workflow da.

Den Workflow für einen Batch zu bauen ist eine dauerhafte Wartungslast für etwas, das ein Datei-Upload einmalig erledigt.

Der Workflow

1. Schedule Trigger, alle 15 oder 30 Minuten. Zieh das dem New-Row-Trigger vor, aus dem Grund unten.

2. Google-Sheets-Knoten, Zeilen lesen.

3. Filter auf Approved = yes und Published leer. Zwei Bedingungen, beide notwendig.

4. Beitrag bauen aus den Spalten.

5. BulkPublish-Knoten, Post → Create.

6. Zurück in das Sheet schreiben, Published und die Beitrags-URL setzen.

Das Zeilen-Tracking-Problem

Das ist es, was Leute erwischt, und es ist spezifisch für Tabellen.

Der New-Row-Trigger von n8n verfolgt die Position. Sortiert jemand das Sheet, löscht eine Zeile oder fügt eine in der Mitte ein, stimmt das Tracking nicht mehr mit der Realität überein, und du bekommst Duplikate, Auslassungen oder beides. Tabellen werden ständig umsortiert, denn dafür sind sie da.

Die Lösung ist, sich überhaupt nicht auf die Position zu verlassen: nach Zeitplan abfragen, auf eine Spalte filtern und nach dem Veröffentlichen zurückschreiben. Dann ist Umsortieren harmlos, weil der Workflow den Zustand aus der Zeile liest, statt Zeilen zu zählen.

Die Spalten

SpalteZweck
ContentDer Beitragstext
ChannelsZielplattformen
Publish atGeplante Zeit
Media URLOptionaler Anhang
ApprovedDas Gate. yes oder nichts
PublishedNach dem Posten zurückgeschrieben

Die Approved-Spalte existiert, weil eine Sheet-Zeile für den Workflow sichtbar ist, sobald sie erstellt wird, auch während jemand sie noch tippt.

Achte auf das Kontingent

Eine Tabelle macht es trivial, fünfzig Zeilen einzufügen, und fünfzig Zeilen sind fünfzig Beiträge.

  • Beiträge: Free: 3/Tag. Pro: 30/Tag. Business: unbegrenzt.
  • API-Anfragen/Tag: Free: 30. Pro: 5.000. Business: 50.000.
  • Kanäle: Free: 3 (1 pro Plattform). Pro: 30 (2 pro Plattform). Business: 75 (5 pro Plattform).

Ein Workflow, der alle 15 Minuten abfragt, verbraucht 96 Anfragen am Tag, bevor er überhaupt etwas veröffentlicht, sodass die kostenlose Stufe das nicht ausführen kann.

Prüf die Länge

Eine Tabellenzelle fasst weit mehr Text, als die meisten Plattformen akzeptieren, und nichts im Sheet warnt dich davor. Zeichenlimits werden beim Erstellen des Beitrags geprüft, du bekommst also einen klaren Fehler statt eines abgeschnittenen Beitrags, aber der Workflow muss das irgendwo protokollieren, wo du es auch wirklich siehst.

Zuerst als Entwurf

Lass es die erste Woche in Entwürfe laufen. Die Spaltenzuordnung ist der Teil, der schiefgeht, und in einer Liste von Entwürfen fällt das sofort auf.

BulkPublish veröffentlicht auf 15 Plattformen: Facebook, Instagram, TikTok, YouTube, X, Threads, Bluesky, Pinterest, Google Business Profile, LinkedIn, Mastodon, Discord, Telegram, Tumblr und Snapchat.

Die Kurzfassung

Ist das Sheet ein fertiger Plan, exportiere und importiere den CSV, statt etwas zu bauen. Ist es eine lebende Warteschlange, frag nach Zeitplan ab und filtere auf Spalten, statt den New-Row-Trigger zu nutzen, denn Tabellen werden umsortiert und positionsbasiertes Tracking erzeugt Duplikate. Setze ein Approved-Gate, und schreib nach dem Veröffentlichen zurück.