For experience venues

Booking software for experience venues on Shopify

Experience venues split into two shapes: sessions where strangers share the space, and slots where one group takes the whole thing. CapFlow Booking handles both from the same setup, through your existing Shopify checkout, and this page is honest about which one it does well.

The way it actually goes wrong

A venue runs timed entry every fifteen minutes, 48 people per slot, from 10:00 to 18:00. Weekends are busy, midweek is not, and there is an annual pass for locals. On Shopify the obvious approach is a product per slot with inventory set to 48.

Without capacity

Thirty-two slots a day on variants is not a setup, it is a job. Somebody rebuilds them weekly, the numbers drift, and the pass holders have no way to book at all because inventory does not know who anybody is. The visible failure is a Saturday afternoon where two slots got duplicated from the same template and both sold 48 into a space that takes 48 once. Ninety-six people arrive in fifteen minutes and the venue absorbs it by making everybody queue, which is the one thing timed entry was supposed to fix.

With CapFlow Booking

The number goes on the rule, not on a product. Write one weekly rule for the opening hours with the capacity on it, and CapFlow Booking generates every slot in the season from it. Pass holders are recognised at booking and draw from a reserved share of each slot, and the last place cannot be sold twice because holds during checkout are atomic. Thirty-two slots a day stop being anybody's Sunday evening.

Timed entry 14:00, main experience
Members
Public
8 reserved40 open48 places total

Annual pass holders hold 8 of the 48 places in each afternoon slot. Two hours before the slot, any place they have not claimed releases to public sale, so the local pass does not cost you walk-up revenue on a busy Saturday.

A whole day of slots from one rule

Opening hours are a weekly rule inside a date range. Fifteen-minute slots from 10:00 to 18:00 is one rule, not 32 products, and changing summer hours to winter hours is one edit rather than a rebuild. Anything already booked on a slot the edit removes is cancelled and the customer emailed, so reshaping a live season is a decision, not housekeeping.

Exclusive use, when a group takes the space

Where a slot belongs to one group rather than to whoever books it, set the service to a fixed party size matching the room's capacity. One booking then consumes the whole slot and closes it. The widget stops asking how many are coming, which is usually what you want for a room sold as a room.

Locals and visitors in the same slot

Hold part of each session for annual or monthly pass holders and put the rest on general sale. Unclaimed member places release to everyone a set number of hours before the slot, so priority booking does not turn into empty space.

Add-ons taken before arrival

A service can carry one per-person add-on with its own price: a photo package, equipment hire, a drink on the way out. Pick one per service. It lands in the same Shopify checkout as the places, so the transaction at the door is a name and a code rather than a card machine.

One-offs that block the space properly

A private hire, a corporate evening or a members' preview runs as an event with its own capacity, price and access rules, and it blocks the space so ordinary slots cannot be sold into it. Each event has its own signup link.

Which hours are actually worth opening

Occupancy by slot time, peak hours, cancellation rate and the member versus public split, with CSV export. A venue open 10:00 to 18:00 usually discovers two hours of that are carrying the cost of four others.

Two shapes, and knowing which one you are

Experience venues is a broad label, and the useful way to cut it is not by what the experience is. It is by who owns the slot.

In the first shape, a session holds a number of people and they do not know each other. Timed entry to an exhibition, a mini golf tee window, a VR arena, an immersive show, a climbing session. Someone books two places out of 48 and thirteen other groups book the rest. This is what CapFlow Booking was built for, and it does it without any special handling.

In the second shape, one group takes the whole slot. An escape room, a private booth, a lane, a studio hired by the hour. There is no sharing, and the question is not how many places are left, it is whether the slot is taken at all.

That second shape works here too, but by a specific route rather than by a dedicated feature, and it is worth setting up deliberately.


What a venue setup looks like

CapFlow concept In venue language
Resource The main space, room two, the lanes, the arena
Service Timed entry, standard session, private hire, off-peak
Fixed party size The whole-room booking, for exclusive-use slots
Schedule Opening hours, as weekly rules carrying the cap, in dated seasons
Timeslot One slot on one day
Membership Annual pass, monthly pass, clip card
Event A private hire, a corporate evening, a members’ preview
Add-on One per-person extra per service, such as a photo package
Block Places or slots taken out for maintenance or a booked group

