Zum Hauptinhalt springen
Mit Webhooks kann Flowella Ereignisse in Echtzeit an Ihre eigenen Systeme weiterleiten. So können Sie beispielsweise Ihr CRM benachrichtigen, wenn eine WhatsApp-Nachricht zugestellt wird, oder einen Hintergrundjob starten, wenn die Synchronisierung eines HubSpot-Formulars fehlschlägt. Diese Seite behandelt den In-App-Bildschirm Einstellungen → Webhooks. Die Schemata für die Nutzdaten der einzelnen Ereignisse finden Sie unter Webhooks-Referenz.

Wer kann Webhooks verwalten

Nur die Rollen Owner und Admin sehen Einstellungen → Webhooks. Andere Rollen haben keinen Zugriff.

Hinzufügen eines Webhook-Endpunkts

1

Öffnen Sie Einstellungen → Webhooks

Gehen Sie in der linken Navigation zu Einstellungen → Webhooks.
2

Klicken Sie auf Endpunkt hinzufügen

Geben Sie die öffentliche HTTPS-URL ein, an die Flowella Ereignisse posten soll. HTTP (ohne TLS) wird nicht akzeptiert.
3

Wählen Sie die Ereignisse, die Sie abonnieren möchten

Wählen Sie einen oder mehrere Ereignistypen - zum Beispiel message.delivered, template.approved, flow.sync.failed. Die vollständige Ereignisliste finden Sie unter Webhooks-Referenz. Sie können alle Ereignisse mit einem einzigen Kontrollkästchen abonnieren.
4

Kopieren Sie das Unterschriftsgeheimnis

Flowella zeigt das Signiergeheimnis einmal am Ende des Erstellungsvorgangs an. Speichern Sie es in einem sicheren Speicher - Sie werden es verwenden, um die HMAC-Signatur bei jeder eingehenden Anfrage zu überprüfen.
5

Ein Test-Ereignis senden

Verwenden Sie die Schaltfläche Test senden, um ein synthetisches Ereignis an Ihrem Endpunkt auszulösen. Das Sendeprotokoll zeichnet das Ergebnis auf, so dass Sie sich vergewissern können, dass Ihr Handler richtig verkabelt ist, bevor Sie live gehen.

Signierung und Überprüfung

Jede Webhook-Anfrage enthält einen X-Flowella-Signature-Header mit einer HMAC-SHA256-Signatur des rohen Anfragekörpers, die mit dem Signiergeheimnis Ihres Endpunkts berechnet wurde. Überprüfen Sie ihn, bevor Sie der Nutzlast vertrauen:
import crypto from "crypto";

function verify(rawBody, signature, secret) {
  const expected = crypto.createHmac("sha256", secret).update(rawBody).digest("hex");
  return crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(signature));
}
Die Anfrage umfasst auch:
  • X-Flowella-Timestamp - den Unix-Zeitstempel zur Sendezeit. Weisen Sie Anfragen zurück, bei denen der Zeitstempel mehr als 5 Minuten in der Vergangenheit oder in der Zukunft liegt, um Replay-Angriffe zu verhindern.
  • X-Flowella-Event - der Ereignistyp (zum Beispiel message.delivered).
  • X-Flowella-Delivery - eine eindeutige Zustellungs-ID, nützlich für die Deduplizierung.

Wiederholungen und Back-Off

Wenn Ihr Endpunkt einen Statuscode ungleich 2xx zurückgibt (oder nach 10 Sekunden eine Zeitüberschreitung eintritt), wiederholt Flowella den Vorgang mit exponentieller Verzögerung:
AttemptDelay after previous
1 (initial)-
230 Sekunden
32 Minuten
410 Minuten
51 Stunde
66 Stunden
7 (endgültig)24 Stunden
Nach 7 fehlgeschlagenen Versuchen wird die Zustellung als fehlgeschlagen markiert und abgebrochen. Der Endpunkt wird nicht automatisch deaktiviert - Sie können weiterhin zukünftige Ereignisse über denselben Endpunkt empfangen. Wenn 100 aufeinanderfolgende Zustellungen fehlschlagen, pausiert Flowella den Endpunkt automatisch und sendet eine WEBHOOK_PAUSED-Benachrichtigung. Nehmen Sie den Vorgang über das Menü der Zeile wieder auf, sobald Sie das zugrunde liegende Problem behoben haben.

Zustellungsprotokoll

Jede Endpunktzeile wird zu einem Zustellungsprotokoll, das die Versuche der letzten 7 Tage anzeigt:
  • Ereignistyp und ID
  • Status - erfolgreich, fehlgeschlagen, erneuter Versuch
  • Versuchsnummer
  • Antwortcode und Dauer
  • Antwortkörper (erste 1 KB)
  • Gesendet an
Klicken Sie auf eine beliebige Zustellung, um die vollständige Anfrage und Antwort zu sehen, oder um sie manuell erneut zuzustellen.

Endpunkte verwalten

Über das Menü der Endpunktzeile können Sie:
  • Bearbeiten - die URL oder die Ereignisabonnements ändern. (Das Signiergeheimnis bleibt dabei erhalten.)
  • Geheimnis rotieren - ein neues Signiergeheimnis erzeugen. Das alte Geheimnis funktioniert sofort nicht mehr, stimmen Sie die Änderung also mit Ihrem Handler ab.
  • Pause - stoppt vorübergehend die Lieferungen, ohne die Konfiguration zu verlieren.
  • Wiederaufnahme - schaltet einen pausierten Endpunkt wieder ein.
  • Löschen - entfernt den Endpunkt und seinen Zustellungsverlauf.

Allgemeine Fragen

Ja - es gibt keine feste Grenze. Die meisten Unternehmen haben 1-3 Endpunkte (Produktion, Staging und eine interne Protokollsenke). Halten Sie die Anzahl niedrig, damit sich die Ereignisse vorhersehbar verteilen.
Die API ist pull - Ihr Code fragt Flowella nach dem Status. Webhooks sind Push - Flowella teilt Ihrem Code mit, wenn sich der Status ändert. Verwenden Sie Webhooks für alles, was Sie sonst abfragen würden.
Webhook-Payloads enthalten Konversations-IDs, Telefonnummern von Kontakten, Nachrichteninhalte und Vorlagennamen. Behandeln Sie das Geheimnis und die Endpunkt-URL als sensibel. Schränken Sie Ihren Endpunkt auf POST aus dem IP-Bereich von Flowella ein, wenn Ihre Infrastruktur dies zulässt.
Verwenden Sie ein Tunnel-Tool (ngrok, Cloudflare Tunnel), um Ihren localhost-Endpunkt einer öffentlichen HTTPS-URL auszusetzen, und verweisen Sie dann einen Test-Endpunkt auf diesen. Geben Sie keine Tunnel-URL in Ihren Produktionsendpunkt ein - sie laufen ab.

Verwandt

Webhooks-Referenz

Ereignistypen, Nutzdatenschemata und Kopfzeilen.

API-Schlüssel

Die andere Hälfte der programmatischen Integration.

API-Einführung

Fehler, Ratenbeschränkungen und Paginierung.

Ereignisse zur Benachrichtigung

Die gleichen Ereignisse, die im In-App-Feed und per E-Mail geliefert werden.