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

Getting your data out

At some point a bookkeeper is going to ask you for a list of invoices and a list of clients. There are three places to get one, and none of them takes longer than a click.

In the app: Reports Open CleanFlo
On this page

The quarter ends, the VAT return is due, and your accountant sends the same email they send every quarter. CleanFlo does not integrate with accounting software, so the answer to that email is always a CSV file. This guide is a map of which file, from where, with which columns in it.

Every export in the product is one click. No dialog, no column picker, no date-range prompt. The file downloads with the name it was going to have, and a toast tells you how many rows went into it.

Three places to export from

WhereWhat you getWhen to use it
Reports, from each card headerSeven purpose-built files, already summarised and filtered to the chosen date rangeA quarterly figure, a client ranking, an incident list
The screen you are onThe raw list you are looking at, obeying whatever filter is appliedThe current client list, the overdue invoices, the stock order
Settings, Data ExportSix whole tables, or all six at once, unfiltered and unsummarisedYear end, moving to another system, a GDPR request

The seven files Reports produces

Each card on Reports that has a table under it carries a ghost Export button in its header. The invoice ledger is the only one whose button reads Export CSV instead. All seven follow the same rules: the button is disabled when the table is empty, and the file always covers the whole row set behind the table rather than the ten rows on screen.

Client Directory
Revenue is money received on paid invoices; job value is the work booked in this period
Export
Riverside Homes 38 jobs · Last job 13 Aug 2026 £3,230 Active
St Marks Medical Centre 24 jobs · Last job 14 Aug 2026 £2,880 Active
Harbour Lettings 14 jobs · Last job 02 Jul 2026 £1,050 Inactive
The export control as it appears in every Reports card header: a ghost button beside the card title, never a toolbar of its own.
FileTab it comes fromColumns
top-clients.csvOverviewClient, Jobs, Job value, Avg per Job. Only the five rows on screen, and money as bare two-decimal numbers with no symbol in the cell.
invoices.csvFinancialInvoice Number, Status, Amount, Issue Date, Due Date. Status is the effective one in lower case, so a late invoice exports as overdue.
operations-by-staff.csvOperationsStaff Member, Total Jobs, Completed, Cancelled, Completion Rate. Includes the "Unassigned" row, and the rate is written as "83%".
staff-performance.csvStaffStaff Member, Status, Total Jobs, Completed, Hours, Completion Rate. Hours to one decimal with no "h" on the end.
clients-report.csvClientsClient, Status, Jobs, Revenue, Job value, Last Job. The revenue and job value headers each spell out in the header itself which is money received and which is work booked.
inventory-report.csvInventoryItem, Category, Quantity, Minimum, Unit, Status, using the display labels rather than internal codes.
incidents.csvHealth & SafetyType, Severity, Status, Date, Description. Raw stored values, and the date is the first ten characters of the timestamp.

Money columns in these files carry your own currency symbol in the header rather than in every cell, so a column of amounts stays numeric and a spreadsheet will sum it without being argued with. The success toast counts what went out: "Exported 14 invoices", "Exported 3 team members", "Exported 1 client".

The exports on the working screens

Four of the list screens have their own Export CSV button beside the pager. These are rawer than the Reports files: what you see, in the order you sorted it, with the filters you applied.

app.cleanflo.io/clients
Search everything… ⌘K Clients
Clients

Your client records and the locations you clean for each one

Add Client
NameContact NameEmailPhoneStatusSites
Riverside Homes Dan Petrie dan@riversidehomes.co.uk 01326 555 118 active 3
St Marks Medical Centre Practice Manager admin@stmarks.nhs.uk 01872 555 402 active 1
Bay View Offices Helen Ross h.ross@bayview.co.uk 01326 555 771 active 2
Harbour Lettings Owen Blake lettings@harbour.co.uk 01326 555 209 inactive 6
1–10 of 14 12 Export CSV
Clients, with a filter applied. The export follows the filter, so filtering to one status and exporting is how you get a list of just your active clients.
clients.csv
From the Clients table. Six columns: Name, Contact Name, Email, Phone, Status, Sites. "Sites" is the count of locations against that client, not their addresses.
invoices.csv
From the Invoicing screen. Six columns: Invoice Number, Client, Amount, Issue Date, Due Date, Status. An ad-hoc invoice with no client record exports its recipient name in the Client column.
inventory.csv
From the Inventory table. Item, Category, Current Stock, Min Threshold, Unit, Status, over the whole filtered and sorted list.
equipment.csv
From the Equipment register. Name, Category, Serial Number, Condition, Status, Assigned To. A missing serial or borrower exports as an empty cell.

Note that invoices.csv exists in two different shapes. The one from the Invoicing screen carries the client name; the one from the Reports Financial tab does not, but is already cut to the date range. For a VAT quarter you want the Reports one. For a debt chase you want the Invoicing one, filtered to Overdue first.

Invoice NumberClientAmount (£)Issue DateDue DateStatus
INV-2026-014 Riverside Homes 408.00 2026-08-14 2026-08-28 paid
INV-2026-013 St Marks Medical Centre 1260.00 2026-07-02 2026-07-16 overdue
INV-2026-012 Bay View Offices 340.00 2026-07-28 2026-08-11 sent
What invoices.csv from the Invoicing screen looks like once it is open in a spreadsheet. The Amount column is a plain number, so it sums without being reformatted.

Settings, Data Export: everything at once

