Messages hub: clients and team in one place

Messages in your owner cabinet is one hub for every conversation your company has — clients and team members alike, each with a single ongoing thread. You write in your language, and the other side reads in theirs.

The AI helps here too, but it never speaks for you — a reply draft waits until you send, edit, or discard it.

One list for every conversation

Each row shows the person's name, a preview of the last message, and its date. Team threads carry a team tag, unread threads show a colored dot, and a thread with a waiting AI draft shows an AI draft tag so you can triage at a glance.

To start a conversation, tap New message and pick someone from the Clients or Team section. Every person has exactly one thread — if it already exists, you'll find it in the list instead.

Clients read and reply from their customer portal; cleaners message from their own app.

Write in your language — they read in theirs

With Auto-translate messages turned on in your workspace settings, messages are machine-translated for your team and clients. Cleaners write in their own language and read yours in it; you read everything in yours.

Client threads have a Translates to control in the header. Tap it to open the Client language sheet and pick the language for that client's household — recent messages re-translate automatically, so a wrong setting is easy to fix.

A just-arrived message may briefly show a Translating… pill. Translated messages carry a Show original link, and Show translation flips back. If a translation fails, you'll see Translation failed — showing original rather than a silent gap. If auto-translate is off, the thread says so — "Auto-translate is off — everyone sees originals" — with a link to Settings.

AI reply drafts wait for you

Turn on AI reply drafts in workspace settings and the AI will draft replies to incoming messages for you to approve — nothing sends without you.

A draft appears inside the thread as a highlighted card titled AI draft — awaiting your review, sitting above the message box. You choose what happens:

If the situation changes — a newer message arrives, or you act from another device — the card refreshes to the latest state instead of sending something stale.

Booking proposals from a conversation

When a client is booking a cleaning right in the thread — naming a day, a time, a service — the AI does more than draft the reply: once the details are complete, an AI proposal — new visit card appears above the message box with the parsed date, time, home, price, and crew already filled in. Adjust anything (the time and the crew are the usual edits); switching the home also switches the crew to that home's usual team, and the visit takes that home's own length (two hours when the home has none set). Then tap Create & schedule — the visit lands on your schedule and the client gets the normal confirmation. Dismiss clears it — if that can't reach Cleaner OS, the card stays and says so, rather than disappearing while the proposal is still open. The proposal also shows in your Inbox so it can't be missed; as always, nothing is booked until you tap.

Email replies land in the thread

Clients don't have to open the portal to answer you. When a client gets an email alert about a new message, they can reply to that email — the reply threads back into the same conversation and behaves like any other incoming message, including translation and a possible AI draft.

If a reply arrives from an address that doesn't match the client's email on file, it still appears in the thread but carries an Unverified sender tag. Read those with extra care before acting on them.

Threads that become history

Some threads become read-only, and the two cases behave differently.

If a cleaner leaves your team, their thread shows "This cleaner is no longer on your team — the thread is read-only history." You can still read the full conversation; you just can't send new messages there. A leftover AI draft in a departed cleaner's thread can still be discarded to tidy up.

If a client's data is erased, their thread stays in the list as read-only history — the row is tagged erased and the thread shows "This client was erased — the thread is read-only history." The message contents are removed along with the client's data, so each message reads Message removed.