Turn any table on your restaurant floor plan into an online-reservable table. Customers open a shared link, pick a date, time, and party size, and get an instant confirmation — no deposit today, they pay for the meal at the restaurant.
Uses the same booking cockpit as spa/salon appointments — one page manages both.
Before you start
- The table must already exist on your floor plan. If not, add it under Setup → Tables first.
- Decide which tables are online-bookable. Not every table should be — small counter seats, staff tables, and outdoor overflow often aren't. Only tables you mark bookable will show in the public list.
Steps — one-time setup per table
- Open Setup → Tables and edit the table you want to make reservable.
- Turn on Bookable (this is the on/off switch — leave off for POS-only tables).
- Set the Seat count — how many people the table seats. Used to politely reject a party of 6 trying to book a 2-top.
- Optionally set the Default booking duration (minutes) — customers can override, but this seeds their picker (120 min is a good default for dinner service).
- Optionally set the Cancellation window (hours) — how many hours before the reservation a customer can cancel for free.
- Optionally set Max concurrent bookings to more than 1 if you deliberately overbook (a 4-seater accepting two 2-tops on the same dinner window is realistic).
- Save.
Repeat for each table you want reservable.
Steps — share the link
Two forms of link work:
https://{your-subdomain}.bsensor.app/book-table— customer sees a picker of ALL your bookable tables. Good for a homepage link.https://{your-subdomain}.bsensor.app/book-table/{tableId}— the specific table. Good for a QR sticker on the table itself, or for a "book this window seat" campaign.
Print QR codes for the specific tables you want to promote; paste the general link in your Instagram bio.
Steps — day-of
Table reservations show up in Front office → Bookings alongside your spa/salon appointments. Filter by kind if you want to see only tables. When the party arrives, click Check in on their row; when they leave, click Complete. If they never show up, click No-show.
Tips
- Overbook cautiously — a Max concurrent of 2 on a 4-seater lets two parties of 2 sit at the same table window. Great for high-turnover; a disaster if the first party lingers. Only use it if your front-of-house can actively manage the flow.
- Duration is the customer's guess — they'll often say "2 hours" even for a quick lunch. If your restaurant is quiet enough this doesn't matter; if it's tight, consider setting a shorter default and adjusting expectations.
- No email required — table reservations only need name + phone. Email is optional (unlike spa/salon bookings, which need it for the deposit receipt).
- Test your own link — open
/book-table/{tableId}on your phone. Try to book a slot that's already booked — you should see the "someone just booked that slot" warning; you shouldn't be able to double-book yourself.
Common problems
- Public page says "No tables are available for online reservation right now" → no tables have Bookable ticked. Go to Setup → Tables and opt at least one in.
- "This table seats up to N. Try a different table…" → party size exceeds SeatCount. Either customer picks a bigger table or the operator adjusts SeatCount on the table.
- "Someone just booked that slot" (409 error at submit) → the slot got taken between when this customer loaded the page and clicked Reserve. The system re-loads availability and the customer picks a new time. Double-book protection working.
- Customer reserved but the front-of-house didn't see it → either they haven't refreshed the Bookings page (it auto-refreshes every 30s), or the reservation is for a table your front-of-house isn't watching. Check the filter isn't hiding TableLayout kind bookings.
- "Not in the future" → customer picked a time in the past. Reservations must be for future slots — check the date/time inputs.