CRM migration
Field-level mapping, validation, and rollback between Nookal and Salesforce Sales Cloud. We move data and schema; workflows are rebuilt natively in Salesforce Sales Cloud.
Nookal
Source
Salesforce Sales Cloud
Destination
Compatibility
12 of 12
objects map 1:1 between Nookal and Salesforce Sales Cloud.
Complexity
BStandard
Timeline
5–10 business days
Overview
Nookal organizes allied-health practice data around patients, practitioners, and appointments with a flat relational structure. Salesforce Sales Cloud uses an Account-Contact-Opportunity model with record types, custom fields, and sharing rules that require explicit foreign-key resolution. FlitStack AI extracts Nookal records via the platform API, maps patient records to Salesforce Contacts linked to an Account representing the clinic, maps practitioner data to Salesforce Users with custom provider-number fields, and maps appointments to Salesforce Events. Nookal Medicare claiming fields (provider numbers, item numbers, patient insurance references) have no native Salesforce equivalent — FlitStack migrates these as custom fields and surfaces them for manual rebuild or integration work. Invoices are mapped to a custom Salesforce Invoice object. Workflows, automations, Medicare integrations, and Xero/QuickBooks sync links do not migrate and must be rebuilt post-migration. A test migration with field-level diff validates mapping before the full run commits; a 24–48h delta-pickup window captures any records modified in Nookal during cutover.
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 Salesforce Sales Cloud, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Nookal
Patient
Salesforce Sales Cloud
Contact
1:1Nookal patient records map 1:1 to Salesforce Contact records. The clinic itself is represented as a Salesforce Account; each Contact's AccountId links to that Account. Patients without a clinic association land on a default Account or one Account per Nookal location.
Nookal
Clinic / Location
Salesforce Sales Cloud
Account
1:1Nookal location records map to Salesforce Account records representing the clinic or practice. If Nookal has a single location, one Account is created; multiple locations create multiple Account records with the Nookal location ID preserved in a custom field for reconciliation.
Nookal
Practitioner
Salesforce Sales Cloud
User
1:1Nookal practitioners who log in to the system map to Salesforce User records. Their Medicare provider numbers, AHPRA registration numbers, and specialisation fields have no Salesforce User standard field equivalent — these migrate as custom text fields (Provider_Number__c, Registration_Number__c, Specialisation__c).
Nookal
Appointment
Salesforce Sales Cloud
Event
1:1Nookal appointment records map to Salesforce Event records. The practitioner becomes the Event Owner (UserId); the patient becomes the WhoId (Contact lookup). Appointment type, session length, and cancellation reason migrate as custom fields on Event since those are Nookal-specific properties.
Nookal
Appointment Type / Session
Salesforce Sales Cloud
Custom Event Type field
1:1Nookal appointment types (Initial Consultation, Standard Review, Telehealth, etc.) are mapped to a custom pick-list field (Appointment_Type__c) on the Event. Each unique Nookal type is created as a pick-list value; Salesforce admins confirm the final value set before migration runs.
Nookal
Invoice
Salesforce Sales Cloud
Custom Invoice__c object
1:1Salesforce has no native invoice object. FlitStack creates a custom Invoice__c object with fields for invoice number, date, due date, total amount, GST amount, status, and a link to the patient Contact. Invoice status values are mapped from Nookal (Paid, Pending, Overdue) to Salesforce pick-list values on the custom object.
Nookal
Payment
Salesforce Sales Cloud
Custom Payment__c object
1:1Nookal payment records map to a custom Payment__c object with a lookup to the Invoice__c record, payment method, amount, date, and Nookal payment ID. If the Nookal setup uses partial payments, each partial payment creates a separate Payment__c record linked to the same invoice.
Nookal
Medicare / DVA Claim
Salesforce Sales Cloud
Custom fields on Contact and Invoice__c
1:1Nookal Medicare/DVA claiming data — including claim ID, item numbers billed, provider number used, and claim status — has no Salesforce equivalent. These are migrated as custom fields on the relevant Contact (patient insurance reference) and Invoice__c (claim linkage). Medicare 2.0 compatibility fields are also surfaced as custom fields for re-integration planning.
Nookal
Clinical Note
Salesforce Sales Cloud
Custom Clinical_Note__c object or Note
1:1Nookal clinical notes (treatment notes, SOAP notes, assessment records) are migrated to a custom Clinical_Note__c object with a lookup to the Contact (patient) and Event (appointment). Rich-text note content is stored in a Long Text Area field. If the note volume is low, Salesforce Notes are used instead.
Nookal
Nookal ID / Internal Reference
Salesforce Sales Cloud
Source_System_ID__c (custom field)
1:1Every migrated record receives a Source_System_ID__c text field storing the Nookal internal ID. This field enables delta-run de-duplication (if a record is re-processed, FlitStack matches on this ID rather than creating duplicates), audit traceability, and reconciliation between the Nookal export and Salesforce destination.
Nookal
Referrer / Referring Provider
Salesforce Sales Cloud
Contact (with custom Role field)
1:1Nookal referrer records (external practitioners who refer patients) map to Salesforce Contact records with a custom Referrer_Type__c pick-list field set to 'External Referrer'. These Contacts are linked to patient Contacts via a custom junction object or the Account Contact Relation.
Nookal
Xero / QuickBooks Sync Link
Salesforce Sales Cloud
No equivalent
1:1Nookal's accounting software sync connections are platform-level configurations, not data records. These do not migrate. The invoice and payment data they reference is already migrated to custom Salesforce objects. Teams must configure a fresh Xero or QuickBooks connector in Salesforce post-migration.
| Nookal | Salesforce Sales Cloud | Compatibility | |
|---|---|---|---|
| Patient | Contact1:1 | Fully supported | |
| Clinic / Location | Account1:1 | Fully supported | |
| Practitioner | User1:1 | Fully supported | |
| Appointment | Event1:1 | Fully supported | |
| Appointment Type / Session | Custom Event Type field1:1 | Fully supported | |
| Invoice | Custom Invoice__c object1:1 | Fully supported | |
| Payment | Custom Payment__c object1:1 | Fully supported | |
| Medicare / DVA Claim | Custom fields on Contact and Invoice__c1:1 | Fully supported | |
| Clinical Note | Custom Clinical_Note__c object or Note1:1 | Fully supported | |
| Nookal ID / Internal Reference | Source_System_ID__c (custom field)1:1 | Fully supported | |
| Referrer / Referring Provider | Contact (with custom Role field)1:1 | Fully supported | |
| Xero / QuickBooks Sync Link | No equivalent1: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
Salesforce Sales Cloud gotchas
Workflow Rules and Process Builder are retired
Bulk API batch quota exhaustion during large imports
Storage overage billing is non-obvious
Account-Contact many-to-many relationship mapping
Territory and team member import ordering dependencies
Pair-specific challenges
Migration approach
Extract Nookal data via API and build the Salesforce schema plan
FlitStack connects to Nookal using scoped read access to export all patients, practitioners, appointments, invoices, payments, and clinical notes. We simultaneously generate a Salesforce field-creation checklist from the Nookal custom-field inventory — this identifies every Medicare field, insurance reference, and practitioner provider number that needs a custom __c field on Contact, User, Event, or the custom Invoice__c object. Your Salesforce admin creates these fields in the sandbox before validation begins.
Map and validate object relationships before loading
The migration sequence is critical: Account records (clinics) must load before Contacts (patients), and Contact records must exist before Events (appointments) can reference them via WhoId. FlitStack sequences the migration to respect Salesforce's foreign-key requirements and flags any Nookal records with missing references (e.g., appointments with no patient) before any data is written to Salesforce. Unresolved references are assigned to a placeholder Contact or held for manual resolution.
Run sample migration with field-level diff
A representative sample of typically 100–500 records covering patients, practitioners, appointments, and invoices migrates into a Salesforce sandbox first. FlitStack generates a field-level diff comparing source values to destination values so you can verify that Medicare numbers, appointment statuses, invoice amounts, and patient contact details are all correctly mapped before the full migration run commits any data. This diff highlights any discrepancies, missing fields, or formatting issues, allowing you to make adjustments before the complete migration begins.
Execute full migration with delta-pickup window
After sample validation, the full Nookal dataset migrates to Salesforce. A delta-pickup window of 24–48 hours runs alongside the migration to capture any records created or modified in Nookal during the cutover period. All operations are recorded in an audit log; if reconciliation reveals unexpected gaps, FlitStack provides a one-click rollback to the pre-migration state so the cutover can be retried without data loss.
Platform deep dives
Nookal
Source
Strengths
Weaknesses
Salesforce Sales Cloud
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 Salesforce Sales Cloud.
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 Salesforce Sales Cloud migration scoping. Not seeing yours? Book a call.
Walk through your Nookal to Salesforce Sales Cloud 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 Salesforce Sales Cloud
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.