Zum Hauptinhalt springen

Webhooks

Erhalte automatisiert Benachrichtigungen in Echtzeit, sobald bestimmte Ereignisse in anny stattfinden.

Lea Fendler avatar
Verfasst von Lea Fendler
Heute aktualisiert

Webhooks ermöglichen deiner Anwendung, umgehend über Ereignisse informiert zu werden, die in deinem Buchungssystem stattfinden. Statt regelmäßig unsere API nach neuen Daten zu fragen, sendet anny automatisch und in Echtzeit relevante Informationen direkt an deine Anwendung. Deine Integrationen sind dadurch effizienter und reagieren blitzschnell.

Was sind Webhooks?

Webhooks sind HTTP-basierte Rückmeldungen ("Callbacks"), die von anny automatisch an deine Anwendung versendet werden, sobald festgelegte Ereignisse eintreten. Stell dir Webhooks als „umgedrehte API-Abfragen“ vor – denn anstelle, dass deine Anwendung ständig bei uns nach Aktualisierungen fragt, informieren wir deine App proaktiv darüber, wenn etwas Wichtiges passiert.


Webhook einrichten

Um einen Webhook einzurichten:

  1. Navigiere über deinen Avatar im anny Admin-Bereich zu den Account Einstellungen und öffne den Reiter API.

  2. Klicke auf + Webhook erstellen.

  3. Trage folgende Details ein:

    • Name: Eine aussagekräftige Beschreibung (z.B. „CRM Integration“).

    • URL: Die Adresse des Serverendpunkts, an die wir Ereignis-Benachrichtigungen versenden sollen.

    • Ereignisse: Wähle ein oder mehrere Ereignisse aus, über die du benachrichtigt werden willst.

Beispiel Konfiguration

{
"name": "My CRM Integration",
"url": "https://api.myapp.com/webhooks/bookings",
"events": ["bookings.created", "bookings.updated"]
}

Verfügbare Events

anny unterstützt Webhooks zu Ereignissen in vier Kategorien:

Buchungs-Ereignisse

Ereignis

Beschreibung

bookings.created

Neue Buchung erstellt

bookings.updated

Buchungsdetails geändert

bookings.started

Buchung hat begonnen

bookings.ended

Buchung wurde abgeschlossen

bookings.checked-in

Kunde hat eingecheckt

bookings.checked-out

Kunde hat ausgecheckt

bookings.deleted

Buchung wurde gelöscht/storniert

Bestell-Ereignisse

Ereignis

Beschreibung

orders.created

Neue Bestellung vorgenommen

orders.updated

Bestellung aktualisiert

orders.deleted

Bestellung storniert/gelöscht

Rechnungs-Ereignisse

Ereignis

Beschreibung

invoices.created

Rechnung generiert

invoices.finalised

Rechnung finalisiert

invoices.updated

Rechnung geändert

invoices.deleted

Rechnung gelöscht oder zurückgenommen

Kunden-Ereignisse

Ereignis

Beschreibung

customers.created

Neuer Kunde registriert

customers.updated

Kundenprofil aktualisiert

customers.deleted

Kundenkonto gelöscht

Einschränkungen nach Kontext (Event Filtering)

Optional – nur bei Buchungs-Ereignissen verfügbar

Durch Kontext-Einschränkungen kannst du festlegen, dass du nur bei Ereignissen zu bestimmten Ressourcen, Kategorien oder Services benachrichtigt wirst:

  1. Wähle zunächst Buchungs-Ereignisse aus.

  2. Aktiviere Mit Einschränkungen innerhalb der Ereignisgruppe

  3. Wähle den gewünschten Filtertyp aus:

    • Ressourcen (z.B. bestimmte Räume, Geräte)

    • Ressourcengruppen

    • Ressourcenkategorien

    • Services

    • Service-Gruppen

Typische Beispiele:

  • Benachrichtigungen nur zu Spa-Services („Service-Gruppe: Spa-Services“).

  • Nur bestimmte Meeting-Räume als Ressourcen auswählen.

  • Nur Online-Buchungen durch „Service-Gruppe: Online-Buchung“.


Webhook Datenstruktur und Payload

Jeder Webhook enthält strukturierte Informationen zum Ereignis:

{
"event": "bookings.created",
"event_id": "550e8400-e29b-41d4-a716-446655440000",
"webhook_id": "01H8EXAMPLE123",
"triggered_at": "2024-01-15T14:30:00Z",
"data": {
"id": "1764",
"code": "!TIXWaEKmLAW8JN8bjRf",
"type": "bookings",
"number": "BB533155102",
"status": "accepted",
"total": 0,
"currency": "EUR",
"service": {
"id": "1",
"name": "Tages-Buchung",
"type": "services",
"price": 0,
"currency": "EUR"
},
"customer": {
"id": "2fa9ab69-abd5-45ec-9927-c4894fbf60a2",
"uuid": "2fa9ab69-abd5-45ec-9927-c4894fbf60a2",
"email": "00ufvv@ptct.net",
"full_name": "John Keats",
"given_name": "John",
"family_name": "Keats"
},
"resource": {
"id": "18",
"name": "Schreibtisch 4",
"type": "resources",
"timezone": "Europe/Berlin"
},
"start_date": "2025-06-13T07:00:00+00:00",
"end_date": "2025-06-13T16:00:00+00:00",
"created_at": "2025-06-07T12:54:38+00:00",
"description": "John Keats"
}
}

Wichtige Felder

Feld

Beschreibung

event

Art des ausgelösten Ereignisses

event_id

Eindeutige ID dieser Webhook-Auslieferung

