n8n Form Submission Automation — Step-by-Step Guide

n8n Formularautomatisierung – Schritt-für-Schritt-Anleitung

🇬🇧 English

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

Why Form Submissions Still Eat Your Time

Every contact form, lead form, survey or registration triggers the same manual chain: copy the data, paste it into a spreadsheet, send a confirmation email, notify the team on Slack, add the contact to your CRM. If you receive dozens of submissions a day, that chain quietly devours hours every week. The good news is that the entire chain can run on its own — and you need exactly zero lines of custom code to make it happen.

This guide walks you through building a reusable automation in n8n — an open-source workflow tool with 400+ integrations that you can self-host for free or run on n8n Cloud — so that every form submission triggers an instant, consistent response across all your tools.

What You Will Build

By the end of this tutorial you will have a working n8n workflow that:

  • Receives a form submission via webhook (works with any form tool)
  • Parses and transforms the incoming data
  • Saves the entry to a Google Sheet
  • Sends a personalised confirmation email to the submitter
  • Posts a notification to a Slack channel

Each step is modular — swap Google Sheets for Airtable, swap Slack for Teams, and the logic stays identical.

Prerequisites

  • An n8n instance (cloud account or self-hosted)
  • A form tool that supports webhook submissions (Typeform, Tally, Gravity Forms, or even a plain HTML form)
  • A Google account with a target spreadsheet ready
  • A Slack workspace with at least one channel

Step 1 — Create a New Workflow and Add the Webhook Node

Open n8n and click New Workflow. Search for the Webhook node and add it as your trigger. Set the HTTP method to POST and copy the generated webhook URL. This URL is the single entry point your form will call every time someone submits.

Pro tip: Switch the webhook to Test mode while you build. n8n will display every incoming payload in real time so you can inspect field names before wiring them to downstream nodes.

Step 2 — Connect Your Form to the Webhook

Go to your form tool's integration or notification settings and paste the webhook URL. The exact path differs by tool:

  • Typeform: Integrations → Webhooks → Add a webhook
  • Tally: Integrations → Webhooks → New webhook
  • Gravity Forms: Feeds → Webhooks add-on → Add new feed
  • HTML form: Set action to the webhook URL and method='post'

Submit a test entry. Switch back to n8n and click Listen for test event — the raw JSON payload will appear in the Webhook node output.

Step 3 — Parse and Map the Data

Different form tools send data in different shapes. Add a Set node (or the newer Edit Fields node) immediately after the Webhook node. Map each raw field to a clean, predictable variable name:

  • firstName ← {{ $json.form_response.answers[0].text }}
  • email ← {{ $json.form_response.answers[1].email }}
  • message ← {{ $json.form_response.answers[2].text }}
  • submittedAt ← {{ $now.toISO() }}

From this point on, every downstream node references these clean variable names rather than deeply nested raw paths. If you ever change your form structure, you update only this one node.

Step 4 — Save the Entry to Google Sheets

Add a Google Sheets node. Choose the Append Row operation. Select your spreadsheet and the target sheet tab. Map the columns:

  • Column A → {{ $json.firstName }}
  • Column B → {{ $json.email }}
  • Column C → {{ $json.message }}
  • Column D → {{ $json.submittedAt }}

Authenticate with your Google account using n8n's built-in OAuth2 credential flow. Run a test — within seconds the new row should appear in your sheet.

Step 5 — Send a Confirmation Email

Add a Gmail node (or use the generic Send Email node for SMTP). Set the To field to {{ $json.email }}. Write a subject like Thanks for reaching out, {{ $json.firstName }}! and craft a friendly body that references their submission details. Keep the tone personal — automation does not have to feel robotic.

Step 6 — Notify Your Team on Slack

Add a Slack node, choose the Send Message operation, and pick your notification channel. A useful message template:

  • New form submission from {{ $json.firstName }}
  • Email: {{ $json.email }}
  • Message: {{ $json.message }}
  • Received at: {{ $json.submittedAt }}

Your team sees every submission in real time without checking email or a dashboard.

Step 7 — Activate the Workflow

Click the toggle in the top-right corner of n8n to switch from Test to Active mode. Your workflow is now live. Submit a real entry through your form and watch n8n execute every step automatically — Google Sheets row, confirmation email and Slack notification, all within a few seconds.

Extending the Workflow

Once the core chain works, it is straightforward to add more steps:

  • CRM sync: Add a HubSpot or Pipedrive node to create or update a contact automatically.
  • Conditional routing: Use an IF node to send high-value leads to a different Slack channel or assign them to a sales rep.
  • Document generation: If the form collects contract or agreement data, a document-workflow tool like airSlate can generate and send e-signature requests automatically as a next step.
  • Error handling: Add an Error Trigger workflow that emails you if any node fails, so no submission is ever silently lost.

