Webhook-Integration
Überblick
Webhooks ermöglichen es Ihrem System, automatisch über Änderungen in EDM benachrichtigt zu werden. Registrieren Sie einmal Ihre Endpunkte für bestimmte Ereignisse und erhalten Sie automatische Benachrichtigungen, sobald diese eintreten.
Funktionsweise
- Sie registrieren einen Webhook-Endpunkt über die EDM-Oberfläche (Administration -> Zugriff -> Webhooks)
- Sie wählen aus, für welche Ereignisse (Events) Sie benachrichtigt werden möchten
- Bei Eintreten eines Ereignisses sendet EDM automatisch einen HTTP POST-Request an Ihre URL
- Ihre Anwendung verarbeitet die empfangenen Daten
Verfügbare Ereignisse
Teilnehmer & Dozenten
Teilnehmer (Attendee)
attendee.created- Neuer Teilnehmer wurde angelegtattendee.updated- Teilnehmerdaten wurden geändertattendee.deleted- Teilnehmer wurde gelöscht
Dozenten (Lecturer)
lecturer.created- Neuer Dozent wurde angelegtlecturer.updated- Dozentendaten wurden geändert (inkl. Qualifikationen und Kategorien)lecturer.deleted- Dozent wurde gelöscht
Kontaktinformationen
attendee.contact_info.created/updated/deleted- Kontaktinfo eines Teilnehmerslecturer.contact_info.created/updated/deleted- Kontaktinfo eines Dozenten
Veranstaltungen
Veranstaltung (Event)
event.created- Neue Veranstaltung wurde erstelltevent.deleted- Veranstaltung wurde gelöschtevent.status.update- Status einer Veranstaltung hat sich geändert
Veranstaltungstermine (EventDate)
eventdate.created- Neuer Termin wurde angelegteventdate.updated- Termin wurde geändert (inkl. Raumzuweisungen)eventdate.deleted- Termin wurde gelöscht
Veranstaltungsvorlagen (EventBase)
eventbase.created- Neue Vorlage wurde erstellteventbase.updated- Vorlage wurde geänderteventbase.deleted- Vorlage wurde gelöscht
Buchungen & Rechnungen
Buchungen (Booking)
booking.created- Neue Buchung wurde erstelltbooking.status.update- Buchungsstatus hat sich geändert
Rechnungen (Invoice)
invoice.created- Neue Rechnung wurde erstelltinvoice.paid.update- Zahlungsstatus wurde geändert
Custom Fields
Für alle Custom Field-Daten stehen folgende Events zur Verfügung:
attendee.custom_field.created/updated/deletedlecturer.custom_field.created/updated/deletedevent.custom_field.created/updated/deletedevent_base.custom_field.created/updated/deletedbooking.custom_field.created/updated/deleted
Webhook-Subscription einrichten
Erforderliche Daten
Felder:
name: Beschreibender Name für die Subscriptionendpoint_url: Ihre URL, die benachrichtigt werden sollevent_types: Array der Event-Typen, die Sie empfangen möchtensecret: Optionaler Secret-Key zur Authentifizierungis_active: Aktiviert/Deaktiviert die Subscription
Webhook-Payload
Struktur
Jeder Webhook-Request enthält folgende Struktur:
{
"event": "booking.created",
"timestamp": "2024-01-15T10:30:00Z",
"data": {
"id": 123
// weitere ereignis-spezifische Daten
}
}
Beispiele
Bei Buchungserstellung:
{
"event": "booking.created",
"timestamp": "2024-01-15T10:30:00Z",
"data": {
"id": 123
}
}
Bei Statusänderung:
{
"event": "booking.status.update",
"timestamp": "2024-01-15T10:30:00Z",
"data": {
"id": 123,
"old_status": "pending",
"new_status": "confirmed"
}
}
Bei Rechnungszahlung:
{
"event": "invoice.paid.update",
"timestamp": "2024-01-15T10:30:00Z",
"data": {
"id": 456,
"is_paid": true
}
}
HTTP-Header
Mit jedem Webhook-Request werden folgende Header gesendet:
Content-Type: application/json
X-Webhook-Event: booking.created
Authorization: Bearer <ihr-secret> // falls konfiguriert
Webhook-Empfang implementieren
Anforderungen an Ihren Endpunkt
- Akzeptiert HTTP POST-Requests
- Verarbeitet JSON-Payloads
- Antwortet mit HTTP 2xx Status bei Erfolg
- Reagiert innerhalb von 30 Sekunden
Fehlerbehandlung & Wiederholung
Automatische Wiederholungen
Wenn Ihr Endpunkt nicht erreichbar ist oder einen Fehler zurückgibt:
- EDM wiederholt die Zustellung automatisch bis zu 5 Mal
- Zwischen den Versuchen liegt jeweils 60 Sekunden Wartezeit
- Der Zustellungsstatus wird protokolliert
Best Practices
- Schnelle Antwort: Antworten Sie schnell mit HTTP 200 und verarbeiten Sie die Daten asynchron
- Idempotenz: Gestalten Sie Ihre Verarbeitung idempotent - ein Webhook könnte mehrfach empfangen werden
- Secret verwenden: Nutzen Sie den Secret-Parameter zur Authentifizierung
Sicherheit
Secret-Authentifizierung
Nutzen Sie den secret-Parameter bei der Subscription-Erstellung. EDM sendet diesen dann im Authorization-Header mit:
Authorization: Bearer ihr-geheimer-schluessel
Validieren Sie diesen Header in Ihrem Endpunkt, bevor Sie die Daten verarbeiten.
Update-Benachrichtigungen
Bei updated-Events werden nur tatsächliche Änderungen gemeldet. Wenn ein Datensatz gespeichert wird, aber keine Felder geändert wurden, wird kein Webhook versendet.