Zum Hauptinhalt springen

Webhooks

Durch die Verwendung von Webhooks kann EstateSync eine App über Events benachrichtigen, für die sonst ein separater API-Request gemacht werden müsste. Jeder Webhook kann durch die Events ausgelöst werden, welche beim Erstellen des Webhooks per API oder Dashboard übergeben werden. EstateSync versucht, einen POST Request mit einem application/json Body an die angegebene URL zu senden. Der Inhalt hat die Form

{
"eventId": "[event_id]",
"eventName": "[event_name]",
"eventPayload": {},
"eventTime": "[event_time_ISO_string]"
}

Zustellversuche

EstateSync erwartet eine "2xx"-Antwort, wenn es einen Request an die von Ihnen angegebene Webhook-URL sendet. Hat die Antwort keinen "2xx"-Statuscode, wird EstateSync den Request bis zu acht Mal mit exponentiellem Backoff wiederholen. Sie können den nächsten geplanten Versuch in der Detailansicht des jeweiligen Webhooks oder Events im Dashboard sehen. Wenn Sie auf einen bestimmten Versuch klicken, können Sie zum Debugging auch den Status Code und den Body der Antwort sehen, welchen EstateSync erhalten hat.

Event Typen

request.created

Um über neue Kontaktanfragen benachrichtigt zu werden, können Sie einen Webhook erstellen, der auf das Event request.created reagiert. Das Feld eventPayload des Bodys enthält die Anfrage. Es hat die gleiche Struktur wie die von GET /requests/{id} zurückgegebenen Antworten. Weitere Informationen darüber, wie Sie diese Benachrichtigungen erhalten, finden Sie unter Kontaktanfragen.

request.parsing_failed

Um über Kontaktanfragen benachrichtigt zu werden, welche EstateSync nicht lesen kann, können Sie einen Webhook erstellen, der auf das Event request.parsing_failed reagiert. Das Feld eventPayload des Bodys enthält Details über die empfangene E-Mail und warum sie nicht als Anfrage gelesen werden konnte.

Dieses Event kann auftreten, wenn Sie E-Mails an EstateSync weiterleiten, welche keine echten Kontaktanfragen von einer Zielplattform sind und daher keinen XML-Anhang enthalten. Dies lässt sich am besten verhindern, indem Sie eine E-Mail-Weiterleitung auf Basis der Absenderadresse einrichten, wie unter Kontaktanfragen beschrieben.

{
"targetId": "[id-of-the-email-target]",
"createdAt": "[ISO-datetime-of-failure]",
"failureCode": "[short-error-code]",
"failureMessage": "[readable-error-description]",
"sender": "[sender-address-of-the-email]",
"recipient": "[recipient-address-of-the-email]",
"subject": "[subject-of-the-email]",
"body": "[body-of-the-email]"
}

publication.succeeded

Um über erfolgreiche Aktualisierungen von Listings benachrichtigt zu werden, können Sie einen Webhook erstellen, der auf das Event publication.succeeded reagiert. Das Feld eventPayload enthält ein Objekt mit Details der Veröffentlichung:

{
"listingId": "[id-of-the-concerned-listing]",
"propertyId": "[id-of-property-of-the-listing]",
"targetId": "[id-of-the-target-of-the-listing]",
"type": "set" // oder "delete"
}

publication.failed

Um über fehlgeschlagene Aktualisierungen von Listings benachrichtigt zu werden, können Sie einen Webhook erstellen, der auf das Event publication.failed reagiert. Das Feld eventPayload enthält ein Objekt mit der Publikation sowie Details zum Fehler:

{
"failureCode": "[short-error-code]",
"failureMessage": "[readable-error-description]",
"listingId": "[id-of-the-concerned-listing]",
"propertyId": "[id-of-property-of-the-listing]",
"targetId": "[id-of-the-target-of-the-listing]",
"type": "set" // oder "delete"
}

property.processing_succeeded

Um über erfolgreich abgeschlossene Verarbeitungen von Properties benachrichtigt zu werden (z.B. wenn alle Anhänge eingelesen wurden), können Sie einen Webhook erstellen, der auf das Event property.processing_succeeded reagiert. Das Feld eventPayload des Bodys enthält das verarbeitete Property.

property.processing_failed

Um über fehlgeschlagene Verarbeitungen von Properties benachrichtigt zu werden (z.B. wenn ein Anhang aufgrund einer "404 Not Found"-Antwort nicht abgerufen werden konnte), können Sie einen Webhook erstellen, der auf das Event property.processing_failed reagiert. Das Feld eventPayload des Bodys enthält das verarbeitete Property sowie Details zum Fehler.

{
"failureCode": "[short-error-code]",
"failureMessage": "[readable-error-description]"
// ... alle weiteren Felder des Property
}