Integrating Buzzshot with custom booking software
The best option: take bookings in Buzzshot
Before you set up any integration, it's worth knowing that Buzzshot has its own built-in booking system — Buzzshot Bookings. Taking your bookings directly in Buzzshot is always the smoothest experience: there's nothing to connect, nothing to keep in sync, and every feature works perfectly out of the box — waivers, pre-registration, photos, payments, gift cards and more, all in one place.
If you're able to move your bookings over to Buzzshot, that's what we'd recommend. See Getting Started with Buzzshot Bookings to learn more.
Bringing in bookings from another system
If you'd rather keep taking bookings elsewhere, that's fine too. We already have ready-made integrations with many of the popular booking systems — Bookeo, Xola, FareHarbor, Resova, Checkfront, Roller and more. If you use one of those, start there.
And if you've built your own booking system, or you use one we don't yet integrate with directly, you can still connect it to Buzzshot. The rest of this article explains how.
Heads up: connecting a custom booking system means your booking software needs to send information to Buzzshot automatically. That's a job for whoever builds or maintains your booking system — it involves a little development work. If you're not sure, get in touch and we'll help you figure out the best approach.
How it works
Once your booking system is connected, everything happens automatically:
- When a booking is made, it's created as a group in Buzzshot straight away.
- When a booking is changed or cancelled, the matching group in Buzzshot is updated or removed.
- (Optional) When the group is created, Buzzshot can email the customer inviting them to pre-register — so they can sign your waiver ahead of time and share the waiver link with the rest of their group.
To make this work, your booking system sends Buzzshot a short message every time a booking is created, updated or cancelled.
Setting it up
Once the Custom booking integration is switched on for your account, you'll find its settings under Settings > Integrations, next to Custom booking integration — click Settings. That page gives you three things you'll need:
- Your webhook address — the web address your booking system sends bookings to.
- Your room IDs — the IDs Buzzshot uses for each of your rooms, so you can tell it which room a booking is for.
- The most recent message received — handy for checking your booking system is talking to Buzzshot correctly.
If you don't see the Custom booking integration on your account yet, contact us and we'll enable it for you.
Sending bookings to Buzzshot
Whenever a booking is created, your booking system should send a POST request to your webhook address. The webhook address looks like this (yours will have your own unique ID and secret in it — copy the real one from the settings page):
https://buzzshot.com/integrations/webhook/ID/SECRET
The request body should be JSON, like this:
{
"type": "booking.created",
"booking_id": "BOOKING_ID",
"date": "2022-08-31",
"time": "14:30",
"room_id": "123456789",
"booker": {
"email": "test@example.com",
"telephone": "123456",
"first_name": "Tom",
"last_name": "Parslow"
}
}
The fields are:
- booking_id — the ID of the booking in your system. It must be unique for each booking. Buzzshot uses it to match up updates and cancellations later, so send the same value every time you refer to the same booking.
- room_id — which room the booking is for. Use one of the room IDs from your integration settings page.
- date and time — the date and time of the booking, in the timezone set on your account.
dateis inYYYY-MM-DDformat (e.g.2022-08-31) andtimeis in 24-hour format (e.g.14:30).- Alternatively, you can send a single datetime field instead of
dateandtime— an ISO 8601 timestamp that includes the timezone (e.g.2024-10-22T00:31:33-12:00).
- Alternatively, you can send a single datetime field instead of
- booker — details of the person who made the booking. Every field here is optional, but you'll usually want to send at least the email so Buzzshot can invite them to pre-register.
A few optional extras you can include if you have them:
- team_name — a name for the group (otherwise Buzzshot generates one).
- player_count — the number of players expected.
- players — a list of individual players, each with the same fields as booker (
email,telephone,first_name,last_name). Use this if you collect details for the whole group, not just the person who booked.
Updating and cancelling bookings
- To update a booking, send exactly the same kind of message but with
"type": "booking.updated". - To cancel a booking, send a message with
"type": "booking.cancelled". For a cancellation you only need to include thebooking_id— nothing else is required.
Make sure you always send the same booking_id you used when the booking was created, so Buzzshot can find the right group.
A note on timing
Buzzshot processes these messages in the background, so your booking system won't get an immediate success-or-error response. If something isn't coming through, the most recent message received shown on the integration settings page is the best place to start checking.
A simpler option: linking players to the waiver
If sending automatic messages is more than you need, there's a lighter-touch alternative. Instead of connecting the two systems, you can add a link to your own "thanks for booking" email — something like "Click here to sign the waiver" — that carries the booking details over to Buzzshot when the customer clicks it.
The link looks like this. The values in {{ }} are placeholders your booking system fills in for each booking:
https://buzzshot.com/web/registration/YOUR-CODE/?source={{yourSystemName}}&location={{roomId}}&tag={{bookingId}}&time={{arrivalTime}}&date={{arrivalDate}}&first_name={{customerFirstName}}&last_name={{customerLastName}}&email={{customerEmail}}
Replace YOUR-CODE with the short code we give you for your account — get in touch and we'll send you the exact web address to use.
- location — the ID of the room in Buzzshot (we'll give you your room IDs).
- tag — the ID of the booking in your own system.
- source — a short name for your booking system (any consistent word). Together with tag this lets Buzzshot recognise the same booking if the customer clicks the link more than once, rather than creating a duplicate.
- time — the time of the booking in 24-hour format (e.g.
11:00). - date — the date of the booking in
YYYY-MM-DDformat (e.g.2018-10-09). - first_name, last_name and email — all optional, but nice to include as they pre-fill the form for the customer.
Because this relies on the customer clicking the link, bookings only appear in Buzzshot once they do — so for a fully automatic setup, the webhook method above is the better choice.
Other options
Other, more flexible integration methods are also possible, and we're always adding new ready-made integrations. If none of the above quite fits, get in touch and we'll talk through the options with you.
