App

Import your data from Fresha or another system

Move clients, services, products, team, memberships and more — mapped column by column, de-duplicated, and reversible in one click.

Updated Jul 26, 2026

Settings → Import

The importer is built around one promise: nothing is written until you've seen exactly what will happen. Every column in every file is shown with your own sample data beside it, a dry run tells you what would be created and what would be matched, and the whole thing can be undone in a single click afterwards.

Get your files out

From Fresha

  • Clients → Options → Export to CSV
  • Team → Options → Export to CSV
  • Everything else via Reports: Service list, Product list, Membership list, Waitlist detail, Stock movement summary, Appointment list, Sales log detail
Set every date range to All Time, and always export the detail report, not the summary. A summary report is one row of totals and percentages — the importer will recognise it and refuse it, telling you to fetch the detail version instead.

From anything else

Upload a CSV or Excel file with a header row and one row per record. Owneli detects what the file is and shows you every column before anything is written. Up to 15,000 rows per file.

What won't come across

Three things, and it's worth knowing why before you start:

  • Saved cards. For PCI reasons card details move processor-to-processor, never through a file. You re-collect them.
  • Forms, consents and photos. These aren't part of a standard export from any of these platforms.
  • Mid-cycle membership billing. Never resumed automatically. See the warning below.

The four steps

Source

Tell Owneli where the data came from — Fresha, Zenoti, Mangomint, or a generic CSV — so it recognises the file layout. Then drop your files in.

Each file is analysed and labelled with what it appears to be. If a file can't be read as a list of records, it's marked as such and skipped; your other files are unaffected. Anything the importer isn't sure about, you'll set by hand on the next step.

Map columns

Every column in every file is listed, next to your own sample values, with the field it will import into. A column with no destination is a column you chose to leave out — never a silent drop.

Three kinds of column:

  • Mapped — has a destination. Recognised automatically, suggested by AI, or set by you.
  • Needs a decision — not recognised. Point it at a field to keep it, or acknowledge the loss explicitly and continue.
  • Not imported by design — recognised, and deliberately left out, with the reason shown. Tax and commission columns are in this bucket: they're calculated by Owneli's own engines from your configuration, and importing someone else's numbers would put two sources of truth in conflict.

You confirm each file's mapping before you can move on.

Dry run

Nothing has been written yet. The numbers on this screen are exactly what the import will do:

ColumnMeaning
CreateNew records that will be added
Match existingRows that resolve to records you already have — these are linked, not duplicated
SkipRows that won't be imported
ErrorsRows that failed validation

Validation problems are listed with row numbers matching your spreadsheet, where row 1 is the header, and can be downloaded as a CSV so you can fix the source file.

If anything blocks the import, the screen says so plainly and nothing can be written until you resolve it.

Consent. Before you continue you choose the marketing consent to apply to imported clients — email, SMS, both, or neither — and confirm you have a lawful basis to hold and contact them. Nobody is silently opted in.

Import

Files are written in dependency order, not the order you uploaded them: whatever other rows point at is created first. Services before the memberships and appointments that name them; sales last, because a sale line can reference anything.

The import runs in the background. You can leave the page and come back.

Reading the result

You get a per-entity breakdown of created, matched, skipped and errored, plus a downloadable report.

A record count can legitimately be lower than the source row count. Some exports write one row per requested service; rows sharing a reference merge into a single record. The dry run says so explicitly when it happens, and nothing was dropped.

Undoing an import

Roll back deletes only the rows this import created. Rows that matched existing records are left untouched.

Rollback permanently deletes everything the import created and cannot itself be undone. If imported rows are already in use — an imported client with an appointment booked against them, for example — rollback is blocked and you're told exactly what is holding it.

Memberships import as records only

Imported memberships are records only. Auto-renew is off, no renewal date is set, and no redeemable credits are granted. No card is ever charged.This is deliberate and not configurable. Resuming somebody else's mid-cycle billing against cards you have just imported is not a thing software should do quietly. Re-collect payment details and restart billing yourself when you're ready.

Suggested order

Although the importer handles dependencies itself, importing in stages makes problems easier to isolate:

Clients

The biggest file and the one everything else references. Check the matched-versus-created split carefully.

Services and products

Your catalog. Review prices and durations after import.

Team

Then set their working hours — imported team members won't appear on the calendar until they have hours.

Memberships, waitlist and stock

Records only for memberships; see the warning above.

Appointments and sales

History last. These reference everything else, so import them once the rest is settled.

After the import

  • Set working hours for imported team members — Team → Scheduling
  • Review imported prices and durations — Operations → Services
  • Look for duplicate clients and merge them — see Add, find, and merge clients
  • Re-collect payment details for anyone on a membership

Keep reading

Related

3
Set up your workspaceThe setup checklist on Today, item by item — what each one unlocks and which ones you can skip.Add, find, and merge clientsCreate a client record, search the directory, work with tags, and combine duplicates without losing history.MembershipsBuild a recurring plan, choose between service credits and an account balance, and understand how billing, pausing and cancellation behave.