webhook_id

ID deines Webhook-Abonnements

triggered_at

Zeitpunkt, an dem das Ereignis passiert ist

data

Vollständige Daten des Elements, das den Webhook auslöst


Sicherheit

Webhook-Signaturen

Webhook-Signaturen sind standardmäßig aktiviert. Die Signatur wird im HTTP-Header „Signature" übermittelt und kann optional zur Verifizierung eingehender Meldungen als authentische anny Requests verwendet werden.


Troubleshooting

Webhook-Auslieferungsverlauf (Call History)

Überwache alle Webhook-Auslieferungen in Echtzeit bequem über die Webhook-Verwaltungsoberfläche. Folgende Status können bei Webhook-Auslieferungen auftreten:

Status

Bedeutung

Erklärung

Erfolg (200-299)

Der Webhook wurde erfolgreich zugestellt.

Fehlgeschlagen (400+)

Zustellung fehlgeschlagen – prüfe die Antwortdetails deines Servers.

Wartend

Webhook ist in der Warteschlange und wird bald ausgeliefert.

🔄

Neuversuch

Manueller Neuversuch eines fehlgeschlagenen Webhooks.

Details zu Anfrage und Antwort einsehen (Request/Response)

Klicke im Webhook-Auslieferungsverlauf auf eine einzelne Webhook-Auslieferung, um folgende Informationen zu sehen:

  • Vollständige gesendete Anfrage (Payload)

  • Antwort deines Servers

  • HTTP-Statuscode

  • Anzahl der Zustellversuche

Umgang mit fehlgeschlagenen Webhooks (Retry-Funktionalität)

Automatische Neuversuche

Fehlgeschlagene Webhook-Auslieferungen werden bis zu 3-mal automatisch erneut versucht. Dabei wird die Wartezeit zwischen den Versuchen jedes Mal etwas erhöht (exponentieller Backoff).

Manuelle Neuversuche

Zusätzlich kannst du fehlgeschlagene Webhooks einmal manuell erneut senden:

  1. Öffne die Seite Webhooks → Auslieferungsverlauf.

  2. Suche die fehlgeschlagene Webhook-Zustellung.

  3. Klicke auf die Schaltfläche Erneut senden (Retry). Je Webhook-Auslieferung ist dies nur einmal möglich.

  4. Überwache den neuen Zustellversuch in Echtzeit.


Verwaltung bestehender Webhook-Abonnements

Webhooks aktivieren/deaktivieren

Webhook-Abonnements können jederzeit ein- und ausgeschaltet werden, ohne dass die Konfiguration verloren geht.

Automatische Deaktivierung nach wiederholten Fehlern

Um unnötige Belastungen zu vermeiden und deinen Server zu schützen, deaktiviert anny Webhooks automatisch, wenn 5-mal hintereinander keine erfolgreiche Auslieferung möglich war.

Die Anzahl aufeinanderfolgender Fehler wird dabei im Attribut failure_count deines Webhook-Abonnements gespeichert.


Häufige Integrationsmuster (Integration Patterns)

CRM-Kunden-Synchronisierung

{
"name": "CRM Kundensynchronisierung",
"url": "https://api.meincrm.de/webhooks/kunden",
"events": ["customers.created", "customers.updated"]
}

Buchungs-Benachrichtigungen (z.B. SMS-Alerts)

{
"name": "SMS Booking Alerts",
"url": "https://api.smsservice.com/webhooks/bookings",
"events": ["bookings.created", "bookings.updated", "bookings.checked-in"],
"restrictions": [
{
"type": "services",
"id": "high-value-services-group"
}
]
}

Analytics-Integration

{
"name": "Analytics-Tracking",
"url": "https://analytics.meineapp.de/webhooks/ereignisse",
"events": ["bookings.created", "bookings.ended", "invoices.finalised"]
}

Fehlerbehebung (Troubleshooting)

Webhook empfängt keine Ereignisse

  • Stelle sicher, dass das Webhook-Abonnement aktiv ist.

  • Überprüfe, ob die angegebene URL öffentlich erreichbar ist.

  • Prüfe, ob dein Server bei erfolgreicher Verarbeitung einen HTTP-Statuscode im Bereich 200 zurück liefert.

  • Prüfe, ob Kontext-Einschränkungen zu streng gesetzt sind (ggf. anpassen oder entfernen).

Hohe Anzahl an Fehlern („High Failure Count“)

  • Prüfe die URL deines Endpunkts auf Korrektheit.

  • Schaue in die Logs deines Servers, um mögliche Fehlerquellen zu identifizieren.

Ereignisse doppelt erhalten („Duplicate Events“)

  • Verwende die event_id, um doppelte Auslieferungen zu erkennen und sicherzustellen, dass dein System nur einmal darauf reagiert („Idempotenz“).

  • Prüfe, ob du eventuell doppelte Webhook-Abonnements hast.

  • Implementiere technische Einschränkungen (z.B. Datenbank-Unique Constraints), um ein doppeltes Verarbeiten der Ereignisse zu vermeiden.


Support bei Webhooks

Falls du bei der Einrichtung oder Nutzung deiner Webhooks Unterstützung benötigst:

  • Prüfe zunächst den Webhook-Auslieferungsverlauf für Fehlerdetails.

  • Prüfe deine eigenen Serverlogs für die Webhook-Endpunkte.

  • Kontaktiere unseren Support mit folgenden Informationen:

    • Webhook-Abonnement-ID

    • Genaue Fehlermeldungen/Problembeschreibung

    • Zeitpunkt, seit dem die Probleme auftreten




Hat dies deine Frage beantwortet?