Common Mistakes to Avoid

  • Using raw field paths everywhere: Always parse into clean variables in one Set node. Raw paths break the moment your form changes.
  • Leaving the workflow in Test mode: Submissions received while in Test mode are not processed automatically. Always activate when you go live.
  • Skipping error handling: A failed Google Sheets authentication will silently drop submissions. Add error triggers from day one.
  • Hardcoding credentials: Use n8n's credential manager for every service. Never paste API keys directly into node fields.

Final Thoughts

A form submission workflow is one of the best starting points in automation because the trigger is clear, the data is structured and the downstream actions are predictable. Once you have built this once, you will find yourself reusing the pattern — webhooks in, parse, branch, act — across dozens of different business processes.

If you want to stop processing form submissions by hand, you can build this entire workflow via n8n — including 400+ integrations and the option to self-host for free or use n8n Cloud — to put every lead, contact request and registration on autopilot from day one.

🇩🇪 Deutsch

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

Warum Formularübermittlungen noch immer Zeit fressen

Jedes Kontaktformular, Lead-Formular oder jede Umfrage löst dieselbe manuelle Kette aus: Daten kopieren, in eine Tabelle einfügen, eine Bestätigungs-E-Mail schreiben, das Team auf Slack benachrichtigen, den Kontakt ins CRM übertragen. Wer täglich Dutzende Einsendungen erhält, verliert dabei still und leise Stunden pro Woche. Die gute Nachricht: Die gesamte Kette lässt sich vollständig automatisieren — ohne eine einzige Zeile Code.

Diese Anleitung zeigt dir, wie du mit n8n — einem Open-Source-Workflow-Tool mit über 400 Integrationen, das du kostenlos selbst hosten oder als n8n Cloud nutzen kannst — einen wiederverwendbaren Workflow baust, der bei jeder Formularübermittlung sofort und konsistent alle deine Tools aktualisiert.

Was du bauen wirst

Am Ende dieser Anleitung hast du einen funktionierenden n8n-Workflow, der:

  • Formularübermittlungen per Webhook empfängt (kompatibel mit jedem Formular-Tool)
  • Die eingehenden Daten parst und bereinigt
  • Den Eintrag in einem Google Sheet speichert
  • Eine personalisierte Bestätigungs-E-Mail an die einsendende Person sendet
  • Eine Benachrichtigung in einem Slack-Kanal postet

Jeder Schritt ist modular aufgebaut — tausche Google Sheets gegen Airtable aus oder Slack gegen Teams, und die Logik bleibt identisch.

Voraussetzungen

  • Eine n8n-Instanz (Cloud-Konto oder selbst gehostet)
  • Ein Formular-Tool mit Webhook-Unterstützung (Typeform, Tally, Gravity Forms oder ein einfaches HTML-Formular)
  • Ein Google-Konto mit einer vorbereiteten Zieltabelle
  • Einen Slack-Workspace mit mindestens einem Kanal

Schritt 1 — Neuen Workflow anlegen und Webhook-Node hinzufügen

Öffne n8n und klicke auf New Workflow. Suche nach dem Webhook-Node und füge ihn als Trigger hinzu. Setze die HTTP-Methode auf POST und kopiere die generierte Webhook-URL. Diese URL ist der einzige Einstiegspunkt, den dein Formular bei jeder Einsendung aufruft.

Tipp: Schalte den Webhook während des Aufbaus auf den Test-Modus. n8n zeigt dann jede eingehende Anfrage in Echtzeit an, sodass du die Feldnamen prüfen kannst, bevor du sie mit nachgelagerten Nodes verbindest.

Schritt 2 — Formular mit dem Webhook verbinden

Gehe in deinem Formular-Tool zu den Integrations- oder Benachrichtigungs-Einstellungen und füge die Webhook-URL ein. Der genaue Pfad unterscheidet sich je nach Tool:

  • Typeform: Integrations → Webhooks → Add a webhook
  • Tally: Integrations → Webhooks → New webhook
  • Gravity Forms: Feeds → Webhooks-Add-on → Add new feed
  • HTML-Formular: action auf die Webhook-URL setzen, method='post'

Sende eine Testübermittlung ab. Wechsle zurück zu n8n und klicke auf Listen for test event — die rohe JSON-Nutzlast erscheint in der Ausgabe des Webhook-Nodes.

Schritt 3 — Daten parsen und mappen

Verschiedene Formular-Tools liefern Daten in unterschiedlichen Strukturen. Füge direkt nach dem Webhook-Node einen Set-Node (oder den neueren Edit Fields-Node) ein. Mappe jedes Rohfeld auf einen sauberen, vorhersehbaren Variablennamen:

  • firstName ← {{ $json.form_response.answers[0].text }}
  • email ← {{ $json.form_response.answers[1].email }}
  • message ← {{ $json.form_response.answers[2].text }}
  • submittedAt ← {{ $now.toISO() }}

