Guides Getting started Importing data from another tool

Importing data from another tool

Bring your existing clients, invoices, expenses and time entries into Keepr from a CSV, in three guided steps.

Keepr's importer takes a CSV from your old tool - Xero, QuickBooks, FreshBooks, Clockify, a bank export, or a plain spreadsheet - and turns it into clients, invoices, expenses or time entries inside Keepr. Three short steps: upload your file, tell Keepr which column means what, then click Import. You'll find it in the sidebar under Importer.

What you can import

Card on /importer/What it brings in
Import ClientsYour client list - names, companies, addresses, contact details.
Import InvoicesPast invoices with status (Draft, Sent, Paid…), dates and totals.
Import ExpensesBusiness costs from a spreadsheet or a bank statement export.
Import Time EntriesTracked time from Clockify, Toggl or any other time tracker.
Do clients first. When you later import invoices or time, Keepr can match each row to an existing client by name - but only if that client is already in Keepr.

Prepare your CSV

Keepr takes a single CSV up to 5 MB. Xero, QuickBooks, FreshBooks and Clockify all have an Export button that produces one; spreadsheets save out via File → Save As → CSV (UTF-8); most bank statement downloads work as-is. Column order doesn't matter, and any columns Keepr doesn't need are skipped.

Step 1 - Upload your CSV

  1. Open Importer and click the card for the type you're importing - for example Import Expenses.
  2. Click Select file, choose your CSV, and tick Does your spreadsheet include headers? if row 1 is column titles.
  3. Click the blue Upload … CSV File button. Keepr reads the file and takes you to the column-mapping screen.
Files larger than 5 MB are rejected. If your export is huge, split it into chunks (e.g. one year per file) and import them one after another.

Step 2 - Map your columns

Keepr shows the first five rows of your file in a table. Above each column is a dropdown of every field Keepr can fill (Title, Amount, Date, Category, Client and so on). For each column, pick a field and click Save, or click Skip if Keepr doesn't need it.

Column-mapping screen showing each CSV column with a field dropdown above it and an auto-detection banner.
Each column gets a field dropdown — most are auto-recognised; tweak any you need to.
Keepr tries to do this for you first. Common headers like Amount, VAT, Due date, Company or Billable rate are auto-recognised, and if a column looks like an email, postcode, date or money figure, Keepr picks the right field automatically. A blue banner reports how many it managed.

Two extra options to know about: Full name (auto-split) appears for Client imports and splits Jane Smith into first name and surname, stripping titles (Mr, Mrs, Dr…). Description appears for Invoice imports and turns a description column into a single invoice line called Imported Item using the mapped total.

If Keepr can confidently detect your date format (DD/MM/YYYY, MM/DD/YYYY or YYYY-MM-DD) it shows a green Date format detected tick. If not, you pick from a dropdown.

If you mapped a column to Client, Project, Task or Category, the bottom button changes to Next: Map Values → - Keepr needs one more step to link those up. Otherwise the button reads Import … and your import runs straight away.

Step 3 - Map values (only when needed)

Some columns reference other Keepr records - if your invoice CSV has a Client column saying Acme Ltd, Keepr needs to know whether that's an existing client or a new one. This screen lists every unique value in those columns. For each one, pick an existing record from the dropdown, choose Create New, or pick Don't import these rows to skip them (useful for odd old test entries).

Value-mapping screen listing each unique Client value from the CSV with auto-matched badges and Create New / Skip dropdowns.
Exact and case-insensitive matches get a green badge; everything else lets you pick an existing record or Create New.
Keepr looks for a case-insensitive name match first. If your CSV row says Acme Ltd and you've already got a client called acme ltd (or ACME LTD) in Keepr, the row gets a green auto-matched badge. The spelling has to match otherwise — so you don't have to tidy them by hand.

Time entries get one extra question here: a Billed Status cutoff date. Anything in your CSV dated before the cutoff is imported as already billed, so it doesn't show up as unbilled hours later. Leave it blank to import everything as unbilled. Then click Import … and Keepr runs through your file.

Worked example: six months of expenses from Xero

You've left Xero and want your last six months of business spending in Keepr before starting fresh. In Xero you export an Account Transactions report as CSV - it has columns for Date, Description, Amount, VAT and Category, plus a few Xero-only columns.

  1. Open Importer and click Import Expenses.
  2. Pick your Xero CSV, tick Does your spreadsheet include headers?, and upload it.
  3. On the column-mapping screen Keepr has already mapped Date, Description, Amount, VAT and Category. Click Skip on the Xero-only columns. The date format (DD/MM/YYYY) is auto-detected.
  4. Because you mapped Category, the button reads Next: Map Values →. Click it. Keepr lists every unique Xero category; matches to your existing ones (Travel, Software, Office Expenses) are auto-matched. For the rest, leave the default Create New.
  5. Click Import Expenses. Keepr saves every row and lands you on the results page with a green tick and a count like 184 Expenses imported.
If something looks wrong, you can edit individual expenses in the list or delete them and re-run the import after fixing the CSV. Re-running the same file will create duplicates - the importer doesn't check whether you've imported the same rows before - so delete first if you need a clean re-run.

Frequently asked questions

Which file types does the importer accept?
CSV only, up to 5 MB. If your tool exports XLSX or another format, open it in Excel, Numbers or Google Sheets and Save As / Export → CSV (UTF-8).
Do I have to import clients before invoices?
You don't have to, but it's smoother. Import clients first and Keepr can match each invoice's Client column to an existing record. Skip that step and Keepr creates a new bare client for every unique name in the invoice CSV.
Can I import time entries that are already billed?
Yes. On the value-mapping screen for Time Entries, set a Billed Status cutoff date. Any entry dated before that date is imported as already billed and won't appear as unbilled time on your dashboard.
Can I run the same CSV twice?
Yes, but every row will be imported again - the importer doesn't check whether you've imported the same rows before. If you need a clean re-run, delete the previous batch from the relevant list first.
Is the importer Pro-only?
No. The importer is available to every Keepr account, Free or Pro.
Ready to bring your data into Keepr?
Open the importer