CRM migration

Migrate from My Practice Now to Salesforce Sales Cloud

Field-level mapping, validation, and rollback between My Practice Now and Salesforce Sales Cloud. We move data and schema; workflows are rebuilt natively in Salesforce Sales Cloud.

My Practice Now logo

My Practice Now

Source

Salesforce Sales Cloud

Destination

Salesforce Sales Cloud logo

Compatibility

92%

11 of 12

objects map 1:1 between My Practice Now and Salesforce Sales Cloud.

Complexity

BStandard

Timeline

48–72 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

My Practice Now stores client records, appointment calendars, invoicing data, notes, and custom fields in a unified practice-management model designed for small-to-mid-size service businesses. Salesforce Sales Cloud uses a relational CRM model built around Leads, Contacts, Accounts, Opportunities, Tasks, Events, and custom objects with a separate Quotes and Contracts stack. FlitStack AI extracts My Practice Now records via the platform's export API, transforms them into Salesforce sObjects with correct field-type handling, and loads them via Bulk API to preserve original create dates and owner assignments. The migration carries all standard client data, appointment history, billing records, and custom fields. Workflows, automation rules, and notification templates do not migrate and must be rebuilt in Salesforce Flow — we export definitions for your Salesforce admin's reference. The delta-pickup window captures any records modified during the cutover window so Salesforce reflects the final state at go-live. All timestamps, staff assignments, and client associations are preserved in Salesforce, ensuring a complete operational history from day one.

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

My Practice Now logo

My Practice Now

What's pushing teams away

  • Capterra reviewers cite poor customer service and unresponsive support as primary churn drivers, with issues remaining unresolved long enough to erode trust.
  • Negative reviews describe the software as non-intuitive and complicated, contradicting positive reviews and suggesting a steep or inconsistent onboarding experience.
  • Multiple reviews note that implementation is time-consuming and lengthy, which frustrates small practices with limited administrative capacity.

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 My Practice Now objects map to Salesforce Sales Cloud

Each row shows how a My Practice Now 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.

My Practice Now

Client

maps to

Salesforce Sales Cloud

Contact

1:1
Fully supported

My Practice Now client records map 1:1 to Salesforce Contacts. The client name splits into FirstName and LastName where available; single-field names populate the LastName field with FirstName left blank. Primary location/address data migrates to Contact.MailingAddress. Unmatched clients receive a placeholder Account assignment.

My Practice Now

Client

maps to

Salesforce Sales Cloud

Account

1:1
Fully supported

When a My Practice Now client represents a business entity (rather than an individual), the client name and business details migrate to a Salesforce Account first, then a Contact is created and linked via AccountId. This two-step routing happens automatically during the import sequence.

My Practice Now

Appointment

maps to

Salesforce Sales Cloud

Event

1:1
Fully supported

My Practice Now appointments map to Salesforce Events with original start and end datetimes preserved on Event.StartDateTime and Event.EndDateTime. The appointment status (confirmed, cancelled, no-show) migrates as a custom picklist field (Appointment_Status__c) on the Event record. If the appointment includes a location or staff assignment, those values map to custom fields on the Event as well.

My Practice Now

Appointment

maps to

Salesforce Sales Cloud

Task

1:many
Fully supported

Appointments classified as tasks (follow-up items, reminders without a scheduled block) split to Salesforce Tasks with Task.ActivityDate set to the scheduled date and Task.Subject carrying the appointment title. The original appointment ID is preserved as Source_Appointment_ID__c. These Tasks also link to the Contact via WhoId to maintain the client relationship in Salesforce.

My Practice Now

Invoice

maps to

Salesforce Sales Cloud

Order

1:1
Fully supported

My Practice Now invoices migrate as Salesforce Orders. Invoice line items map to OrderProducts with Product2 lookup where a matching product exists; otherwise items are created as text-line OrderProducts. Invoice payment status migrates to a custom field (Invoice_Status__c) on the Order record.

My Practice Now

Invoice Line Item

maps to

Salesforce Sales Cloud

OrderProduct

1:1
Fully supported

Invoice line items migrate to OrderProducts with Quantity, UnitPrice, and Description preserved. Total invoice amount recalculates from the loaded OrderProducts in Salesforce — the original total is stored in Total_Invoice_Amount__c for reconciliation. If any line item references a product that does not yet exist in Salesforce, FlitStack creates a placeholder Product2 record so the OrderProduct can be linked without data loss.

