Start your free 14-day trial
Product Job Scheduling & RotasInvoicing & BACSHealth & SafetyStaff Mobile AppAnalytics & Reporting
Solutions Commercial CleaningDomestic CleaningEnd of TenancyFacilities ManagementWindow Cleaning
Free tools Cleaning Quote CalculatorPrice Per m² CalculatorUK VAT CalculatorProfit Margin CalculatorTrue Cost of a CleanerHoliday Entitlement CalculatorContract Tender CalculatorClient Lifetime Value All 14 free tools →
Learn How to start a cleaning businessHow to price cleaning jobsHow to win cleaning contractsHealth & safety for cleaners CleanFlo vs JobberCleanFlo vs ZenMaid
Browse all guides

Quoting for work

A quote is work you have priced and offered but not yet won. CleanFlo keeps them on their own screen, on their own numbering, with their own statuses, until one of them turns into an invoice or runs out of time.

In the app: Quotes Open CleanFlo
On this page

Quotes and invoices share a lot of machinery in CleanFlo: the same line editor, the same VAT handling, the same catalogue picker, the same printed-paper look. What they do not share is a life cycle. An invoice is a demand for money and ends up paid. A quote is an offer and ends up accepted, declined or out of date.

The Quotes screen

Quotes sits in the Business group of the sidebar, one above Invoicing. The page is titled Quotes with the subtitle Create and send quotes to clients, and there is a single button in the header: Create Quote.

app.cleanflo.io/quotes
Search everything… ⌘K Quotes
Quotes

Create and send quotes to clients

Create Quote
Drafts
2
Awaiting Response
3
Accepted Value
£2,940.00
Total Quoted
£7,318.40
Quotes
6 quotes
Search quotes… All Clients
AllDraftSentAcceptedDeclinedExpired
QuoteRecipientAmountDatesStatusActions
QUO-2026-001 Bay View Offices £753.60 Issued: 14 Aug 2026Valid until: 13 Sep 2026 Sent View
QUO-2026-002 Harbour Lettings £2,940.00 Issued: 11 Aug 2026Valid until: 10 Sep 2026 Accepted View
QUO-2026-003 Trelawney Court Managementsam@trelawneycourt.co.uk £1,180.00 Issued: 09 Aug 2026Valid until: 08 Sep 2026 Draft Edit
QUO-2026-004 St Marks Medical Centre £1,344.80 Issued: 02 Jul 2026Valid until: 01 Aug 2026 Expired View
Showing 1–4 of 6 1 Export CSV
The Quotes screen. Four figures across the top, then the ledger with its search, client filter and the six status filters. Rows are clickable and open the quote.
Drafts
A count of quotes you have written and not yet sent.
Awaiting Response
A count of quotes that have gone out and not yet come back either way.
Accepted Value
A money total of every accepted quote. Work you have won and, usually, work you have not yet invoiced.
Total Quoted
A money total of every quote on the screen, whatever its status. Useful for a conversion rate, not for a forecast.

The ledger below carries six columns: Quote, Recipient, Amount, Dates, Status and Actions. Dates is two stacked lines, Issued: over Valid until:, and the second turns amber and bold once the quote has expired. Actions holds View for every row and Edit only on drafts. Clicking anywhere else in the row opens the quote too.

Above the table, three controls narrow the list: a search that matches the recipient name or the quote number, a client dropdown whose first option is All Clients, and the status filters All, Draft, Sent, Accepted, Declined and Expired. Ten rows to a page, and an Export CSV beside the pager that writes quotes.csv from the whole filtered set.

The five statuses

