How to add a cleaner
Adding a cleaner does two things at once: it creates their record on your team, and it creates the login they use on their phone. Which of the two routes you take decides who ever sees the password.
On this page
Everyone you add starts as a plain cleaner, with access to the phone app and nothing else: their own cleans, their own hours and their own messages. There is one role above that, supervisor, which an owner can promote somebody into later from their row on this screen: covered in full in Editing, deactivating and removing staff. Adding somebody here never grants it: every new starter begins as a cleaner.
The Staff screen
Open Staff in the sidebar. The page is titled Staff. The line under it reads today's date, how many staff are active, how many have never signed in, and how many invitations are still open.
Thursday 8 October 2026 · 6 active · 1 never signed in · 2 invitations open
| Name | Phone | Last Active | ||
|---|---|---|---|---|
| AN Aisha Nowak Cleaning Pro | aisha@example.co.uk | +44 7700 900118 | Just now | |
| MK Marek Kowalski Cleaner | marek@example.co.uk | +44 7700 900204 | 4h ago | |
| JR Joanne Reid Team Lead | joanne@example.co.uk | +44 7700 900371 | 2d ago | |
| TS Tomas Silva Cleaner | tomas@example.co.uk | , | Inactive |
- Staff in the sidebar opens this screen.
- Add staff member is the main action on this screen.
- New, in the title bar on every screen, adds a clean, client, quote, invoice and more.
- All
- Everyone on the team, active or not. The default.
- Active
- People who can currently sign in.
- Inactive
- People you have deactivated. They stay in your records and keep their clean history.
- Invited ({n})
- Invitations you have sent and what has become of them. The count in brackets only appears while something is pending, so a plain Invited means there is nothing outstanding.
- Performance
- Clean counts per cleaner over the last 30 days. It replaces the directory table rather than filtering it, and the card sub-line changes to "Clean stats, last 30 days".
The table has four columns and a row of actions. Name is the initials avatar, the name as a link and the job title underneath, defaulting to "Cleaner" when you have not set one. Email and Phone are as typed, with a dash where there is nothing. Last Active is the interesting one.
- Under an hour is green, under a day is sky blue, under three days is amber, and anything older goes grey.
- The wording steps down through Just now, minutes, hours, days and weeks, and after a month it becomes a short date such as 12 Aug.
- Somebody who has never signed in reads Never. That is the flag to look for after adding someone: it means the welcome email has not been acted on.
- A deactivated person shows plain text reading Inactive instead of a pill, and the whole row is washed back.
The footer holds the pager and an Export CSV button. It writes staff.csv with the columns Name, Job Title, Email, Phone, Status and Last Active, and confirms with a toast reading "Exported 7 staff member(s)". Before you have added anybody the table reads No staff yet with "Add your first team member to get started."
The two ways in
Press Add staff member and the first thing the sheet asks is a question, not a field. The legend reads How should they get in? and there are two cards. This choice changes what the rest of the form does, so it is worth understanding before you pick one out of habit.
- Set a password
- The default. Its hint reads "You choose a temporary password and we email it to them. Fastest if they are with you now." CleanFlo generates one, emails it, and shows it to you once.
- Send an invite
- Its hint reads "They get a link and choose their own password. Nothing to read out, no password in an inbox." They set the password themselves and you never see it.
Either way the four fields are the same: Full name * placeholdered "e.g. Sarah Mills", Email address * placeholdered "sarah@example.com", then a two-up row of Phone and Job Title, both marked optional, placeholdered "+44 7700 900000" and "e.g. Cleaning Pro". A blank job title becomes "Cleaner" everywhere it is shown.
The password shown once
In password mode a bordered block appears at the foot of the sheet with a padlock, headed "Shown once, copy or send it now". Inside it is a Login Password * field holding a generated password, with three icon buttons: show or hide it, copy it, and generate a different one. Underneath, the hint reads "Share these credentials with the staff member so they can log in."
The heading is literal. Once you press Create Account the password is gone from your side of the app: it exists in the cleaner's email and nowhere you can look it up. Copying it puts a toast on screen reading Password copied, and a copy that fails says "Could not copy, select the password and copy it manually."
The form stops you at the obvious mistakes with inline errors rather than a toast: "Full name is required.", "Email is required.", "That email address does not look valid." and, if you replace the generated password with something too short, "Password must be at least 8 characters." An email already registered comes back from the server as "Could not create the account, the email may already be registered."
Sending an invite instead
Choose Send an invite and the vault is replaced by a line of explanation: "We will email marek@example.co.uk a link that expires in 14 days. You will get a copy of the link to share by WhatsApp or text, and they show as pending on your team until they accept it." The submit button becomes Send Invite.
app.cleanflo.io/join?token=8f3c1d24b90a47e6
The panel is titled Invitation sent. It shows the full join link as a click-to-copy row, buttons for WhatsApp and Text, and, on a device that supports it, Share another way. The message it forwards is written for you: "Hi Marek, we use CleanFlo at Brennan Cleaning Ltd for your schedule and cleans." then "Set yourself up in about a minute" with the link, then "You choose your own password: nobody else sees it."
| Name | Status | ||
|---|---|---|---|
| Marek Kowalski Cleaner | marek@example.co.uk | Pending | Resend |
| Priya Nair Cleaning Pro | priya@example.co.uk | Accepted | Share link |
| Dan Whitcombe Cleaner | dan@example.co.uk | Expired | Resend |
| Kelly Osborne Cleaner | kelly@example.co.uk | Revoked | , |
- Pending
- Amber. Sent and not yet used. Underneath, the expiry phrase counts down: "Expires in 11 days", "Expires tomorrow", "Expires today", or "No expiry recorded".
- Accepted
- Green. They have set a password and are on the team.
- Expired
- Red. Fourteen days went by. Resend issues a fresh one.
- Revoked
- Grey. You cancelled it. The link stopped working immediately, including any copy already forwarded.
- Unknown
- Grey. The invitation is in a state CleanFlo cannot classify. Revoke it and send another.
Row actions are Share link, Resend and, on pending rows only, Revoke. Revoking asks "Revoke the invite for Marek Kowalski?" and explains that the link stops working immediately, "including any copy of it they have already been sent". The buttons are Keep it and Revoke invite. With nothing outstanding the tab reads No invitations and "Invite someone and they set their own password: nothing to read out over the phone."
What lands on their phone
A cleaner added with a password gets a welcome email from you, carrying their email address, the temporary password and your company name. They install CleanFlo from the App Store or Google Play, sign in with those two things, and they are in. The same login also works in a phone or computer browser.
A cleaner who was invited gets a link to app.cleanflo.io/join instead. That page greets them with "Joining Brennan Cleaning Ltd as Marek Kowalski", asks them to Choose your password with the reassurance "This is yours alone: nobody at Brennan Cleaning Ltd can see it.", and asks for at least eight characters. Pressing Set up my account signs them straight into the cleaner app.
Good morning, Amara
Tuesday 11 August
The first time they open it they get a short overlay explaining that clean locations are recorded at two moments, when a clean is started and when it is completed, and offering to turn on notifications. They can decline both and the app still works. Whichever route you took, their record now appears on your Staff screen and they can be assigned to a clean.
Common questions
How many cleaners can I add?
Do cleaners need their own email address?
A cleaner says they never got the email. What now?
Can I stop a cleaner seeing prices and client details?
What if I add somebody by mistake?
Previous: How to email the week's schedule
Did this answer your question?
Good. Back to the app, then.
Sorry about that. Tell us what you were looking for and a person will answer it.
Still stuck?
Every message is read by a person on the CleanFlo team.