Overview

Cleaners and maintenance vendors get their own access packs — a filtered view of property slots, restricted to the audience they're assigned to. They don't see guest codes; guests don't see cleaner-only codes. Each role gets its own portal page with the codes they need and nothing more.

How it works

Assigning a cleaner

  1. Open the property → Team tab.
  2. Click Add cleaner and pick a team member (or invite a new one).
  3. The cleaner's access pack is generated automatically. They'll see only slots with audience cleaner or all.

The cleaner pack page

When the cleaner opens their portal, they land on a single page per assigned property:

  • The codes they need, with the same rotation status the host sees
  • The current turnover window (cleaner access defaults to 12 hours around check-out → check-in)
  • A link to the turnover checklist for that reservation

Cleaners never see guest message threads or financials.

Maintenance vendors

Maintenance works the same way: assign a vendor, they get access to slots tagged maintenance, and an access window that defaults to a 24-hour ad-hoc visit. You can extend the window or create one-off access from the property page.

Multi-property cleaners

A cleaner assigned to multiple properties sees a dashboard with one card per property. Each card surfaces its current pack readiness and any turnover-due tasks. There is no cross-tenant cleaner today — each cleaner belongs to one host tenant.

Limits and requirements

  • Plan: Cleaner assignment is included on Host and Portfolio. Comply tier supports one cleaner per property.
  • Cleaner accounts: A cleaner is a regular user account with the cleaner role. They can log in via the standard sign-in page; the app routes them to their cleaner dashboard.
  • Window override: Per-reservation window changes apply to cleaner packs too. See per-reservation window.

FAQ

Can a cleaner see guest names or messages?

No. Cleaners see the property and the turnover window. They do not see guest names, contact info, or message threads. This is by design and by RLS — cleaner accounts can't query guest data even with a forged request.

What if my cleaner forgets to check out of a turnover?

The pack remains valid for the assigned window even if the turnover checklist isn't marked complete. The window is the source of truth, not the checklist state. If you want the codes revoked the moment the turnover is done, wire a revoke_access_codes step at the end of the turnover checklist.

Can a cleaner rotate codes?

No. Cleaners can view and use codes but never rotate or revoke. Code-changing actions are host-only.

How do I revoke a cleaner's access mid-job?

From the property → Team tab, click Remove next to the cleaner. Their pack is invalidated immediately. To re-grant later, re-assign — a fresh pack is generated.