My Practice Now

Staff / Practitioner

maps to

Salesforce Sales Cloud

User

1:1
Fully supported

My Practice Now staff/practitioner records are matched to existing Salesforce users by email address. Unmatched practitioners are flagged before migration — teams either create Salesforce users first or assign records to a fallback owner. Practitioner specialty maps to a custom text field.

My Practice Now

Client Note

maps to

Salesforce Sales Cloud

Note

1:1
Fully supported

Client notes migrate as Salesforce Notes attached to the corresponding Contact record. Note.Title carries the note date and category; Note.Body carries the full text. Original create timestamps are preserved in CreatedDate after migration. If a client has multiple notes, each migrates as a separate Note record linked to the same Contact, preserving chronological order.

My Practice Now

Custom Field (Client)

maps to

Salesforce Sales Cloud

Custom Field (__c) on Contact

1:1
Fully supported

My Practice Now custom client fields are read from the export schema, then created as Salesforce custom fields on the Contact object (or Account if the field applies to a business entity). Field type is matched — text to Text, number to Number, date to Date, picklist to Picklist. Picklist values are exported and re-created in Salesforce.

My Practice Now

Custom Field (Appointment)

maps to

Salesforce Sales Cloud

Custom Field (__c) on Event

1:1
Fully supported

Appointment-specific custom fields from My Practice Now (e.g., room, service type, cancellation reason) are created as Salesforce custom fields on the Event object before data loads. Each field's type is mapped from the source schema definition. These fields are added to the Event layout so users can view and edit them directly in the Salesforce UI after migration.

My Practice Now

Location / Branch

maps to

Salesforce Sales Cloud

Custom Field (__c) on Account or Contact

1:1
Fully supported

Multi-location My Practice Now setups store location/branch as a property of client or staff records. Salesforce has no native location field — we create a Branch__c custom picklist or text field on Account (for business clients) or Contact (for individual clients) and populate it from the source location value.

My Practice Now

Payment Record

maps to

Salesforce Sales Cloud

Custom Field (__c) on Order

1:1
Fully supported

My Practice Now payment transaction history (payment method, amount, date) has no direct Salesforce Sales Cloud equivalent because Sales Cloud lacks native billing. We preserve payment records as Order_Payment__c custom fields and attach a PDF summary note so finance teams have the full history on record.

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.

My Practice Now logo

My Practice Now gotchas

Medium

Research data is sparse and often misattributed

High

Thinkific export scope determines what we can migrate

Medium

Content files require separate media migration

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

  • Invoice-to-Order mapping has no native billing parity

    My Practice Now handles invoicing, payment recording, and balance tracking natively within the client record. Salesforce Sales Cloud has no built-in invoicing module — invoices migrate as Orders and order products, but payment recording, partial payment tracking, and outstanding balance management require Salesforce CPQ, a third-party billing app, or a custom object build. FlitStack preserves invoice totals and payment status as custom fields on Order records so the data is present for a billing integration to consume. Finance teams should plan the invoicing solution before go-live rather than treating it as a post-migration configuration item.

  • Appointment staff assignment requires Salesforce User pre-provisioning

    My Practice Now staff/practitioner IDs map to Salesforce OwnerId on Event records. If a practitioner does not have a Salesforce User account, their appointments cannot assign OwnerId at migration time. FlitStack flags all unmatched staff IDs before migration and requires teams to either create Salesforce users for every active practitioner or designate a fallback owner. Appointments without a resolved OwnerId land in a staging object for manual assignment after go-live.

  • Custom fields must be created in Salesforce before data loads

    My Practice Now custom fields are defined dynamically in the source platform but Salesforce requires custom __c fields to be created via Setup or the Metadata API before records load. If a custom field does not exist in Salesforce when the data loads, values are lost. FlitStack reads the full custom field schema from My Practice Now at the start of the project and delivers a Salesforce setup plan (field names, types, pick-list values) before any data movement begins, so the schema is ready before validation runs.

  • Appointment cancellation status does not map to a native Salesforce field

    My Practice Now appointment statuses (confirmed, cancelled, no-show, rescheduled) have no direct Salesforce Event equivalent — Salesforce Events have no status field. We map confirmed and rescheduled to Event.IsAllDayEvent=false and store the original status as Appointment_Status__c. Cancelled and no-show appointments can be filtered out of the primary migration load and delivered as a separate report for manual review rather than creating misleading calendar events in Salesforce. After go‑live, you can import the filtered set using a secondary load or address them manually in Salesforce.

  • Client notes attached at the client level require Contact-level Note creation

    My Practice Now notes entered at the client level have no record-level association to a sub-object in Salesforce. When the client migrates to a Contact record, notes are created as Salesforce Notes attached to that Contact. If a My Practice Now client has both a business Account and individual Contact representation (when the client is a business entity), note placement defaults to the Contact record — your admin may need to duplicate key notes on the Account for broader team access.

