Webhooks
Empfangen Sie Chat- und Anrufereignisse eines Kunden an Ihrem eigenen Endpunkt, signiert und überprüfbar
Empfangen Sie Chat- und Anrufereignisse in Echtzeit auf Ihrem eigenen Server — Happ sendet bei jedem Ereignis JSON per POST, sodass Sie damit Slack-Benachrichtigungen, CRM-Abfragen, Analysen oder eigene Workflows auslösen können.
Verbinden
- Öffnen Sie den Katalog Integrationen und klicken Sie bei Chat Webhook oder Call Webhook auf Verbinden.
- Geben Sie im Dialog Ihre Webhook-URL ein — den HTTPS-Endpunkt, der die Ereignisse empfängt.
- Legen Sie optional ein Webhook Secret zur Überprüfung der Anfragen fest.
- Klicken Sie auf Verbinden.
Es gibt keine separate Webhook-Seite, keine Schalter für Ereignisabonnements und kein Zustellprotokoll in der App — der Dialog besteht nur aus URL und optionalem Secret.
Gesendete Ereignisse
| Webhook | Wird ausgelöst bei |
|---|---|
| Chat | Jeder Nachricht in einem beobachteten Chat — vom Kunden, vom Agenten und von einem Mitarbeiter |
| Anruf | Ende eines Anrufs — eine einzige Zustellung nach dem Anruf mit Dauer, Metadaten und der Aufzeichnungs-URL, falls vorhanden |
Anruf-Ereignis
Der Anruf-Webhook sendet pro beendetem Anruf ein flaches JSON-Objekt (kein verschachteltes result_json). Die wichtigsten Felder:
| Feld | Bedeutung |
|---|---|
event_type | Immer post_call |
call_uuid | Eindeutige Anruf-ID — danach deduplizieren, derselbe Anruf kann mehrfach ankommen |
externalNumber | Telefonnummer des Kunden, dieselbe wie im Anrufverlauf; null, wenn es keine gab (z. B. Web-Anruf) |
direction | inbound, outbound oder null |
summary, callSuccessful | KI-Zusammenfassung und Urteil: success, failure oder unknown |
dynamicVariables | Die Variablen, mit denen der Anruf gestartet wurde, kommen zurück — übergeben Sie beim Start Ihre CRM-Kontakt- oder Bestell-ID und lesen Sie sie hier. VA-Systemvariablen (system__*) werden weggelassen |
Vollständiges Schema und Beispiel: api.happ.tools/reference.
Anfragen überprüfen
Wenn Sie ein Webhook Secret festlegen, enthält jede Zustellung zwei Header:
| Header | Wert |
|---|---|
Authorization | Basic <secret> — Ihr Secret unverändert, nicht base64 von user:password |
X-Signature | sha256=<hex> — HMAC-SHA256 des rohen Anfrage-Bodys, berechnet mit Ihrem Secret |
Zur Überprüfung berechnen Sie HMAC-SHA256 über den rohen Body (vor dem Parsen des JSON) neu und vergleichen das Ergebnis in konstanter Zeit. Gibt Ihre Plattform keinen Zugriff auf den rohen Body, prüfen Sie stattdessen den Header Authorization. Ohne Secret wird keiner der beiden Header gesendet. Es ist derselbe Mechanismus wie bei den Tools eines Agenten.
Verwenden Sie nur HTTPS, antworten Sie schnell mit 200 (Verarbeitung asynchron) und behandeln Sie doppelte Zustellungen idempotent.
Webhooks vs. Tool-Webhooks
| Integrations-Webhooks | Tool-Webhooks | |
|---|---|---|
| Auslöser | Automatisch bei Ereignissen | Von der KI während des Gesprächs aufgerufen |
| Richtung | Happ → Ihr Server | Happ → Ihr Server → Antwort → KI |
| Antwort | HTTP-200-Bestätigung | JSON, das der Agent nutzt |
| Einsatzzweck | Monitoring, Protokollierung, Benachrichtigungen | Dynamische Abfragen, Aktionen |
Für Webhooks, die die KI mitten im Gespräch aufruft, siehe Tools.
Weiter
- Tools — von der KI aufgerufene Webhooks
- Benachrichtigungen — integrierte Benachrichtigungen
- Integrationen — der vollständige Katalog
Help me solve it
Happ answers right away and hands over to a manager when needed.