Moving from another system is a few CSV files and a careful mapping step, patients first. Import a small test file before the real one, because an import can't be undone.

Before you start

  • Export the data from your old system as CSV, one file per kind of record: patients first, then appointments, invoices and payments, because later files refer to patients.
  • Files are limited to 10 MB: Files larger than 10 MB are not supported. Picking a bigger file shows File exceeds the 10 MB limit. and clears the choice, so pick a smaller one before Next. The size is checked again at the review and when the import runs, so an oversized file stops with Nothing was imported — the file exceeds the 10 MB limit. Split a bigger file.
  • Imports go into one Location at a time.
  • Import needs the data import permission, which Administrators and Power Receptionists have.

The three steps

1

Upload & Configure

Under Settings, then Data Imports, choose the Datasource (Patients, Contacts, Appointments, Invoices, Payments, Expenses, Products, Services and Cases; invoice line items, invoice promotions and credit notes are export-only), the Format (CSV, HL7 v2 or FHIR / JSON) and the Location, then upload the file. ClinyPal parses it and shows Total rows.

2

Map Columns

Each column in your file is matched to a ClinyPal field. Matched automatically columns have a recognized heading; Needs your review ones you match by hand or leave unmapped. System fields (ClinicId, LocationId, CreatedBy, CreatedAt) are injected automatically — never from the file.

3

Review before confirming

The Import Summary shows the target, rows and mapped columns. Choose what happens If a row already exists, then Confirm & Start Import. The confirmation lists up to 10 rows that will be skipped and why, and reminds you that an import can't be undone. Import queued — processing in the background.

The Map Columns step of Data Imports listing the file's column headings beside ClinyPal field choices, with counts of matched automatically and needs your review.
Map Columns for a patient file: 9 columns matched automatically, Cell phone needing review.
An import can't be undone. There's no bulk delete of imported rows. Import a small test file first, check the records, then import the rest with Skip duplicates.

If a row already exists

ChoiceEffect
Skip duplicatesLeave matching existing records untouched. The safe default for a second run of the same file.
Update matchingOverwrite matching existing records with the file's values. For bringing updated details across.
Insert onlyAlways add as new rows, even if a match already exists. Only when you're sure nothing overlaps.

Match by email/name, not internal ID makes the duplicate check use the patient's email and name rather than the old system's ID numbers, which is what you want for a first migration. A whole file is one batch: if a row fails, nothing was imported — the whole batch was rolled back after an error, and the row number and reason are in the history. A CSV row with more values than headings, usually a comma outside quotes such as Smith, John, is skipped as unreadable. With Insert only, a row matching a record ClinyPal already has stops the import: Nothing was imported — a row matches a record ClinyPal already has; import again with Skip duplicates, or remove those rows. See Review your import history.