Netlify + n8n: Auto-Deploy Static Sites from Google Sheets

Netlify + n8n: Statische Websites aus Google Sheets deployen

🇬🇧 English

This article contains affiliate links. If you buy through them, we may earn a commission at no extra cost to you.

Netlify + n8n: Auto-Deploy Static Websites from a Google Sheets Trigger

If you manage static websites — landing pages, documentation sites, or content microsites — you know the friction: someone updates a spreadsheet, and then someone else has to remember to trigger a new deploy. With n8n, you can eliminate that manual step entirely. n8n is an open-source workflow automation tool with 400+ integrations that you can self-host for free or run on n8n Cloud, making it ideal for connecting Google Sheets directly to Netlify's deploy pipeline.

This guide walks you through building an n8n workflow that watches a Google Sheet for changes and automatically fires a Netlify build hook whenever content is updated. No custom code required on the Netlify side — just a clean automation chain.

What You Need Before You Start

  • An n8n instance — self-hosted or on n8n Cloud
  • A Netlify account — with your static site already connected to a Git repository
  • A Google Sheets document — structured with your content or configuration data
  • A Netlify Build Hook URL — generated in your Netlify site settings

Step 1: Create a Netlify Build Hook

Log into Netlify and navigate to your site's settings. Under Build & Deploy → Build hooks, click Add build hook. Give it a descriptive name like n8n-sheets-trigger and choose the branch to deploy (usually main). Netlify will generate a unique webhook URL — copy it. This URL, when called with a POST request, instantly triggers a new build and deploy of your site.

Step 2: Set Up Your Google Sheet

Structure your sheet so that one column acts as a status flag — for example, a column called Deploy with values like ready or pending. Your n8n workflow will poll this column and act when a row switches to ready. You can also use a Last Modified timestamp column to catch any row-level change.

Step 3: Build the n8n Workflow

Node 1 — Google Sheets Trigger (Poll)

In n8n, add a Schedule Trigger node set to run every 5 or 15 minutes. Connect it to a Google Sheets node set to Read Rows. Authenticate with your Google account and point the node to your spreadsheet and the correct sheet tab. Filter the results using an IF node to check whether the Deploy column equals ready.

Node 2 — IF Condition

Configure the IF node to pass rows forward only when the Deploy field contains the value ready. Rows with pending or any other value fall through the false branch and are ignored.

Node 3 — HTTP Request (Netlify Build Hook)

Add an HTTP Request node. Set the method to POST and paste your Netlify build hook URL into the URL field. No body or headers are required — Netlify only needs the POST signal. This single node triggers a full site rebuild and deploy.

Node 4 — Update Google Sheets (Mark as Deployed)

After the deploy is triggered, use another Google Sheets node set to Update Row. Write back a value like deployed into the Deploy column of the matching row. This prevents the workflow from re-triggering the same deploy on the next poll cycle.

Step 4: Test the Workflow

Set one row's Deploy column to ready, then manually execute the workflow in n8n. Watch the execution log — each node should show a green success state. Switch to your Netlify dashboard and confirm that a new deploy has started. Once it completes, return to your sheet and verify that the row now shows deployed.

Optional Enhancements

  • Slack or email notification — Add a Slack or Gmail node after the HTTP Request to alert your team when a deploy starts.
  • Multi-site support — Add a column for the build hook URL so different rows can trigger deploys on different Netlify sites.
  • Error handling — Use n8n's Error Trigger workflow to catch failed HTTP requests and notify a fallback channel.
  • Webhook trigger instead of polling — If your Google Sheet is updated by a form or another automation, expose an n8n Webhook node as the entry point and remove the Schedule Trigger entirely for real-time response.

Why This Pattern Works

Static site generators like Hugo, Eleventy, or Astro are fast and cheap to host, but their deploy cycle is often the bottleneck for non-technical team members. By placing a Google Sheet between your team and Netlify, you give editors a familiar interface while the automation handles the technical steps. No one needs to touch a Git repository or a CI/CD panel.

