CSV migration: import customers and services
Upload a CSV file to import your existing client list and service menu into Nextro. Works with exports from Fresha, Booksy, Square, Timely, and any generic CSV.
Overview
CSV migration lets you upload a file you already have — such as a client export from your previous booking platform — and import the data directly into your Nextro account. You can import customers, services, or both.
CSV migration is separate from the booking link import feature. Booking link import reads your business name from a public profile URL. CSV migration imports data you upload yourself — it does not connect to or retrieve data from any external platform.
What you can import
Two types of data can be imported:
Customers
The client's full name.
Required. Used as the unique identifier for each client.
Optional.
Services
Required. Maximum 60 characters.
In minutes. Defaults to 60 minutes if not provided.
In pounds (e.g. £45.00, 45, 45.00 GBP). Defaults to free if not provided.
Optional. Maximum 200 characters.
Optional grouping label. Maximum 40 characters.
What is not imported
The following are not supported in the current version of CSV migration.
These items need to be added or configured manually inside Nextro after your account is created.
Customer CSV format
Your CSV must have a header row. Email is the only required column. The column order does not matter — you can map columns in the import wizard.
Example customer CSV
name,email,phone Sarah Mitchell,sarah@example.com,07700 900123 James Patel,james@example.com,07700 900456 Priya Sharma,priya@example.com,
Accepted column names
Max 1,000 customers per import. Each subsequent import skips emails already in your account.
Service CSV format
Your CSV must have a header row. Service name is the only required column. Duration and price default to 60 minutes and free respectively if not provided.
Example service CSV
name,duration,price,category,description Swedish Massage,60,£60.00,Massage,A relaxing full-body massage Deep Tissue Massage,60,£70.00,Massage,Targets deeper muscle layers Hot Stone Massage,90,£85.00,Massage, Express Back Massage,30,£40.00,Massage,
Accepted column names
Accepted duration formats
60, 1:00, 1h, 1h30m, 90 min
Accepted price formats
45, 45.00, £45.00, 45.00 GBP
Max 50 services per import. Service names longer than 60 characters are truncated.
Exporting from your platform
Most booking platforms allow you to export your client list and service menu as a CSV or spreadsheet. The exact steps vary by platform — look for an export option in your account settings, reports, or client management section. Common locations are listed below.
Fresha
Clients: Reports or Clients section — look for an export or download option.
Services: Services menu — each service category can typically be exported or manually listed.
Booksy
Clients: Business Manager, Clients tab — export client list as CSV.
Services: Services section — copy your service list into a CSV manually or use any export option available.
Square Appointments
Clients: Customers tab in Square Dashboard — export customer list.
Services: Items library — export your service items as a CSV.
Timely
Clients: Clients section — use the export function to download client details.
Services: Services section — export your service list if available, or create a CSV from your service menu.
Preview and confirm
After uploading your CSV, the import wizard shows a preview of all rows before anything is saved. You can:
- 1Review how each column has been mapped and adjust if needed.
- 2See which rows are valid and which have errors (for example, a missing email or an unparseable duration).
- 3See the total count of importable rows before committing.
- 4Go back to adjust the mapping if something looks wrong.
For customer imports, you will also be asked to confirm that you are authorised to import the customer data and that you have an appropriate legal basis for processing it. This confirmation is required before the import proceeds.
Duplicate handling
Customers: Clients are identified by their email address. If a client with the same email already exists in your account (from a previous import or from a real booking), the row is skipped. The import result shows how many were saved and how many were skipped.
Services: Services are matched by name (case-insensitive). If a service with the same name already exists in your account, that row is skipped. The import result lists which service names were duplicates. Existing services are never overwritten.
Your responsibility
When you upload a CSV that contains personal data about your clients:
- 1You are responsible for the data you upload. Nextro processes it on your instruction.
- 2You must have a lawful basis under UK GDPR for processing your clients' personal data — for example, because you have an existing business relationship with them.
- 3You must not import personal data about individuals you have no direct relationship with.
- 4You should not upload data obtained through unlawful means or from sources you do not own or have permission to use.
Troubleshooting
No rows are being detected
Make sure your file has a header row and at least one data row. Check that the file is saved as CSV (not .xlsx or .numbers). Try pasting the data directly into the text area instead of uploading the file.
All rows show 'Invalid email'
Check the column mapping — the email column may not have been detected correctly. Go back to the Map step and make sure the email column is mapped to Email.
Service name is being truncated
Service names are limited to 60 characters. The preview will show a note if a name is truncated. You can edit the service name in Nextro after import.
Duration shows 'could not be parsed'
Make sure the duration is in a recognised format: 60, 1:00, 1h, 1h30m, or 90 min. Map the column to Skip if you do not want to import duration (it will default to 60 minutes).
Price shows 'could not be parsed'
Make sure the price is a number with an optional £ symbol: £45, 45.00, or 45.00 GBP. Remove any currency symbols that are not £, $ or €. Map the column to Skip if you do not want to import price (it will default to free).
Services already exist (all skipped)
Services are matched by name. If all your services already exist in your account, there is nothing to import. You can edit existing services directly in the Services page.
Too many clients (over 1,000)
The customer import limit is 1,000 per import. Split your CSV into batches of 1,000 or fewer and run the import multiple times.
Too many services (over 50)
The service import limit is 50 per import. Split your service list and run the import multiple times.
