Hall panel
The Hall panel is the host's and manager's workstation inside the till. It opens with the 🗺 button in POS and takes over the whole screen.
Two conditions make that button visible. First, the role: it needs the hall management permission, so a waiter who switched at the till with a PIN will not see it. Second, the Hall panel chip toggle in POS appearance: restaurants and hotels have it on by default, while non-restaurant business types (retail, beauty, pickup point, e-commerce, services, corporate site, blog, widgets) have the panel off by default — switch the toggle on if you need it.
Eight tabs answer eight different questions, but they share one live data set: orders, calls and reservations arrive over a websocket, nothing has to be refreshed by hand.
The panel remembers that it is open. While it is on screen, the POS address carries ?panel=hall, so a page reload (F5) keeps you in the panel instead of taking you back to the till; after a reload the panel opens on its default tab. The browser's Back button closes the panel and returns you to the till, and from the till it opens the panel again — for example, you seat a guest, take the order and get back to the floor with one click. The ✕ still closes the panel as before. You can bookmark the till with the panel open: the panel opens only if the staff member at the till can see the Hall button (the same two conditions as above).
The floor plan is drawn in Floor plan; the Hall panel displays it and works on top of it.
"Now"#
The first tab is a single screen showing the state of the venue this minute, as tiles:
| Tile | What it shows |
|---|---|
| Seats taken | taken / total, and how many tables that is |
| Bookings within the hour | who has to be seated in the next hour |
| Ready, not served | orders waiting for a waiter |
| Calls | active waiter calls |
| Rooms to clean | (hotels) |
| Guest requests | (hotels) |
| Overdue tasks | and how many of them have no assignee |
| Revenue today | the day's total |
Tapping a tile highlights the matching objects right on the floor plan — that is the difference between a dashboard and a list of numbers.
Empty tiles are hidden: a small café with no hotel and no tasks sees a living screen, not a table of zeros. When nothing needs attention, the tab says so.
"Waiting" — the waitlist#
The queue of guests for whom there was no free table.
A waitlist entry holds name, phone, party size, the wait time you quoted, and a comment. The phone is typed in the same country format as in a reservation, and the "Call" button in the queue row shows the number the same way.
Statuses: queued → invited → seated; terminal ones are no-show and cancelled (left on their own). Once invited, a no-show timer starts ticking.
How to invite. There are exactly two channels, and both are real:
- Phone call — a
tel:link right in the row, nothing to configure; - Telegram — the button appears only if the guest already has a conversation with this location's Telegram bot. Telegram does not let a bot message first: until the guest starts the dialogue, the chat simply does not exist. There are no stubs here that look functional.
SMS and WhatsApp are not supported in the waitlist yet.
Seating. When a table frees up, the panel suggests a matching party by itself: among those still queued who fit the table, it picks the one that leaves the fewest empty seats, and on a tie the one who has waited longest. Seating creates an ordinary reservation and hands the table to the till — the same path as seating a reservation from the scheme.
The number of parties waiting is shown on the tab itself.
"Scheme", "Reservations", "Calls"#
Scheme — a live floor plan with table statuses: free, occupied, waiting, reserved. The waiter assigned to a table is shown right on the plan — a circle in their colour with their initials at the table's top-right corner; hover over it (tap it on a tablet) and a tooltip shows their name. Waiters are shown the same way on the "Now" tab's plan. Tapping a table opens a card: open the order, seat a reservation, assign a waiter to the table (or change/clear the assignment). When a table has several reservations for today, the card lists them all by time — the nearest one first, and that is the one the “Seat” button takes; on the plan itself the table badge shows the nearest reservation plus “+N” for the rest of the day. For the plan, “today” runs to the end of the day, and from 06:00 it also covers the night until 06:00 the next morning: a 01:00 or 04:00 reservation made in the evening shows at its table right away — and at the new table after the guest is moved — not only after midnight. Reservations for later days are not drawn on the plan; they are on the “Reservations” tab.
Reservations — the same reservation list as on the floor plan page: create, edit, confirm, assign a table, change status. Each row shows the window the table is held for the guest — for example "Today 11:00–13:00". The "✏️ Edit" button opens a form right in place of the row: you can move the date and time, make the reservation longer or shorter, and change the party size, table, name, phone and comment. If the table is already taken at the new time, the changes cannot be saved; if the table was taken from another screen at the same moment and the server refuses, the row goes back to its previous values and the panel says the changes were not saved. A guest who left an e-mail gets a message about the new time. Availability is shown inside the form: for the chosen window a taken table is marked "· Occupied" and cannot be picked, an overlap is refused with "Overlaps another reservation on this table", and when every table is taken the form says "No free tables" (a reservation with no table can still be created — the table is assigned by hand). A time that has already passed is not accepted. The guest phone is written the way a number is written in the location's country — "+7 (912) 575-19-38": the grouping appears as you type, and an empty field shows an example number for the country. The number is shown the same way in the reservation row and in the table card on the floor plan. Not a single digit is changed, and free-form text such as "ext. 101" or two numbers separated by a comma stays as typed. Unconfirmed reservations show as a number on the tab — exactly the requests in the list. A request whose time has passed without being confirmed leaves the list (it is visible under "Show past") and is no longer counted. Moving a reservation to another time does not create a new one: the same record changes. The 🗺 button in POS carries the same number plus active waiter calls.
Automatic no-show release. The "⏱ Auto no-show" button in the tab header opens the setting right in place: a checkbox "Release the table if the guest does not turn up" and how long to wait after the reservation starts — from 5 to 240 minutes, 15 by default. It is off by default: running late is not the same as not coming, and releasing a real guest's table costs more than an empty table does. Once it is on, a confirmed reservation counts down in its row ("⏱ auto no-show in N min"), and when the time is up the reservation goes to "no-show", the table is free again and the panel shows a toast with the table name. Reservations released by the machine are visible under "Show past" marked "🤖 released automatically". This also works when the POS is closed — the server catches up on overdue reservations. What the machine will not do: it never touches reservations older than a day, never touches guests already seated or requests not yet accepted, and never releases a reservation with a paid deposit — a member of staff closes those with "No-show", because the status decides what happens to the guest's money. The same pair of settings lives in the "Guest journey" block of the appointments journal: the rule belongs to the venue, not to one screen. More in Table reservations.
Calls — waiter calls sent by guests from the QR menu (see Orders). A row with the table number and reason, an "Acknowledged" button, and a global sound toggle. The same bell is mirrored in the Orders section.
"Day" and "Tasks"#
Day — who is on shift right now: today's planned-vs-actual roster grouped into "on shift", "expected", "finished" and "off schedule". Clock-in and clock-out happen from the shared till terminal: an owner or manager can mark anyone without a PIN, everyone else enters their own. In the hotel vertical the tab adds a guest-requests block.
Tasks — a compact version of the shift tasks board: quick add, "open / doing / done" groups, tick to complete. The full kanban with tags and due dates lives on its own page. The number of open tasks is shown on the tab.
"Analytics" — the hall heat map#
Which square metres bring in money. The floor plan is coloured by a value — revenue or average check per table — with a table of numbers and a legend underneath.
Two honest limits:
- it covers today only — the tab works from the live 24-hour order cache and has no backend of its own; periods (week, month, revenue per seat) are not supported yet;
- a table with no QR code bound to it means "no data", not "zero revenue": orders are linked to a table through its code, and about a table without a code nothing can be claimed.
What you need to get started#
- Access to the POS. The hall panel is not a separate sidebar item: it opens with the "Hall" (🗺) button inside the POS.
- A drawn floor plan — rooms and tables are created in the Floor plan section; the panel only displays them.
- QR codes bound to tables — without the binding the "Calls" view stays empty and orders are not linked to tables.
- Booking switched on — for the "Reservations" view and deposit policies (Table reservations).
- Accumulated orders by table — the revenue and average-check heat map is built from them, and on empty history it is empty.
Limitations#
- The panel lives inside the POS — it has no address or menu item of its own.
- Updates come over a websocket. Without a connection the views do not refresh themselves — you will have to reload manually.
- There is no reservation timeline by table and no seating-grid engine: overlaps are visible, but there is no automatic seating.
- There is no "guest arrived" status and no automatic reminders N hours before a reservation.
- Automatic no-show release is off by default and is switched on by the venue: running late is not the same as not coming. A reservation with a paid deposit is never released automatically.
- Hall analytics counts by table — takeaway and delivery orders are by definition not shown on the heat map.
Troubleshooting#
There is no "Hall" button in the POS. The tables section is off for your venue type — switch it on in the App Store.
The "Calls" view is empty although guests are calling the waiter. That means the QR code is not bound to a table: rescan the code at the right table and the binding will move.
There are no tables on the plan. Check that the right room is selected — tables belong to a specific room.
No reservations are visible. Booking is switched off for the location, or you are looking at a different point of sale. The plan also shows only today’s reservations (in the evening — the night until 06:00 as well): look for a reservation on a later day on the “Reservations” tab.
The heat map is empty. There are no orders bound to tables for the selected period.
Related sections#
- POS — where the panel is opened from
- Floor plan — the plan editor and binding table QR codes
- Table reservations — booking, deposits, statuses
- Orders — the waiter call and where it goes
- Shift tasks board — the full board
FAQ#
How is the Hall panel different from the "Floor plan" section?#
"Floor plan" is the editor: that is where you draw tables and halls and bind QR codes to them. The Hall panel is the work done on top of that plan during a shift: seating, the queue, calls, analytics. The waitlist and the heat map do not exist on the editor page.
Can a guest join the waitlist by themselves?#
No, the host adds them. The guest gets a call or a message from the venue when a table frees up.
Why is a table empty in analytics?#
It has no QR code bound to it. Orders are linked to a table through its code, so without one there is no data for that table — and the panel honestly shows "no data" rather than zero.
Can I open the panel on a separate tablet at the entrance?#
Yes — it is part of the till app, so open POS on the host's tablet and keep the panel expanded.
Are waiter calls duplicated in "Orders"?#
Yes, it is the same signal: the bell in the Orders section and the "Calls" tab show the same active calls.