Hotel: Rooms, PMS and Guest Service
Cenaly combines its own PMS with guest services: room inventory, reservations, rates, check-in, guest folios, housekeeping and food service. The Hotel business type sets the terminology and initial sections; integrations and new modules have separate availability conditions.
Open: Admin Panel → Rooms (the same section restaurants see as "Floor Plan" — admin.cenaly.com/tables, renamed for hotels).
Floors and rooms#
The floor-plan editor works the same way as for restaurants (Floor Plan), except halls are called floors, and instead of tables you place "Room" and "Bed" elements (beds are for hostels and shared dorms). Each room has a label (numbering starts at 101) and, just like a table, can be bound to a QR code by camera scan. Once a bed is placed inside a room it only moves within that room: the room's walls hold it just like the hall walls do, and the editor will not let you lay a bed across a wall or half-way into the corridor — it turns red and snaps back. Beds in a shared dorm with no rooms drawn are not affected.
You don't have to add rooms one by one — the "+ Add rooms" button opens a bulk-creation form: a range (say, 201–230), an optional prefix, a live preview ("N rooms across M floors will be created"), and a line listing numbers that already exist and will be skipped. The same step is available right inside the onboarding wizard when you pick the "hotel" vertical.
QR codes are bound per room with the "Create QR & bind" button on the room card (or in bulk — one button for the whole floor), which also lets you download the SVG for printing.
Room types and rates#
The "Room types" button opens a catalog: name (Standard/Deluxe/…), rate per night, capacity, description. A type is assigned to a room or bed in the properties panel on the floor plan — its rate is then pre-filled automatically in the check-in form (front desk can still override it for a specific stay).
Rates support seasonality: you can set date ranges with a different price for a specific room type or for all rooms at once. At check-in the system applies the most specific rule (a season on that type → a season on "all rooms" → the rate snapshotted at check-in → the type's base rate), while a rate entered by hand at the desk always wins.
Location settings let you enable a tourist tax — a percentage of the rate with a minimum per-night amount, or a flat per-night fee; the tax is posted to the folio as its own line item.
Check-in and check-out#
The rooms panel is a housekeeping board: a card per room showing status, folio balance and nights stayed. A room's status moves through this chain:
| Status | Meaning |
|---|---|
| Available | ready for check-in |
| Reserved | guest hasn't arrived yet, the slot is held |
| Occupied | a guest is staying |
| Dirty | after check-out, awaiting cleaning |
| Cleaning | housekeeping is in progress |
| Inspected | cleaned and checked, waiting to flip to "Available" |
| Out of order | taken out of service (maintenance, etc.) |
Check-in opens a form: rate (pre-filled from the room type), check-out date, and a guest card — phone, e-mail, ID document, nationality, date of birth. If the guest has stayed before (matched by normalized phone/e-mail), the system shows a "returning guest" badge and bumps the visit counter. Checking in opens a folio and makes the room's QR order path available.
Check-out closes the folio: every charge is rolled into a single fiscal receipt, and the room flips to "Dirty."
Besides the daily board there's a calendar view (a 21-day window) — a view toggle on the same page: bars showing bookings and current stays across rooms, so you can see ahead what's free and when the next guest arrives.
Folio and charges#
A folio is a room's running bill, opened at check-in and kept until check-out:
- every night, a nightly cron (around 03:00 in the location's timezone) automatically posts the room charge — a multi-night stay accumulates on its own, no manual entry needed;
- the tourist tax, if enabled, is posted the same way;
- orders a guest places from the room (room service) are attached to the folio automatically — the link happens server-side the moment the order moves to "placed," so no staff member has to attach it by hand;
- the folio balance is visible at the till in the folio tab of POS and on the room's card on the board.
At check-out, the folio closes with a single settle signal — the consolidated fiscal receipt is generated automatically.
Room service — guest ordering by QR#
A guest scans the QR code in the room and orders from the menu exactly like from a restaurant table. Two server-side rules protect against orders going nowhere:
- an order from an unoccupied room is blocked — if the room's QR has no open stay behind it, the order is automatically cancelled with the reason "room not occupied," and the guest sees a warning in checkout before the order is even sent;
- when placing an order in an occupied room, the "Charge to room" payment method is available — the amount is added to the folio and paid at check-out together with the whole stay; the guest sees a consent line with the exact amount and room number before confirming.
Guest service requests and the housekeeping panel#
Besides ordering food, the guest has a separate service-request button (in the cart/menu of the room's QR code): towels, cleaning, do not disturb, wake-up call (with a time picker), maintenance issue, other. A request is gated by check-in status the same way — it can't be filed from an unoccupied room.
On the staff side there's a "Guest requests" panel on the rooms board: an active-request counter on each room's card, a list with type/note/wake-up time, and "Start" / "Done" actions. Updates arrive live.
"My Bill" for the guest#
The guest's menu (a settings item next to booking and calling staff) has "My Bill" — the guest sees a list of charges (newest first) and payments on their folio, and the running balance, with no staff involvement needed. Before check-in it shows an empty state ("your bill will appear after check-in"); after settlement, a "Paid" badge.
Bookings and iCal export to OTAs#
Beyond instant check-in, the hotel also supports full bookings with check-in/check-out dates — they show up on the calendar as separate bars and turn into a stay with one action on arrival day.
There are two places to create one, and the form is the same: an empty cell of the calendar, and — right on the floor plan — the selected room's properties, block "Room bookings" (the nearest arrivals by date with the number of nights, plus a "📅 Book the room" button); a right click on the room offers it as well. A room booking is always a pair of dates, one night minimum: a room has no hourly booking the way a restaurant table does — rooms appear in the table list neither in the reservation form on the "Floor plan" page nor in the hall panel at the till. And "Check in", wherever it appears, is a real check-in (folio, room status, guest registration): on the rooms board, on a reservation in the reservations list and in the hall panel at the till the button opens the same check-in window. If the hotel has a restaurant, its tables are still booked by the hour — see Table reservations.
Early check-in and late check-out. The hotel's usual check-in and check-out times and paid early check-in and late check-out are set in "Room types" → "Check-in and check-out": "Check-in from" and "Check-out by" (14:00 and 12:00 by default — the guest sees these times on the booking page and in the confirmation email), the "Sell early check-in" and "Sell late check-out" switches, the price — a fixed amount or a percent of the night rate (the first night for early check-in, the last night for late check-out; a rate plan can set its own price) — and the "Not earlier than" / "Not later than" limit. Services that are turned on are offered by the room booking form itself — both on the calendar and behind the "📅 Book the room" button on the floor plan: tick the service and pick the time, and once the booking is created the service is added to it with its price. The form does not accept a time outside the allowed window; if a service could not be added for some reason, the booking is still created and the window tells you to add the service in the booking card. For a booking that already exists, early check-in and late check-out are added or removed in its card. The line goes to the stay bill at check-in, or straight away if the guest is already in the house. In the "Room bookings" block on the floor plan a booking shows "early check-in from …" and "late check-out until …". Until the services are turned on, the booking form shows the hotel's usual times and tells you where to turn them on.
From the venue's website a guest can leave a room booking request: pick a room type and dates, leave a contact — the request appears on the calendar as a regular booking awaiting staff confirmation; no prepayment is collected at this step.
To sync with booking channels, every room has an iCal feed (ical-*.ics) — the link can be added as a calendar in Booking.com, Airbnb, or any other service that supports iCal import, so the room's occupancy is visible externally. The reverse direction works too: paste an export link from Booking.com or Airbnb in the room settings and external bookings will block those dates for you (refreshed roughly every 15 minutes), with clashes collected into a "resolve manually" list.
A full two-way channel manager (rates and availability pushed to channels, bookings pulled back) is written but not yet connected to live channels: it needs a partner account with the provider, so the loop currently runs against the provider's test environment. Until then, iCal in both directions is the working path.
The rooms board has a reports tab with Occupancy, Average Daily Rate (ADR) and Revenue per Available Room (RevPAR) for a period — a quick read on how full the hotel is running.
Extended hotel workflows#
The PMS is expanding beyond room reservations. The following workflows have server or interface implementations and are being introduced in stages. Check that the relevant screen and connection are enabled for your hotel.
| Workflow | What it adds | Before using it |
|---|---|---|
| Payments and guarantees | Deposits, holds, payment schedules and no-show fees | Confirm the provider supports this specific operation; a provider supporting a payment may not support a hold |
| Pre-arrival | Guest details before arrival, with document and signature options | Enable the required fields and retention settings; reception still checks the submitted information |
| Night audit | A business-day report and closing of the period | Resolve pending charges; closed-day corrections follow the permitted adjustment workflow |
| Corporate billing | Transfer the guest balance to a company and issue business documents | Check the payer, company details and settlement terms |
| Housekeeping and maintenance | Cleaning tasks, inspection, minibar and repair work | Assign employee roles and configure the hotel's process |
| Door locks | Guest access connected to the stay | A supported vendor account, device and completed setup are required |
iCal exchange is supported on both services and transfers occupied dates. It does not exchange prices. Channex currently uses a test environment; live OTA distribution requires a separate connection. An external-PMS demo adapter is not a live connection to every PMS vendor.
Guest-registration reporting depends on the destination country and connector. For Russia, the documented workflow is a register, printed/exported forms and a staff record of submission. It does not automatically submit reports to the authorities.
Related sections#
- Floor Plan — the shared floor/room editor, QR binding
- Table Reservations — the same booking engine applied to restaurant tables
- POS — folio tabs at the till
- Staff & shifts — housekeeping tasks and assignment
- Appointments — similar booking logic for beauty salons
FAQ#
What happens if a guest orders from a room no one has checked into?#
The order is automatically cancelled and marked "room not occupied" — the server checks check-in status for every order coming from a room QR code, regardless of what the client shows.
Does a guest pay for room service right away or at check-out?#
Either — a regular payment (cash/card on the spot) or "Charge to room," in which case the amount lands on the folio and is settled with one receipt at check-out along with the whole stay.
Can a room's calendar sync with Booking.com?#
Yes, in both directions. Export — the room's iCal link, added as a calendar on the channel's side. Import — paste an export link from Booking.com or Airbnb in the settings, and external bookings start blocking those dates for you (refreshed roughly every 15 minutes). That is the working path today; the two-way channel manager is waiting on a partner account with the provider and currently runs against a test environment.
What does the nightly cron do, and do I need to wait for it?#
It automatically posts the night's room charge to every occupied room's folio — there's nothing to trigger manually, and it runs on the location's own timezone.