The fourth tab of Settings is Data Export, and it is a different kind of export. The other buttons hand you a view. This one hands you the tables. Its subtitle says what it is for: "Download your data as CSV files. This fulfils your right to data portability under GDPR."

app.cleanflo.io/settings?tab=data
Search everything… ⌘K Settings
Settings

Manage your company and account

CompanyMy AccountBillingData Export
Data Export
Download your data as CSV files. This fulfils your right to data portability under GDPR.
Clients
Export CSV
Locations
Export CSV
Jobs
Export CSV
Invoices
Export CSV
Staff
Export CSV
Services
Export CSV
Export All Data

Exported files are in CSV format and can be opened in Excel, Google Sheets, or any spreadsheet application.

The Data Export tab. Six tables, each with its own button, and one button underneath that does all six in sequence. In the app the four Settings tabs sit in a rail down the left rather than as a strip.

Each row exports its own table with a stable set of columns, and the files are dated: cleanflo_clients_2026-08-14.csv. The toast tells you the count, or tells you there was nothing there: "Clients exported (128 rows)." or "No clients to export."

Clients
Id, name, contact name, contact email, contact phone, created date.
Locations
Id, the client it belongs to, name, first address line, city, postcode, property type, created date.
Jobs
Id, title, scheduled date, start time, status, the staff name stored on the job, created date.
Invoices
Id, client, status, issue date, due date, total, created date. No line items: this is the header row of each invoice, not its contents.
Staff
Id, full name, email, phone, job title, role, whether active, created date. Cleaners only.
Services
Id, name, type, base price, duration in minutes, created date.

Export All Data runs all six in order. While it works, the button label becomes a progress line reading "Exporting Invoices (4 of 6)…", a thin progress bar appears, finished rows turn green with a tick and the row in flight tints brand. The result is one combined file, cleanflo_export_2026-08-14.csv, with each table separated by a comment line such as "# Clients (12)". The final toast reads "All data exported (243 rows across 6 tables)."

Invoices shaped for Xero or QuickBooks

Underneath the six generic tables on Settings, Data Export sits a second, smaller block headed Accounting Software Export, with two rows: Xero and QuickBooks, each with its own Export CSV. These are not another copy of invoices.csv. They are built to match the column headers each product's own invoice-import screen already expects, so a bookkeeper can hand the file straight to Xero or QuickBooks' import step rather than remapping columns by hand first.

Both flatten every invoice down to one row per line item, so a three-line invoice becomes three rows sharing the same invoice number — this is the shape both products' importers expect an invoice to arrive in. Draft invoices are left out entirely: a draft was never actually issued, so there is nothing yet for an accountant to book. Dates are written UK-style, day/month/year with slashes, which is the format both tools read by default.

cleanflo_xero_invoices_2026-08-15.csv
ContactName, InvoiceNumber, InvoiceDate, DueDate, Description, Quantity, UnitAmount, AccountCode. AccountCode is left blank on every row: which nominal code a line belongs to is a decision about your own chart of accounts, and only your bookkeeper can make it, usually during Xero's own import review step.
cleanflo_quickbooks_invoices_2026-08-15.csv
Invoice No, Customer, Invoice Date, Due Date, Item(Product/Service), Item Description, Item Quantity, Item Rate. Item(Product/Service) is written as a placeholder, "Cleaning Services", since matching a line to a specific item in your QuickBooks catalogue is the same kind of decision AccountCode is for Xero.

What to actually send your bookkeeper

A practical sequence for a VAT quarter, assuming you are on the standard scheme and accounting on invoices raised rather than cash received.

Set the range on Reports

Open Reports and choose "Last 90 days". It will not line up exactly with a VAT quarter, which is why the next step matters.

Export the invoice ledger

On the Financial tab, press Export CSV on the Invoice Ledger card. You get every invoice created in the window with its status, amount, issue date and due date.

Trim to the quarter in a spreadsheet

Sort on Issue Date and delete the rows outside your quarter. This is the step the missing custom date picker costs you, and it takes about a minute.

Add the client names

If your bookkeeper needs to know who each invoice was for, take invoices.csv from the Invoicing screen instead, which carries a Client column, or send clients.csv alongside.

Print the report as a PDF for context

The printed Business Analytics Report states the period in words on its cover and gives the same figures in a form a human can read. Send both: the CSV to work from and the PDF to check against.

Common questions

Does CleanFlo connect to Xero, QuickBooks or Sage?
No, and there is no API for one. For Xero and QuickBooks specifically, Settings, Data Export has a purpose-built CSV in each product's own expected column shape, so nothing needs remapping on the way in. For anything else, including Sage, everything still leaves as a plain CSV that you or your bookkeeper map by hand the first time.
Does this connect directly to my Xero or QuickBooks account?
No. It produces a CSV file shaped to match what those two products expect from a manual import — there is no live API connection, no login to either service, and nothing is sent anywhere on your behalf. You choose when to export and when to bring the file in.
Do the exports include invoice line items?
No. Both invoice exports give you one row per invoice with its total, not the services and quantities inside it. If a line-level breakdown is needed, the individual invoice can be printed from the Invoicing screen.
Can I export data for one client only?
Not from Settings, which always exports whole tables. From the Invoicing screen you can filter to a single client and then export, and the file follows the filter. The same trick works on the Clients, Inventory and Equipment tables.
Why does my spreadsheet show odd characters in the accented names?
It should not: the report exports are written as UTF-8 with a byte order mark, which is exactly what Excel needs to read them correctly. If characters look wrong, the file has probably been opened through an import wizard with the wrong encoding selected rather than by double-clicking it.