Housekeeping
Purpose and who uses it
Housekeeping MgrReceptionistTurns every departure and every manual request into a task the floor team can work through and a supervisor can inspect.
Housekeeping tracks one task per room that needs attention. A checkout at the front desk creates a task on its own; you add stayover refreshes and deep cleans yourself. Each task moves across the board from Dirty Rooms to Ready for Guest, carries a checklist, and, while it is open, puts the room into Cleaning status on the Rooms module so the front desk cannot check a guest into it.
- Housekeeping managers run the board, inspect rooms and sign them off as ready.
- Room attendants (signed in with the front-desk PIN, or on a shared tablet) tick checklist items and move their own rooms forward.
- Receptionists watch the board to know which rooms are back in the sellable pool; they can also raise a stayover refresh when a guest asks.
Housekeeping sits under the Rooms permission module: View shows everything read-only, Edit creates tasks and moves them.
Screen anatomy
Four KPI tiles, four tabs (List, Cards, Board, Cleaning checklist) and a filter bar that changes with the tab.
- 1Page head and KPIs“Tasks today” (every task in the working set), “Completed” (Ready for Guest), “In progress” (In Progress + Inspection) and “Overdue” (open tasks whose due time has passed).
- 2Dirty RoomsNew tasks land here. Checkout cleans arrive as High priority, due in two hours.
- 3AssignedTasks that have an attendant on them. Between it and Inspection sits In Progress.
- 4Ready for GuestDone and inspected. The room leaves Cleaning status the moment a card lands here.
- 5Task cardRoom number, priority badge, task type and floor, an amber note if one was left at checkout, the attendant, and a “→ next column” button.
- 8New taskOpens the “New housekeeping task” dialog (Rooms Edit).
Tabs
- List (the default): a paged archive loaded from the server one page at a time. Adds a Status filter and lives in the address bar (
?status=ready&floor=2&page=2), so a filtered view can be bookmarked. Columns: Room, Floor, Type, Assigned, Priority, Status. Click a row to select the task for the checklist tab. - Board (
?view=kanban): the whole working set of tasks, never paged. Filters: search (room, task code, staff, note), Task type, Priority, Assigned to, Floor. Status has no filter here because the columns already are the status. - Cleaning checklist: the checklist of the task you last clicked; if you have not clicked one, the first task that is In Progress.
Your tab choice is remembered per browser. On phones the List tab shows cards instead of a table.
Working a checkout clean
Housekeeping MgrThe everyday flow: a departure creates the task, an attendant works it, a supervisor inspects and signs it off.
- 1The front desk checks the guest outA Checkout clean task appears in Dirty Rooms with High priority and a due time two hours out. An alert “Housekeeping: Room 204 needs cleaning” goes to the notification feed. If the room already has an open checkout clean, no second task is created.
- 2Move the card to Assigned or straight to In ProgressDrag the card, or click the → Assigned button on it. From Dirty Rooms you may skip Assigned and go directly to In Progress.
- 3Tick the checklist as the room is cleanedOpen the Cleaning checklist tab (or click the card first so it becomes the selected task). Each line, “Strip & change linens”, “Clean bathroom & restock”, …, saves the moment you tick it and records who ticked it.
- 4Send it to InspectionClick Move to Inspection at the bottom of the checklist, or the card button. The checklist does not have to be complete, the system does not block the move, so make “Final inspection” a habit.
- 5Supervisor signs off: Ready for GuestFrom Inspection the only forward move is Ready for Guest. The room drops out of Cleaning status, a green alert “Room 204 ready” is posted, and the change is written to the audit log. A room that fails inspection goes back to In Progress instead.
Adding a stayover refresh or deep clean
Housekeeping MgrReceptionistManual tasks for in-house guests and periodic deep cleans, created from the New task button.
- 1Click New taskTop right of the page. You need Rooms Edit.
- 2Pick the RoomThe list shows every room as “204 · Floor 2 · Deluxe”. Occupied rooms are allowed, that is the point of a stayover refresh.
- 3Pick the Task typeStayover refresh or Deep clean. Checkout cleans cannot be created by hand; only a checkout makes one.
- 4Click CreateThe task appears in Dirty Rooms with Medium priority and no due time, and the toast “Housekeeping task created” confirms it. The room shows as Cleaning on the Rooms page until the task is Ready (unless a guest is in house, in which case Occupied wins).
Checklists and their template
Housekeeping MgrHotel ManagerEvery task gets a copy of the hotel's checklist template when it is created; the template lives in Settings → Ops config.
When a task is created the system copies the hotel's active checklist steps onto it, in order. If the hotel has never edited its template, the built-in list is used:
- Strip & change linens
- Make beds
- Clean bathroom & restock
- Vacuum & mop floors
- Dust all surfaces
- Empty bins
- Restock minibar
- Restock amenities
- Check lights & AC
- Final inspection
To change the template open Settings → Ops config → Housekeeping checklist(needs Settings Full). You can rename a step in place, switch a step off without deleting it, or add a new one with New checklist step. As the screen says: “Changes apply to tasks created from now on; open tasks keep their checklist.”
Ticks are per task and per person: each tick stores who completed it and when. Unticking clears both. The checklist never gates a transition, it is a record, not a lock.
Task statuses and what they drive
Five stored statuses, two of them allow a step back; the room's Cleaning status is derived from any open task.
- Dirty Rooms → Assigned
- Dirty Rooms → In Progress (skip)
- Assigned → In Progress
- Assigned → Dirty Rooms (unassign)
- In Progress → Inspection
- In Progress → Dirty Rooms (restart)
- Inspection → Ready for Guest (pass)
- Inspection → In Progress (fail)
- Dirty Rooms: nobody is on it yet. Checkout cleans start here at High priority.
- Assigned: an attendant owns it. Moving a card back to Dirty Rooms puts it up for grabs again.
- In Progress: being cleaned; the checklist is normally ticked during this stage.
- Inspection: cleaned, waiting for a supervisor. Pass → Ready; fail → back to In Progress.
- Ready for Guest: final. Counts towards the “Completed” tile.
What is derived, not stored
- The board column is simply the task status, there is no separate column field.
- Overdue is worked out on screen: an open task whose due time is earlier than now.
- The room's status on the Rooms page is recomputed after every task change: out of service → occupied → blocked by maintenance → Cleaning (any task not yet Ready) → reserved → available. Nobody sets “Cleaning” by hand.
- The check-in room picker only offers rooms that are ready, so a room with an open task cannot be handed to an arriving guest until its task reaches Ready for Guest.
Task fields
What a task record holds, and which parts the screen lets you set.
| Field | Type | Notes |
|---|---|---|
| Code | HK-… | Assigned automatically; shown on the checklist tab and used in alerts and the audit log. |
| Room * | room | Picked in the New task dialog. Fixed once created. |
| Task type * | enum | Checkout clean (system-created at checkout), Stayover refresh, Deep clean. |
| Priority | High / Medium / Low | High for checkout cleans, Medium for manual tasks. Not editable on screen; used as a filter and badge. |
| Status * | enum | One of the five board columns. Changed by dragging or the → buttons. |
| Assigned to | user | Shown as the first name and avatar on the card, “Unassigned” otherwise. Filterable; the screen has no picker to change it. |
| Due | date-time | Two hours after checkout for checkout cleans; empty for manual tasks. Drives the Overdue tile and the List tab's default sort. |
| Note | text ≤ 300 | Left by the front desk at checkout (for example “guest reported broken lamp”). Shown as an amber strip on the card. |
| Checklist | items | Copied from the template at creation. Each item records who ticked it and when. |
Permissions
Housekeeping is governed by the Rooms module: View reads, Edit does everything on this screen.
| Role | Rooms | Settings |
|---|---|---|
| Super Admin | Full | Full |
| Hotel Manager | Full | Edit |
| Receptionist | Edit | None |
| Accountant | None | None |
| Housekeeping Mgr | Full | None |
| Maintenance | Edit | None |
| Restaurant Mgr | None | None |
| HR Manager | None | View |
| Security | View | None |
- Rooms View: open the board, list and checklist read-only. The New task button and the → buttons are hidden; cards cannot be dragged.
- Rooms Edit: create tasks, move cards, tick checklist items.
- Settings Full: edit the checklist template in Settings → Ops config.
By default that means Housekeeping Mgr, Receptionist, Maintenance, Hotel Manager and Super Admin can work the board; Security can only look; Accountant, Restaurant Mgr and HR Manager do not see the module at all.
Tips
Live updates, offline moves, filters and the checklist tab.
- Use Assigned to → Unassigned together with Floor to hand out a floor's rooms at the start of a shift.
- The board search matches room number, task code, attendant name and the checkout note, so typing “lamp” finds the room whose note mentions it.
- Click a card to make it the selected task, then switch to Cleaning checklist; the header shows “Room 204: Checkout clean” and the code so you know you are ticking the right one.
- The List tab sorts by creation date (newest first) and pages 25 at a time; change rows-per-page at the bottom. Esc closes any dialog.
- Dragging a card to a column the workflow does not allow shows “Move to an allowed next column in the cleaning workflow” and leaves the card where it was.
Errors you may see
The server refuses only one thing here: a move the workflow does not allow.
Cannot move from inspection to dirtyTask not foundRoom not foundChecklist item not foundClient-side messages: “Pick a room” (New task with no room chosen), “Could not update task” / “Could not create task” / “Could not update checklist” when the request fails for a reason other than the above.
- Stayover refresh
- A light service of a room whose guest is staying another night.
- Checkout clean
- The full turn-around after a guest departs; created automatically by check-out.
- Ready for Guest
- The final task status. The room is sellable again and can be picked at check-in.
- Working set
- Every task on the board, regardless of age, the same list the offline snapshot keeps.