How do I import customers, bookings or staff from a CSV?
Use the four-step Data import wizard to bring customers, bookings or staff over from another system, up to 500 rows at a time.
Bring your existing customers, bookings or staff into ResoFlow with the wizard at Settings → Data import — four steps: Upload, Mapping, Preview, Import.
Customer and booking imports are Available on Plus plan and above, and included with every paid ResoFlow product; the staff import is Available on Complete plan. Only Owners and Admins see this page.
Run an import
- Go to Settings → Data import and pick a tile: Customers, Bookings or Staff Members.
- Click the upload box (Click to upload your CSV file) and choose your file. Maximum 500 rows and 8 MB, and the file must include a header row. To import more than 500, split the file and run the wizard again. Not sure what the file should look like? There's a sample-template download link under the upload box (its wording names the data type — "Download a sample customers template", and so on) — it downloads a ready-made CSV with the right columns and example rows to copy.
- Mapping — match your CSV columns to ResoFlow fields. The wizard auto-matches columns with recognisable names; fix any it missed. Files that look like a Quandoo export are recognised and pre-filled automatically — and there's an Importing from Quandoo? Apply the Quandoo column mapping link if yours isn't. Required fields are marked — customers need an Email (plus a name column); bookings need Date, Time (HH:MM) and Party Size; staff need Full Name, Username and Role. Dates are accepted in either format: 2026-07-28 or 28 Jul 2026 (the format ResoFlow's own bookings export uses, so you can export, tidy up in a spreadsheet, and re-import). Click Preview data.
- Preview — check the first 10 rows look right. If some rows are missing required fields, click Remove N rows with blank required fields to drop them (they'd be skipped anyway).
- Click Import N records to start the import.
- Wait on the results screen — don't close the window while it says Importing data…. When it finishes you'll see exactly what happened: how many records imported, a Skipped rows list naming each skipped row and why (for example "Row 7 — invalid time"), and an Imported with adjustments list for rows that needed a tweak (a shortened note, say). If the import fails outright, the screen says Import failed and nothing is imported.
Importing the same bookings file twice? ResoFlow remembers each bookings file it has imported. If you upload an identical file again, it asks "This file has been imported before" before doing anything — importing it again would duplicate every booking in it, so only confirm if that's genuinely what you want.
Marketing consent and loyalty balances
Marketing consent: the preview step has an "I confirm these customers agreed to hear from us" tick. Tick it only if everyone in the file genuinely gave you marketing consent (for example on a sign-up form) — their profiles are then marked opted in, with the consent recorded. Leave it unticked and the customers import as contacts only: they won't receive any marketing (including the loyalty round-up email) until they opt in themselves, for example by booking and leaving the marketing box untouched. Customers who have already opted out stay opted out either way.
Switching from another loyalty scheme? While your loyalty scheme is active (loyalty comes with Pro and Complete, or the standalone Loyalty product), the customer Mapping step offers an optional Loyalty Balance column. Map it to bring your members' stamps or points across: each balance creates that customer's membership (or tops up an existing one) and is recorded as a staff adjustment in the activity log, so the movement is always traceable. No join bonus is given — a migration isn't a new join. Values must be whole numbers (0 or more; an invalid value rejects that row), and a blank cell means the customer isn't a member. The success screen confirms how many loyalty balances were applied.
Birthdays: the optional Birthday column accepts 1990-07-28 or 28 Jul 1990. A birthday the wizard can't read is shown as a row error — it's never silently dropped.
Staff imports: the credentials file
A PIN is auto-generated for each imported staff member. On the success screen, click Download credentials CSV before leaving the page — the PINs are shown once and never stored in plain text, so this is your only chance to download them. Hand each person their PIN; they'll be asked to choose a new one on first sign-in. Delete the file once distributed.
Tips
- Imported customers appear in your directory immediately; imported bookings land on the dates in the file.
- Roles in a staff CSV must match your role names (built-in like manager/host, or a custom role's name). You can't bulk-import an owner.
Related: How do I export my data? · How do I add a staff member? · How do I find and manage my customer list? · How do I switch from Quandoo to ResoFlow?