M masamenu.tr
๐Ÿจ Hotels & Booking

๐Ÿ“… Table Reservations

Table bookings: creation, floor-plan binding, statuses and the hall panel

Documentation

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.