DraftSentAcceptedDeclinedExpired
The quote status vocabulary. Every quote is in exactly one of these, and only two of the moves between them are yours to make by hand.
Draft
Where every quote starts. Saving the drawer always writes a draft, whether you are creating or editing, so there is no way to create a quote that is already sent. Drafts are the only quotes that can be edited or deleted.
Sent
Written the moment the email provider accepts the message. If the client has no email address on file the send is skipped, the status still moves to Sent, and you are told so.
Accepted
You pressed Accept on a sent quote. There is no client-facing accept link and no signature block: acceptance happens in a phone call or an email and you record it here.
Declined
You pressed Decline on a sent quote. No reason field, no confirmation. The quote stays on the list so your conversion rate stays honest.
Expired
Set automatically. Once per visit to the screen, every quote still sitting at Sent whose Valid Until date is in the past is moved to Expired in one go. There is no warning beforehand and no "expires in three days" copy anywhere.

Building a quote

Create Quote opens a wide drawer titled New Quote, subtitled Create a quote for a client. It reads top to bottom in the order a quote is written.

New Quote
Create a quote for a client
Quote For Existing ClientNew Recipient
Client Bay View Offices
Issue Date 14 Aug 2026
Valid Until 13 Sep 2026
Introduction Thank you for the opportunity to quote on your cleaning requirements… optional
Scope of Work Weekly clean of the ground and first floors, Monday evenings after 6pm. Communal stairwell fortnightly. External glazing to ground floor monthly. optional
CancelCreate Quote
The top of the New Quote drawer. Quote For chooses between a client on your books and a one-off recipient; Valid Until defaults to thirty days out.
Quote For
A two-button toggle: Existing Client or New Recipient. The second is for somebody who is not on your books yet, and asks for a Name and an Email instead of a client.
Issue Date and Valid Until
Two date fields. Issue Date defaults to today and Valid Until to thirty days from today. Valid Until is the date the automatic expiry works from, so it is a real deadline rather than decoration.
Introduction
Optional. A short covering paragraph. On the printed quote it appears as a tinted box at the top with no heading above it, which is why it should read like the first line of a letter.
Scope of Work
Optional, and the field worth spending time in. It prints under its own Scope of Work heading and is the part of a quote that stops an argument six months later about whether the windows were included.
Line Items
The priced work. Every line has a description, a quantity, a unit price and, if you are VAT registered, its own VAT percentage.
Notes and Terms & Conditions
Both optional, both free text, both printed at the foot. There is no boilerplate: whatever you type is all the client sees. Terms is where payment terms, cancellation and insurance usually go.

The line editor has a header row reading Description, Qty, Unit Price, VAT % and Total, plus an unlabelled column for the delete buttons. The VAT % column only appears when your company is marked as VAT registered, and when it does the section label carries the badge VAT registered · rates per item.

VAT registered · rates per item
DescriptionQtyUnit PriceVAT %Total
Weekly Office Clean service 4 85.00 20 £408.00
Communal Stairwell Clean service 4 45.00 20 £216.00
Window Cleaning, ground floor glazing 24 4.50 20 £129.60
Add custom item Add from catalogue
£628.00 Subtotal £125.60 VAT £753.60 Total
The line editor inside the quote drawer, with the running totals underneath. Add custom item gives you a blank row; Add from catalogue opens the picker.

Add from catalogue opens a small dialog headed Add Item with three tabs: Services, Add-ons and Products. Picking a service or add-on writes its name as the description and its base price as the unit price. Picking from Products takes the figure from your stock cost, which is why that tab carries the warning Product prices come from your stock cost — set the price you charge on the line.

Lines taken from the catalogue carry a small lowercase tag in the description cell reading service or product, and that tag prints on the quote as well. Lines you typed yourself carry nothing.

The footer has two buttons, Cancel and Create Quote. There is deliberately no separate "save draft": both would have written the same thing. Four things are checked before it saves, and the drawer jumps to the first one that fails: Please select a client., Please enter a recipient name., Please enter a recipient email. and Add at least one line item with a description.

Reusing a set of line items as a template

Once you have added at least one item from the catalogue — a service, an add-on or a product picked through Add from catalogue, not a line you typed by hand — a Save as template link appears under the line editor. Clicking it opens an inline name field and a Save button, right there in the drawer.

