Cleaning Contracts: 7 WhatsApp Messages a Day
A cleaning company does not sell an item that leaves a warehouse. It sells a visit that repeats. The contract says three visits a week for a year, the invoice goes out monthly, and the real cost is assembled on the ground: labour hours, cleaning materials, transport, and extra hours nobody put in writing. At month end the owner faces two questions he cannot answer precisely: were all the contracted visits actually performed, and what did each contract really cost?
The reason is that operations live in two places that never meet. Contracts sit in a spreadsheet with the accountant. Daily execution sits in WhatsApp threads between the supervisor, the crew and the client. The supervisor reports the team arrived, the client complains about a missed visit, a worker asks for a carton of detergent, and days later those messages are gone. The information did travel, it just never settled into a record you can open at invoicing or renewal time.
The fix does not start by changing how the crew works. It starts by fixing what they already write. Every event in a contract gets one short message, and that message is filed under a contract number and a visit number. After a single month you have a full visit log instead of a supervisor's memory.
Seven messages in a cleaning company's day
- Visit start: the supervisor sends contract number, site name, number of workers present and entry time. This message alone settles half of all later disputes.
- Visit close: exit time, a photo of the finished site, and who signed off for the client. No visit counts as performed without it.
- Crew change: an absence or a substitution in one message, because headcount drives visit cost and should never stay an estimate.
- Materials issued: what left the store, for which site, and how much. Detergents look trivial until you add them across thirty sites in a month.
- Extra work outside the contract: facade washing, post-renovation cleaning, an emergency weekend visit. Logged the moment it is requested, with the requester's name, not when the invoice is being prepared.
- Client note or complaint: filed under the same contract with its date, so at renewal you know which sites were quiet and which cost you daily follow-up.
- Month close: visits performed versus visits contracted per client, plus extras, then the invoice is issued from the same figure.
What to send and when
| Event | Message content | Effect on the record |
|---|---|---|
| Crew arrives | Contract no. + site + headcount | Opens a visit, starts hours |
| Crew leaves | Exit time + photo + signer | Marks visit performed |
| Worker absent | Site + actual headcount | Corrects labour cost |
| Materials issued | Item + quantity + site | Stock out, cost to site |
| Extra work | Scope + requester + price | Separate line on the invoice |
| Complaint | Site + description | Quality file per contract |
| Month close | Nothing, built from the log | Visit statement + invoice |
A missed visit is more dangerous than a complaint
A complaint reaches you, so you deal with it. A missed visit may go unnoticed until the renewal meeting, when the client opens a sheet showing the crew failed to show up nine times during the contract. At that point you have nothing to put against his number, so you lose either the renewal or part of its value. A visit log is less a control tool over workers than a defence of your invoice, which is exactly why it must be written at the moment of the event, not a week later.
Extra work is the biggest revenue leak
Most small cleaning companies do not lose money on the contract price. They lose it on work they performed and never billed. A verbal request from a site manager, a quick favour from the supervisor, and by month end nobody remembers the agreed price. The practical rule is simple: no extra work without a message carrying the requester's name, copied to the client at the time. That one message turns an awkward end-of-month conversation into a documented line item. In a business that runs contracts, stock and invoices from a single conversation, that line arrives ready to bill without a second data entry, which is the point of running operations from WhatsApp.
The monthly invoice itself falls under Saudi e-invoicing requirements, and it is worth reviewing the current rules on the Zakat, Tax and Customs Authority site zatca.gov.sa before you settle on an invoice template for your contracts.
A one-week starting checklist
- Give every client a fixed contract number and a contracted number of monthly visits.
- Standardise one entry message and one exit message, and require them from every supervisor without exception.
- Do not allow a visit to close without a photo and the name of who received the work.
- Separate extra work into an internally published price list so supervisors stop improvising.
- Review missing visits at the end of every week, not at the end of the month.
- After the first month, compare each contract's cost against its revenue and reprice whatever came out negative.
A contract whose cost you do not know is a contract you cannot decide to renew or drop.