This same pattern scales further: you can trigger deploys when a row is added by a form submission, when a Notion database status changes (via another n8n node), or on a content publication schedule managed entirely inside a spreadsheet.

Cost and Hosting Considerations

Both n8n Cloud's starter tier and Netlify's free plan are sufficient to run this workflow at low-to-medium frequency. If you self-host n8n on a VPS, your only cost is the server. Netlify's free plan includes 300 build minutes per month, which comfortably covers dozens of automated deploys.

If you want to build and run this automated deploy workflow without writing server-side code, you can get it running via n8n — including 400+ integrations and a free self-hosting option — to connect your Google Sheets content pipeline directly to Netlify and ship updates on autopilot.

🇩🇪 Deutsch

Dieser Artikel enthält Affiliate-Links (Werbung). Kaufst du darüber, erhalten wir ggf. eine Provision – für dich ohne Mehrkosten.

Netlify + n8n: Statische Websites automatisch aus Google Sheets heraus deployen

Wer statische Websites verwaltet — etwa Landing Pages, Dokumentationsseiten oder Content-Microsites — kennt das Problem: Jemand aktualisiert eine Tabelle, und dann muss jemand anders daran denken, manuell einen neuen Deploy anzustoßen. Mit n8n entfällt dieser Schritt vollständig. n8n ist ein Open-Source-Workflow-Automatisierungstool mit über 400 Integrationen, das du kostenlos selbst hosten oder als n8n Cloud nutzen kannst — ideal, um Google Sheets direkt mit der Netlify-Deploy-Pipeline zu verbinden.

Diese Anleitung zeigt dir Schritt für Schritt, wie du einen n8n-Workflow aufbaust, der eine Google-Tabelle auf Änderungen überwacht und automatisch einen Netlify-Build-Hook auslöst, sobald Inhalte aktualisiert werden.

Voraussetzungen

  • Eine n8n-Instanz — selbst gehostet oder als n8n Cloud
  • Ein Netlify-Konto — mit deiner statischen Website, die bereits mit einem Git-Repository verbunden ist
  • Ein Google-Sheets-Dokument — strukturiert mit deinen Inhalten oder Konfigurationsdaten
  • Eine Netlify-Build-Hook-URL — generiert in den Netlify-Siteeinstellungen

Schritt 1: Netlify Build Hook erstellen

Melde dich bei Netlify an und navigiere zu den Einstellungen deiner Website. Unter Build & Deploy → Build hooks klickst du auf Add build hook. Vergib einen beschreibenden Namen wie n8n-sheets-trigger und wähle den Branch aus, der deployt werden soll (in der Regel main). Netlify generiert daraufhin eine eindeutige Webhook-URL — kopiere sie. Sobald diese URL mit einem POST-Request aufgerufen wird, startet Netlify sofort einen neuen Build-und-Deploy-Vorgang.

Schritt 2: Google Sheets vorbereiten

Strukturiere deine Tabelle so, dass eine Spalte als Status-Flag dient — zum Beispiel eine Spalte namens Deploy mit den Werten bereit oder ausstehend. Der n8n-Workflow prüft diese Spalte regelmäßig und reagiert, sobald eine Zeile auf bereit wechselt. Alternativ kannst du eine Spalte Zuletzt geändert mit einem Zeitstempel verwenden, um Änderungen auf Zeilenebene zu erfassen.

Schritt 3: Den n8n-Workflow aufbauen

Node 1 — Schedule Trigger (Polling)

Füge in n8n einen Schedule Trigger-Node hinzu, der alle 5 oder 15 Minuten ausgeführt wird. Verbinde ihn mit einem Google Sheets-Node, der auf Zeilen lesen konfiguriert ist. Authentifiziere dich mit deinem Google-Konto und wähle das entsprechende Dokument und Tabellenblatt aus. Filtere die Ergebnisse anschließend mit einem IF-Node, der prüft, ob die Spalte Deploy den Wert bereit enthält.

Node 2 — IF-Bedingung

