Skip to main content

Zapier Integration

Zapier connects Reservly to 6,000+ apps with zero code. This guide walks you through setting up a Zap that triggers whenever a booking is created, cancelled, or updated in Reservly.

What You'll Build

A Zap (automated workflow) where Reservly booking events are the trigger, and any Zapier-supported app is the action. Common examples:

  • New booking → Slack notification
  • New booking → Google Calendar event
  • Payment received → follow-up email
  • Booking cancelled → update an Airtable row

Prerequisites

  • A Reservly account with webhook access enabled.
  • A Zapier account (free tier supports single-step Zaps).

Step 1: Create a New Zap

Log in to Zapier and click Create Zap. You'll set up a trigger (Reservly webhook) and an action (your destination app).

Step 2: Set Up the Webhook Trigger

  1. For the trigger app, search for Webhooks by Zapier.
  2. Choose Catch Hook as the trigger event. This tells Zapier to listen for incoming webhook data.
  3. Click Continue. Zapier generates a unique webhook URL:
Zapier webhook URL (example)
https://hooks.zapier.com/hooks/catch/12345/abcdef/
text
  1. Copy this URL.
  2. In your Reservly dashboard, go to Settings → Integrations → Webhooks.
  3. Click Add Webhook, paste the Zapier URL, and select the events you want to trigger on (e.g., booking.created, booking.cancelled).
  4. Save the webhook in Reservly.

Step 3: Test the Trigger

  1. In Reservly, click Send Test next to your webhook. This sends a sample booking payload to Zapier.
  2. Back in Zapier, click Test trigger. You should see the sample data:
Sample webhook data in Zapier
{
  "event": "booking.created",
  "booking": {
    "id": "b_abc123",
    "service_name": "Haircut & Style",
    "date": "2026-04-15",
    "time": "10:00",
    "customer_name": "Jane Smith",
    "customer_email": "jane@example.com",
    "status": "confirmed"
  },
  "business_slug": "luxe-salon",
  "timestamp": "2026-04-14T18:30:00Z"
}
json

If the test succeeds, you'll see all the booking fields available for mapping in the next step.

Step 4: Add an Action

Click +to add an action step. Search for and select your destination app. Map Reservly fields from the trigger to the action's input fields.

Available fields from the webhook:

FieldZapier PathDescription
Event typeeventbooking.created, booking.cancelled, etc.
Booking IDbooking__idUnique booking identifier
Service namebooking__service_nameName of the booked service
Datebooking__dateBooking date (YYYY-MM-DD)
Timebooking__timeBooking time (HH:MM)
Customer namebooking__customer_nameCustomer's full name
Customer emailbooking__customer_emailCustomer's email address
Statusbooking__statusconfirmed, cancelled, etc.

Example Zaps

Zap 1: New Booking → Slack Message

Trigger: Webhooks by Zapier (Catch Hook) → Action: Slack (Send Channel Message). Set the channel to #bookings and compose the message:

Slack message format
New booking: {{booking__customer_name}} booked {{booking__service_name}} on {{booking__date}} at {{booking__time}}.
text

Zap 2: New Booking → Google Calendar Event

Trigger: Webhooks by Zapier → Action: Google Calendar (Create Detailed Event). Map the date and time to the event start, use the service duration for the end time, and put the customer name in the event title.

Zap 3: Payment Received → Follow-Up Email

Trigger: Webhooks by Zapier (filter for event = payment.received) → Action: Gmail (Send Email). Use the customer email as the recipient and include a thank-you message with their booking details.

Zap 4: Booking Cancelled → Update Airtable

Trigger: Webhooks by Zapier (filter for event = booking.cancelled) → Action: Airtable (Update Record). Use the booking ID to find the matching row and update the status column to "Cancelled".

Using Filters

Zapier receives all the webhook events you selected in Reservly. To limit a Zap to a specific event type, add a Filter by Zapier step between the trigger and action:

Filter example
Field:     event
Condition: (Text) Exactly matches
Value:     booking.created
text

This ensures the Zap only runs for new bookings, ignoring cancellations and updates.

Tips

  • Use Zapier's Paths feature to handle different event types in a single Zap (e.g., one path for created, another for cancelled).
  • Test your Zap end-to-end by creating a real booking on your Reservly public page and checking that the action fires.
  • For advanced use cases, add an HTTP Request by Zapieraction step to call Reservly's API directly (e.g., fetch full service details).

Next Steps