Clients and properties

Every client in Cleaner OS is a client record plus a property — the home your team cleans. The client record carries the name, email, and portal status; the property carries the address, the visit duration, and the notes your cleaners rely on (keys, pets, allergies, parking).

You rarely start from a blank form. Describe a new client in one plain sentence, review what the AI understood, and confirm — or bring your whole list over at once with an import.

Add a client in one sentence

On the Schedule screen, find the box titled "Add a client or job — just describe it." Type a sentence like "2 bed 2 bath in Brooklyn, biweekly on Tuesdays, has a cat" and press Parse. The AI turns it into an editable review: Client, City, Bedrooms, Bathrooms, Frequency, and Price (USD), plus a short "AI:" note explaining the price it suggests. Pick a recurring frequency (weekly, biweekly, or monthly) and weekday buttons appear so you can choose visit days, along with a visit time and first visit date (pre-filled with 9:00 AM and today). A one-off visit shows a small calendar instead — pick the day and a time; you can't create it without one. If your sentence already says when ("tomorrow at 2pm"), the AI pre-fills it. A street address and pet details in your sentence are captured too, and More details opens the rest: address line 2, ZIP code, email, phone, access info (door pin / key notes), parking, and internal notes.

Nothing is created until you press Create — edit any field first. Confirming creates the client, their property, and the first job or recurring series together, and you'll see "Created — see the schedule below." For how series work, see Recurring series and scheduling.

Not scheduling a cleaning yet? A client can exist on its own. On the People tab (it opens on Clients), press the + button in the header, enter a name (email, phone, and notes are optional), and save. You land on the client's page, where you can invite them to their portal, edit their contact details, add their property, and schedule their first cleaning — all without going back to the Schedule screen. See Add a property, schedule a cleaning.

Booking someone you already have? The review step checks your client list as you fill in the name. If it matches an existing client, you'll see "This client may already exist" with a link straight to them. Confirming here creates a second, separate record — client history can't be merged afterwards — so open the existing client and schedule from their page instead. The warning never blocks you; it's there so a duplicate is a choice rather than an accident.

Moving from another tool? Import instead: from a CSV or from a photo of your client sheet. During import review, a row that looks like a client you already have is flagged so you can link it rather than create a duplicate.

Your client list

The People tab opens on Clients (its other view, Team, is a tap away) and lists everyone alphabetically, with a "Search clients…" box that filters by name or email as you type. Each row shows the client's last visit and their next scheduled one when those exist, plus where they stand with their portal — "In portal" once they've signed in, "Invited" with the email while an invite is pending, or "Not invited yet" — with an Invite (or Resend) button right on the row. Details: Customer portal invites. The + button in the header adds one client directly; the same sheet carries an Import clients row that takes you to the import flow.

Properties and visit duration

Every property needs a cleaning duration. Open Settings, then Property durations, and set how long each property takes to clean (in minutes), plus an optional per-property travel buffer — leave the buffer blank to use your company default. Properties still missing a time show a "Needs duration" badge, and a job with no duration can't be scheduled until you set one; the assignment screen flags those jobs with "No cleaning duration set for this property yet." and a Set duration shortcut. Duration matters for pay too: in the Pay rates settings, cleaner hourly pay is capped at each job's duration, and overtime is unpaid.

The same screen holds each property's standing crew — the people who should go to that site every time. Pick them once and every recurring visit generated from then on arrives already crewed, instead of you assigning the same pair week after week. It applies to visits generated after you set it: anything already on your schedule is left exactly as it is, so setting a crew never quietly re-staffs work your cleaners have already been told about. Leave it empty and the plan's own default cleaner is used instead, as before. Only cleaners who are ready to receive work (they have set a start address) can be picked, and anyone you offboard is removed from every standing crew automatically.

Add a property, schedule a cleaning

A client's page is where their home and their cleanings are managed. If they have no property yet, the Property section shows + Add a property — the street address is the only required field, since that's what makes a home schedulable; label, ZIP code, size, bedrooms, bathrooms, and the access/pet/parking notes can all be filled in now or later. Once a client has one property you can add another from the same section, so a client with two homes is one client, not two.

Every property carries a Schedule a cleaning button. Choose One-off and pick the visit day and time from the calendar, or choose weekly, biweekly, or monthly and pick the weekdays, the time, and the first-visit date — a recurring choice creates the series and fills in the upcoming visits automatically. Set the price and how long the visit takes (120 minutes by default), pick the service type, and confirm. Times are always read in your business's time zone, not your device's.

Scheduling from the client's page is the right way to book someone you already have — it books against that client, so their history stays in one record.

Edit a client after creating them

Tap a client's name on the People tab to open their page. There you can fix the name, email, phone, and internal notes, edit the property (address, label, ZIP code, size, bedrooms, bathrooms), and update the home notes — including access info. Changing the address re-checks the map location automatically. One safety note: if you save a different email, any portal invite still pending at the old address is revoked, so a mistyped invite can't be accepted later — just re-invite from the same page. A client who was erased shows a read-only notice instead; erased details can't be re-entered.

Notes about the home

Access, pet, allergy, and parking notes live on the property, and your cleaners see them right on their job screen. Access info (a door pin or key notes) is shown to you, the assigned cleaner, and the client themselves in their own portal — it is never sent in emails or notifications. Pet details you mention while creating a client are saved from the start, and you can edit all of these from the client's page. Clients who use their portal can edit their own home notes there, so what your cleaner sees stays current.

Language, and when a client is erased

Each client household has a preferred language for messages. Open the client's thread in Messages: the header shows "Translates to" with the current language. Tap it to open the "Client language" sheet — messages translate into this language for the client's household, and recent messages re-translate automatically. The workspace-level switch is "Auto-translate messages" in Settings.

You can erase a client yourself from their page. The Danger zone at the bottom has an Erase client data button; to guard against a mis-tap, you type the client's name to confirm before it runs. It permanently removes their personal details — name, contact, address, and home notes — and their photos are cleared shortly after. Records you're legally required to keep — past invoices and the financial ledger — are retained, but de-identified: no longer linked to a name or contact. A customer can also ask to be erased from their own portal; that request shows up in your Inbox and Requests as an "Erase data" card, and approving it needs the same typed confirmation. Once a client is erased, their page shows a read-only notice, their message thread stays visible as read-only history marked "erased," and their properties drop out of the Property durations list.

The Data export section on the same page downloads that client's full record — contact, properties, jobs, invoices, the payments recorded against them (with how each one was paid) and what each invoice still owes, plus requests — as a JSON file, so you always have a copy of the account.