CRM migration

Migrate from Nookal to Salesforce Sales Cloud

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 logo

Nookal

Source

Salesforce Sales Cloud

Destination

Salesforce Sales Cloud logo

Compatibility

100%

12 of 12

objects map 1:1 between Nookal and Salesforce Sales Cloud.

Complexity

BStandard

Timeline

5–10 business days

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

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.

Field-level fidelity

Every standard and custom field arrives verified.

Schema-aware mapping

AI proposes the map; you confirm before any record moves.

Relationships preserved

Parent–child, lookups, and ownership stay linked.

Full activity history

Calls, emails, meetings — with original timestamps.

Attachments & notes

Documents, uploads, and inline notes move with the record.

Why teams make this switch

Two sides of the same decision

Leaving

Nookal logo

Nookal

What's pushing teams away

  • Feature scope is narrow; practices needing patient engagement beyond reminders, social messaging, or AI-powered intake chatbots must layer in additional tools.
  • Limited accounting depth — Nookal handles invoicing and payments but does not produce completed accounting records on its own, requiring Xero or QuickBooks to close the loop.
  • Absence of a documented public API means practices with complex custom integrations or developer-dependent workflows hit a ceiling and must migrate manually.
  • Patient engagement features lag competitors; no WhatsApp or social channel integration and no native AI chatbot for handling patient enquiries at scale.
  • Growing practices report outgrowing the platform's customisation surface when they need advanced custom objects, complex automation, or multi-location scalability beyond what Nookal provides.

Choosing

Salesforce Sales Cloud logo

Salesforce Sales Cloud

What's pulling them in

  • The AppExchange marketplace with 5,000+ prebuilt apps gives enterprises integrations for nearly every business workflow without custom development.
  • Native Einstein AI for lead scoring, opportunity insights, and predictive forecasting adds intelligence without a separate platform purchase.
  • Territory management, multi-currency support, and advanced forecasting satisfy the needs of complex B2B sales organizations with structured revenue teams.
  • Slack, Tableau, and CPQ are deeply integrated into the core platform, keeping the sales stack unified for teams already in the Salesforce ecosystem.
  • Organizations with a large, established Salesforce implementation choose it because switching costs — integrations, custom code, trained admins — are prohibitive.

Object mapping

How Nookal objects map to Salesforce Sales Cloud

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

maps to

Salesforce Sales Cloud

Contact

1:1
Fully supported

Nookal 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

maps to

Salesforce Sales Cloud

Account

1:1
Fully supported

Nookal 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

maps to

Salesforce Sales Cloud

User

1:1
Fully supported

Nookal 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

maps to

Salesforce Sales Cloud

Event

1:1
Fully supported

Nookal 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

maps to

Salesforce Sales Cloud

Custom Event Type field

1:1
Fully supported

Nookal 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

maps to

Salesforce Sales Cloud

Custom Invoice__c object

1:1
Fully supported

Salesforce 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

maps to

Salesforce Sales Cloud

Custom Payment__c object

1:1
Fully supported

Nookal 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

maps to

Salesforce Sales Cloud

Custom fields on Contact and Invoice__c

1:1
Fully supported

Nookal 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

maps to

Salesforce Sales Cloud

Custom Clinical_Note__c object or Note

1:1
Fully supported

Nookal 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

maps to

Salesforce Sales Cloud

Source_System_ID__c (custom field)

1:1
Fully supported

Every 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

maps to

Salesforce Sales Cloud

Contact (with custom Role field)

1:1
Fully supported

Nookal 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

maps to

Salesforce Sales Cloud

No equivalent

1:1
Fully supported

Nookal'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.

Gotchas + challenges

What specifically takes care here

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 logo

Nookal gotchas

High

Medicare 2.0 migration deadline is hard-gated

High

No public API forces reliance on built-in exports

Medium

Custom clinical note templates are account-specific

Medium

Medicare claiming groups tied to Provider Numbers restrict bulk migrations

Medium

Accounting sync does not export raw ledger data

Salesforce Sales Cloud logo

Salesforce Sales Cloud gotchas

High

Workflow Rules and Process Builder are retired

High

Bulk API batch quota exhaustion during large imports

Medium

Storage overage billing is non-obvious

Medium

Account-Contact many-to-many relationship mapping

Low

Territory and team member import ordering dependencies