Several spaces are several resources, each with its own cap, all scheduling onto one calendar. Three escape rooms is three resources, and a slot selling out in room one has no effect on rooms two and three.


Exclusive use, spelled out

If a slot has to belong to exactly one group, the setup is two numbers that match.

Set the resource capacity to the largest group the space takes. Set the service’s fixed party size to the same number. Now every booking of that service consumes the entire slot, the widget stops asking how many people are coming, and the slot closes as soon as it is booked.

The trade is in the pricing, and it is worth being clear about because it will show on the customer’s receipt. Price in CapFlow Booking is per place, summed across however many places the booking takes. So a room you want to sell at 90 is a place price of 15 with a fixed party size of six. The customer pays 90 whether four of them turn up or six, which is how most exclusive-use venues price anyway, and the confirmation will say six places rather than one room.

What is not available is a minimum. The app can fix a party size, and it cannot accept anything from four upward while refusing three. If your pricing depends on a floor rather than a fixed number, you will be working around that.


Honest limits

Where an experience venue will feel the edges:

  • No minimum party size. Fixed, or per-person with no floor.
  • No mixed slots. A session is shared or exclusive by service, never both.
  • No custom booking fields. First name and last name, or an email on an event signup. Nothing else is configurable.
  • No waitlist. A sold-out slot has no queue and no automatic promotion.
  • Rescheduling keeps the experience details fixed. Customers and staff can move the same booking to another available time. A different experience, duration, party size, or resource still means cancel and rebook.
  • No OTA, reseller or ticketing integration. Direct sales through your own store only.
  • No deposits. Full payment at the Shopify checkout.
  • Single language. One language for the widget and the emails.

If your venue is not on this list and your customers book a place in a session rather than time with a person, it will almost certainly fit. Email hello@tinyagency.io and ask, and you will get a straight answer from the person who built it rather than a sales call. The comparison pages cover what else is on the Shopify app store.

Questions from experience venues

Our slots are exclusive use. One group books the room, nobody else joins. Does that work?

Yes, with a caveat about pricing worth understanding first. Set the capacity on the space's schedule rule to the maximum group size, say six, and set the service's fixed party size to six as well. Any booking then takes all six places and the slot closes, so the booking flow never offers the room to a second group. The caveat is that price is per place, so a flat room price has to be expressed as the room price divided by six, and a group of three pays the same as a group of six. For most escape rooms and private booths that is exactly the commercial model. If you need to charge per head with a minimum, the app cannot do minimums, only fixed sizes.

Can I sell the same space as both shared and exclusive?

Not on the same slot, no. Capacity is one number per session, and fixed party size is a property of the service. You can run a shared service and an exclusive service against the same space at different times, scheduled separately, and neither will oversell the other. What you cannot do is let a slot start as shared and convert to exclusive when a big group turns up.

Is there a waitlist for a sold-out slot?

No. A full slot shows as full and nobody is promoted automatically when a booking drops. A cancelled place goes back on general sale immediately, which for a busy weekend means it goes to whoever refreshes first.

Can a customer move to a different slot?

Yes. Customers can move the same booking to another available time from the manage link until your customer cutoff, and staff can move it from the admin. The experience, duration, party size, and resources stay the same; changing those still requires cancel and rebook.

Can I collect anything beyond a name at booking?

No. The widget asks for a first name and a last name, and that is the whole of it. Event signups ask for an email instead. There are no custom booking fields anywhere, so no waiver, no age, no accessibility question, no phone number and no notes. Anything you need has to be collected separately, which for a lot of experience venues is fine and for some is the reason to choose something else.

Does it connect to resellers, OTAs or a ticketing platform?

No. There is no channel manager, no OTA integration and no webhook or Zapier layer to build one with. CapFlow Booking sells your own direct inventory through your own Shopify store. If reseller allocations and direct sales have to share one live pool, this is the wrong tool.