Skip to content

Front-desk workflow

The browser screens use the public API through the SDK and its query factories. See reservations for exact request, money and version rules.

Screen URL below /w/:workspace/p/:property Data
Today /today?date=YYYY-MM-DD Front-desk counters and stay lists
Planning /planning?date=YYYY-MM-DD&nights=14 Calendar, units and authoritative availability
Reservations /reservations Summary page with server search, filters, sort and cursor
Detail /reservations/:id Guest, rooms, active segments, frozen nightly prices and version
Rooms and housekeeping /rooms Calendar/next arrivals plus physical front-desk occupancy
Setup /settings/rooms Room types and units, including archived entries
Rates /rates Rate calendar: nightly prices and restrictions (rates)
Rate plans /settings/rate-plans Plans and derivations (rates)
Policies /settings/policies Commercial policies (policies)
Night audit /night-audit Business date, checklist and history (night audit)
Reports /reports Property performance (reports)
Channels /channels Channex mapping, import health and ARI (booking import)
Inbox /inbox Channex guest messages (Messages)
Property settings /settings Name, time zone and currency (properties)

?reservation=:id opens detail above a list/planning. ?new=1 opens creation; optional arrival, departure, room_type_id and unit_id prefill a free planning range. Workspace /w/:workspace/guests?guest=:id opens a guest profile and paginated history. The profile also offers consent history, duplicate review and owning-property correction; Guests → Duplicates opens the workspace review list. See guest identity for merge choices, permissions and consent boundaries. The shell palette searches reservation code/guest name in the selected property and workspace guests. Lists and palettes use bounded pages, never an invented total count.

Each action checks a permission (roles and property access). With the built-in roles, every role can read; the administrator configures rooms and types (inventory.configure); administrators, front desk and revenue managers edit guests, bookings and assignments (guests.manage, reservations.create, reservations.modify); check-in/out and their undo (stays.check_in, stays.check_out) and cancellation (reservations.cancel) belong to administrators and front desk; housekeeping status (housekeeping.update) also to the housekeeping role. A custom role holds exactly the codes it grants, and a member limited to selected properties uses them only there. The server rechecks every grant; disabling a button is not an authorization boundary.

Writes are never automatically retried. A lost response asks the operator to inspect saved state. A 409 retains the draft and reports holding codes/full nights; a 412 offers explicit reload. Lists, room readiness, the calendar, guest history and detail invalidate together after a confirmed write. No optimistic booking bar implies inventory has been held.

In Planning, a writable member drags a stay’s bar to another room or other nights; a dialog previews the change on the server (room, type used, dates, price kept or re-quoted) and nothing is saved before Confirm. The stay detail offers Move… and Split… with the same preview as the keyboard and single-pointer path. A split stay shows one bar per room; an in-house guest moves from tonight, never across nights already stayed while the night audit lags. Conflicts are linked to the field to change. See reservations and ADR 0042.

Planning also resizes either stay edge with server preview and Change dates… provides the same action without dragging. Focus a bar, press M, use arrows to choose rooms/nights, Shift+Left/Right to change departure, Alt+Shift+Left/Right to change arrival, Enter to review, and Escape to cancel. Channel dates and nights already stayed remain protected. A Do not move marker appears on every segment; changing its room or dates requires a separate acknowledgement. Members with reservations.set_do_not_move set or clear it in stay detail. Successful planning moves and resizes offer Undo for ten seconds; Ctrl/⌘ Z in Planning runs the same inverse. A later edit is reported as a conflict and is never overwritten.

Creation from the screens and API books several rooms in one reservation. Add a room, select its type and occupancy, select its quote or enter its price, then preview the whole booking. Removing a room discards only that room draft; changing any draft invalidates the booking preview. All rooms persist together, and detail and Planning show each room. Folios and payments are on the reservation detail (folios). Manual screen-reader acceptance remains separate from component axe and Chromium audits. ADR 0026 records the UI decisions, scope and browser evidence.