NueForm sendet Webhook-Benachrichtigungen für bestimmte Ereignisse in deinem Konto. Jede Webhook-Anfrage enthält ein event-Feld in der JSON-Payload, das angibt, was passiert ist.
Aktuelle Ereignisse
form.submitted
Feuert, wenn eine befragte Person eine vollständige Antwort auf eines deiner Formulare übermittelt.
| Eigenschaft | Wert |
|---|---|
| Ereignisname | form.submitted |
| Auslöser | Eine befragte Person füllt ein Formular aus und schickt es ab |
| Payload | Formulardetails, Response-ID, Antworten mit Zeitstempeln |
| Inkrementelle Formulare | Feuert nur, wenn die Response als complete markiert ist |
Das ist das zentrale Webhook-Ereignis in NueForm. Es feuert sowohl bei Standard-Formularen (einmalige Übermittlung) als auch bei Formularen mit inkrementeller Übermittlung — aber nur, wenn die Response den Status „vollständig" erreicht.
Wann es feuert:
- Bei einem Standard-Formular: unmittelbar nachdem die befragte Person auf „Absenden" klickt und die Response gespeichert wurde.
- Bei einem inkrementellen Formular: erst wenn die finale Übermittlung mit
complete: truegesendet wird. Zwischenspeicherungen lösen dieses Ereignis nicht aus. - Bei Formularen im Quiz-Modus (Wissensquiz, Lead-Qualifizierung, Match-Quiz): Die Payload enthält neben den Antworten auch die Quiz-Auswertung.
Wann es NICHT feuert:
- Bei Teilübermittlungen inkrementeller Formulare (wenn
completenichttrueist). - Bei Änderungen an bestehenden Responses (Responses sind nach der Übermittlung unveränderlich).
- Bei Formularentwürfen oder Vorschauen.
- Bei Testübermittlungen aus der Vorschau des Formular-Builders.
Das vollständige Payload-Schema findest du unter Payloads.
Geplante zukünftige Ereignisse
Die folgenden Ereignisse sind für kommende Releases geplant. Sie sind noch nicht verfügbar, werden hier aber dokumentiert, damit du deine Integration von Anfang an zukunftskompatibel gestalten kannst.
Die unten aufgeführten zukünftigen Ereignisse können sich noch ändern. Sieh im Changelog nach, wann neue Ereignisse verfügbar werden.
form.partial
Wird feuern, wenn bei einem Formular mit aktivierter inkrementeller Übermittlung eine Teilantwort gespeichert wird. Damit kannst du Formularabbrüche nachverfolgen und Befragte kontaktieren, die angefangen, aber nicht abgeschlossen haben.
| Eigenschaft | Geplanter Wert |
|---|---|
| Ereignisname | form.partial |
| Auslöser | Eine Teilantwort wird erstellt oder aktualisiert (nur inkrementelle Formulare) |
| Payload | Gleiche Struktur wie form.submitted, mit completedAt als null |
form.completed
Wird feuern, wenn eine inkrementelle Response von „teilweise" zu „vollständig" wechselt. Der Unterschied zu form.submitted: Dieses Ereignis zeigt explizit an, dass eine zuvor unvollständige Response finalisiert wurde.
| Eigenschaft | Geplanter Wert |
|---|---|
| Ereignisname | form.completed |
| Auslöser | Eine Teilantwort wird als vollständig markiert |
| Payload | Gleiche Struktur wie form.submitted, inklusive aller gesammelten Antworten |
form.published
Wird feuern, wenn ein Formular veröffentlicht oder erneut veröffentlicht wird.
| Eigenschaft | Geplanter Wert |
|---|---|
| Ereignisname | form.published |
| Auslöser | Ein Formular wird über das Dashboard oder die API veröffentlicht |
| Payload | Formular-ID, Titel, Slug, Versionsnummer, Veröffentlichungszeitstempel |
form.unpublished
Wird feuern, wenn die Veröffentlichung eines Formulars zurückgezogen wird (Formular geht offline).
| Eigenschaft | Geplanter Wert |
|---|---|
| Ereignisname | form.unpublished |
| Auslöser | Die Veröffentlichung eines Formulars wird über das Dashboard oder die API zurückgezogen |
| Payload | Formular-ID, Titel, Slug, Zeitstempel der Zurückziehung |
Zustellgarantien
Zu verstehen, wie NueForm Webhook-Ereignisse zustellt, ist wichtig für zuverlässige Integrationen.
At-Most-Once-Zustellung
NueForm bietet derzeit At-most-once-Zustellsemantik. Jedes Ereignis wird genau einmal gesendet und bei Fehlschlag nicht wiederholt. Das bedeutet:
- Dein Endpunkt kann gelegentlich Ereignisse verpassen, wenn er vorübergehend nicht erreichbar ist.
- Du erhältst von NueForms Zustellsystem niemals doppelte Ereignisse für dieselbe Übermittlung.
- Deine Integration sollte verpasste Ereignisse tolerieren können.
Keine automatischen Wiederholungen
Ist dein Endpunkt nicht erreichbar, liefert er einen Fehlerstatuscode oder antwortet er nicht innerhalb des 5-Sekunden-Timeouts, wird die Webhook-Zustellung stillschweigend verworfen. NueForm stellt fehlgeschlagene Zustellungen weder in eine Warteschlange noch wiederholt es sie.
Da es keine automatischen Wiederholungen gibt, empfehlen wir dringend, Webhooks durch regelmäßiges Polling der Responses-API zu ergänzen, um Ereignisse aufzufangen, die dein Endpunkt verpasst haben könnte.
Reihenfolge
Webhook-Ereignisse werden in der Reihenfolge ihres Auftretens versendet. Da sie aber parallel an mehrere URLs gehen und Netzwerkbedingungen schwanken, ist die Zustellreihenfolge nicht garantiert. Wenn deine Anwendung eine strikte Reihenfolge braucht, sortiere die Ereignisse nach Empfang anhand des submittedAt-Zeitstempels in der Payload.
Timeout
NueForm wartet bis zu 5 Sekunden auf die Antwort deines Endpunkts. Antwortet er nicht innerhalb dieses Fensters, wird die Anfrage abgebrochen. Dein Endpunkt sollte so schnell wie möglich mit einem 2xx-Statuscode antworten und aufwendige Verarbeitung in einen Hintergrund-Job auslagern.
Idempotenz
NueForm sendet zwar konzeptbedingt keine doppelten Ereignisse, aber Netzwerkbedingungen (etwa TCP-Neuübertragungen) könnten theoretisch dazu führen, dass dein Endpunkt dieselbe Payload mehrfach erhält. Nutze das responseId-Feld der Payload als Idempotenzschlüssel, um sicher zu deduplizieren.
Best Practices
Antworte schnell. Gib sofort
200 OKzurück und verarbeite die Webhook-Daten asynchron. NueForm hat ein Timeout von 5 Sekunden.Prüfe Signaturen. Validiere immer den
X-NueForm-Signature-Header, bevor du der Payload vertraust. Siehe Verifizierung.Nutze Idempotenzschlüssel. Speichere verarbeitete
responseId-Werte und überspringe Duplikate.Gleiche regelmäßig ab. Ergänze Echtzeit-Webhooks durch geplantes Polling der Responses-API, um verpasste Ereignisse aufzufangen.
Überwache deinen Endpunkt. Verfolge Antwortzeiten und Fehlerraten deines Webhook-Endpunkts. Wenn dein Endpunkt regelmäßig ausfällt, ziehe eine Queue (z. B. SQS, Redis) zwischen Webhook-Empfänger und Verarbeitungslogik in Betracht.
Nächste Schritte
- Payloads --- Das vollständige JSON-Payload-Schema
- Verifizierung --- Signaturprüfung implementieren
- Testen --- Webhook-Zustellung lokal testen