The waitlist lets customers leave their name on a list when an experience is fully booked. As soon as a spot opens up (a cancellation, a capacity increase, or a reschedule out of the slot) the next person on the list is notified by email (and SMS, if enabled) with a one-click link to book.
It turns "sold out" from a dead end into a second chance, both for your customers and for your revenue.
What the waitlist does
Captures demand on dates and times your customers can't book directly.
Notifies the next eligible customer the moment capacity reappears.
Keeps the order fair (first come, first served) within the queue.
Cascades automatically: if a notified customer doesn't book in time, the next person is offered the spot.
Surfaces every entry (and its status) on the availability page so your team can manage the list.
The waitlist is configured per experience. You can run it on some experiences and not others.
Getting started
The waitlist is enabled on a per-experience basis. To turn it on:
Go to Experiences and open the experience you want to enable.
Scroll to the Waitlist section.
Toggle Enable waitlist on.
Set Maximum waitlist size — the total number of active entries allowed per date.
Set Hours to claim a spot — how long a notified customer has to book before the spot is offered to the next person.
Save.
You can also choose how customers are notified (email and/or SMS) under the Notifications section, in the Waitlist spot available row.
Note: SMS notifications are available on plans with SMS.
How customers join
On the booking widget, the Join Waitlist button appears only when:
The experience has the waitlist enabled.
The selected date and guest mix can't be booked directly (sold out, or not enough capacity for the requested guest count).
The booking cutoff for that date hasn't passed yet.
When a customer clicks Join Waitlist, they enter their name, email, and (optionally) phone number. They receive a confirmation message with their position in the queue.
If the same customer tries to join twice for the same date, they get a friendly message — duplicate entries are blocked. If the list is full, they're told the waitlist is at capacity.
When a spot opens up
Captainbook watches for capacity changes on every waitlisted experience. A new spot is available when:
A booking is cancelled (paid or unpaid reservation).
A booking's quantity is reduced.
A booking is rescheduled out of the slot.
The capacity of the availability is manually increased.
The system finds the oldest pending entry whose guest count fits the new capacity and sends the A Spot Just Opened Up notification. Multiple entries can be notified in one cascade if the new vacancy is large enough.
Important: While a customer is in the claim window, their spot isn't reserved for them. Bookings are first come, first served — anyone (including the general public) can book that capacity in the meantime. The notification message tells customers this clearly.
The claim flow
The notified customer clicks the link in their email or SMS and lands on a private claim page. From there they can:
Book Now — confirm the booking and pay.
Update Guests — adjust the guest mix before booking.
Cancel — bow out and free up the spot for the next person.
If they don't act within the Hours to claim a spot window, the entry expires and the system automatically notifies the next pending customer.
Statuses explained
Each entry on the waitlist has a status that tells you exactly where it stands:
Pending — in the queue, waiting for a spot to open up.
Notified — has been told a spot is available; the claim window is running.
Claiming — actively in the booking flow on the claim page.
Converted — booked successfully. The entry is linked to the resulting booking.
Expired — the claim window passed without a booking. Has been replaced by the next person in line.
Cancelled — the customer chose to cancel from the claim page.
Removed — an admin removed the entry manually.
Managing the waitlist from the backoffice
Every availability page has a Waitlist tab when the experience has the waitlist enabled. The tab shows:
All entries, grouped so the most urgent are on top: customers actively claiming, then notified customers, then the pending queue, then terminal entries (Converted, Expired, Cancelled, Removed).
For each entry: customer details, guest count, status, when they joined, and when the claim window expires.
A trash icon to remove pending, notified, or claiming entries.
Manually notifying the next person
The Notify Next button at the top right pushes the oldest pending entry into the Notified state and sends them the spot-available message — even if there's no actual vacancy yet. Use this when you know a spot is about to free up (a customer told you they'll cancel, you're about to bump capacity) and you want to give the next person a head start.
Removing an entry
If a customer asks to be removed, or you spot an obvious problem (test entry, abuse), use the trash icon. If the entry was holding a spot (Notified or Claiming), removing it automatically triggers the cascade to the next person.
Connecting the waitlist to workflows
The waitlist ships with a Waitlist Joined trigger you can use in the Workflows builder. It fires whenever a customer joins the waitlist and gives you access to:
The customer (name, email, phone).
The availability (experience, date, time).
The waitlist entry itself (guest mix, position).
Common workflow ideas:
Post a Slack message to your operations channel when someone joins.
Send an internal email to the experience owner.
Push the lead into your CRM with a "waitlist" tag.
Tag VIP customers and send them a personal note.
The trigger is in the Waitlist category in the workflow builder.
Best practices
Don't make the claim window too short. Two hours is fine for last-minute experiences; 24 hours is better for most. If your customers are travelling and check email once a day, four hours can mean the spot expires before they ever read about it.
Set a sensible maximum size. A waitlist with hundreds of entries on a five-seat experience is mostly noise. A cap of 10–20 keeps the list relevant.
Tell customers the spot isn't reserved. The notification email already says this, but if you're posting on social or sending manual messages, repeat it. It manages expectations and avoids "but I had a confirmation!" complaints.
Use the workflow trigger for visibility. A Slack alert when the waitlist for a popular experience starts filling up is one of the best signals you can get for "we should add another departure."
Review terminal entries occasionally. A high Expired rate on a particular experience usually means your claim window is too short or your notification channel isn't reaching customers (e.g., email is going to spam).
Troubleshooting
The Join Waitlist button doesn't appear on a sold-out date.
Check that the experience has the waitlist enabled, the booking cutoff hasn't passed, and the customer's selected guest count actually exceeds remaining capacity. The button is hidden whenever the slot can still be booked normally.
A customer says they didn't get the notification.
Check the Waitlist tab on the availability — the status will show whether they were Notified (and when). If it says Notified but they didn't receive anything, check the customer's email/SMS settings and your notification logs. Customers can also resend by visiting the original join confirmation.
Two customers booked the same spot.
This is by design — the spot isn't reserved for the notified customer, only offered. If this is causing friction, raise the Hours to claim a spot so that motivated customers usually get there first, but accept that contention is possible on high-demand dates.
A waitlist entry is stuck in Notified after the claim window expired.
The cron that flips expired entries runs every five minutes. If it's been longer than that, check that the scheduled tenants:waitlist-expire-unclaimed task is running.
The waitlist works best when you treat it as a demand signal, not just a recovery tool. Watch which experiences fill their list, how quickly, and use that to plan capacity.
Need help? Reach out via the chat widget or knowledge.captainbook.io.
