CRM migration
Field-level mapping, validation, and rollback between Cliniko and Nutshell. We move data and schema; workflows are rebuilt natively in Nutshell.
Cliniko
Source
Nutshell
Destination
Compatibility
11 of 11
objects map 1:1 between Cliniko and Nutshell.
Complexity
BStandard
Timeline
24–72 hours
Overview
Cliniko organizes healthcare data around patients, practitioners, appointments, and financial transactions — a model built for clinical workflows rather than sales pipelines. Nutshell's CRM structure centers on People (contacts), Companies (accounts), Leads, and Deals with a visual pipeline view that tracks opportunities through customizable stages. The migration must collapse Cliniko's multi-entity relationships (patient-to-appointments, patient-to-invoices, patient-to-insurance) into Nutshell's flatter People-Companies-Deals hierarchy. We extract Cliniko data via the administrative export tool and REST API, capturing patient demographics, all appointment records, invoice and payment history, product/service billing line items, and practitioner assignments. These map into Nutshell's standard objects with custom fields for healthcare-specific data that has no native CRM equivalent — things like referring practitioner, appointment type classification, insurance carrier, and invoice balance status. Appointment histories become Nutshell Activities (tasks and events) preserving original date, duration, practitioner owner, and patient association. Invoice data migrates as custom fields on the Person record since Nutshell lacks a native billing module. FlitStack sequences the migration so patient records land first, then appointments link via Nutshell's person association, then invoice data attaches to each person record. A 24-48 hour delta window captures any appointments or payments recorded during the cutover window.
Every standard and custom field arrives verified.
AI proposes the map; you confirm before any record moves.
Parent–child, lookups, and ownership stay linked.
Calls, emails, meetings — with original timestamps.
Documents, uploads, and inline notes move with the record.
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
Each row shows how a Cliniko object lands in Nutshell, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Cliniko
Patient
Nutshell
Person
1:1Cliniko patients map directly to Nutshell People records in a straightforward one-to-one transfer. Core patient fields including name, email address, phone number, physical address, and date of birth carry over as standard Nutshell Person fields. The original Cliniko patient identifier is stored as a custom text field (Cliniko_Patient_ID__c) on each Person record for traceability purposes, enabling reliable delta-run de-duplication during subsequent migration runs and maintaining the link back to the source Cliniko system for reference and audit trail functionality.
Cliniko
Practitioner
Nutshell
User
1:1Cliniko practitioners who will use Nutshell as CRM users are matched by email address to existing Nutshell users. Practitioners without Nutshell accounts are flagged — they either need Nutshell user invitations before migration or their appointments reassigned to a fallback CRM owner.
Cliniko
Appointment
Nutshell
Activity (Task / Event)
1:1Each Cliniko appointment becomes a Nutshell Activity. Appointment type maps to the Activity subject, original date/time becomes the Task due date or Event start time, duration maps to the Task duration field or Event end time, and the associated patient links via Nutshell's person association. Appointment status (attended, no-show, cancelled) stored as a custom picklist field.
Cliniko
Invoice
Nutshell
Custom fields on Person
1:1Cliniko invoices have no direct Nutshell equivalent — Nutshell lacks a native billing module. Invoice total, balance outstanding, and last payment date migrate as custom currency fields on the Person record (Total_Invoiced__c, Balance_Due__c, Last_Payment_Date__c). Individual invoice line items are not separately represented; summarized totals preserve the financial picture.
Cliniko
Payment
Nutshell
Custom fields on Person
1:1Individual payments on invoices attach to the patient as custom date and currency fields (Last_Payment_Amount__c, Last_Payment_Date__c). Payment history is summarized — detailed transactional payment log is preserved in the Cliniko export file for reference but does not map to individual Nutshell records.
Cliniko
Product / Service
Nutshell
Custom field or Deal Line Item
1:1Cliniko products and services (billable items linked to appointments) have no direct Nutshell equivalent. Frequently billed service types migrate as a custom picklist on the Person record (Primary_Service_Type__c) representing the most common service delivered to that patient. Detailed product catalog does not map into Nutshell's CRM model.
Cliniko
Third-Party Company (Insurance / Referral)
Nutshell
Company
1:1Cliniko third-party companies (insurance carriers, referral sources) map to Nutshell Company records. Company name, address, and phone carry over. Insurance carrier-specific data (policy number, group number) stored as custom fields on the associated Person record since Nutshell Companies cannot store patient-specific insurance details.
Cliniko
Appointment Type
Nutshell
Custom picklist on Activity
1:1Cliniko appointment types such as Initial Consultation, Follow-up, and Treatment sessions represent distinct service categories within the scheduling workflow. These appointment types require mapping to a custom picklist field (Appointment_Type__c) created on the Nutshell Activity object. During the discovery phase, we enumerate the complete appointment type list from Cliniko and perform value-by-value mapping to ensure each activity lands with the correct classification in Nutshell. This mapping preserves the categorical context of each appointment while adapting it to Nutshell's data model.
Cliniko
Location
Nutshell
Custom field on Activity
1:1Cliniko locations (clinic sites, rooms) have no native Nutshell equivalent. Location name migrates as a custom text field on the Activity record (Clinic_Location__c). If Nutshell locations correspond to distinct business units, they can alternatively be modeled as Nutshell Companies for segmentation.
Cliniko
Patient Attachment / File
Nutshell
Nutshell Attachments
1:1Files attached to Cliniko patient records including forms, imaging files, and signed documents are downloaded from the Cliniko system and re-uploaded as Nutshell attachments on the corresponding Person record. This preserves the document context alongside the patient record. File size limitations apply as part of Nutshell's platform constraints — the system handles standard document sizes appropriately, but very large files exceeding platform limits are flagged for manual review and alternative handling during the migration process.
Cliniko
Treatment Note / Chart
Nutshell
Note on Person
1:1Cliniko treatment notes and chart documentation contain clinical data that has no CRM equivalent in Nutshell. These records are exported as standalone files and attached to the Person record as reference documents. Clinical content is preserved but not searchable within Nutshell's standard fields — this is a known limitation disclosed before migration commits.
| Cliniko | Nutshell | Compatibility | |
|---|---|---|---|
| Patient | Person1:1 | Fully supported | |
| Practitioner | User1:1 | Fully supported | |
| Appointment | Activity (Task / Event)1:1 | Fully supported | |
| Invoice | Custom fields on Person1:1 | Fully supported | |
| Payment | Custom fields on Person1:1 | Fully supported | |
| Product / Service | Custom field or Deal Line Item1:1 | Fully supported | |
| Third-Party Company (Insurance / Referral) | Company1:1 | Fully supported | |
| Appointment Type | Custom picklist on Activity1:1 | Fully supported | |
| Location | Custom field on Activity1:1 | Fully supported | |
| Patient Attachment / File | Nutshell Attachments1:1 | Fully supported | |
| Treatment Note / Chart | Note on Person1:1 | Fully supported |
Gotchas + challenges
Platform-specific issues from each side, plus the pair-specific challenges that don't show up on either platform's page on its own.
Cliniko gotchas
Background export generation delays for large datasets
Charts export is separate from the main data panel
API key permissions gate record visibility
Form template configurations do not export
The old Appointments export has been deprecated
Nutshell gotchas
Contact tier limits enforced on import
No bulk API endpoint requires paginated extraction
Email sequences not exportable via API
Foundation plan disables key sales features
Pair-specific challenges
Migration approach
Extract Cliniko data via administrative export and API
FlitStack initiates the migration by accessing Cliniko's administrative data export tools and REST API. We export patient records (full demographics, custom patient properties, notes, attachments), appointment history (all appointments with type, status, practitioner, location, and timestamps), invoice and payment summaries, product/service catalog, third-party companies, and practitioner user list. Cliniko requires Administrator-role access for full data export. We request export generation during off-peak hours since large exports can take 30-60 minutes for practices with extensive history.
Create Nutshell custom fields for healthcare-specific data
Before any data lands in Nutshell, we create the custom fields required to hold Cliniko data that has no native CRM equivalent. This includes Appointment_Type__c (picklist) on Tasks, Clinic_Location__c (text) on Tasks, Total_Invoiced__c (currency) on Person, Balance_Due__c (currency) on Person, Insurance_Policy_Number__c (text) on Person, Insurance_Group_Number__c (text) on Person, Cliniko_Patient_ID__c (text) on Person, Original_Create_Date__c (datetime) on Person and Task, and Last_Payment fields on Person. Custom field creation is performed by your Nutshell admin or delegated to FlitStack via API.
Resolve practitioners and invite unmatched users
We cross-reference the Cliniko practitioner list against existing Nutshell users by email address. Practitioners with matching Nutshell accounts are mapped directly — their appointments and patient associations resolve to their Nutshell user IDs. Practitioners without Nutshell accounts are flagged in the pre-migration report. Your team decides whether to invite them as Nutshell users before migration or reassign their records to a designated fallback owner. This step gates the migration start date; unresolved practitioners delay field mapping for their associated records.
Run sample migration with field-level diff
A representative slice of Cliniko data migrates first — typically 100-500 patient records spanning different appointment types, invoice statuses, and practitioner assignments. We generate a field-level diff comparing source Cliniko values against the destination Nutshell fields so you can verify appointment type mapping, invoice field population, owner resolution, and custom field creation before the full run commits. Any mapping adjustments (value mapping for appointment types, owner reassignment) are applied before the production migration executes.
Execute full migration with delta-pickup window
The full Cliniko dataset migrates into Nutshell. Patients land first as Nutshell People records, then appointments link via person associations, then invoice summaries and insurance data attach to each Person record. A delta-pickup window of 24-48 hours runs after the bulk migration, capturing any appointments booked, payments recorded, or patient records updated in Cliniko during the cutover period. Audit log records every operation. If reconciliation fails — missing person associations, appointment type values outside the picklist — one-click rollback reverts the Nutshell state to pre-migration.
Platform deep dives
Cliniko
Source
Strengths
Weaknesses
Nutshell
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 1 of 8 objects need a mapping; the rest are 1:1.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Cliniko and Nutshell.
Object compatibility
1 of 8 objects need a mapping; the rest are 1:1.
Field mapping clarity
Field mapping is derived from defaults — final spec confirmed during the sample migration.
Timeline complexity
8-object category — typical timelines run 2–7 days end-to-end.
API constraints
Cliniko: Not publicly documented in the OpenAPI schema or public help docs.
Data volume sensitivity
Cliniko doesn't expose a bulk API — REST + parallelization used for high-volume runs.
Estimator
Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.
Step 1
Pick a category, then your source and destination platforms.
Category
FAQ
Answers to the questions buyers ask most during Cliniko to Nutshell migration scoping. Not seeing yours? Book a call.
Walk through your Cliniko to Nutshell migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave Cliniko
Other ways to arrive at Nutshell
Ready when you are
Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.