M cenaly.ru
🏨 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 both by role (owner/manager, or a PIN operator with the "hall" permission) and by the Hall panel chip toggle in POS appearance — non-restaurant business types have it off by default;
  • 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#

A table deposit is a set of rules (weekday, time range, party size from N), each with a fixed amount charged either per guest or per booking — there is no percentage option here, unlike the 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.


What you need to get started#

  • Booking switched on for the location — for a restaurant, cafe, bar and hotel it is on by default; for canteens and fast food it is deliberately off.
  • A floor plan with tables — so a reservation can be seated at a specific table (Floor plan).
  • A channel to receive requests — the storefront, a booking widget on your site, Telegram or the guest AI agent.
  • A deposit policy — if reservations are taken with a prepayment; a deposit requires working online payment.
  • A place to review reservations — the "Reservations" window and the "Reservations" view in the Hall panel.

Limitations#

  • An unpaid reservation with a deposit holds the slot for 30 minutes and then releases it.
  • There is no reservation timeline by table and no seating grid — availability is your decision rather than an automatic seating engine.
  • There is no "guest arrived" status, and no automatic reminders N hours before a booking; Telegram reminders to guests follow their own rules.
  • The guest does not choose a table in the widget or the storefront form: they leave a request, and you assign the table.
  • Deposits use the shared payment mechanism, so where online payment is not connected a deposit cannot be taken.

Troubleshooting#

A guest cannot book. Booking is switched off for the location, or the booking widget on your site is not paid for as an extension.

The reservation was not linked to a table. The venue does the linking — the guest does not set it.

The deposit was not returned on cancellation. The refund follows the deposit policy; check its terms and the payment status.

Reservations are not visible in the hall panel. You are looking at a different location, or booking is switched off.

A slot was double-booked. Overlaps are shown, but there is no hard availability grid — set a quota manually for busy hours.



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.