Webhooks

Ein Webhook sendet jede neue Antwort eines Formulars an eine Adresse Ihrer Wahl, etwa an eine Fachanwendung oder ein Automatisierungswerkzeug.

Den Webhook einrichten

  1. Öffnen Sie das Studio des Formulars, Reiter Automatisierungen.
  2. Geben Sie im Block Webhook die URL ein, die die Aufrufe empfängt (öffentliche https://-Adresse).
  3. Geben Sie ein HMAC-Geheimnis ein, eine lange Zufallszeichenfolge, die Sie auch auf Ihrer Seite aufbewahren.
  4. Speichern Sie und prüfen Sie, dass die Automatisierung aktiviert ist.

Wann der Aufruf erfolgt

Der Aufruf erfolgt bei jeder neuen Antwort, unabhängig von ihrer Herkunft: öffentlicher Link, eingebettete Seite, mobile App, API oder gemeinsame Sitzung. Er läuft im Hintergrund: Das Absenden des Formulars wartet nicht auf Ihren Server.

Was Ihr Server erhält

Eine POST-Anfrage mit dem Typ application/json:

{
  "submission_id": 1234,
  "form_slug": "baustellenkontrolle",
  "data": { "...": "die Antworten, Frage für Frage" },
  "date_submitted": "2026-10-16T08:42:11+00:00"
}

Der Header X-Formsbuilder-Signature enthält sha256= und danach die HMAC-SHA256-Signatur des unveränderten Inhalts, berechnet mit Ihrem Geheimnis.

Die Signatur prüfen

import hashlib, hmac

def signatur_gueltig(inhalt: bytes, header: str, geheimnis: str) -> bool:
    erwartet = "sha256=" + hmac.new(geheimnis.encode(), inhalt, hashlib.sha256).hexdigest()
    return hmac.compare_digest(erwartet, header)

Berechnen Sie die Signatur über den exakt empfangenen Inhalt, vor jeder JSON-Umwandlung.

Fehler und Wiederholungen

Ihr Server muss innert 10 Sekunden antworten. Bei einem Netzwerkfehler oder einer 5xx-Antwort wird der Aufruf bis zu dreimal im Abstand von einer Minute wiederholt; eine 4xx-Antwort wird nicht wiederholt. Interne Adressen (privates Netz, localhost) werden abgelehnt.