Zapier-Integration
Auf dieser Seite werden die API und die Webhook-Struktur beschrieben, die von der Baza Booking Calendar-Zapier-Integration verwendet werden. Dabei werden die Authentifizierung, die verfügbaren Ereignisse sowie die genauen Payload-Felder behandelt, die mit jedem Ereignis gesendet werden.

Authentifizierung
Der Zugriff ist an Ihren Baza Booking Calendar-Lizenzschlüssel gebunden. Derselbe Schlüssel wird sowohl zur Überprüfung Ihres Tarifs als auch zur Authentifizierung von Anfragen an die unten aufgeführten Abonnement-Endpunkte verwendet. Für die Zapier-Integration ist eine Lizenz für den Pro- oder Elite-Tarif erforderlich, bei der die Zapier-Synchronisierung aktiviert ist.
Native Abonnement-Endpunkte (REST-Hook)
Für eine native Zap-Trigger-Erfahrung stellt Baza Booking Calendar Endpunkte zum Abonnieren und Abmelden bereit, sodass ein Zap automatisch aktiviert und deaktiviert werden kann, ohne dass eine Webhook-URL manuell kopiert werden muss.
| Methode | Endpunkt | Zweck |
|---|---|---|
POST | /wp-json/bbc/v1/zapier/subscribe | Registriert ein Abonnement, wenn ein Zap aktiviert wird |
DELETE | /wp-json/bbc/v1/zapier/unsubscribe/{id} | Entfernt ein Abonnement, wenn ein Zap deaktiviert wird |
GET | /wp-json/bbc/v1/zapier/subscriptions | Debug-Endpunkt, listet aktive Abonnements auf |
Für alle drei Endpunkte ist der Lizenzschlüssel als Bearer-Token erforderlich:
Authorization: Bearer YOUR_LICENSE_KEYAbonnementanfragen akzeptieren einen JSON-Body, in dem angegeben wird, wohin Ereignisse gesendet werden sollen und – optional – nach welchem Ereignis gefiltert werden soll. Ein leerer event Wert bedeutet, dass alle Ereignisse abonniert werden.
POST /wp-json/bbc/v1/zapier/subscribe
{
"target_url": "https://hooks.zapier.com/hooks/standard/...",
"event": "booking.confirmed"
}Die Antwort enthält einen Link id, das später zum Abmelden verwendet werden kann:
{ "id": "sub_123" }Aktive Abonnements werden in der bbc_zapier_subscriptions WordPress-Option gespeichert. Die bisherige Webhook-Einstellung mit einer einzigen URL (bbc_zapier_url in den Admin-Einstellungen des Plugins) funktioniert weiterhin parallel, sodass bestehende manuelle Zapier-Konfigurationen von dieser Neuerung nicht betroffen sind.
Webhook-Einrichtung
Baza Booking Calendar sendet Buchungsereignisse an eine Webhook-URL, die in den Admin-Einstellungen des Plugins unter „Baza Booking“, „Einstellungen“ und „Zapier“ konfiguriert ist. Der Webhook wird automatisch ausgelöst, sobald eine Buchung erstellt wird oder sich deren Status ändert.
Verfügbare Veranstaltungen
| Ereignis | Wird ausgelöst, wenn |
|---|---|
booking.created | der Kunde das Buchungsformular absendet |
booking.pending | Der Status ändert sich in „Ausstehend“ |
booking.confirmed | Zahlung bestätigt / Status ändert sich in „Gebucht“ |
booking.cancelled | Der Status ändert sich in „Storniert“ |
booking.completed | Der Status ändert sich in „Abgeschlossen“ |
booking.expired | Der Status ändert sich in „Abgelaufen“ |
google_calendar.disconnected | Die Verbindung zu Google Kalender wurde getrennt |
Struktur der Nutzlast
Nutzdaten für die Buchung eines einzelnen Dienstes:
{
"event": "booking.confirmed",
"site_url": "https://example.com",
"timestamp": "2026-08-12T14:00:00+02:00",
"booking_id": 1234,
"order_id": "ABC-001",
"order_status": "booked",
"order_status_label": "Booked",
"service": "Studio / Room A",
"booking_dates": "12.08.2026n10:00 - 12:00",
"booking_dates_raw": "2026/08/12/10:00-12:00",
"booking_price": "150",
"tax_rate": 20,
"tax_amount": 25,
"payment_made": "75",
"remaining_payment": "75",
"customer": {
"name": "Ivan Ivanov",
"phone": "+380991234567",
"email": "ivan@example.com"
},
"admin_url": "https://example.com/wp-admin/admin.php?page=bbc-bookings&edit=1234",
"zoom_url": "https://zoom.us/j/123456789",
"google_meet_url": "https://meet.google.com/abc-defg-hij",
"custom_fields": {
"my_custom_field": "value"
}
}Nutzlast für die Buchung im Warenkorb-Modus, wenn mehrere Dienstleistungen in einer Bestellung gebucht werden, service und booking_dates durch ein cart_items Array ersetzt:
{
"event": "booking.confirmed",
"site_url": "https://example.com",
"timestamp": "2026-08-12T14:00:00+02:00",
"booking_id": 1234,
"order_id": "ABC-001",
"order_status": "booked",
"order_status_label": "Booked",
"cart_items": [
{
"service": "Studio / Room A",
"booking_dates": "12.08.2026n10:00 - 11:00",
"booking_dates_raw": "2026/08/12/10:00-11:00",
"price": "75.00"
},
{
"service": "Studio / Room B",
"booking_dates": "12.08.2026n11:00 - 12:00",
"booking_dates_raw": "2026/08/12/11:00-12:00",
"price": "75.00"
}
],
"booking_price": "150",
"tax_rate": 20,
"tax_amount": 25,
"payment_made": "75",
"remaining_payment": "75"
}Feldreferenz
| Feld | Typ | Beschreibung |
|---|---|---|
event | Zeichenkette | Ereignisname, siehe Ereignistabelle oben |
site_url | Zeichenkette | URL der Website, auf der die Buchung vorgenommen wurde |
timestamp | Zeichenkette | ISO 8601-Zeitstempel der Veranstaltung |
booking_id | Ganzzahl | Interne Buchungs-ID |
order_id | Zeichenkette | Auftragsreferenz-ID |
order_status | Zeichenkette | Maschinenlesbarer Status |
order_status_label | Zeichenkette | Für Menschen lesbare Statusbezeichnung |
service | Zeichenkette | Dienstname (nur bei Buchungen einzelner Dienste) |
booking_dates | Zeichenkette | Formatiertes Buchungsdatum und -uhrzeit (nur bei Buchungen einzelner Leistungen) |
booking_dates_raw | Zeichenkette | Maschinenlesbarer Datums-/Zeitbereich |
cart_items | array | Liste der gebuchten Leistungen (nur Buchungen im Warenkorb-Modus), jeweils mit service, booking_dates, booking_dates_raw, price |
booking_price | Zeichenkette | Gesamtpreis der Bestellung |
tax_rate | Zahl | Steuersatz in Prozent |
tax_amount | Zahl | Steuerbetrag |
payment_made | Zeichenkette | Bisher gezahlter Betrag |
remaining_payment | Zeichenkette | Noch ausstehender Restbetrag |
customer.name | Zeichenkette | Kundenname |
customer.phone | Zeichenkette | Telefonnummer des Kunden |
customer.email | Zeichenkette | E-Mail-Adresse des Kunden |
admin_url | Zeichenkette | Direkter Link zur Buchung im WordPress-Adminbereich |
zoom_url | Zeichenkette | Zoom-Meeting-Link, sofern die Zoom-Integration für den Service aktiviert ist |
google_meet_url | Zeichenkette | Google Meet-Link, sofern dieser über die Google Kalender-Synchronisierung generiert wurde |
custom_fields | Objekt | Alle benutzerdefinierten Formularfelder, die für das Buchungsformular konfiguriert wurden |
Alle Felder lassen sich in Zapier einem beliebigen Feld der Zielanwendung zuordnen, ganz ohne Programmieraufwand.
Manuelle Einrichtung (Webhooks über Zapier)
Bis die native Baza Booking Calendar-App im Zapier-App-Verzeichnis verfügbar ist, kann die Integration manuell mithilfe des in Zapier integrierten Webhooks-Auslösers eingerichtet werden:
- Gehen Sie auf zapier.com und klicken Sie auf „Erstellen“, „Zap“
- Wählen Sie „Webhooks von Zapier“ als Auslöser und „Catch Hook“ aus.
- Kopieren Sie die Webhook-URL (sieht so aus wie
https://hooks.zapier.com/hooks/catch/...) - Fügen Sie den Link in das Feld „Webhook-URL“ unter „Baza Booking“, „Einstellungen“, „Zapier“ ein und speichern Sie die Einstellung.
- Klicken Sie auf „Testereignis senden“ – Zapier erkennt dann alle verfügbaren Felder
- Fahren Sie mit der Einrichtung Ihrer Zap-Aktionen fort (Google Sheets, Slack, CRM usw.)
Anforderungen an den Plan
Die Zapier-Integration ist in den Pro- und Elite-Tarifen von Baza Booking Calendar verfügbar. Sie ist in der kostenlosen Testversion oder ohne gültigen Pro-/Elite-Lizenzschlüssel nicht verfügbar.
