Table Reservations
Reservations work on the same principle as orders: the guest and the venue exchange signed signals rather than writing directly into a shared file โ that protects other people's bookings from being forged. For a general overview of the "Floor Plan" section, see Floor Plan; this article covers the booking flow itself in detail: creation, statuses, table binding, and booking through AI agents.
Where to manage reservations
Two equivalent entry points:
- The hall panel at the till โ the ๐บ chip in the POS ticket header, "Reservations" tab (with a badge showing the pending count). The hall panel is a separate opt-in layer, gated by role (owner/manager, or a PIN operator with the "hall" permission);
- The floor plan in the admin panel (
/tables) โ the same list, plus table binding right on the plan.
New reservation
The "+ New reservation" button opens a form:
- date and time (15-minute steps);
- duration โ 60/90/120/180/240 minutes;
- party size (1โ50);
- table โ a specific one or "any table" if you'll assign it later;
- guest name (required) and phone;
- comment.
Reservations created by staff start out "Confirmed" right away (unlike guest bookings, which always begin as a request).
Statuses
| Status | Meaning |
|---|---|
| Pending | a guest request, awaiting the venue's confirmation |
| Confirmed | the venue accepted the booking (staff bookings start here) |
| Seated | the guests are at the table |
| Completed | a normal end of the visit |
| Cancelled | cancelled by the guest or the venue |
| No-show | the guests never showed up |
Actions for each reservation live right in the list row: confirm (from "Pending"), seat (from "Confirmed" โ if a table is assigned, "Seat" opens a ticket on that table at the till right away), complete (from "Seated"), and "No-show" / "Cancel" available from "Pending"/"Confirmed."
Table assignment and overlaps
A reservation's table can be picked or changed right in the list row โ the dropdown includes "Any table." If the chosen table already has another active booking overlapping in time, a "โ ๏ธ time overlap" warning appears next to it โ that's a heads-up for staff, not a hard block: what to do about the clash is left to the person handling it.
On the floor plan itself, a table with an active or upcoming reservation is highlighted amber with a badge showing the time and guest name โ you can see at a glance which tables are booked right now.
Guest-side booking
In the QR menu and on the venue's website, the guest opens a booking sheet, sees the floor plan (free/busy/selected based on actual active bookings) and picks a table themselves โ or several at once for a larger party, in which case the booking is split evenly across the selected tables. The "from"โ"to" time range supports crossing midnight.
Availability on the guest's floor plan is computed from the same active statuses (pending/confirmed/seated) used at the till โ a table already booked for the chosen time simply isn't offered to the guest.
The section only shows up for the guest if reservations are enabled in the location's website settings โ it's a per-location switch, not a global one.
Reservation deposit
If a deposit is configured (the same mechanism used for a service-appointment deposit โ see Appointments), the guest sees the required amount and the free-cancellation window when booking on the website, pays the deposit online, and the slot is confirmed immediately. Cancelling inside the free window refunds it automatically; a no-show or a late cancellation keeps the deposit with the venue. Deposits only work with online payments configured โ without a provider, bookings stay free of charge, as before.
Booking through AI agents
The same booking engine is available to voice and text AI assistants through the public Guest API: an agent checks table availability (check_table_availability), creates a request (create_reservation), and can check status or cancel (get_reservation_status, cancel_reservation). From the venue's side, such a booking looks no different from a regular guest request โ it lands in the "Pending" list and needs confirmation the same way.
Banquets
There's no dedicated "banquet" entity โ a banquet is booked as a regular reservation with a large party size and an event description in the comment, assigned to a banquet hall or a cluster of tables on the floor plan.
Related sections
- Floor Plan โ the plan editor, QR codes, waiters
- POS โ the hall panel and opening a ticket from a reservation
- Guest API for AI Agents โ booking on the guest's behalf programmatically
- Appointments โ the same booking model for beauty salons
- Staff & shifts โ roles and access to the hall panel
FAQ
Can a guest book a table without calling?
Yes, right from the QR menu or the venue's website โ the request appears in the hall panel instantly, and the guest immediately sees confirmation or a "Pending" status.
What happens if two staff members seat the same table at the same time?
The system warns about the overlap when a table is assigned, but doesn't block the action โ resolving the clash is up to staff. Guest-facing online bookings are stricter: a table already booked for the chosen time simply isn't offered.
Is there a dedicated banquet mode?
No dedicated entity โ a banquet is a regular reservation with a large party size, assigned to the right area of the floor plan.