CRM migration
Field-level mapping, validation, and rollback between Cliniko and HubSpot. We move data and schema; workflows are rebuilt natively in HubSpot.
Cliniko
Source
HubSpot
Destination
Compatibility
10 of 11
objects map 1:1 between Cliniko and HubSpot.
Complexity
BStandard
Timeline
48–72 hours
Overview
Cliniko is a healthcare practice-management system built around patients, practitioners, appointments, treatment notes, and invoices. HubSpot CRM models contacts, companies, deals, and activities for sales, marketing, and service teams. The two platforms share no common object schema — every Cliniko entity requires a deliberate translation decision rather than a simple rename. FlitStack AI extracts patient demographics and contact details as HubSpot Contacts, appointment history as HubSpot Meetings with duration and practitioner ownership, and invoices as HubSpot Deals with financial amounts and statuses. Healthcare-specific data — medical alerts, blood type, treatment notes, and patient groups — migrates as HubSpot custom properties or Timeline Events, since HubSpot has no native clinical equivalent. Practitioners are resolved to HubSpot users by email match and become record owners. The migration carries everything Cliniko stores natively through its API. What cannot migrate are Cliniko appointment-reminder workflows and patient-follow-up sequences — those are scheduling automations with no HubSpot equivalent and must be rebuilt using HubSpot Sequences, Tasks, or Workflows. We deliver a rebuild-reference export alongside the migration so your team has a step-by-step map of every automation to recreate.
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 HubSpot, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Cliniko
Patient
HubSpot
Contact
1:1Cliniko patients map to HubSpot Contacts. All standard demographics — name, email, phone, address, date of birth — move as direct property mappings. Medical-specific fields like alerts and blood type require HubSpot custom contact properties since HubSpot has no native clinical field equivalent.
Cliniko
Practitioner
HubSpot
User (Owner)
1:1Cliniko practitioners are resolved to HubSpot users by email match and become record owners. A Cliniko practitioner record with email '[email protected]' matches a HubSpot user with the same email address. Unmatched practitioners are flagged before migration so your team can invite them to HubSpot or assign a fallback owner.
Cliniko
Appointment
HubSpot
Meeting
1:1Cliniko appointments map to HubSpot Meetings with original start and end times preserved. The HubSpot Meeting owner is set to the mapped practitioner user. Appointment status (arrived, completed, no-show) maps to HubSpot status properties. Appointment type, duration in minutes, and location are stored as custom meeting properties.
Cliniko
Treatment Note
HubSpot
Timeline Event / Note
1:1Cliniko treatment notes contain clinical documentation — SOAP notes, observations, prescriptions — with no HubSpot native equivalent. FlitStack AI maps treatment note text to HubSpot Timeline Events linked to the contact and practitioner, preserving the clinical context, date, and practitioner association. Long-form notes with structured sections may be flattened into a single rich-text Timeline Event for readability.
Cliniko
Invoice
HubSpot
Deal
1:1Cliniko invoices map to HubSpot Deals capturing the total invoice amount, balance due, invoice date, due date, and payment status. Each Deal is associated to the patient Contact. Invoice status (paid, overdue, written off) maps to HubSpot Deal stage values via value mapping.
Cliniko
Invoice Line Item
HubSpot
Product (associated to Deal)
1:manyCliniko invoices contain line items with individual products, quantities, unit prices, and taxes. HubSpot Deals hold a single total amount field — itemised line items do not map natively. FlitStack splits each Cliniko invoice line item into a HubSpot Product record associated to the Deal via a Deal Line Item custom object, preserving the product name, quantity, and unit price.
Cliniko
Referrer
HubSpot
Company
1:1Cliniko Referrers track referring practitioners or clinics that send patients. HubSpot has no referrer-specific object — referrers map to HubSpot Company records with a custom 'Referral_Source__c' flag property. Each Cliniko Referrer becomes a Company record; the patient record stores a reference to the referring company via HubSpot's company association.
Cliniko
Product / Billable Item
HubSpot
Product
1:1Cliniko products and billable items (treatments, session types, consumables) map directly to HubSpot Products. Product name, description, unit price, and active/inactive status translate cleanly. Products are associated to Deals via the Deal's line items after invoice mapping. Each HubSpot Product can be reused across multiple Deals, reflecting recurring services or bundled offerings, and enables granular revenue reporting by service line, inventory tracking, and integration with HubSpot's product catalog features.
Cliniko
Patient Custom Fields (alerts, blood_type, etc.)
HubSpot
Contact Custom Properties
1:1Cliniko allows custom fields on patient records for clinical data. HubSpot's standard Contact schema has no clinical fields. FlitStack AI creates HubSpot custom contact properties for every Cliniko patient custom field — alert flags, blood type, referral source, and any clinic-specific fields are recreated as HubSpot properties on the Contact record.
Cliniko
Practitioner Custom Fields
HubSpot
User Custom Properties
1:1If Cliniko stores practitioner-specific custom fields such as specialties, registration numbers, or clinical qualifications, these are recreated as HubSpot user custom properties. HubSpot does not expose user custom properties in the same way as contact properties — some practitioner data may be stored as a custom Contact property on a practitioner-specific stub contact record.
Cliniko
Patient Group
HubSpot
Static List
1:1Cliniko Patient Groups segment patients by classification — condition groups, program memberships, or practitioner caseloads. HubSpot has no direct patient-grouping object for clinical use. FlitStack AI converts Patient Groups into HubSpot Static Lists, where each group becomes a named list of HubSpot Contact IDs. Practitioner-specific groups are handled as separate lists or consolidated into a single practitioner-association custom property.
| Cliniko | HubSpot | Compatibility | |
|---|---|---|---|
| Patient | Contact1:1 | Fully supported | |
| Practitioner | User (Owner)1:1 | Fully supported | |
| Appointment | Meeting1:1 | Fully supported | |
| Treatment Note | Timeline Event / Note1:1 | Fully supported | |
| Invoice | Deal1:1 | Fully supported | |
| Invoice Line Item | Product (associated to Deal)1:many | Fully supported | |
| Referrer | Company1:1 | Fully supported | |
| Product / Billable Item | Product1:1 | Fully supported | |
| Patient Custom Fields (alerts, blood_type, etc.) | Contact Custom Properties1:1 | Fully supported | |
| Practitioner Custom Fields | User Custom Properties1:1 | Fully supported | |
| Patient Group | Static List1: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
HubSpot gotchas
Marketing Contacts billing model is migration-critical
Feature tier gating is not visible until onboarding
Mandatory onboarding fees inflate year-one cost
HubSpot CSV importer cannot migrate engagements or attachments
Custom objects require Enterprise and a pre-existing schema
Pair-specific challenges
Migration approach
Audit Cliniko data and present the object mapping plan
FlitStack AI extracts a full data inventory from Cliniko — patient count, practitioner count, appointment volume, treatment note count, invoice count, and a list of all custom fields and patient groups. We present an object-mapping plan that shows exactly which Cliniko entity becomes which HubSpot object, which custom fields are created, and which Cliniko features have no HubSpot equivalent and must be rebuilt. You approve the plan before any migration runs.
Resolve practitioners to HubSpot users by email
Every Cliniko practitioner must resolve to a HubSpot user who can own records. FlitStack AI matches practitioner email addresses against HubSpot user email addresses. Practitioners with no matching HubSpot user are flagged as 'unresolved' — your team either invites them to HubSpot before migration or assigns a fallback owner. No appointment or patient record lands in HubSpot without an assigned owner.
Set up HubSpot custom fields and Timeline Events
Before data lands, FlitStack AI creates the HubSpot custom contact properties (cliniko_medical_alert__c, cliniko_blood_type__c, cliniko_patient_id__c, etc.) and custom meeting properties (cliniko_appointment_type__c, hs_meeting_duration_minutes__c) needed for healthcare data that has no native HubSpot field. Treatment notes are configured as Timeline Events on the Contact record so practitioners can review clinical history inline in HubSpot. We deliver a schema setup checklist so your HubSpot admin can pre-create these fields if preferred.
Sequence the migration respecting foreign-key dependencies
HubSpot requires Contacts to exist before Deals can associate to them, and Meetings to exist before they can link to Contacts. FlitStack AI sequences the migration in dependency order: Companies (from Referrers), then Practitioners (resolved to users), then Patients (as Contacts with custom clinical properties), then Appointments (as Meetings with owner mapping), then Invoices (as Deals with line-item Products). This ordering ensures foreign keys resolve correctly on first pass without duplicate record creation.
Run a sample migration with field-level diff before full commit
A representative sample — typically 200–500 records spanning patients, appointments, practitioners, and invoices — migrates first. FlitStack AI generates a field-level diff showing every source value and its destination equivalent. You verify that medical alerts landed in cliniko_medical_alert__c, that appointment owners resolved to the correct practitioner, and that invoice amounts mapped to Deal amount. You approve the diff before the full migration commits.
Execute full migration with delta pickup and audit log
The full dataset migrates to HubSpot. A delta-pickup window (typically 24–48 hours) captures any Cliniko records created or modified during the cutover period — new patient sign-ups, appointment bookings, or invoice payments made in Cliniko while migration runs. FlitStack AI maintains a full audit log of every record created, updated, or skipped. If reconciliation fails, one-click rollback reverts the HubSpot environment to its pre-migration state. We deliver a post-migration report showing record counts per object and any unresolved mappings requiring manual follow-up.
Platform deep dives
Cliniko
Source
Strengths
Weaknesses
HubSpot
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 HubSpot.
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 HubSpot migration scoping. Not seeing yours? Book a call.
Walk through your Cliniko to HubSpot 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 HubSpot
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.