A template does not remember a price. It remembers which catalogue item was used and how many of it, nothing else. Catalogue prices move, and a template built in January should not still be charging January’s rates in June.

A new quote’s drawer shows a Load Template row above the line editor whenever you have at least one saved — the same quick-start row Job Templates already uses on the Schedule screen. Clicking a template’s chip replaces whatever is in the line editor with that template’s items, freshly priced.

Templates themselves live behind a Templates button in the Quotes page’s own toolbar, next to Create Quote, carrying a small count badge once you have any saved. It opens a list of every template with a delete button on each row and a confirm-before-delete dialog. There is no rename and no edit-in-place: changing a template means deleting it and saving a new one.

The document your client receives

Opening a quote replaces the whole screen with the quote itself: a breadcrumb back to Quotes, a row of actions, and then the paper. It is drawn in the accent colour and font you chose for your invoices, with your logo if you have uploaded one, so a quote and the invoice that follows it look like they came from the same company.

Brennan Cleaning Ltd
Unit 4, Trelawney Yard, Truro TR1 2QF
01872 555 0148
VAT No: GB 412 8836 05
QUOTE
Quote No. QUO-2026-001
Issue Date 14 Aug 2026
Valid Until 13 Sep 2026
Quote For
Bay View Offices
Marcus Hale
accounts@bayviewoffices.co.uk
01326 555 0192
Description Qty Unit Price VAT Amount
Weekly Office Clean 4 £85.00 20% £408.00
Communal Stairwell Clean 4 £45.00 20% £216.00
Window Cleaning, ground floor glazing 24 £4.50 20% £129.60
Subtotal£628.00
VAT£125.60
Quote Total£753.60
Notes

Prices are held for thirty days from the issue date. Frequency can be varied at any point with two weeks of notice either way.

Payment fourteen days from invoice. Public liability insurance to £5m, certificate available on request. All operatives are DBS checked and carry photographic identification.

A quote as the client sees it. Note Quote For rather than Bill To, Quote Total rather than Total Due, the QUO number series, and no bank details anywhere: a quote is not asking for money yet.

Four details on that sheet are worth naming, because they are the ones people expect to match the invoice and do not.

  • The client block is labelled Quote For, not Bill To. You are not billing anybody yet.
  • The grand total row reads Quote Total, not Total Due. Nothing is due.
  • The number series is its own: QUO-2026-001, running separately from the INV series, so quote three and invoice three are unrelated documents.
  • There are no bank details. The BACS block belongs to the invoice; a quote deliberately does not carry one.

The dates block on the right shows Issue Date, Valid Until and the status pill, so a printed quote says on its face whether it is still live. Behind the sheet on screen sits an offset pink carbon copy, the way an NCR duplicate book looks: it is there to say that this is a document with a counterfoil, and it is hidden when you print so only the top sheet is issued.

Sending it

A draft quote gives you three buttons above the paper: Edit, Send Quote and, in red, Delete. There is no send dialog. Pressing Send Quote emails the quote there and then, with no subject line to write, no covering message to compose and nobody to pick as the recipient. Whatever you wanted to say should already be in the Introduction field.

Edit Send Quote Delete Print / PDF
Accept Decline Print / PDF
Convert to Invoice Print / PDF
The action bar changes with the status. Draft on the left, sent in the middle, accepted on the right. Print / PDF is on all three.

The email goes first and the status changes second, on purpose: a quote only reads Sent once it really has been. If your email provider refuses the message you are told The email to Marcus Hale was not accepted. The quote is still a draft. and nothing has moved. If there is no address on file at all the send is skipped and the toast reads Quote marked as sent (no email address on file), which is the honest way to record a quote you posted or handed over.

Chasing an unanswered quote

A quote sitting at Sent with nobody replying is chased for you. CleanFlo sends two automatic follow-up emails — one three days after it was sent, one seven — reusing the same quote email with the cover message replaced by Following up on the quote below — it’s still open for you to accept. Nothing else about the quote changes.

