CRM migration
Field-level mapping, validation, and rollback between Nookal and HubSpot. We move data and schema; workflows are rebuilt natively in HubSpot.
Nookal
Source
HubSpot
Destination
Compatibility
10 of 10
objects map 1:1 between Nookal and HubSpot.
Complexity
BStandard
Timeline
48–72 hours
Overview
Nookal organizes patient data around appointments, practitioners, and Medicare/PBS claiming for allied health practices. HubSpot organizes around contacts, companies, deals, and lifecycle stages with a separate marketing-contact billing model. FlitStack AI migrates Nookal patients to HubSpot contacts, appointments to activity engagements (meetings and tasks), practitioners to HubSpot owners, and location data to HubSpot companies. Medicare numbers, health fund memberships, appointment types, and custom clinical fields migrate as HubSpot custom properties on the contact record or engagement timeline. Nookal's practitioner notes and patient clinical documentation map to contact-level custom properties or the engagement timeline. The migration runs against Nookal's read-only API, preserving referential integrity by sequencing parent objects before child objects—locations first, then patients, then appointments. A sample migration with field-level diff validates the mapping before the full run commits. Workflows, automations, and Medicare-claiming configurations do not migrate and must be rebuilt in HubSpot's automation tools or reconfigured with your Medicare provider.
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 Nookal 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.
Nookal
Patient
HubSpot
Contact
1:1Nookal patients map 1:1 to HubSpot contacts. The patient's primary email, phone, and address fields map directly to HubSpot's standard contact properties. Original create dates and update timestamps are preserved as custom datetime fields on the contact record to maintain audit trails for compliance and reporting continuity.
Nookal
Practitioner
HubSpot
User
1:1Nookal practitioners resolve to HubSpot users by email match. The practitioner name becomes the HubSpot user's display name, and their role in Nookal (physiotherapist, podiatrist, etc.) migrates as a custom text property for reporting and filtering. Unmatched practitioners are flagged before migration so your team can create HubSpot user accounts or assign a fallback owner.
Nookal
Appointment
HubSpot
Meeting / Task
1:1Scheduled appointments with a start time map to HubSpot Meetings on the contact timeline. To-do items or appointment notes without a specific time map to HubSpot Tasks. Each engagement carries the original appointment date, duration, type, practitioner attribution, and location as metadata on the engagement record.
Nookal
Location / Practice
HubSpot
Company
1:1Nookal practice locations map to HubSpot companies. The location name becomes the company name, and the address, phone, and website fields map directly to HubSpot company properties. Multi-location practices create multiple HubSpot company records linked to practitioner-user records and patient contacts.
Nookal
Invoice
HubSpot
Deal
1:1Nookal invoices with a total amount map to HubSpot deals with the invoice total as the deal amount. The invoice status (paid, pending, overdue) maps to deal stage via value-mapping. Each deal links to the contact (patient) and company (location) created earlier in the migration sequence for complete record association.
Nookal
Medicare Number
HubSpot
Custom Property on Contact
1:1HubSpot has no native field for Australian Medicare numbers. FlitStack creates a custom text property (Medicare_Number__c) on the contact object and migrates each patient's Medicare number from Nookal. The same applies to DVA card numbers if present in your Nookal patient records.
Nookal
Private Health Fund
HubSpot
Custom Property on Contact
1:1Health fund name and membership number migrate as custom text properties on the HubSpot contact. If Nookal stores multiple fund affiliations per patient, additional custom properties are created or the data is concatenated into a single field per your specification.
Nookal
Appointment Type
HubSpot
Custom Property on Engagement
1:1HubSpot engagements (meetings and tasks) do not have a native appointment-type field. FlitStack creates Appointment_Type__c on the engagement record so you can filter the activity timeline by service type such as initial consultation, follow-up, or specialist review in HubSpot reports and dashboards.
Nookal
Clinical Note
HubSpot
Note on Contact
1:1Nookal clinical notes associated with a patient map to HubSpot notes on the contact record. The original note date and practitioner attribution are preserved in the note metadata. Rich-text formatting is maintained where possible for clinical documentation integrity.
Nookal
Custom Patient Property
HubSpot
Custom Property on Contact
1:1Nookal custom properties on patient records including allergy information, emergency contacts, referral sources, intake form data, and clinic-specific fields map to HubSpot custom properties. FlitStack creates the HubSpot custom properties before the migration run and validates field types (text, number, date, dropdown) per Nookal's source data.
| Nookal | HubSpot | Compatibility | |
|---|---|---|---|
| Patient | Contact1:1 | Fully supported | |
| Practitioner | User1:1 | Fully supported | |
| Appointment | Meeting / Task1:1 | Fully supported | |
| Location / Practice | Company1:1 | Fully supported | |
| Invoice | Deal1:1 | Fully supported | |
| Medicare Number | Custom Property on Contact1:1 | Fully supported | |
| Private Health Fund | Custom Property on Contact1:1 | Fully supported | |
| Appointment Type | Custom Property on Engagement1:1 | Fully supported | |
| Clinical Note | Note on Contact1:1 | Fully supported | |
| Custom Patient Property | Custom Property on Contact1: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.
Nookal gotchas
Medicare 2.0 migration deadline is hard-gated
No public API forces reliance on built-in exports
Custom clinical note templates are account-specific
Medicare claiming groups tied to Provider Numbers restrict bulk migrations
Accounting sync does not export raw ledger data
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 Nookal data model and custom properties
FlitStack extracts a full schema inventory from your Nookal instance—patient fields, practitioner records, appointment types, location data, invoice structure, and all custom properties. We compare this against HubSpot's standard object model to identify which fields map directly, which require custom property creation, and which Nookal concepts (Medicare claiming, scheduling) have no HubSpot equivalent. This audit produces a field-mapping specification and a custom-field creation checklist for HubSpot before any data moves.
Create HubSpot custom fields and resolve practitioner-to-user mappings
Using the field-mapping specification, FlitStack creates all required HubSpot custom properties on the Contact, Company, and Deal objects—Medicare_Number__c, Health_Fund_Name__c, Health_Fund_Number__c, Appointment_Type__c, and any clinic-specific intake fields from Nookal. Simultaneously, practitioner email addresses from Nookal are matched against existing HubSpot users. Unmatched practitioners are flagged so your team can create HubSpot user accounts or assign a fallback owner before the migration run proceeds.
Migrate locations (companies) first, then patients (contacts), then appointments (engagements)
HubSpot requires a company record to exist before a contact can associate to it via the Company_ID field, and requires a contact to exist before engagements can link to it. FlitStack sequences the migration in dependency order: locations → companies, then patients → contacts with company association, then invoices → deals linked to contacts and companies, then appointments → meetings and tasks on the contact timeline. This sequencing ensures foreign keys resolve correctly at migration time.
Run a sample migration with field-level diff across 100–500 records
A representative slice migrates first—typically 100–500 patient records spanning multiple locations, appointment types, and invoice statuses. FlitStack generates a field-level diff showing source values from Nookal and destination values in HubSpot for every mapped field, including custom properties. You review the diff to confirm Medicare number mapping, practitioner attribution, and appointment-type categorization before the full run commits. Any mapping corrections happen at this stage at no additional cost.
Execute full migration with delta-pickup window and audit log
The full dataset migrates against HubSpot's Bulk API, respecting HubSpot's rate limits (150 requests per second) to avoid throttling. A delta-pickup window of 24–48 hours captures any Nookal records created or modified during the cutover period. FlitStack's audit log records every operation with timestamps, and one-click rollback reverts the HubSpot instance to its pre-migration state if reconciliation finds discrepancies that cannot be resolved automatically.
Platform deep dives
Nookal
Source
Strengths
Weaknesses
HubSpot
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 2 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 Nookal and HubSpot.
Object compatibility
2 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
Nookal: Not publicly documented.
Data volume sensitivity
Nookal 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 Nookal to HubSpot migration scoping. Not seeing yours? Book a call.
Walk through your Nookal 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 Nookal
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.