CRM migration
Field-level mapping, validation, and rollback between My Practice Now and Zoho CRM. We move data and schema; workflows are rebuilt natively in Zoho CRM.
My Practice Now
Source
Zoho CRM
Destination
Compatibility
11 of 12
objects map 1:1 between My Practice Now and Zoho CRM.
Complexity
BStandard
Timeline
3–5 days
Overview
My Practice Now organizes data around the private-practice client lifecycle: clients, scheduled sessions, therapist notes, invoicing, and recurring billing. Zoho CRM is a generalized CRM that models data around Leads, Contacts, Accounts, Potentials, Tasks, and Events — with a Custom module for domain-specific extensions. FlitStack AI bridges that structural gap by extracting My Practice Now records via scoped API read, then mapping each entity into the closest Zoho CRM module, creating custom fields for practice-specific attributes that have no native equivalent, and attaching session notes and invoice references as Zoho Notes or custom fields on the contact record. Workflows, appointment reminders, and billing automations are not migratable — FlitStack exports the My Practice Now workflow definitions as a rebuild reference for your Zoho admin to reconstruct in Blueprint or workflow rules. The migration runs as a sequenced API load: first Accounts and Contacts, then Events for session history, then custom-field data, with a 24–48 hour delta window capturing in-flight changes before go-live.
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 My Practice Now object lands in Zoho CRM, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
My Practice Now
Client
Zoho CRM
Contact
1:1My Practice Now clients map directly to Zoho CRM Contacts. First name, last name, email, phone, address, and date of birth transfer as native Contact fields. Therapist assignments and referral-source data become custom fields on the Contact record since Zoho has no native therapist field.
My Practice Now
Client (intake status)
Zoho CRM
Lead
1:manyClients in an active intake or enquiry status with no session booked yet route to Zoho CRM Lead. Once a first session is scheduled and confirmed, FlitStack converts the Lead to a Contact. The split prevents duplicate records and keeps Zoho's Lead/Contact lifecycle intact.
My Practice Now
Client Company / Organization
Zoho CRM
Account
1:1When My Practice Now stores an organization name on a client record (e.g., for corporate EAP clients), it maps to Zoho CRM Account. The Account Name, Website, and Industry fields are populated. Individual client Contacts are then linked to the Account via Account Name matching.
My Practice Now
Session / Appointment
Zoho CRM
Event
1:1My Practice Now sessions map to Zoho CRM Events. Session date and start/end time become Event start_datetime and end_datetime. Therapist name, session type, and location populate custom fields on the Event. Recurring weekly sessions generate individual Event records — a custom Recurring_Session_Flag__c field marks sessions that were part of a recurring series in My Practice Now.
My Practice Now
Session Note / Clinical Note
Zoho CRM
Note
1:1Session notes from My Practice Now attach as Zoho Notes linked to the corresponding Contact and Event. FlitStack extracts the note body, title, and creation timestamp, preserving the original author. Rich-text formatting is preserved where the source format supports it.
My Practice Now
Invoice
Zoho CRM
Invoice (module)
1:1My Practice Now invoices map to Zoho CRM Invoices. Invoice number, date, amount, payment status, and line items transfer as Invoice records linked to the Contact. Tax amounts, discounts, and billing address map to their respective Invoice fields. Partial payments are recorded as Invoice Payment records in Zoho.
My Practice Now
Service / Session Type
Zoho CRM
Product
1:1My Practice Now service definitions (e.g., 'Initial Intake 60 min', 'Follow-up 45 min', 'Group Session') map to Zoho CRM Products. Unit price on the Product record matches the My Practice Now service rate. The Product is linked to the Invoice line items, enabling revenue reporting by service type in Zoho analytics.
My Practice Now
Therapist / Provider
Zoho CRM
User
1:1Therapist records in My Practice Now resolve by email match to Zoho CRM Users. Unmatched therapists are flagged before migration; you can either invite them to Zoho CRM first or assign their clients to a fallback User. User Role in Zoho maps to the therapist's access level in My Practice Now.
My Practice Now
Custom Client Fields
Zoho CRM
Custom Fields on Contact
1:1My Practice Now custom fields on client records (e.g., insurance carrier, EIN, sliding-scale tier, preferred contact method) require custom fields in Zoho CRM. FlitStack creates the custom field in Zoho (visible in Setup > Customization) before loading data, using the field type that closest matches the source (picklist, text, date, checkbox).
My Practice Now
Billing / Payment Record
Zoho CRM
Invoice Payment
1:1Payment transactions from My Practice Now map to Zoho CRM Invoice Payment records linked to the corresponding Invoice. Each payment record captures the payment date, amount, and payment method from the source system. Partially paid invoices are reflected accurately in Zoho's Invoice balance field, maintaining the correct outstanding amount for each client.
My Practice Now
Attachment / Uploaded Document
Zoho CRM
Attachment / Files
1:1Documents attached to client records in My Practice Now (e.g., intake forms, signed agreements, insurance cards) re-upload as Zoho CRM Attachments linked to the Contact record. File size limits from Zoho apply (default 25MB per file). FlitStack downloads and rehosts files during migration.
My Practice Now
Location / Office
Zoho CRM
Custom Module or Field
1:1My Practice Now locations map to a Zoho CRM Custom module (Locations) or a custom picklist field on Contact and Event depending on your setup. Each location becomes a Location record or picklist value. This ensures session and client records are correctly scoped to the office where the service was delivered.
| My Practice Now | Zoho CRM | Compatibility | |
|---|---|---|---|
| Client | Contact1:1 | Fully supported | |
| Client (intake status) | Lead1:many | Fully supported | |
| Client Company / Organization | Account1:1 | Fully supported | |
| Session / Appointment | Event1:1 | Fully supported | |
| Session Note / Clinical Note | Note1:1 | Fully supported | |
| Invoice | Invoice (module)1:1 | Fully supported | |
| Service / Session Type | Product1:1 | Fully supported | |
| Therapist / Provider | User1:1 | Fully supported | |
| Custom Client Fields | Custom Fields on Contact1:1 | Fully supported | |
| Billing / Payment Record | Invoice Payment1:1 | Fully supported | |
| Attachment / Uploaded Document | Attachment / Files1:1 | Fully supported | |
| Location / Office | Custom Module or Field1: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.
My Practice Now gotchas
Research data is sparse and often misattributed
Thinkific export scope determines what we can migrate
Content files require separate media migration
Zoho CRM gotchas
API access requires Professional tier or above
Subform fields do not export cleanly via CSV
API credit consumption is non-linear
Export download links expire in 7 days
Owner (User) assignments require pre-mapped user IDs
Pair-specific challenges
Migration approach
Discovery, schema audit, and field mapping plan
FlitStack reviews your My Practice Now data model: all client fields, session types, therapist records, invoice fields, and custom attributes. We simultaneously audit your target Zoho CRM instance: which modules are active, which custom fields already exist, which plan tier you are on, and whether Territories or custom modules are available for your location model. The output is a field-mapping spreadsheet that identifies direct maps, custom-field creation requirements, and value mappings for picklists. You approve the mapping before any data moves.
Create Zoho CRM schema — custom fields, modules, and picklists
Before data loads, FlitStack provisions all required custom fields in Zoho CRM via the API (POST /settings/fields). This includes Contact custom fields (Insurance_Carrier__c, Sliding_Scale_Tier__c, Tax_ID__c), Event custom fields (Event_Type__c, Recurring_Session_Flag__c), and any custom module definitions for multi-location setups. Picklist values are seeded with the exact strings from My Practice Now so value_mapping runs cleanly. Zoho layouts are adjusted to display the new custom fields in the correct sections for each module.
Extract My Practice Now data — clients, sessions, invoices, attachments
FlitStack connects to My Practice Now via scoped API read access. Data is extracted in dependency order: therapist/therapist records first (for User resolution), then clients, then sessions linked to clients, then invoices, then file attachments. Each extraction run logs record counts and flags records with missing required fields (e.g., clients with no email address). Data quality issues are reported to you before migration runs so duplicates and incomplete records can be addressed.
Run a sample migration with field-level diff
A representative slice — typically 100–300 records covering contacts, sessions, and invoices — migrates to your Zoho CRM sandbox first. FlitStack generates a field-level diff comparing the source value against the destination value for every mapped field. You verify that client names, session dates, therapist assignments, invoice amounts, and payment statuses all landed correctly in Zoho. Any mapping errors are corrected in the migration engine and the sample re-runs until the diff is clean before the full migration proceeds.
Full migration with delta-pickup window and cutover
The full dataset loads into Zoho CRM using Zoho's Bulk Write API to respect API credit limits. A delta-pickup window (24–48 hours) runs concurrently: any clients booked, sessions scheduled, or invoices created in My Practice Now during the migration window is captured and loaded last. After the delta window closes, FlitStack generates a reconciliation report comparing record counts and key field values between My Practice Now and Zoho. One-click rollback is available if the reconciliation reveals discrepancies beyond an agreed threshold.
Platform deep dives
My Practice Now
Source
Strengths
Weaknesses
Zoho CRM
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 My Practice Now and Zoho CRM.
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
My Practice Now: Not publicly documented at the individual storefront level; Thinkific generally applies org-level rate limits.
Data volume sensitivity
My Practice Now 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 My Practice Now to Zoho CRM migration scoping. Not seeing yours? Book a call.
Walk through your My Practice Now to Zoho CRM migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave My Practice Now
Other ways to arrive at Zoho CRM
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.