Konfiguriere den IF-Node so, dass nur Zeilen weitergeleitet werden, bei denen das Feld Deploy den Wert bereit hat. Zeilen mit ausstehend oder einem anderen Wert landen im False-Zweig und werden ignoriert.

Node 3 — HTTP Request (Netlify Build Hook)

Füge einen HTTP Request-Node hinzu. Setze die Methode auf POST und füge deine Netlify-Build-Hook-URL in das URL-Feld ein. Weder Body noch Header sind erforderlich — Netlify benötigt nur das POST-Signal. Dieser eine Node löst einen vollständigen Site-Rebuild und -Deploy aus.

Node 4 — Google Sheets aktualisieren (als deployt markieren)

Füge nach dem HTTP-Request-Node einen weiteren Google Sheets-Node hinzu, der auf Zeile aktualisieren eingestellt ist. Schreibe den Wert deployt zurück in die Deploy-Spalte der entsprechenden Zeile. So wird verhindert, dass derselbe Deploy beim nächsten Polling-Zyklus erneut ausgelöst wird.

Schritt 4: Workflow testen

Setze in einer Zeile die Deploy-Spalte auf bereit und führe den Workflow in n8n manuell aus. Beobachte das Ausführungsprotokoll — jeder Node sollte grün erscheinen. Wechsle danach zu deinem Netlify-Dashboard und prüfe, ob ein neuer Deploy gestartet wurde. Sobald dieser abgeschlossen ist, kontrolliere in deiner Tabelle, ob die Zeile nun deployt anzeigt.

Optionale Erweiterungen

  • Slack- oder E-Mail-Benachrichtigung — Füge nach dem HTTP-Request-Node einen Slack- oder Gmail-Node hinzu, der dein Team über den gestarteten Deploy informiert.
  • Mehrere Sites unterstützen — Ergänze eine Spalte für die Build-Hook-URL, damit verschiedene Zeilen Deploys auf unterschiedlichen Netlify-Sites auslösen können.
  • Fehlerbehandlung — Nutze n8ns Error Trigger, um fehlgeschlagene HTTP-Requests abzufangen und einen Fallback-Kanal zu benachrichtigen.
  • Webhook statt Polling — Wenn deine Google-Tabelle durch ein Formular oder eine andere Automatisierung befüllt wird, setze einen n8n-Webhook-Node als Einstiegspunkt ein und entferne den Schedule Trigger für eine Echtzeit-Reaktion.

Warum dieses Muster funktioniert

Static-Site-Generatoren wie Hugo, Eleventy oder Astro sind schnell und günstig zu hosten — doch der Deploy-Zyklus ist für nicht-technische Teammitglieder oft der Flaschenhals. Indem du ein Google Sheet zwischen dein Team und Netlify schaltest, erhältst du eine vertraute Oberfläche für Redakteure, während die Automatisierung die technischen Schritte übernimmt. Niemand muss ein Git-Repository oder ein CI/CD-Panel anfassen.

Das gleiche Muster lässt sich weiter skalieren: Deploys können ausgelöst werden, wenn eine Zeile durch eine Formularabsendung hinzugefügt wird, wenn sich ein Notion-Datenbankstatus ändert (über einen weiteren n8n-Node) oder nach einem Veröffentlichungsplan, der vollständig in einer Tabelle verwaltet wird.

Kosten und Hosting

Sowohl der Starter-Tarif von n8n Cloud als auch der kostenlose Plan von Netlify reichen für diesen Workflow bei niedrigem bis mittlerem Volumen aus. Wer n8n selbst auf einem VPS hostet, zahlt nur für den Server. Netlify's Free-Plan umfasst 300 Build-Minuten pro Monat — genug für Dutzende automatisierter Deploys.

Wenn du diesen automatisierten Deploy-Workflow aufbauen möchtest, ohne serverseitigen Code zu schreiben, kannst du über n8n loslegen — inklusive über 400 Integrationen und kostenloser Selbst-Hosting-Option — und deine Google-Sheets-Pipeline direkt mit Netlify verbinden, um Updates vollautomatisch zu veröffentlichen.