Bevor Sie starten
- n8n Cloud: bezahlte Tarife ab 20 € im Monat bei jährlicher Zahlung, mit Testphase. n8n gibt Frankfurt als Speicherort für Cloud-Daten an.
- Selbst gehostet: Die Community Edition ist kostenlos. Formgong sendet nur an HTTPS auf Port 443 und einen öffentlichen Host.
http://localhost:5678oder eine LAN-Adresse lehnt Formgong ab. Stellen Sie n8n hinter einen Reverse Proxy mit TLS-Zertifikat und setzen SieWEBHOOK_URLauf diese öffentliche Adresse. - Formgong: ein Webhook pro Formular im Free-Tarif, fünf in Pro und Business. Der Wechsel von Test- zu Produktions-URL nutzt denselben Platz.
Die Oberfläche von n8n ist englisch, deshalb stehen die Feldnamen unten auf Englisch.
Schritt für Schritt
- Legen Sie einen Workflow an und fügen Sie den Trigger Webhook hinzu.
- Setzen Sie HTTP Method auf POST. Wählen Sie einen sprechenden Path, etwa
formgong-kontakt. - Lassen Sie Authentication auf None. Formgong kann weder Basic-Auth noch eigene Header oder JWT senden. Prüfen Sie stattdessen die Signatur (siehe unten). Auch die IP-Allowlist passt nicht: Formgong sendet aus dem Cloudflare-Netz, nicht von festen Adressen.
- Setzen Sie Respond auf Immediately. Formgong wartet nur 10 Sekunden auf eine Antwort.
- Kopieren Sie die Test URL. Öffnen Sie in Formgong Formulareinstellungen → Webhook, fügen Sie sie ein und klicken Sie auf „Webhook hinzufügen“.
- Klicken Sie in n8n auf Listen for test event und senden Sie eine echte Einsendung von Ihrer Website.
- Fügen Sie die nächsten Nodes hinzu und ordnen Sie die Felder zu. Läuft alles, entfernen Sie die Test-URL in Formgong und tragen die Production URL ein.
- Veröffentlichen Sie den Workflow. Produktive Läufe sehen Sie unter Executions, nicht auf der Arbeitsfläche.
Was der Webhook-Node ausgibt
Der Node liefert headers, params, query und body. Das JSON von Formgong steht in body.
{
"event": "submission.created",
"form": {
"id": "6f1c2a9e-4b7d-4e0a-9c3f-2d8b5e7a1f40",
"name": "Kontakt"
},
"submission": {
"id": "b3e04c51-8a2f-4d6e-9f17-0c5a3b8d2e96",
"created_at": "2026-10-03T09:15:00.000Z",
"page_url": "https://example.com/contact",
"fields": {
"name": "Jonas Weber",
"email": "jonas@example.com",
"phone": "+4915112345678",
"message": "Bitte ein Angebot für 20 Stück",
"utm_source": "google"
},
"is_spam": false
}
}Header-Namen kommen kleingeschrieben an, zum Beispiel $json.headers["x-signature"] und $json.headers["x-formgong-event"].
Feldzuordnung
| Sie brauchen | n8n-Ausdruck |
|---|---|
| Ein Formularfeld | {{ $json.body.submission.fields.email }} |
| Formularname | {{ $json.body.form.name }} |
| Seiten-URL | {{ $json.body.submission.page_url }} |
| Ereignistyp | {{ $json.body.event }} |
| Eindeutige ID | {{ $json.body.submission.id }} |
Um Test-Zustellungen zu überspringen, nutzen Sie in den Optionen des Webhook-Nodes Only Run If mit {{ $json.body.event === 'submission.created' }}. Nicht passende Requests bekommen trotzdem 200, also wiederholt Formgong sie nicht.
Optional: Signatur prüfen
Die Signatur ist ein HMAC-SHA256 des Roh-Bodys mit dem „Signatur-Secret“ aus dem Webhook-Tab von Formgong. n8n prüft sie ohne Code:
- Schalten Sie in den Optionen des Webhook-Nodes Raw Body ein. Der Body kommt dann als Binärdaten.
- Fügen Sie einen Crypto-Node hinzu: Aktion Hmac, Binary File an, die Binär-Property aus dem Webhook-Node, Typ SHA256, Kodierung HEX. Das Signatur-Secret gehört in das Feld Hmac Secret der Crypto-Zugangsdaten.
- Fügen Sie einen If-Node hinzu:
sha256=plus das Crypto-Ergebnis muss{{ $('Webhook').item.json.headers['x-signature'] }}entsprechen. - Im true-Zweig macht Extract from File (Extract From JSON) aus dem Roh-Body wieder Felder.
Signierten Request im Terminal senden
SECRET='<your signing secret>'
URL='<your webhook URL>'
BODY='{"event":"webhook.test","form":{"id":"x","name":"Test"},"submission":{"id":"test","created_at":"2026-10-03T09:15:00.000Z","page_url":null,"fields":{"message":"Formgong test"},"is_spam":false}}'
SIG=$(printf '%s' "$BODY" | openssl dgst -sha256 -hmac "$SECRET" | sed 's/^.* //')
curl -sS -X POST "$URL" \
-H 'content-type: application/json' \
-H 'x-formgong-event: webhook.test' \
-H "x-signature: sha256=$SIG" \
--data "$BODY"Fehlerbehebung
- 404 unter „Letzte Zustellungen“: Die Test URL funktioniert nur einmal und nur, solange n8n lauscht. Die Production URL funktioniert nur bei veröffentlichtem Workflow.
- Formgong lehnt die URL ab: Sie muss mit
https://beginnen, Port 443 nutzen und auf einen öffentlichen Host zeigen. - Timeouts und Dubletten: Mit Respond = When Last Node Finishes kann ein langsamer Workflow 10 Sekunden überschreiten. Formgong wiederholt dann, und der Workflow läuft erneut. Antworten Sie sofort und prüfen Sie
submission.id, bevor Sie Datensätze anlegen. - Status 3xx: Ein Proxy, der weiterleitet (http auf https oder fehlender Schrägstrich), gilt als Fehler. Tragen Sie die URL genau so ein, wie n8n sie zeigt.
- Checkbox-Gruppe in einem Feld: Angehakte Boxen mit gleichem Namen kommen als ein Text an, zum Beispiel
E-Mail, Telefon. Ein Array erhalten Sie mit{{ $json.body.submission.fields.contact.split(', ') }}.
Fragen und Antworten
Zählt jede Einsendung als n8n-Execution?
In n8n Cloud ja: ein produktiver Lauf pro Einsendung, egal wie viele Nodes. Die selbst gehostete Community Edition hat kein Execution-Kontingent.
n8n Cloud oder selbst hosten – was ist besser für die DSGVO?
Beides kann passen. n8n gibt Frankfurt als Speicherort für Cloud-Daten an. Selbst gehostet bleiben die Daten auf Ihrem Server. Formgong speichert Einsendungen in der EU.
Kann ich die Header-Authentifizierung des Webhook-Nodes nutzen?
Nein, Formgong setzt keine eigenen Header. Prüfen Sie den Header X-Signature; er belegt, dass der Request von Ihrem Formular kommt.
Kann n8n die Daten danach an ein CRM senden?
Ja, mit einem HTTP Request-Node und dem API-Schlüssel des CRM. Den Schlüssel speichern Sie als Zugangsdaten in n8n, nie im Website-Code.
Quellen
Geprüft am 03.10.2026 anhand offizieller Hilfeseiten und öffentlicher Seiten: n8n-Doku: Webhook node, n8n-Doku: Crypto node, n8n-Doku: HTTP Request node, n8n-Preise, Formgong-Webhook-Referenz.