🔗 Webhooks
Webhooks sind die Art, wie Kanalanbieter PulseHub benachrichtigen, wenn etwas passiert — ein Kunde sendet eine Nachricht, ein Zustellstatus ändert sich, etc.
Webhook-URL-Muster
https://ihredomain.com/webhooks/{channel_type}/{channel_id}
Webhook-Verifizierung (GET-Anfragen)
Einige Anbieter verifizieren Ihre Webhook-URL mit einer Challenge, bevor sie echte Nachrichten senden:
WhatsApp / Facebook / Instagram
PulseHub prüft hub.verify_token und gibt hub.challenge zurück.
Telegram
Keine Verifizierungs-GET — das Setzen des Webhooks über die Bot API reicht aus.
Viber
Sendet ein conversation_started-Event beim ersten Öffnen. PulseHub gibt {"status": 0} zurück.
Signaturverifizierung
| Anbieter | Header | Geheimnis |
|---|---|---|
| WhatsApp/Facebook/Instagram | X-Hub-Signature-256 | App Secret |
| Viber | X-Viber-Content-Signature | Auth Token |
| Twilio | — | URL-basierte Sicherheit |
| Telegram | — | UUID-basierte URL-Sicherheit |
Alle HMAC-Vergleiche verwenden hash_equals() (konstante Zeit).
Event-Protokollierung
Jeder Webhook-Payload wird in der webhook_events-Tabelle mit status = pending protokolliert. Nach Verarbeitung: processed. Bei Fehlschlag: failed.
Wiederholung fehlgeschlagener Webhooks
Der Cron-Job wiederholt fehlgeschlagene Events bis zu 5 Mal innerhalb von 24 Stunden.