Pair-specific challenges

  • Medicare provider numbers are Nookal practitioner properties that need custom User fields in Salesforce

    Nookal stores Medicare and DVA provider numbers on the practitioner record. Salesforce User objects have no standard field for provider numbers — a Medicare provider number in Nookal becomes a custom text field (Medicare_Provider_Number__c) on the Salesforce User record after migration. If your practice bills Medicare under multiple provider numbers, each practitioner needs their own User record with the correct provider number field populated. Your Salesforce admin must create these custom fields before the migration loads practitioner data.

  • Nookal appointment statuses require a custom Salesforce Event field — there is no native equivalent

    Nookal tracks appointment outcomes (Attended, No-Show, Cancelled, Did Not Attend) as native fields on the appointment record. Salesforce Events have a built-in Status field but it only supports Completed and Cancelled for calendar-type events — Attended and No-Show require a custom pick-list field (Appointment_Status__c) on the Event object. FlitStack surfaces this in the field-mapping plan and creates the custom field definition, but your Salesforce admin must add it to the appropriate page layout for practitioners to see it when reviewing historical appointments.

  • Medicare/DVA claim history is not automatically re-linkable in Salesforce

    Nookal's Medicare claiming integration tracks claim submissions, item numbers, and rebate amounts linked to specific appointments and patients. Salesforce has no native Medicare billing model — claim IDs, item numbers, and claim status are migrated as custom fields on the Invoice__c and Contact records. Re-submitting claims from Salesforce requires a separate Medicare integration app (e.g., Medicare Easyclaim API or a compatible AppExchange product) configured post-migration. The historical claim data is preserved for reporting but cannot be re-processed through Salesforce without additional integration work.

  • Nookal's Xero and QuickBooks sync connections do not migrate

    Nookal's integration with Xero and QuickBooks is configured at the account level — it syncs invoices, payments, and contacts based on Nookal IDs. Salesforce has no native Xero or QuickBooks connector in the base platform; teams must install a third-party AppExchange integration (such as中心 Salesforce for Xero or QuickBooks Integration) and rebuild the mapping between Salesforce Contacts and the accounting software's customer records. Invoice data migrated to the custom Invoice__c object must be manually linked to the new accounting integration's configuration.

  • Patient-to-practitioner appointment relationships require Event WhoId resolution

    Nookal links appointments directly to patients and practitioners via foreign keys. In Salesforce, Events use WhoId (Contact) and OwnerId (User) to represent these relationships. FlitStack maps the patient to WhoId and the practitioner to OwnerId during migration, but if a Nookal appointment has no patient or practitioner assigned (blank references), Salesforce Events require at minimum a WhoId or an OwnerId — unlinked appointments are flagged and resolved to a fallback Contact before the migration runs to avoid orphaned Event records.

Migration approach

Six steps for a successful Nookal to Salesforce Sales Cloud data migration

  1. 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.

  2. 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.

  3. 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.

  4. 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

Context on both ends of the pair

Nookal logo

Nookal

Source

Strengths

  • Per-practitioner pricing scales cost-effectively for small-to-mid allied health clinics with one to ten practitioners.
  • Native Medicare and DVA Online Claiming 2.0 eliminates the need for a separate claiming middleware for Australian health practices.
  • Accounting sync with Xero and QuickBooks keeps financial records up to date without manual re-entry.
  • Built-in diary, clinical notes, and practice reporting cover the core allied health workflow in a single platform.
  • Australian-focused product design includes My Health Record integration and Australian Immunisation Register support.

Weaknesses

  • No documented public REST API limits programmatic data extraction and makes automated migration more complex.
  • Accounting depth is shallow; Nookal handles invoicing and payments but relies on Xero or QuickBooks for completed financial records.
  • Feature set is narrower than multi-feature competitors; practices needing patient engagement, AI chatbots, or social messaging must layer in additional tools.
  • Custom field definitions and clinical note templates are not exposed in a public schema, requiring manual discovery during scoping.
  • Integration ecosystem beyond Xero, QuickBooks, and Medicare claiming is limited compared to larger practice management platforms.
Salesforce Sales Cloud logo

Salesforce Sales Cloud

Destination

Strengths

  • Largest enterprise app ecosystem in CRM with 5,000+ AppExchange integrations covering nearly every vertical workflow.
  • Native Einstein AI delivers lead scoring, opportunity insights, and predictive forecasting without a third-party layer.
  • Advanced territory management, multi-currency, and flexible forecasting satisfy complex B2B revenue structures.
  • Deep platform extensibility: Custom Objects, Apex, Flow, and the Metadata API allow full schema customization.
  • Well-documented REST API, Bulk API, and Composite API with published rate limits for programmatic migration.

Weaknesses

  • Pricing model is layered and opaque in practice: per-seat fees plus storage overages, add-on subscriptions, and annual uplifts compound to 30–40% above sticker price.
  • Workflow Rules and Process Builder are deprecated, forcing all orgs onto Salesforce Flow — a migration task that catches many teams by surprise.
  • Steep administrative complexity: meaningful configuration requires a dedicated Salesforce admin or consultant.
  • API rate limits are edition-gated (100k/day base for Enterprise) and easily exhausted by large historical imports without throttling.
  • Data export is exportable via Data Loader but preserving relationship integrity across 30+ objects requires careful ETL sequencing.

Complexity grading

How hard is this migration?

Standard CRM migration. 2 of 8 objects need a mapping; the rest are 1:1.

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across Nookal and Salesforce Sales Cloud.

  • Object compatibility

    B

    2 of 8 objects need a mapping; the rest are 1:1.

  • Field mapping clarity

    C

    Field mapping is derived from defaults — final spec confirmed during the sample migration.

  • Timeline complexity

    B

    8-object category — typical timelines run 2–7 days end-to-end.

  • API constraints

    B

    Nookal: Not publicly documented.

  • Data volume sensitivity

    B

    Nookal doesn't expose a bulk API — REST + parallelization used for high-volume runs.

Estimator

Estimate your Nookal to Salesforce Sales Cloud migration cost

Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.

Step 1

What are you migrating?

Pick a category, then your source and destination platforms.

Category

FAQ

Frequently asked questions about Nookal to Salesforce Sales Cloud data migrations

Answers to the questions buyers ask most during Nookal to Salesforce Sales Cloud migration scoping. Not seeing yours? Book a call.

Can't find your answer?

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 consultation

Most Nookal-to-Salesforce migrations complete in 5–10 business days for under 5,000 patient records. Larger setups with 5,000–50,000 records, complex custom-field configurations, or historical invoice data requiring the custom Invoice__c object extend to 3–6 weeks. The longest single step is typically the Salesforce custom-field creation phase — your admin creates the Medicare provider-number, appointment-status, and invoice-status fields before data validation begins.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Nookal.
Land in Salesforce Sales Cloud, intact.

Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.

Accuracy guarantee Rollback included Quote in 1 business day