CRM migration
Field-level mapping, validation, and rollback between Nookal and Nutshell. We move data and schema; workflows are rebuilt natively in Nutshell.
Nookal
Source
Nutshell
Destination
Compatibility
11 of 12
objects map 1:1 between Nookal and Nutshell.
Complexity
BStandard
Timeline
24–48 hours
Overview
Nookal is a practice-management platform purpose-built for Australian allied health clinics — it handles patient records, practitioner schedules, appointment confirmations, Medicare and DVA bulk-billing claims, Xero and QuickBooks accounting sync, and per-practitioner pricing. Nutshell is a sales CRM that organizes data around People, Companies, Leads, and Deals with activity tracking and pipeline management. The two platforms share a contact-centric data model at the Person level, but Nookal's practice operations — appointments, invoices, payments, clinical notes, practitioner-to-location assignments — have no direct Nutshell equivalent and must map to a combination of Activities, custom fields on Person records, and Deal-level reference fields. FlitStack AI extracts Nookal data via the platform's API and translates each record type into Nutshell's schema. Patient records migrate to Nutshell People with all standard fields preserved plus Nookal-specific custom fields for Medicare number, practitioner ID, location ID, and clinical notes. Appointments become Activities (Tasks) with custom fields holding appointment type, practitioner name, status, and the Nookal appointment ID. Invoices and payments migrate as custom fields on the associated Person record and as Deal-level reference fields, since Nutshell has no native billing or invoicing object. Practitioners from Nookal map to Nutshell Users by email match, with a Practitioner__c flag custom field distinguishing staff from patient contacts. Automations do not migrate. Nookal's Medicare compliance reminders, appointment confirmation sequences, and per-practitioner scheduling workflows are practice-specific and must be rebuilt in Nutshell's workflow tools. FlitStack exports Nookal's workflow definitions as a rebuild reference for your Nutshell admin. A sample migration with field-level diff runs first; then a full migration with 24–48h delta pickup captures any records created in Nookal 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 Nookal 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.
Nookal
Patient
Nutshell
Person
1:1Nookal patients map directly to Nutshell People. All standard contact fields — name, email, phone, address — transfer as-is. Nookal-specific fields (Medicare number, date of birth, referring practitioner ID) migrate to custom fields on the Person record. The Nookal patient ID is preserved as a custom field for reconciliation and delta-run deduplication.
Nookal
Practitioner
Nutshell
User + Person (flagged)
many:1Nookal practitioners resolve to Nutshell Users by email match so their appointment assignments and invoice ownership map correctly. Each practitioner also creates a flagged Person record (Practitioner__c = true) so their contact details are accessible within Nutshell's CRM view alongside patient records. If a practitioner email has no matching Nutshell user, the record is flagged before migration so the team can create the account or assign a fallback owner.
Nookal
Location
Nutshell
Company + custom fields
1:1Nookal locations map to Nutshell Companies using the location's business name and address. Since Nutshell has no native locations object, the Nookal location ID, location type, and practitioner roster for each location are stored as custom fields on the Company record. Each practitioner record also carries a Location_ID__c custom field referencing the Nookal location, preserving the practitioner-to-location relationship.
Nookal
Appointment
Nutshell
Task (Activity)
1:1Nookal appointments become Nutshell Tasks linked to the associated Person record. Custom fields on the Task hold appointment type, practitioner name (resolved from the practitioner ID), appointment status (confirmed, cancelled, no-show), start and end time, and the Nookal appointment ID. The original appointment timestamp is preserved so historical activity reporting in Nutshell reflects the actual appointment date.
Nookal
Invoice
Nutshell
Custom fields on Person + Deal reference
1:1Nookal invoices have no native Nutshell equivalent — Nutshell has no invoicing object. Invoice ID, invoice number, invoice date, due date, total amount, amount paid, and payment status all migrate as custom fields on the associated Person record. Where a Nookal appointment or session links to an invoice, a Deal record is created in Nutshell with the invoice amount as the deal value and a Nookal_Invoice_ID__c custom field linking back to the source record.
Nookal
Payment
Nutshell
Custom fields on Person
1:1Nookal payment records — payment ID, payment date, amount, and payment method — migrate as custom fields on the Person record, alongside the related invoice custom fields. Since Nutshell has no native payments sub-object, all payment history is stored in field-level custom fields on the person, with the most recent payment date surfaced as a summary field for quick reference.
Nookal
Clinical Note
Nutshell
Custom field on Person (large text)
1:1Nookal clinical notes (SOAP format, treatment plans, practitioner observations) have no equivalent in Nutshell's CRM model. The full note content migrates as a large-text custom field (Clinical_Notes__c) on the Person record, preserving the original note text and practitioner attribution. Nookal's structured note date and practitioner ID are stored alongside in separate custom fields for audit purposes.
Nookal
Referral Source
Nutshell
Custom field on Person
1:1Nookal tracks referral source for each patient as a standard field. This migrates to a custom pick-list or text field (Referral_Source__c) on the Nutshell Person record, preserving the original value so referral-source reporting can be rebuilt in Nutshell's segmentation and activity views.
Nookal
Appointment Status
Nutshell
Custom field on Task
1:1Nookal appointment statuses (Confirmed, Cancelled, Rescheduled, No-show, Completed) map to a custom pick-list field (Appointment_Status__c) on the Nutshell Task. Each Nookal status value is mapped individually to the corresponding Nutshell custom-field value so status-based reporting and filtering work identically in the destination.
Nookal
Invoice Status
Nutshell
Custom field on Person
1:1Nookal invoice statuses (Draft, Sent, Paid, Overdue, Cancelled) map to a custom pick-list (Invoice_Status__c) on the Person record. The value mapping is applied per status so reporting on outstanding invoices, payment rates, and overdue accounts can be rebuilt using Nutshell's built-in filtering without custom report logic.
Nookal
Product / Service Item
Nutshell
Product
1:1Nookal service items and products used in invoicing migrate to Nutshell Products. Each product record carries the Nookal product ID as a custom field. If the Nookal setup uses specific pricing tiers or billing categories per service type, those map as custom fields on the Nutshell Product record.
Nookal
Nookal User (admin)
Nutshell
User
1:1Nookal administrative users with no direct patient or appointment association resolve to Nutshell Users by email match. Their Nookal user ID is stored as a custom field on the Nutshell User record for traceability. Unmatched users are flagged before migration so the team can create Nutshell accounts or reassign records to a fallback owner.
| Nookal | Nutshell | Compatibility | |
|---|---|---|---|
| Patient | Person1:1 | Fully supported | |
| Practitioner | User + Person (flagged)many:1 | Fully supported | |
| Location | Company + custom fields1:1 | Fully supported | |
| Appointment | Task (Activity)1:1 | Fully supported | |
| Invoice | Custom fields on Person + Deal reference1:1 | Fully supported | |
| Payment | Custom fields on Person1:1 | Fully supported | |
| Clinical Note | Custom field on Person (large text)1:1 | Fully supported | |
| Referral Source | Custom field on Person1:1 | Fully supported | |
| Appointment Status | Custom field on Task1:1 | Fully supported | |
| Invoice Status | Custom field on Person1:1 | Fully supported | |
| Product / Service Item | Product1:1 | Fully supported | |
| Nookal User (admin) | User1: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
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
Discovery: inventory Nookal data and design the Nutshell custom-field schema
FlitStack AI connects to Nookal via the platform's API and pulls a full data inventory — patient records, practitioner profiles, locations, appointments, invoices, payments, and clinical notes. We count records per type, identify custom fields in use, and flag any Nookal-specific data (Medicare numbers, bulk-bill flags, practitioner-to-location assignments) that requires custom-field creation in Nutshell. The output is a Nutshell custom-field schema design: fields to create on the Person object, fields to create on the Task object, and fields to create on the Company and Deal objects. Your Nutshell admin creates these fields before the migration run so the schema is ready when data lands.
Resolve Nookal practitioners to Nutshell users by email
Nookal practitioners and administrative users are matched to Nutshell Users by email address. This is the critical step for appointment ownership and invoice attribution — every appointment in Nookal carries a practitioner ID, and that ID must resolve to a Nutshell User so the Task's owner field populates correctly. Unmatched practitioner emails are flagged before migration so the team can create Nutshell user accounts or assign a fallback owner. Patient records do not require user resolution; they migrate directly to Nutshell People.
Migrate locations and practitioners before appointments and invoices
Nookal's data has foreign-key dependencies: appointments reference practitioners and locations, and invoices reference patients. We sequence the migration to resolve these dependencies correctly — locations map to Nutshell Companies first, then practitioners resolve to Nutshell Users and flagged Person records, then patients map to Nutshell People, then appointments map to Tasks with practitioner owner and location reference fields, and finally invoices and payments migrate as custom fields on the associated Person records. Running this sequence in the wrong order would leave orphaned records or failed foreign-key lookups.
Run a sample migration with field-level diff
A representative slice migrates first — typically 50–100 patient records, a sample of appointments spanning different practitioners and locations, and a few invoice records. We generate a field-level diff between the Nookal source values and the Nutshell destination values so you can verify that Medicare numbers, appointment statuses, invoice amounts, and clinical note content all transferred correctly. Any mapping errors are corrected before the full run commits. This step also validates that custom fields on the Task object (appointment type, practitioner name, location name) are displaying correctly in Nutshell's UI.
Full migration with delta-pickup and final reconciliation
The full migration runs against Nutshell's API with all record types in the validated sequence. During the migration, Nookal remains fully operational — FlitStack uses scoped read access so your team can keep booking appointments and processing invoices in Nookal. A delta-pickup window (24–48 hours after the full run completes) captures any records created or modified during the cutover. An audit log records every operation. One-click rollback is available if the reconciliation count does not match. After delta-pickup and reconciliation, the Nookal account is locked from further data entry and the team transitions to Nutshell as the system of record.
Platform deep dives
Nookal
Source
Strengths
Weaknesses
Nutshell
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 Nutshell.
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 Nutshell migration scoping. Not seeing yours? Book a call.
Walk through your Nookal 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 Nookal
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.