A Send follow-up reminders toggle in the quote drawer is on by default and can be switched off per quote — useful for a client you are chasing by phone instead, where a second email would be redundant.

A reminder never repeats
Each of the two stages fires at most once for a given quote.
Reminders stop the moment the quote does
Accepted, declined or expired, and no further follow-up sends — there is nothing left to chase once the quote has an answer or has run out of time.

When the client says yes

Every quote email carries a real View and Accept Quote button, linking to a public page the client can open with no login and no PIN — it works even for a prospect who has never had a client-portal account. The page shows the quote itself, its line items and total, and two buttons: Accept Quote and Decline.

Declining, from either side, is not quite one click. Pressing Decline reveals an inline reason picker — a preset list (Price too high, Chose another company, No longer needed, Bad timing, Other, with a free-text box when Other is picked) and a Confirm Decline button beneath it. The reason is optional but asked for every time, on the client’s page and on your own.

You can still resolve a quote yourself from its own screen exactly as before, with the same Accept and Decline buttons above the paper — useful for a client who says yes on the phone. Both paths write to the same status, so a quote a client accepted through their link and one you marked accepted by hand look identical afterwards.

A quote accepted through the client’s own link, rather than by you, is surfaced two ways so it cannot be missed: a small badge on the sidebar’s Quotes item, counting quotes accepted but not yet seen, which clears the moment you open the Quotes screen; and a banner on the Dashboard.

An accepted quote then offers exactly one thing: Convert to Invoice.

Convert to Invoice has no dialog, no confirmation and no message. It takes you straight to Invoicing with the new-invoice drawer already open and partly filled in. What arrives with it is narrower than most people expect.

Carried across to the invoiceLeft behind on the quote
The client, pre-selected in Bill ToThe quote number: the invoice gets its own INV number
Each line's descriptionThe issue date and the valid-until date
Each line's unit priceThe introduction and the scope of work
Each line's quantityThe notes and the terms and conditions
Each line's VAT rateThe service or product tag on each line

Everything else on the invoice is fresh: the issue date is today, the due date is today plus your default payment terms, and the notes field is empty. If the quote went to a one-off recipient rather than a client on your books, the drawer opens with no client selected and you choose one, or switch to New Recipient and type the details again.

The quote itself does not change. It stays Accepted, the Convert to Invoice button stays where it is, and nothing links the invoice back to the quote it came from. That means converting twice makes two invoices, so it is worth checking the ledger before pressing it a second time.

Common questions

Can my client accept a quote themselves, from a link?
Yes. Every quote email includes a View and Accept Quote button linking to a public page — no login, no PIN — where they can accept or decline directly. This is separate from the client portal, which still shows jobs and invoices rather than quotes; the quote link works even for someone who has never had a portal account at all.
A quote expired but the client still wants the work. What now?
Build a new quote. An expired quote cannot be accepted, because the Accept and Decline buttons only appear while it is still Sent. Opening the old one and reading off the lines takes a minute, and it also gives you the chance to reprice work you costed a month ago.
Does converting a quote to an invoice mark it as invoiced?
No. The quote stays Accepted and carries no record of the conversion, and the invoice carries no record of the quote. If you need that trail, put the quote number in the invoice notes when you raise it.
Can I delete a quote once it has gone out?
No. Delete only appears on drafts, and only from the quote itself rather than from a row in the list. A sent, accepted, declined or expired quote stays on the ledger permanently, which is what keeps the Total Quoted figure meaningful.
Why does my quote have no bank details on it?
Because it is a quote. The BACS block is part of the invoice document only. Your bank details, sort code and account number live under Invoicing and print on invoices, where somebody actually needs to pay you.
If I put my prices up, do my saved quote templates still charge the old price?
No. A template only remembers which catalogue item and how many, never a price, so loading it always charges whatever that item costs today.