Import customers
Move your existing customer base across in one go from Excel or CSV — including what to check before you start.
Already have your customers in Excel, in another booking system or in your accounting package? You do not have to retype them. The import wizard reads an Excel or CSV file, lets you decide which column belongs to which field, checks everything before anything is created, and then imports in one pass.
Preparing your file
Your file needs one row of column headers, and one row per customer beneath it. The headers can say whatever you like — you map them to the right fields yourself in step 2 — but recognisable names save work, because those get suggested automatically.
This file works without any changes:
| First name | Last name | Phone | Street | House number | Postal code | City | Customer type | Company name | |
|---|---|---|---|---|---|---|---|---|---|
| Sarah | Bennett | sarah@example.com | 07700900123 | Keizersgracht | 12 | 1015 CJ | Amsterdam | person | |
| info@oakbakery.com | 07700900456 | Oudegracht | 240 | 3511 NP | Utrecht | business | Oak Street Bakery |
The second row shows what a business customer looks like: no first or last name, but a company name.
The rules that actually stop an import:
- Accepted:
.xlsx,.xlsand.csv, up to 5 MB. - Only the first sheet of an Excel file is read. If your customers are on the second tab, the file will look empty.
- There must be at least one data row below the header row.
- Required per customer: a last name (private) or a company name (business). That is all.
Step by step
Upload your file
Go to Customers and choose Import. Drag your file onto the drop zone or click Browse files.

Map your columns
Above each column is a dropdown naming the field that column lands in. Schedulinq fills these in as best it can from your headers — you can spot those suggestions by the marker beside them.

Check them. A wrong suggestion is the one mistake that goes through without any warning: the file imports neatly, it is just that your phone numbers end up in the house-number field. Set any column you do not need to Skip column.

Review what is wrong
Schedulinq now walks every row and splits them into two piles: rows that are ready, and rows with a problem.

Expand Rows with issues to see exactly what is wrong. You get the row number, the customer, the field, the value that was there and what is wrong with it. The row number matches the row in your spreadsheet, so you can go straight to it.

You now have two options. Back, and repair your file — or Import valid rows only, which skips the bad rows. Skipped rows are not lost, they are simply not created; you can supply them later in a second file.
Import
The import runs in blocks of 50 rows. On a large file you will see the progress climb. Do not close the tab while it runs.

Afterwards you see how many customers were created. Click Back to customers to check them straight away.
The fields that need attention
Most columns speak for themselves. These four decide whether your import does what you expect.
Last name or company name
RequiredEach customer needs exactly one name field: a last name for a private customer, a company name for a business one. A first name is optional.
This is the only thing a row is rejected for. If it is missing, that row appears under the issues and is skipped — the rest of your file goes through as normal.
Customer type
OptionalDecides which fields applyEnter person or business. individual, company and the Dutch particulier and
zakelijk are recognised too, and capitalisation does not matter.
This field decides which name is required. Leave the column out or blank and Schedulinq picks for you: if there is a company name it becomes a business customer, otherwise a private one. That is usually right, but a sole trader with no company name in the file becomes a private customer when you meant a business one. Fill the column in if the distinction matters for your invoices.
Address
OptionalTwo waysYou supply the address one of two ways: a single full address column, or separate columns for street, house number, postal code and city. Street and house number may be separate — they are joined into one line.
The two ways are mutually exclusive. Map a column to Full address and Schedulinq releases the separate address columns automatically, and the other way round. That is not a fault: it stops the same address being written twice. An address is never required — customers who always come to you do not need one.
An empty email field is fine. A filled one has to be a real address — name@domain.com.
A typo such as a missing @ is exactly what the review step catches, and that is worth
having: a customer with a broken e-mail address never receives a confirmation, and you only
find out when they phone.
If you have created custom fields for customers, those appear in the dropdown too and you can map a column to them just the same.
When something goes wrong
There are duplicates in my file. All of them are created. Schedulinq does not check for duplicates — not within your file, and not against customers you already have. Deduplicate beforehand, in your spreadsheet.
The import stops half way. Whatever was already imported stays. Each customer is created individually, so a failure further down does not roll back the earlier rows. Remove the already-imported rows from your file before trying again — otherwise you get those customers twice.
I mapped something wrongly and already imported. There is no undo. You will have to delete the created customers by hand. This is why it is worth practising with a small file first.
Frequently asked questions
Will an export from my accounting package work? Usually, as long as you save it as CSV or Excel. You do not need to rename the columns — you do that in step 2.
My file looks empty. Only the first sheet of an Excel file is read. If your list is on another tab, move it to the front or save that tab separately as CSV.
Are existing customers updated? No. An import always creates new customers and never touches existing ones.
Can I import another file later? Yes, as often as you like — just remember that customers already in there will be created again.