Webhooks

Webhooks für Integration mit externen Systemen

Neben der API, mit der beispielsweise die Liste der bevorstehenden Veranstaltungstermine abgefragt oder Buchungen angelegt werden können, bietet SeminarDesk mit der Webhook-Funktionalität eine weitere Integrationsmöglichkeit an.

Webhooks erlauben es, automatisiert Benachrichtigungen von SeminarDesk beim Eintreten bestimmter Ereignisse an ein beliebiges externes System zu senden, welches diese Information dann auswerten und weiterverarbeiten kann. Dabei könnte es sich zum Beispiel um ein CMS wie WordPress handeln. Zum allgemeinen Konzept von Webhooks sei dieser Grundlagen-Artikel empfohlen.

Konfiguration von Webhooks in SeminarDesk

Um einen Webhook anzulegen, sind folgende Angaben nötig:

  1. Endpoint URL: Dies ist die URL, an die die Events geschickt werden sollen. Es muss sich um eine valide, vollständige und öffentlich erreichbare HTTPS-URL handeln.
  2. Authentifizierung: Derzeit wird HTTP-Basic-Auth unter der Angabe von Benutzername und Passwort verwendet.
  3. Angabe der Aktionen, bei denen der Webhook benachrichtigt werden soll. Hier gibt es zur Zeit folgende Möglichkeiten:
    1. event.create – Wird aufgerufen, wenn eine Veranstaltung das erste Mal in den Web-Status „Veröffentlicht“ versetzt wird.
    2. event.update – Wird aufgerufen, wenn eine Veranstaltung geändert wird.
    3. event.delete – Wird aufgerufen, wenn eine Veranstaltung in einen Status versetzt wird, der als „Ist storniert“ markiert ist.
    4. eventDate.create – Veranstaltungstermin wurde angelegt bzw. veröffentlicht.
    5. eventDate.update – Veranstaltungstermin wurde geändert.
    6. eventDate.delete – Veranstaltungstermin wurde in einen Storno-Status versetzt.
    7. facilitator.create – Referent wurde angelegt, bzw. Personen-Profil wurde als Referenten-Profil markiert.
    8. facilitator.update – Angaben des Referenten (Name, Beschreibung, Foto) wurden geändert.
    9. facilitator.delete – Personen-Profil wurde gelöscht bzw. Referent-Status wurde entfernt.
    10. labelGroup.create – Label-Gruppe wurde angelegt.
    11. labelGroup.update – Label-Gruppe bzw. ein enthaltenes Label wurde geändert.
    12. labelGroup.delete – Label-Gruppe wurde gelöscht.

Webhook-Format

Es wird ein HTTP-Request-Body im JSON-Format an die Webhooks verschickt, hier ein Beispiel für die Aktion „event.create“:

{
    "id": "3b27fe327ae240bf838a3fb6693e9feb",
    "properties": [
       "timestamp": 1583509807000,
    ],
    "notifications": [{ 
       "action": "event.create",
       "payload": {         
          // ...     
       }
    }]
}
  • id: Eindeutige ID (UUID) des Requests
  • properties.timestamp: Zeitstempel des Requests
  • notifications: Liste der Ereignisse

Ähnliche Artikel