How to edit or remove a client
Opening a client gives you everything about that account on one page: who they are, how many sites they have, what those sites are worth, who owns the relationship, and a rail of notes, follow-ups and extra contacts alongside it.
On this page
Get to a client by clicking any row in the Client Database table, or by typing their name into the search bar at the top of the app. The page that opens is the same one whichever route you take.
What the client page shows
Open a client from Clients and you land on their record page. The header says who they are and how to reach them; the money and the sites sit underneath.
- Who they are: name, status and health badges, contact name, email and phone.
- Add location, the portal and the waste pack are on the header. Delete client is in the menu beside them.
- Money: invoiced, paid this year, balance and average days to pay.
- Tabs: Locations, Activity, Invoices, Complaints, and Property issues if that module is on.
Edit details opens the client's details for editing. On the right of the page sit the account owner, contract and payment terms, tags, extra contacts and follow-ups.
Locations, Activity, Invoices, Complaints and Messages
Up to five tabs run across the top of the main column. Locations is the default, and it is the table covered in the locations guide: Location, Type, Address, Details, Status and a Remove action. Activity is this client's own timeline and the place you log a follow-up or a note by hand. Invoices is every invoice raised for this client, whichever clean it came from. Complaints carries a red badge counting unresolved ones, and logs whether a complaint was raised by a staff member directly or came in through the client portal. Messages only appears once messaging is switched on for your company, or a conversation with this client already exists, and carries its own unread badge.
| Invoice | Issued | Due | Amount | Status | |
|---|---|---|---|---|---|
| INV-2026-016 | 14 Aug 2026 | 28 Aug 2026 | £95.00 | Sent | Open |
| INV-2026-014 | 14 Aug 2026 | 28 Aug 2026 | £408.00 | Paid | Open |
| INV-2026-009 | 17 Jul 2026 | 31 Jul 2026 | £340.00 | Overdue | Open |
| INV-2026-017 | 14 Aug 2026 | , | £210.00 | Draft | Open |
- Invoice
- The invoice number, in the ledger face. Sortable.
- Issued
- The issue date, as "14 Aug 2026". A missing date shows a dash.
- Due
- The due date, printed in red once it is in the past and the invoice is not paid.
- Amount
- The invoice total including VAT.
- Status
- A pill: Draft grey, Sent sky, Paid green, Overdue red, Cancelled muted. Overdue is not a status you set; it is a sent invoice past its due date.
- Open
- Takes you to the Invoicing screen. You cannot edit an invoice from here: this tab is a read-only ledger for the account.
A client you have never billed shows Nothing invoiced yet and a New invoice button.
Notes, attachments and the Activity timeline
The Activity tab is a composer over a merged timeline: your own notes on this client, woven together with their complaints, invoices and completed cleans into one chronological record. Nothing here duplicates data held elsewhere, a complaint logged under the Complaints tab or an invoice raised for this client simply appears on the timeline too, so there is one place to see everything that has ever happened with an account, not several to check separately.
The composer at the top is a plain text box, placeholdered "Anything worth remembering about {client name}…", with one-tap presets above it, Logged a call and Sent an email, which drop a starting phrase into the box for you to finish rather than submitting anything on their own. A saved note can be edited or deleted afterwards, and carries a paperclip button to attach a file, a contract, a photo, anything worth keeping against the record. Pinned notes float to the top of the timeline regardless of when they were written.
Each entry on the timeline carries its own icon by type: a note, a complaint, an invoice, a completed clean, or a follow-up. With nothing logged yet, no notes, no complaints, no invoices and no clean history, the tab reads an empty state rather than several separate ones.
Follow-ups
A follow-up is a short note with a due date, created from an Add follow-up action inside the Activity composer. Anything still open shows as its own row at the top of the rail on the right of the client page, so a reminder to call back about the extra bin does not get lost in a scrolling timeline.
Each row in the rail carries the due date, the note itself, and a Done button that marks it complete without leaving the page. The panel only appears at all while at least one follow-up is open: there is nothing to see once you are caught up. An overdue, uncompleted follow-up also counts toward this client's health reading, covered next.
Client health
Beside the Active/Inactive status badge in the rail sits a second badge answering a different question: not whether the account is active, but whether it currently needs attention. It reads one of three ways.
- Healthy
- No open complaint, no overdue follow-up, and the client is booking at their usual rhythm.
- Attention
- One or more open complaints, or one or more overdue follow-ups. Either on its own is enough to move the badge.
- At Risk
- The client has gone quiet against their own booking pattern and nobody has dismissed the flag. This outranks the other two: an at-risk client reads At Risk even with no open complaint and nothing overdue.
It is a single reading built from signals CleanFlo already tracks elsewhere for their own purposes, the same at-risk flag the Clients list filters by, the same open-complaint count the Complaints tab badges, the same overdue-follow-up count the rail counts. There is no separate score to disagree with any of them, and the badge is never shown for an inactive client: an account you have already archived is a decision, not something that still needs flagging.
Extra contacts
The client's main contact, the one set under Edit Details, and the one every portal link and invoice email actually uses, stays exactly as it was. The Contacts panel in the rail is purely additive: a place for the other people at that account, a site manager who is not who you invoice, a separate billing contact, anyone else worth having a number for.
Each contact carries a name, an optional role label, an optional email and phone, and a Show first in this list toggle for whichever of them you reach for most. Add, edit and remove all happen inline in the panel itself, there is no separate drawer. With none added yet, the panel reads "No extra contacts yet, the client's main contact is set under Edit Details."
Edit a client's details
Edit details opens a drawer titled with the client's name, subtitled "Edit the details on this client's record". The fields are slightly different from the ones you filled in when you created the record, which catches people out: the labels are shorter and the placeholders are generic rather than worked examples.
Optional. Leave blank for ad-hoc or domestic clients: nothing here is required.
- Client Name *, placeholder "Business or personal name". The only required field, and the name that goes on the invoice.
- Contact Name, placeholder "e.g. John Smith".
- Email, placeholder "contact@example.com". This is where the portal link and any invoice email goes.
- Phone, placeholder "+44 7700 900000".
- Send overdue payment reminders, on by default. Switch it off for a client you have agreed to chase differently, without touching the automatic reminders every other client still gets.
- Tags, the same seven presets and the same "Add custom tag..." field as when you created the client.
- Account Owner, a select of your owner and supervisor staff. Unset reads Unassigned everywhere it appears rather than a blank cell, on this client's own rail, and as a column on the Clients list, where a My Clients filter tab shows only the ones assigned to you.
- A Contract section, folded until it holds a value: start date, term in months, notice period in days, and contract value. Entirely optional, a domestic or ad-hoc client needs none of it, but once a start date and a term are both set, the rail shows a renewal date worked out from them.
- The Client Portal block shown above no longer lives in this drawer: the link, the PIN, the visibility level, clean requests and self-service permissions are all set from the record’s own Client portal sheet instead.
Press Save changes and a toast reads Client details updated. Nothing is saved until you do: closing the drawer with the X or with Cancel throws the edit away without asking.
One thing you might expect to find in this drawer is not in it: the Active and Inactive status is not a field here. Everything about locations is also elsewhere: the drawer edits the account, and the sites under it are managed from the Locations tab one row at a time. Extra contacts beyond the one above, and this client's own notes, live in the rail and the Activity tab respectively rather than in this drawer, see the next section.
Selecting several at once
The Client Database table has a checkbox column, plus a select-all box in the header labelled "Select all clients on this page". Ticking anything makes a ghost button appear in the page header reading Delete ({n}) with the count in it. It is the only bulk action on this screen: there is no bulk edit, no bulk tag and no bulk status change.
Manage relationships and service sites
| Client | Contact | Sites | Status | |
|---|---|---|---|---|
| HL Harbour Lettings lettings@example.co.uk | Owen Trelease | 9 sites | Active | |
| BV Bay View Offices facilities@example.co.uk | Marta Quinn | 2 sites | Inactive | |
| RH Riverside Homes jane@example.com | Jane Lawson | 3 sites | Active |
Deleting, and what it takes with it
There are two deletes and they ask different questions. From the client page, Delete Client asks 'Delete "Riverside Homes" and all their locations? This cannot be undone.' and the confirm button reads Delete Client. From the table, Delete ({n}) asks "Delete 2 clients? This cannot be undone." and the confirm button reads Delete All.
| If you want to | Do this | What happens to the invoices |
|---|---|---|
| Stop working for someone but keep the paperwork | Leave the record in place and set it inactive | All still there, on the Invoices tab |
| Remove one site but keep the client | Use Remove on that row of the Locations table | Untouched: invoices belong to the client, not the site |
| Get rid of a duplicate you created by mistake | Delete Client on the client page | Gone with the client |
| Clear out several test records at once | Tick them and use Delete ({n}) | Gone with the clients |
When the record is not there
Following an old link, or opening a client somebody else deleted while you had the tab open, gives you a plain not-found page rather than an error. The client version reads We could not find this client with "It may have been deleted, or the link you followed is out of date." and a Back to clients button. The location version reads We could not find this location with "It may have been removed, or the link you followed is out of date." and Back to client.
The distinction is worth knowing. A not-found state means the row is gone. A red error state with a Try again button means CleanFlo could not reach the database, and the record is almost certainly fine.
Common questions
Can I merge two clients I created twice by mistake?
Does deleting a client delete their invoices?
Why can I not see the Send Portal Link button?
Where do I change a client from Active to Inactive?
My client shows At Risk but I know everything is fine. What do I do?
What is the difference between Account Owner and the client's own contacts?
Can I set a follow-up without writing a note?
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.