Webhooks nutzen: Formularabsendungen per JSON an externe Systeme senden
Ein Webhook ist der direkteste Weg, eine Formularabsendung an ein beliebiges System im Internet zu senden. Funnelforms baut beim Absenden ein strukturiertes JSON-Paket mit allen Antworten, Feld-Metadaten und Analytics und liefert es an die URL deiner Wahl. Überall dort, wo ein Endpunkt HTTPS POST empfangen kann, kannst du anbinden — ohne eine Drittanbieter-Plattform dazwischenzuschalten.
Voraussetzungen
- Ein angemeldetes Funnelforms-Konto mit Zugriff auf den Formular-Editor.
- Eine erreichbare Empfänger-URL, idealerweise per
https://. - Der Empfänger antwortet innerhalb von 15 Sekunden mit einem 2xx-Status.
Hinweis: Webhooks sind in allen aktiven Tarifen verfügbar. Auf einem heruntergestuften Free-Konto greifen die allgemeinen Limits (1 Formular, 1 Domain, 1 Team-Mitglied, 10 MB pro Datei) — die Webhook-Funktion selbst bleibt nutzbar.
Wo du Webhooks konfigurierst
- Editor → Benachrichtigungen → Webhook — feuert einmal pro abgeschlossener Submission. Der Standardfall „jeden Lead schicken".
- Editor → Logik → Webhook-Aktion — feuert, wenn ein bestimmter Logik-Node im Flow erreicht wird. Sinnvoll, wenn nur bestimmte Antwortpfade einen Call auslösen sollen.
- Editor → Apps — wenn ein Automation-Tool (Zapier, Make) mit deinem Funnelforms-Konto verbunden ist, läuft dessen Webhook ebenfalls automatisch mit, ohne dass du eine URL pflegen musst.
Funktionen

- HTTPS POST mit
Content-Type: application/json. - Asynchrone Auslieferung über eine interne Warteschlange — die Submission wird nie blockiert.
- Automatische Wiederholungen bei vorübergehenden Fehlern.
- Mehrere Empfänger pro Formular möglich (Submit-Webhook, Logik-Webhooks und Automation-Webhooks parallel).
Schritt für Schritt: Submit-Webhook
- Öffne das Formular im Editor.
- Wechsle in den Tab Benachrichtigungen.
- Aktiviere Webhook.
- Trage die Ziel-URL in Webhook URL ein.
- Speichern.
Schritt für Schritt: Logik-Webhook
- Öffne den Tab Logik und füge dem gewünschten Node eine Webhook-Aktion hinzu.
- Trage die Ziel-URL ein. Die HTTP-Methode ist bei Logik-Webhooks fest POST.
- Speichern.
Was Funnelforms sendet
Die Payload ist ein JSON-Objekt mit diesen Top-Level-Feldern:
timestamp— Zeitpunkt der Auslieferung (ISO-String).id— UUID der Submission, geeignet zur Deduplizierung.form—id,title,projectId,customSlug.formFields— Definition aller im Flow aktiven Felder.formResponsesByFieldId— Antworten, gekeyed über die interne Feld-UUID.formResponsesByWebhookFieldId— Antworten, gekeyed über die Webhook Field ID, die du pro Feld vergibst (z. B.email,first_name).formResponseId— UUID der Submission.analytics— Browser, Gerät, UTM-Parameter, Entry-/Exit-URL (sofern verfügbar).allQuestionData— menschenlesbarer Fließtext aller Frage-Antwort-Paare.
Hinweis: Submit-Felder mit Sub-Feldern werden zusätzlich top-level als
field-XXXX-Keys und imsubmit-Array ausgeliefert — das ist Absicht und Teil des öffentlichen Webhook-Vertrags. Verlasse dich in bestehenden Integrationen auf beide Stellen.
Hinweis (Logik-Flow mit mehreren Frage-Nodes): Wenn dasselbe Formularfeld in mehreren Logik-Nodes ausgespielt wird, werden die Antworten zusätzlich pro Node unter einem
node_id-Key abgelegt. So bleibt nachvollziehbar, welche Antwort aus welchem Logik-Pfad stammt.
Wie die Zustellung läuft
- Methode: POST.
- Timeout: 15 Sekunden. Antwortet dein Endpoint nicht rechtzeitig, gilt der Call als fehlgeschlagen.
- Größenlimit: 5 MB pro Payload. Größere Pakete werden als failed markiert.
- Non-blocking: Ein fehlschlagender Webhook bricht die Submission nicht — der Nutzer sieht immer die Thank-You-Seite.
Best Practices
- Vergib pro relevantem Feld eine Webhook Field ID — dein Backend bleibt stabil, auch wenn das Formular umgebaut wird.
- Antworte am Empfänger schnell mit 2xx und verarbeite asynchron weiter.
- Validiere alle eingehenden Daten serverseitig (Längen, Typen, Pflichtfelder).
- Sende dir vor dem Go-Live einen Test-Lead, um die exakte Struktur in deinem System zu sehen.
- Verarbeite Webhooks idempotent — Wiederholungen dürfen keine Duplikate erzeugen.
Stolpersteine
- HTTP statt HTTPS. HTTP wird akzeptiert, überträgt Lead-Daten aber unverschlüsselt. Nicht empfohlen.
- Lange Antwortzeiten am Empfänger. Alles über 15 Sekunden wird als Fehler gewertet.
- Payload größer als 5 MB. Sehr große Datei-Anhänge oder extrem viele Felder können das Limit überschreiten — der Call schlägt fehl.
- Felder ohne Antwort. Erscheinen als
nulloder werden weggelassen — nicht als leerer String. - Eigene Header oder Auth-Header. Aktuell nicht unterstützt — Funnelforms sendet ausschließlich
Content-Type: application/json. Authentifizierung über Query-Parameter oder über einen geheimen Pfad-Token in der URL implementieren.
Tipps
- Nutze für stabile Integrationen bevorzugt
formResponsesByWebhookFieldIdstatt der UUID-Variante. - Speichere die
idder Submission auf Empfängerseite, um Wiederholungen sicher zu erkennen.
FAQ
Kann ich mehrere Webhook-URLs gleichzeitig nutzen? Ja. Submit-Webhook, Logik-Webhooks und verbundene Automation-Tools liefern unabhängig voneinander aus.
Werden Datei-Uploads übertragen? Es werden öffentliche URLs zu hochgeladenen Dateien geliefert — keine Binärdaten.
Was passiert, wenn mein Endpoint kurz nicht erreichbar ist? Funnelforms wiederholt die Zustellung automatisch im Hintergrund. Bei dauerhaftem Fehlschlag wird die Lieferung als failed markiert.
Sehe ich Webhook-Fehler im Backend? Ja. Fehlgeschlagene Zustellungen werden protokolliert und in den Integrations-Hinweisen angezeigt, ohne den Nutzerfluss zu blockieren.
Kann ich Webhooks auch ohne Zapier oder Make nutzen? Ja. Webhooks sind eine native Funktion — du brauchst nur eine eigene URL, die HTTPS POST annimmt.