Webhooks & Zapier
8 min read
Send real-time booking data to external services via webhooks. Integrate with Zapier, custom APIs, CRMs, and any system that accepts HTTP callbacks.
Overview
Webhooks allow WP Booking Pro to push real-time event data to any external URL whenever something happens in the system. This enables powerful automations without polling the API. Key features include:
- Multiple webhook endpoints with per-endpoint event selection
- Six event types covering the full booking lifecycle
- Auto-generated secret key for HMAC-SHA256 signature verification
- Structured JSON payloads with booking data
- Automatic retries with exponential backoff (3 attempts)
- Delivery log with status codes, timestamps, and response bodies
- Native Zapier integration via webhook catch triggers
Step 1: Add a Webhook Endpoint
Navigate to WordPress Admin → Bookings → Settings → Webhooks and click “Add Webhook”.
Enter the webhook URL
Provide the HTTPS endpoint that will receive the POST requests. For Zapier, use the “Webhooks by Zapier” catch URL.
Give it a name
Add a descriptive name (e.g., “CRM Sync”, “Zapier - New Bookings”, “Slack Notifications”) to identify this endpoint in the list.
Select events
Check which events should trigger this webhook. You can select one or more from the list below.
Step 2: Available Events
The following events are available for webhook triggers:
booking.created
Fired when a new booking is submitted (before payment confirmation if applicable).
booking.confirmed
Fired when a booking status changes to confirmed (after successful payment or manual confirmation).
booking.cancelled
Fired when a booking is cancelled by the customer or admin.
booking.rescheduled
Fired when a booking date or time is changed. Includes both old and new date/time in the payload.
booking.completed
Fired when a booking is marked as completed (after the appointment has occurred).
payment.completed
Fired when a payment is successfully processed. Includes payment amount, method, and transaction ID.
Step 3: Signature Verification
When you save a webhook, the system auto-generates a secret key. This key is used to create an HMAC-SHA256 signature included in every webhook request header, allowing your endpoint to verify the request is authentic.
The signature is sent in the following HTTP header:
X-WPBooking-Signature header. If they match, the request is authentic.Step 4: Payload Format
All webhook requests are sent as HTTP POST with a JSON body. Here is an example payload:
{
"event": "booking.confirmed",
"booking_id": 1234,
"timestamp": "2026-02-22T10:30:00Z",
"data": {
"customer_name": "John Smith",
"customer_email": "john@example.com",
"service_name": "Consultation",
"staff_name": "Dr. Jane Doe",
"booking_date": "2026-03-01",
"booking_time": "14:00",
"duration": 60,
"price": 150.00,
"currency": "USD",
"status": "confirmed"
}
}Step 5: Retry Logic
If your endpoint returns an error (HTTP status 4xx or 5xx) or times out (30 second limit), the system will retry delivery:
First retry: 1 minute after failure
The first retry is sent 60 seconds after the initial failed attempt.
Second retry: 5 minutes after first retry
If the first retry also fails, a second attempt is made 5 minutes later.
Third retry: 30 minutes after second retry
The final attempt is made 30 minutes after the second retry. If this also fails, the delivery is marked as failed in the log.
If a webhook endpoint fails consistently (more than 10 consecutive failures), it will be automatically disabled. You will see a warning in the admin dashboard and can re-enable it after fixing the endpoint.
Step 6: Webhook Delivery Log
Every webhook delivery is recorded. Go to Settings → Webhooks and click on a webhook endpoint to see its delivery log:
- Timestamp of each delivery attempt
- Event type that triggered the webhook
- HTTP status code returned by your endpoint
- Response body (first 500 characters) for debugging
- Number of retry attempts for failed deliveries
- Option to manually resend a failed delivery
Zapier Integration Guide
Zapier makes it easy to connect WP Booking Pro to 5,000+ apps without writing code:
Create a new Zap
In Zapier, create a new Zap and choose “Webhooks by Zapier” as the trigger. Select “Catch Hook” as the event.
Copy the Zapier webhook URL
Zapier will generate a unique webhook URL. Copy it.
Add it as a webhook in WP Booking Pro
Paste the Zapier URL as a new webhook endpoint in Settings → Webhooks, select your events, and save.
Test and configure actions
Create a test booking to send sample data to Zapier. Then configure your Zap actions (e.g., add to Google Sheets, create a HubSpot contact, send a Slack message).