Documentatie

Die Grundlage von Webhooks ist der Austausch von Daten über eine Entität.
Nun ist das für eine Entität, die angelegt wird, relativ einfach. Die Merkmale werden mitgegeben, und die Zielanwendung macht damit „etwas" (meistens das Anlegen einer gleichartigen Entität).
Aber was soll mit einer Entität geschehen, die geändert wird?
Das ist schwieriger. Die Zielanwendung muss schließlich wissen, um welche Entität es sich handelt.

Beispiel: Eine Reservierung wird für den 10. Januar von 12:00 bis 14:00 Uhr erstellt.
Als Folge der Webhook-Verbindung wird ein Kalendereintrag in einem Kalender angelegt (zum Beispiel Google Calendar oder Microsoft Outlook).
Nun ändert der Benutzer die Reservierung vom 10. Januar auf den 11. Januar.
Das erwartete Ergebnis: Der Kalender wird ebenfalls aktualisiert.
Das tatsächliche Ergebnis wird jedoch sein, dass sowohl am 10. als auch am 11. Januar ein Kalendereintrag sichtbar ist.

Es gibt verschiedene Methoden, um dieses „unerwünschte" Ergebnis zu verbessern.

Ausgehend: eine aktualisierte Reservierung an Google Calendar

In der Integrationsplattform Zapier ist eine App vorhanden, um sich mit einem Google Calendar zu verbinden.
Um hier sowohl neue als auch geänderte Einträge verarbeiten zu können, wenden wir bereits beim ersten Schritt Logik an.
Wir können nämlich auf Basis der Reservierung einen Kalendereintrag anlegen. Dabei können wir dem Eintrag selbst eine Beschreibung (Subject) mitgeben.
Dies kann die Produktbeschreibung sein, aber auch eine Kombination, in der die Reservierungsnummer enthalten ist.
Wir wählen ein Textfeld mit „IRES{{reserveringsnummer}}: {{productomschrijving}}", und das wird dann „IRES3691: Großer Saal".
Beim Aktualisieren der Reservierung wählen wir eine „Search" bzw. „Find Event".
Diese Suche fragt nach einem „Search Term": Wir geben hier an: „IRES{{reserveringsnummer}}".
Anschließend wird dieser Kalendereintrag mit dem neuen Datum und der neuen Uhrzeit aktualisiert.
Hinweis: Der Nachteil dieser Methode besteht darin, dass die Suchaktion kein Ergebnis liefert, wenn der Benutzer in Google Calendar die Beschreibung ändert.

Eingehend: eine Reservierung in Office 365 erstellen und aktualisieren

Wir verwenden die Integrationsplattform Microsoft Flow und verbinden einen Outlook-Kalender mit i-Reserve.
Ein Benutzer legt einen Kalendereintrag an. Die Verbindung gibt an, welches Produkt in i-Reserve verwendet werden soll, und sorgt dafür, dass eine Reservierung erstellt wird.
Der Kalender weiß zu diesem Zeitpunkt nicht, wie die Reservierungsnummer lautet, muss dies aber auch nicht wissen.
In i-Reserve wird nämlich ein zusätzliches Attribut angelegt, und zwar eine „External ID". Diese kann in der Verbindung angegeben werden.
Es muss ein Wert angegeben werden, der eindeutig ist und für einen neuen wie auch einen geänderten Eintrag denselben Wert enthält.
Dies kann beispielsweise die iCalUID sein.
Wenn anschließend eine aktualisierte Reservierung gesendet wird, wird die richtige Reservierung automatisch auf Basis dieser External ID gesucht.