Integrationen
Formularantworten per Webhook senden
Webhooks sind YeetForms universeller Weg, Antwortdaten irgendwohin zu senden: an ein eigenes Backend, einen Datenbank-Sync-Job oder eine andere Automatisierungsplattform. Fügen Sie im Tab Integrationen eines Formulars einen HTTPS-Endpunkt hinzu, und YeetForm sendet bei jeder neuen Antwort einen signierten JSON-Payload per POST, mit einem Secret, gegen das Sie per HMAC-SHA256 prüfen können. Fehlgeschlagene Zustellungen werden automatisch wiederholt. Diese Seite erklärt das genaue Signaturformat, die Payload-Struktur und den Wiederholungsplan, damit Sie einen Empfänger mit Zuversicht bauen können.
Einrichtung
Endpunkt hinzufügen
Fügen Sie im Tab Integrationen des Formulars unter Webhooks die URL Ihres HTTPS-Endpunkts ein und klicken Sie auf Webhook hinzufügen. YeetForm generiert für diesen Endpunkt ein Signatur-Secret (whsec_...).
Signatur prüfen
Jede Zustellung trägt den Header X-YeetForm-Signature: t=<Unix-Zeitstempel>,v1=<Hex-HMAC-SHA256 von `${t}.${body}`>. Prüfen Sie ihn gegen den rohen Request-Body, bevor Sie dem Payload vertrauen.
import { createHmac, timingSafeEqual } from "crypto";
function verify(secret, signatureHeader, rawBody) {
const [tPart, v1Part] = signatureHeader.split(",");
const timestamp = tPart.split("=")[1];
const signature = v1Part.split("=")[1];
const expected = createHmac("sha256", secret)
.update(`${timestamp}.${rawBody}`)
.digest("hex");
const a = Buffer.from(signature, "hex");
const b = Buffer.from(expected, "hex");
if (a.length !== b.length) return false;
return timingSafeEqual(a, b);
}Payload lesen
POSTs feuern bei response.created (und webhook.test über den manuellen Testbutton), mit Formular-ID, Antwort-ID, Antwortanzahl und Antworten, die nach Feld-ID indexiert sind, plus einem fields-Array mit der Bezeichnung jedes Feldes.
{
"event": "response.created",
"form_id": "<uuid>",
"form_title": "Customer Feedback",
"response_id": "<uuid>",
"response_count": 42,
"answers": { "fld_x": "..." },
"submitted_at": "2026-09-13T12:00:00.000Z"
}Wiederholungen behandeln
Eine Antwort ohne 2xx (oder ein Timeout) löst eine Wiederholung aus: sofort, dann nach 30 Sekunden, dann nach 5 Minuten - insgesamt 3 Versuche, bevor YeetForm die Zustellung als fehlgeschlagen markiert. Weiterleitungen werden nicht verfolgt, richten Sie die URL also direkt auf Ihren Endpunkt.
Tipps
- →Feldbezeichnungen stehen im fields-Array des Payloads (id, label, type), sodass Sie Feld-IDs nicht fest im Downstream-System verdrahten müssen.
- →Jede Antwort trägt eine stabile response_id - nutzen Sie sie als Idempotenzschlüssel, da eine wiederholte Zustellung dieselbe ID verwendet.
- →Eine fehlgeschlagene Zustellung wird insgesamt 3 Mal wiederholt (sofort, 30 s, 5 min), bevor sie als fehlgeschlagen markiert wird - für Erfolg ist eine 2xx-Antwort nötig, Weiterleitungen werden nicht verfolgt.