Move your data in from another system
Bring customers, services and appointments across from your old booking system as CSV files, see exactly what will happen before anything is saved, and take your data out, or hand a customer theirs, whenever you need to.
Switching booking systems should not mean retyping your customer list. Export CSV files from the old system, drop them into Settings › Import & export, and Booked brings across customers, services and appointments. It shows you what would happen before saving anything, and running a file twice does no harm. The same screen takes your data back out, and a customer’s record builds the file you owe them if they ask what you hold.
What can come across
Each file holds one kind of record. Booked reads the columns listed here and ignores any others in the file.
| File | What Booked takes | Must have | Already in Booked if… |
|---|---|---|---|
| Customers | First name, last name, email, phone | The email matches | |
| Services | Name, duration in minutes, price, description | Name | The name matches |
| Appointments | Customer email, first and last name, phone; service name; date; time; status; price; notes | Customer email, service name, date | Same customer email, same date and time |
Coming from lists 38 systems, from WordPress plugins such as Amelia and Bookly to salon and clinic software, plus Something else / a plain CSV. It is only a label: Booked matches columns by their headings, so an export from any system works.
Import a file
- Export a CSV from your old systemOne file per kind, with a header row. A CSV, not an Excel workbook; commas or semicolons both work. Up to 8 MB and 5,000 rows.
- Open Settings › Import & exportUnder Advanced in the settings rail. There is no Save button; the import has its own.
- Say what is in the file firstPick Customers, Services or Appointments before you drop the file. The screen starts on Appointments.
- Drop the file on the boxOr click it to choose the file. Booked matches each field it knows to a column.
- Check the columnsEach field shows the column Booked picked and two sample values. Check what this would do stays greyed out until every Required field has a column.
- Check what this would doBooked runs the whole file against your data without saving. When the result looks right, press the Import button, which carries the count.
Export a CSV from your old system and drop it here. Booked works out which column is which, shows you what would happen, and only imports once you are happy.
Booked has matched what it recognised. Correct anything that looks wrong; the sample values beside each column are there to check against.
Settings › Import & export, with an appointments file read and its columns matched.
- 1Coming from — the system you are leaving. A label only; it does not change how columns are matched.
- 2What is in this file — Customers, Services or Appointments. Set it before you drop the file.
- 3The file — drop it here or click to choose. The pill counts the rows under the header.
- 4A field with no column — reads Not in this file. Pick the heading yourself; the grey samples show what each column holds.
- 5Let the assistant fill the gaps — appears while something is unmatched, if your plan includes AI. It fills only empty rows and costs 5 AI credits (see Your monthly AI allowance).
Drop the file again. Switching What is in this file afterwards keeps the column guesses made for the previous kind, so a services file read as appointments leaves Name unmatched.
How Booked reads your file
- Headings. Case, spaces and punctuation are ignored, and common alternatives are known: Client Email Address, Mobile, Surname, Appointment Type or Treatment.
- One name column. A single Name column is not matched for you. On a customers file, give it to First name and leave Last name empty: Booked splits it at the first space. Appointments files do not split names, so import customers first.
- Dates. 2026-10-14 and 14 October 2026 both work. 03/04/2026 is read day first, as 3 April, unless the second number is over 12, as in 04/13/2026.
- Times. From the Time column, or a time inside the date. Write hours and minutes, such as 14:30 or 2:30pm: anything Booked cannot read, including 2pm, becomes 09:00.
- Prices. Currency signs, thousands separators and European figures such as 1.234,50 are all fine.
A status column is translated into Booked’s own statuses (see Booking statuses explained). Booked looks for these words anywhere in the value:
| Comes in as | When the old status contains |
|---|---|
| Confirmed | confirmed, approved, accepted, booked, scheduled or active. Blank or unrecognised values count as Confirmed too. |
| Pending | pending, awaiting, requested or new |
| Cancelled | cancelled, canceled, declined, rejected or void |
| Completed | completed, complete, done, attended, finished or checked out |
| No-show | no show, missed, did not attend or DNA |
Check what would happen, then import
Nothing has been written yet. This is the file run against your data, without saving.
The preview: what the file would do to your data, before anything is saved.
- 1New, Already here, Skipped — records it would add, rows matching something you already have, and rows it cannot use.
- 2Rows that would fail — by row number, with the reason. Up to 25 are listed.
- 3Import 208 records — counts the New figure. Nothing is saved until you press it.
Row numbers count the heading as row 1, so they match your spreadsheet. Fix those rows and drop the file again; rows already brought in show as Already here. Each import adds a line to Settings › Activity log.
Running a file twice, and duplicates
- Customers are matched on email. An existing customer is never duplicated or overwritten; Booked only fills a blank first name, last name or phone. A row with no usable email is skipped.
- Services are matched on name. A service with the same name is left as it is. Flu jab against Flu Vaccination makes a second service.
- Appointments are matched on customer email plus date and time. A match is left alone, so a newer export does not update appointments already brought in. Change a status in Booked instead.
What an imported appointment looks like
- No staff member and no branch. Booked blocks time for the staff member on an appointment, so until an imported one has one, your booking form can offer that time to someone else. Open each upcoming one and set With and Branch. Until then the Diary shows it only on All locations and All staff, in an Unassigned column on the day view.
- Unpaid. The price is recorded, but not that anything was paid.
- Missing customers and services are created. A new service is 30 minutes long and priced from that row, and so is the appointment. Import services first and their real lengths are used.
- Nobody is emailed by the import. But upcoming Confirmed appointments get Booked’s reminders if they are on (see What Booked sends, and when), so switch the old system’s off.
- Customer since is the import date, not when they first came to you.
What does not come across
- Your set-up. Staff, branches, hours, categories, deposits and booking questions are set up by hand.
- Some columns that are offered. Notes on a customers file are not saved (appointment notes are). Category on a services file is not applied, and Description is not the Short description your booking form shows.
- Money and records. Payments, saved cards, packages, documents, consent and answers stay behind.
- Anything past 5,000 rows. Dropped without a warning; the pill reads 5,000 rows. Split bigger files.
Imported services have no staff or branches either, so they are not bookable yet. A service isn’t on the booking form covers linking them up.
Taking your data out
Everything you have, as a spreadsheet, whenever you want it. It is your data; you should never have to ask for it.
One row per customer with as much or as little as you need. Useful for seeing who your regulars are, and it is what you send somebody who asks what you hold on them.
Further down the same screen: the three plain exports, and the customer export with its seven parts.
- 1Customers, Services, Appointments — each downloads straight away as a CSV of everything of that kind.
- 2The seven parts — the first three are ticked to start with. The three marked Sensitive bring up a warning about looking after the file once they are ticked.
- 3Export customers — one row per customer, with a column for each thing you ticked.
| Export | Columns |
|---|---|
| Customers | first_name, last_name, email, phone, created |
| Services | name, duration, price, description (the short description), status |
| Appointments | reference, email, first_name, last_name, phone, service, date, time, status, price, amount_paid, notes |
| Export customers | One row per customer, with columns for each part you ticked: details, appointment counts and a line per appointment, spend, how they found you, answers, notes and documents held. |
The three plain exports use headings the importer recognises, so they go straight into another Booked site, and they open in Excel with accents intact. reference always reads GB- and five digits, even if you set your own format. Export customers covers up to 5,000 customers, starts with the privacy warning, and logs which parts you took.
When a customer asks for their data
- Open their recordIn Customers, click them, then Build their data file on the Data request card.
- Leave everything tickedAll seven parts start ticked; Their details cannot be unticked.
- Confirm and buildTick the box saying you are building it for the person it belongs to and will handle it securely, then click Build and download.
You get one ZIP: record.csv (the customer export for this person), a READ ME.txt, and a documents folder holding the files they uploaded when booking, readable. Files your team added to their record are listed by name only, so download those from its Documents card. Settings › Import & export offers the same as Somebody has asked for their data, using whatever is ticked in Everything about your customers, so tick all seven there first.
The ZIP can be taken once, within fifteen minutes, and Booked deletes its copy as you take it. After that it is yours to look after: send it securely, delete your copy afterwards, and never email health information unencrypted.
When a customer asks to be erased
On their record, click Erase their data. There are four steps: why, then what goes and what stays, then a last check where you type their name, then a receipt.
Step two of four when erasing a customer: the counts are worked out from their own record.
- 1Goes — contact details and everything that is not part of the record of care. Only lines that apply to this person are listed.
- 2Stays, and why — completed appointments and every payment. A tick box appears here when completed appointments have documents, to remove those as well.
- 3Email them the receipt — on by default when there is an address. It is sent before the address is wiped.
The receipt, referenced ER-…, stays on their record to print, save as a PDF or copy as text. The profile becomes Erased customer and is locked. Erasing cannot be undone.
Past appointments still marked Confirmed are stripped like ones that never happened. Mark attended visits Completed, and map the status column when you import history.
Importing, the customer export, data files and erasing all need permission to change Settings (see Give your team their own logins). WordPress’s own personal data tools do not reach Booked’s records, so use the customer record.
A switching checklist
- Set up branches and staffWith their hours. See Add your first location and Add staff and their hours.
- Import servicesThen give each its staff, branches, short description and category.
- Import customersBefore appointments, so names are split properly.
- Import appointmentsUpcoming ones at least. Map the status column so past visits arrive as Completed.
- Give upcoming appointments a staff member and branchUntil then, those times can be booked again online.
- Swap reminders overSwitch them off in the old system and on in Booked.
- Make a test bookingThrough your own form, then retire the old booking page.