CRM migration
Field-level mapping, validation, and rollback between My Practice Now and Microsoft Dynamics 365 Sales . We move data and schema; workflows are rebuilt natively in Microsoft Dynamics 365 Sales .
My Practice Now
Source
Microsoft Dynamics 365 Sales
Destination
Compatibility
9 of 10
objects map 1:1 between My Practice Now and Microsoft Dynamics 365 Sales .
Complexity
BStandard
Timeline
48–72 hours
Overview
My Practice Now stores clients, appointments, invoices, and billing records in a unified practice-management model. Dynamics 365 Sales models the same data using Account and Contact as separate entities, Opportunity records for pipeline tracking, and Activity records (Tasks and Appointments) for interactions. FlitStack AI maps My Practice Now client records to Dynamics 365 Accounts with a primary Contact, appointment records to Dynamics 365 Activities preserving the original start and end timestamps, and invoice data to custom fields on the Account since Dynamics 365 Sales does not include a native invoicing module. Custom properties, service definitions, and package records migrate as custom fields on the Account or a custom Practice entity. Owner assignment resolves My Practice Now staff by email against Dynamics 365 Users. We handle the Account/Contact population sequence, bulk API writes to Dataverse, and a 24–48 hour delta pickup at cutover. Workflows, automations, billing rules, and scheduling logic do not migrate — we export their definitions for your Dynamics admin to rebuild in Power Automate and the Dynamics 365 Sales app.
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.
Source platform
My Practice Now platform overview
Scorecard, SWOT, gotchas, and pricing for My Practice Now.
Destination platform
Microsoft Dynamics 365 Sales platform overview
Scorecard, SWOT, gotchas, and pricing for Microsoft Dynamics 365 Sales .
Data migration guide
The complete Microsoft Dynamics 365 Sales migration guide
Data model, import mechanisms, field mapping strategy, pitfalls, and cutover — by the engineers running it.
Destination checklist
Microsoft Dynamics 365 Sales migration checklist
Pre- and post-cutover tasks for moving onto Microsoft Dynamics 365 Sales .
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 Microsoft Dynamics 365 Sales , 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
Microsoft Dynamics 365 Sales
Account + Contact
1:manyMy Practice Now Client splits into a Dynamics 365 Account record (business information) and a primary Contact record (individual details). The Account holds practice name, address, and billing fields; the Contact holds name, email, phone, and role fields. We populate both with a 1:1 relationship and flag the primary contact.
My Practice Now
Appointment
Microsoft Dynamics 365 Sales
Appointment (Activity) + Task
1:1My Practice Now Appointment maps to a Dynamics 365 Appointment activity record. Fields including scheduled date, start time, end time, duration, staff member, service type, and status transfer as individual fields on the Activity. A separate Task record is created for any appointment notes or follow-up items flagged in My Practice Now.
My Practice Now
Invoice
Microsoft Dynamics 365 Sales
Account (custom fields) + Opportunity
1:1My Practice Now Invoice has no native equivalent in Dynamics 365 Sales. We create custom fields on the Account record (Invoice_Total__c, Invoice_Status__c, Last_Invoice_Date__c) and optionally link an Opportunity record to preserve billing history. Full invoicing requires Dynamics 365 Business Central; we flag this as a post-migration recommendation.
My Practice Now
Client Custom Fields
Microsoft Dynamics 365 Sales
Account (custom fields)
1:1Any custom properties on the My Practice Now Client object — such as referral source, insurance provider, or custom status flags — are provisioned in Dataverse with the new_ prefix and mapped field-by-field. We match the data type and pick-list values before the migration run to avoid Dataverse schema errors.
My Practice Now
Service / Package Definition
Microsoft Dynamics 365 Sales
Product (custom fields)
1:1My Practice Now service and package definitions (session types, session rates, package bundles) become Dynamics 365 Product records with custom fields capturing service duration, pricing model, and description. If My Practice Now uses a service catalog, we map it to the Dynamics 365 Product Catalog.
My Practice Now
Staff / Practitioner
Microsoft Dynamics 365 Sales
SystemUser
1:1My Practice Now staff records resolve to Dynamics 365 SystemUser by email match. Unmatched staff are flagged before migration — your team creates the Dynamics user first, or we assign records to a fallback user. Role and permission settings from My Practice Now do not carry over and must be configured in Dynamics 365 security roles post-migration.
My Practice Now
Client Notes
Microsoft Dynamics 365 Sales
Note (Annotation)
1:1Client notes in My Practice Now map to Dynamics 365 Notes (Annotation records) linked to the Account or Contact. We preserve the original created date, the note body content, and the author where identifiable. Rich-text formatting is maintained; attachments from notes are re-hosted as SharePoint files in Dynamics 365.
My Practice Now
Client Files / Attachments
Microsoft Dynamics 365 Sales
SharePoint Document Location + Note
1:1Files attached to My Practice Now client records (intake forms, signed agreements, insurance cards) re-upload to the Account's SharePoint document location in Dynamics 365. We preserve the original file name, upload date, and link each file to the corresponding Account record.
My Practice Now
Billing / Payment Records
Microsoft Dynamics 365 Sales
Account (custom fields)
1:1Payment history, outstanding balances, and billing notes from My Practice Now transfer as custom fields on the Account record (Balance_Due__c, Last_Payment_Date__c, Payment_Status__c). Transaction-level detail requires Dynamics 365 Business Central; we surface the summary as a read-only reference on the Account.
My Practice Now
Appointment Status History
Microsoft Dynamics 365 Sales
Appointment (Activity) + Custom Field
1:1Status change history on My Practice Now appointments (confirmed, completed, no-show, cancelled) maps to a custom pick-list field on the Dynamics 365 Appointment activity. We preserve the last-known status and timestamp as Appointment_Status__c and Appointment_Status_Date__c for reporting continuity. We capture each status transition event and store it as a serialized history string on the Appointment record, enabling historical workflow analysis and audit compliance in Dynamics 365.
| My Practice Now | Microsoft Dynamics 365 Sales | Compatibility | |
|---|---|---|---|
| Client | Account + Contact1:many | Fully supported | |
| Appointment | Appointment (Activity) + Task1:1 | Fully supported | |
| Invoice | Account (custom fields) + Opportunity1:1 | Fully supported | |
| Client Custom Fields | Account (custom fields)1:1 | Fully supported | |
| Service / Package Definition | Product (custom fields)1:1 | Fully supported | |
| Staff / Practitioner | SystemUser1:1 | Fully supported | |
| Client Notes | Note (Annotation)1:1 | Fully supported | |
| Client Files / Attachments | SharePoint Document Location + Note1:1 | Fully supported | |
| Billing / Payment Records | Account (custom fields)1:1 | Fully supported | |
| Appointment Status History | Appointment (Activity) + Custom 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
Microsoft Dynamics 365 Sales gotchas
Professional tier 15-table custom table limit blocks migrations
October 2024 pricing increase applies at renewal for all customers
Custom fields must be created in the UI before API writes
Power Platform request limits apply to bulk migrations
Activity records orphaned to inactive owners fail silently
Pair-specific challenges
Migration approach
Discover My Practice Now data inventory and Dynamics 365 target schema
FlitStack AI begins every migration with a structured discovery phase. We inventory all My Practice Now objects — Client, Appointment, Invoice, Service, Client Notes, and any custom fields — and generate a record count and field inventory. Simultaneously, we audit your Dynamics 365 Sales environment to confirm license tier (Professional vs Enterprise), identify existing Account and Contact records that would cause duplicates, and check custom field provisioning capacity. The output is a pre-migration health report that flags duplicate records, missing custom fields, and license-tier risks before a single record moves.
Provision custom fields in Dataverse and validate field-level mapping
With the inventory complete, FlitStack AI creates all required custom fields in Dataverse that do not exist in your Dynamics 365 Sales out-of-box schema — including Invoice_Total__c, Invoice_Status__c, Balance_Due__c, Referral_Source__c, Original_Created_Date__c, and Source_System_ID__c on Account and Contact. We also provision Appointment_Status__c and Duration__c on the Activity entity. Pick-list fields receive value-by-value mappings from My Practice Now status enumerations to Dynamics 365 StateCode, StatusCode, and custom pick-list values. No data moves until all target fields are validated to exist and accept the incoming data types.
Resolve staff and owner records by email match against Dynamics 365 Users
My Practice Now staff and practitioner records need to resolve to Dynamics 365 SystemUser records so appointment and note ownership maps correctly. FlitStack AI performs an email-based matching pass: staff with a My Practice Now email that matches an existing Dynamics 365 user are assigned directly; unmatched staff are flagged in a pre-flight report. Your team creates the corresponding Dynamics users before the migration run, or we assign their records to a designated fallback owner. This step prevents orphaned Activities and ensures the Dynamics 365 audit log reflects the correct user attribution on every migrated record.
Run a sample migration with field-level diff and reconciliation report
Before committing to a full migration, FlitStack AI runs a sample migration of 50–100 representative records spanning Client, Appointment, Invoice, and Note objects. The sample validates that appointment timestamps land correctly in Dynamics 365 ScheduledStart and ScheduledEnd, that invoice amounts populate the custom Account fields, that Contact records link to the correct Account via primarycontactid, and that owner resolution worked for all staff. We generate a field-level diff comparing source values against the Dynamics 365 destination values and surface any discrepancies for your review before the full run is scheduled.
Execute full migration with delta-pickup window and audit logging
The full migration loads My Practice Now data into Dynamics 365 Sales in the validated sequence: Accounts first, then Contacts with AccountId links, then Activity records with owner resolution, then Notes and Attachments. A delta-pickup window of 24–48 hours runs concurrently — any records created or modified in My Practice Now during the migration are captured in a second pass to ensure Salesforce reflects the final state at go-live. Every operation is logged with source record ID, destination record ID, field mappings applied, and timestamp. One-click rollback is available if reconciliation finds unexpected discrepancies after the migration completes.
Platform deep dives
My Practice Now
Source
Strengths
Weaknesses
Microsoft Dynamics 365 Sales
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 Microsoft Dynamics 365 Sales .
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 Microsoft Dynamics 365 Sales migration scoping. Not seeing yours? Book a call.
Walk through your My Practice Now to Microsoft Dynamics 365 Sales 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 Microsoft Dynamics 365 Sales
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.