Alle nachgelagerten Nodes referenzieren fortan diese sauberen Variablennamen statt tief verschachtelter Rohpfade. Ändert sich dein Formular, aktualisierst du nur diesen einen Node.

Schritt 4 — Eintrag in Google Sheets speichern

Füge einen Google Sheets-Node hinzu. Wähle die Operation Append Row. Wähle deine Tabelle und das Ziel-Tabellenblatt. Mappe die Spalten:

  • Spalte A → {{ $json.firstName }}
  • Spalte B → {{ $json.email }}
  • Spalte C → {{ $json.message }}
  • Spalte D → {{ $json.submittedAt }}

Authentifiziere dich mit deinem Google-Konto über den integrierten OAuth2-Flow von n8n. Führe einen Test aus — innerhalb weniger Sekunden sollte die neue Zeile in deiner Tabelle erscheinen.

Schritt 5 — Bestätigungs-E-Mail senden

Füge einen Gmail-Node (oder den generischen Send Email-Node für SMTP) hinzu. Setze das An-Feld auf {{ $json.email }}. Schreibe einen Betreff wie Danke für deine Nachricht, {{ $json.firstName }}! und verfasse einen freundlichen Text, der auf die Einsendung eingeht. Eine persönliche Note macht den Unterschied — Automatisierung muss nicht unpersönlich wirken.

Schritt 6 — Team auf Slack benachrichtigen

Füge einen Slack-Node hinzu, wähle die Operation Send Message und deinen Benachrichtigungskanal. Eine nützliche Nachrichtenvorlage:

  • Neue Formularübermittlung von {{ $json.firstName }}
  • E-Mail: {{ $json.email }}
  • Nachricht: {{ $json.message }}
  • Eingegangen um: {{ $json.submittedAt }}

Dein Team sieht jede Einsendung in Echtzeit, ohne E-Mails zu prüfen oder ein Dashboard zu öffnen.

Schritt 7 — Workflow aktivieren

Klicke auf den Schalter oben rechts in n8n, um vom Test-Modus in den Aktiv-Modus zu wechseln. Dein Workflow ist jetzt live. Sende eine echte Einsendung über dein Formular ab und beobachte, wie n8n jeden Schritt automatisch ausführt — Google-Sheets-Zeile, Bestätigungs-E-Mail und Slack-Benachrichtigung, alles innerhalb weniger Sekunden.

Den Workflow erweitern

Sobald die Grundkette funktioniert, lassen sich weitere Schritte problemlos ergänzen:

  • CRM-Sync: Füge einen HubSpot- oder Pipedrive-Node hinzu, um Kontakte automatisch anzulegen oder zu aktualisieren.
  • Bedingte Weiterleitung: Nutze einen IF-Node, um hochwertige Leads an einen anderen Slack-Kanal weiterzuleiten oder einem Vertriebsmitarbeiter zuzuweisen.
  • Dokumentenworkflows: Wenn das Formular Vertrags- oder Vereinbarungsdaten erfasst, kann airSlate automatisch Dokumente erstellen und E-Signatur-Anfragen versenden.
  • Fehlerbehandlung: Lege einen separaten Error Trigger-Workflow an, der dich per E-Mail benachrichtigt, wenn ein Node fehlschlägt — so geht keine Einsendung verloren.

Häufige Fehler vermeiden

  • Rohpfade überall verwenden: Parse die Daten immer in einem Set-Node in saubere Variablen. Rohpfade brechen, sobald sich dein Formular ändert.
  • Workflow im Test-Modus lassen: Einsendungen im Test-Modus werden nicht automatisch verarbeitet. Aktiviere den Workflow immer, bevor du live gehst.
  • Fehlerbehandlung überspringen: Eine fehlgeschlagene Google-Sheets-Authentifizierung lässt Einsendungen still verschwinden. Richte Fehler-Trigger von Anfang an ein.
  • Zugangsdaten hardcoden: Verwende für jeden Dienst den Credential Manager von n8n. Füge API-Schlüssel niemals direkt in Node-Felder ein.

Fazit

Ein Formular-Submissions-Workflow ist einer der besten Einstiegspunkte in die Automatisierung: Der Trigger ist klar, die Daten sind strukturiert und die nachgelagerten Aktionen sind vorhersehbar. Hast du diesen Workflow einmal gebaut, wirst du das Muster — Webhook rein, parsen, verzweigen, handeln — für Dutzende weiterer Geschäftsprozesse wiederverwenden.

Wenn du Formularübermittlungen nicht länger manuell verarbeiten möchtest, kannst du über n8n diesen gesamten Workflow aufbauen — inklusive über 400 Integrationen und der Möglichkeit, n8n kostenlos selbst zu hosten oder die n8n Cloud zu nutzen — und jeden Lead, jede Kontaktanfrage und jede Anmeldung vom ersten Tag an automatisch verarbeiten lassen.