Migration approach

Six steps for a successful My Practice Now to Salesforce Sales Cloud data migration

  1. Extract My Practice Now data schema and custom field definitions

    FlitStack AI reads My Practice Now's export schema to inventory all standard and custom fields on client, appointment, invoice, and staff objects. We capture field types, pick-list values, and required-field constraints. This schema inventory drives the Salesforce custom field creation plan delivered before any data movement. We also assess export API pagination limits and estimate the number of API calls required to extract all records.

  2. Deliver Salesforce custom field and object setup plan

    Based on the schema inventory, FlitStack AI produces a Salesforce Setup plan: create Contact custom fields, Event custom fields, Order custom fields, and any custom objects required for My Practice Now custom properties. Pick-list value sets are defined with exact value matches from My Practice Now. This plan is delivered as a checklist so your Salesforce admin can pre-create the schema or grant FlitStack metadata API access to create fields programmatically. The schema must be in place before the sample migration runs.

  3. Resolve practitioner-to-User mappings and assign fallback owners

    My Practice Now staff and practitioner records are matched against existing Salesforce Users by email address. Unmatched practitioners are surfaced in a pre-flight report — teams either create Salesforce Users before the migration or designate a fallback owner for their records. Appointments and notes authored by unmatched practitioners receive a staging assignment pending User creation. Owner resolution must be complete before the sample migration validates appointment and note placement.

  4. Run a sample migration with field-level diff

    A representative slice (typically 200–500 records covering a cross-section of clients, appointments, invoices, and staff) migrates first. FlitStack generates a field-level diff between the My Practice Now source values and the Salesforce destination values for every mapped field. You verify that client names, appointment datetimes, invoice totals, and custom field values appear correctly in Salesforce before the full run commits. Custom field creation gaps and owner resolution failures surface here.

  5. Execute full migration with delta-pickup and rollback capability

    The full migration runs against Salesforce using Bulk API 2.0 for high-volume record loads. A delta-pickup window (typically 24–48 hours) captures any client records, appointments, or invoices created or modified in My Practice Now during the cutover. The audit log records every operation — record counts, field values, and error dispositions. One-click rollback is available if the field-level reconciliation reveals unexpected data quality issues. Once rollback passes and you approve, My Practice Now is placed in read-only mode and Salesforce becomes the system of record.

Platform deep dives

Context on both ends of the pair

My Practice Now logo

My Practice Now

Source

Strengths

  • Combines appointment scheduling, invoicing, and client notes in a single interface for small practices
  • Intuitive and simple to use according to positive G2 reviewers
  • Responsive development team that incorporates user feature requests
  • Mobile app allows creating and accessing client notes on the go
  • Great tech support cited by satisfied users

Weaknesses

  • Poor customer service and slow issue resolution reported in negative reviews
  • Non-intuitive and complicated interface according to some users
  • Lengthy, time-consuming implementation process
  • Inconsistent user experience — same product praised as intuitive and criticized as confusing
  • Sparse public documentation makes research and comparison difficult
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 My Practice Now 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

    My Practice Now: Not publicly documented at the individual storefront level; Thinkific generally applies org-level rate limits.

  • Data volume sensitivity

    B

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

Estimator

Estimate your My Practice Now 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 My Practice Now to Salesforce Sales Cloud data migrations

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

Can't find your answer?

Walk through your My Practice Now to Salesforce Sales Cloud migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

Most My Practice Now to Salesforce migrations complete within 48–72 hours for under 25,000 client records. Larger setups with 100,000+ records, multiple custom objects, and complex invoice-to-Order mapping extend to 5–10 days. The longest planning step is the Salesforce custom field schema creation — fields must be in Salesforce before data loads. FlitStack AI sequences the schema build, owner resolution, sample migration, and delta-pickup to keep the project within the expected window.

Adjacent paths

Related migrations to explore

Ready when you are

Move from My Practice Now.
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