Connect to other tools
Webhooks send a notification to any URL whenever something happens - a new booking, a new contact, a membership change. From there, you can route that data anywhere.
What you can do with it
- Newsletter sync customers to Mailchimp, Klaviyo, or any email platform
- Booking confirmations to a Slack or Discord channel
- SMS reminders through Twilio or a similar service
- Log every booking to a Google Sheet for custom reporting
- Update a CRM like HubSpot or Notion with customers automatically
- Send a welcome sequence when someone signs up for a membership
Setting up a webhook
Webhooks are added from Settings → Data.
- Scroll to the Integrations section and click Add webhook
- Paste your endpoint URL - this comes from Zapier, Make, your own server, or wherever you want to receive events
- Add a description so you remember what it does
- Select the events you want to listen to, then click Create endpoint
That's it. Session will send a POST request to your URL each time one of those events fires.
Available events
contact.created- a new user or guest signs upcontact.updated- a user's profile changesbooking.created- a booking is confirmedbooking.cancelled- a booking is cancelledmembership.created- a new membership subscription startsmembership.cancelled- a membership is cancelled (remains active until the period ends)membership.expired- a membership fully endssession.attended- a session has ended, with its attendance (who checked in, who was a no-show)voucher.purchased- someone buys a gift voucher
Testing your webhook
Use the send icon in the integrations table to fire a test event and confirm your endpoint is receiving data correctly. The history icon shows recent delivery attempts and their responses.
The API
Webhooks push data out of Session. The API lets another tool read from Session and write back into it, so an outside system can act on your bookings rather than just watch them.
It's already running in production. A rewards partner uses it to issue a discount code the moment a customer earns a reward, and a venue uses it to power its own check-in screen.
What it can do today:
- Create a discount code - issue a reward or promo code from another system. Session mints the code and returns it, so you can attach it to the reward at the other end. You can restrict it to certain sessions or booking types.
- Read a day's sessions - what's on, capacity, and who's booked, including waiver status and any add-ons to hand over.
- Record attendance - check a customer in from your own app or tablet.
Access is by an API key issued per venue. Keys aren't self-serve yet - get in touch and we'll issue one along with the endpoint documentation.
Call the API on bookasession.org, not www.bookasession.org. The www address redirects, and a redirect drops the body of a POST request - so a call that creates a code or records a check-in will silently do nothing.
We're actively building this out into an open API so any tool can be wired to Session. What gets built next is shaped by what venues ask for, so if there's something you want to read, automate, or connect, tell us.
Common questions
-
Do I need a developer to use this? For webhooks, no - tools like Zapier and Make let you point a Session event at another app without writing code. The API is a developer-facing tool, so it does need someone technical (or the other tool's own team) to wire it up.
-
What's the difference between a webhook and the API? A webhook is Session telling you something happened. The API is another tool asking Session for something, or telling Session to do something. Most integrations use both - read a day's sessions from the API, then keep the list fresh with webhooks instead of polling.
-
My endpoint isn't receiving anything. Fire a test event with the send icon, then check the history icon for the delivery attempts and the response your endpoint gave back. A non-200 response means the event reached you and your endpoint rejected it; no attempt at all means the event you're expecting isn't one you subscribed to.
-
An API call returns nothing and nothing happens in Session. Check you're calling
bookasession.organd notwww.bookasession.org- thewwwaddress redirects and the request body is lost on the way. -
Can I have more than one webhook? Yes, up to 10 per venue, each with its own URL and its own selection of events. Use separate endpoints when different tools need different events.
-
Is the API key safe to share with a tool? Treat it like a password - it can create discount codes and read customer bookings for your venue. It only ever works on your own venue's data. If a key is exposed, get in touch and we'll issue a fresh one and retire the old one.