CRM migration

Migrate from My Practice Now to HubSpot

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

My Practice Now logo

My Practice Now

Source

HubSpot

Destination

HubSpot logo

Compatibility

100%

11 of 11

objects map 1:1 between My Practice Now and HubSpot.

Complexity

BStandard

Timeline

48–72 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

My Practice Now was a practice-management CRM combining client records, appointment scheduling, invoicing, and recurring billing for solo practitioners and small firms. With Practice's November 2025 shutdown, active users face data loss unless they migrate now. HubSpot's CRM accommodates the same core objects — contacts, companies, deals, and tickets — but schedules, invoices, and custom client properties require explicit field mapping to HubSpot's standard and custom property model. FlitStack AI extracts full client records, appointment histories, service types, and invoice totals via My Practice Now's API, maps each field to HubSpot equivalents, and preserves original create/update timestamps on custom datetime properties. Workflows and automations from Practice do not carry over; FlitStack exports those definitions as a reference for rebuilding in HubSpot Workflows. The migration runs read-only against Practice's API with a 24–48 hour delta pickup window that captures any records modified between the initial extract and go-live. During the migration, FlitStack performs a data-quality check that flags duplicate email addresses, missing required fields, and incomplete practitioner associations, ensuring that the resulting HubSpot CRM is ready for immediate use upon go-live.

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

HubSpot logo

HubSpot

What's pulling them in

  • Lowest barrier to entry of any major CRM — the free tier with unlimited contacts lets teams validate fit before committing to a paid plan, according to G2 and Capterra reviewers.
  • Native integration between the CRM and sales engagement tools (sequences, email tracking, dialer) means no separate sync configuration, a theme across G2 Sales Hub reviews.
  • Pipeline visualization, deal tracking, and automated workflows are consistently praised as intuitive and easy to set up without developer involvement.
  • Strong onboarding for new team members — reviewers on Capterra and G2 highlight how quickly new reps become productive without formal training.
  • The HubSpot platform ecosystem (Marketing, Sales, Service, CMS hubs) allows growing companies to consolidate tools without building new integrations.

Object mapping

How My Practice Now objects map to HubSpot

Each row shows how a My Practice Now object lands in HubSpot, 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

HubSpot

Contact

1:1
Fully supported

My Practice Now client records map 1:1 to HubSpot Contacts. The primary contact's name, email, phone, and address fields map to HubSpot's standard contact properties. Each client must have at minimum an email address to create a HubSpot Contact; clients without email are flagged for manual review before migration.

My Practice Now

Client Custom Properties

maps to

HubSpot

Contact Custom Properties

1:1
Fully supported

Any custom fields stored on a Practice client record — lead_source, referral_code, client_rating, billing_tier — are recreated as HubSpot custom contact properties. Each property's type (text, number, date, picklist) is matched to the closest HubSpot field type. Picklist values are mapped value-by-value to maintain segmentation in HubSpot lists and workflows.

My Practice Now

Appointment

maps to

HubSpot

Ticket

1:1
Fully supported

Practice appointments have no direct HubSpot equivalent — appointments become HubSpot Support Tickets. Ticket subject carries the appointment summary, ticket status maps from appointment status (confirmed/cancelled/no-show), and service_type is preserved as a custom picklist on the ticket. Practitioner assignment resolves to HubSpot Ticket owner by email match. Original appointment timestamps are preserved on custom datetime fields since HubSpot Tickets do not have native scheduling timestamps.

My Practice Now

Invoice

maps to

HubSpot

Deal

1:1
Fully supported

Practice invoice totals map to HubSpot Deal amounts — one invoice equals one Deal. Invoice number becomes the Deal name. Invoice status (paid/partial/unpaid/overdue) maps to a custom deal property (Invoice_Status__c) since HubSpot Deal stage does not inherently represent payment status. Overdue flag triggers an alert in the migration audit log for manual follow-up.

My Practice Now

Line Item / Service

maps to

HubSpot

Product

1:1
Fully supported

Services defined in Practice's catalog map to HubSpot Products. Service name, description, and unit price carry over directly. If a Practice service was used as a line item on a specific invoice, that association is preserved by attaching the Product to the corresponding Deal in HubSpot. Products with no historical usage still migrate so HubSpot's product library is populated for future deal-line-item use.

My Practice Now

Payment Record

maps to

HubSpot

Deal Note / Custom Field

1:1
Fully supported

Practice payment records track partial payments, payment method, and date per invoice. Since HubSpot Deals do not store a payment ledger, payment history is preserved as a custom text area field on the Deal (Payment_History__c) formatted as 'Date | Amount | Method'. A separate Deal custom property (Amount_Paid__c) tracks the paid portion for reconciliation against the total Deal amount.

My Practice Now

Client Note

maps to

HubSpot

Contact Note / Engagement

1:1
Fully supported

Notes attached to a Practice client record migrate as HubSpot Contact Engagements of type 'note' with the original create timestamp. Notes are appended to the contact's timeline. If a note contains a date reference or follow-up action, FlitStack flags it so it can be used as a manual trigger for a HubSpot follow-up task.

My Practice Now

Document / File Attachment

maps to

HubSpot

HubSpot File

1:1
Fully supported

Documents stored on Practice client records or appointments are downloaded and re-uploaded to HubSpot Files. Each file is associated to the relevant Contact or Ticket record via HubSpot's file association model. File size limits apply — HubSpot supports files up to the limit set by your HubSpot subscription tier. Files without an associated contact or ticket are held in a 'Migrated Files' folder for manual association.

My Practice Now

Practitioner / Staff

maps to

HubSpot

HubSpot User

1:1
Fully supported

Practitioners and staff members in Practice are resolved to HubSpot Users by email address match. A complete staff list is exported first so HubSpot Admins can pre-create user accounts before the migration runs. Unmatched practitioners are flagged and assigned to the HubSpot admin user as a fallback — this is reviewed with the practice manager before migration commits.

My Practice Now

Practice Workflow / Automation

maps to

HubSpot

HubSpot Workflow (rebuild reference)

1:1
Fully supported

Workflows, automations, appointment reminders, and invoice-triggered sequences from Practice cannot be imported into HubSpot. FlitStack exports the full workflow definitions — trigger types, conditions, and action sequences — as a JSON reference document. Your HubSpot admin or a FlitStack consultant uses this to rebuild equivalent workflows in HubSpot Workflows or Sequences after go-live.

My Practice Now

Client Portal Configuration

maps to

HubSpot

HubSpot Service Hub Portal (rebuild)

1:1
Fully supported

Practice's client-facing portal settings (branding, intake forms, booking page configuration) are account-level settings with no HubSpot equivalent. These cannot be migrated. FlitStack documents the current portal configuration — form field names, branding settings, and booking page URL — as a reference so the Service Hub portal can be rebuilt to match.

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

HubSpot logo

HubSpot gotchas

High

Marketing Contacts billing model is migration-critical

High

Feature tier gating is not visible until onboarding

Medium

Mandatory onboarding fees inflate year-one cost

Medium

HubSpot CSV importer cannot migrate engagements or attachments

Medium

Custom objects require Enterprise and a pre-existing schema

Pair-specific challenges

  • HubSpot has no native appointment object — appointments must become Tickets

    My Practice Now's core scheduling construct is the appointment object, with start time, end time, duration, practitioner, service type, and status. HubSpot has no appointment or scheduling object at the CRM level — the closest equivalent is a Support Ticket. We map appointments to Tickets with subject, status, and practitioner as owner, but HubSpot's Ticket pipeline stages do not natively represent appointment outcomes like 'no-show' or 'rescheduled.' Those require custom picklist values in your HubSpot ticket pipeline before migration runs. FlitStack delivers the custom property definitions and ticket pipeline stage plan before the migration so your HubSpot admin can pre-configure the pipeline.

  • Practice invoice partial payments and payment history have no native HubSpot equivalent

    My Practice Now tracks invoices with line items, payment method, partial payments, and overdue status per invoice. HubSpot Deals hold a single amount field with no native payment ledger. We map invoice totals to Deal amounts and preserve payment history as a custom text area (Payment_History__c) and a paid-amount field (Amount_Paid__c), but HubSpot will not automatically calculate remaining balances or flag overdue Deals without a custom workflow built on top of these migrated fields. Your team should plan that workflow rebuild using the exported payment data as a reference.

  • Client portal configuration, intake forms, and booking page settings do not migrate

    Practice's client-facing portal — including appointment booking pages, intake forms, and client portal branding — is stored as account-level configuration with no export mechanism. HubSpot has no direct equivalent: the HubSpot Service Hub portal is a separate add-on that must be rebuilt from scratch. FlitStack documents your current portal configuration — form field names, branding settings, booking URL structure — in the migration reference document so your HubSpot admin or our team can rebuild it in Service Hub.

  • Multi-practitioner appointments require pre-created HubSpot user accounts

    If your Practice account has multiple practitioners or staff members, HubSpot user accounts must exist before migration so appointments and client records can be assigned to the correct owner. We export the complete practitioner list from Practice first and match each to a HubSpot user by email address. Any practitioner without a HubSpot account is flagged before migration runs — your admin creates the accounts or assigns those records to a fallback owner. Without pre-created users, appointment Tickets will land with no owner or an incorrect one.

  • HubSpot's free CRM tier imposes contact-tier billing that differs from Practice's flat model

    My Practice Now uses flat per-seat or per-practice pricing. HubSpot's free CRM tier offers contact management without per-seat costs but bills for marketing contacts above a threshold. If your practice uses HubSpot's marketing features after migration, the contact-tier billing model will apply — contacts added to marketing workflows or email lists count toward your marketing contact limit. FlitStack does not configure your HubSpot billing; we document this distinction so your team can plan HubSpot plan selection with full cost visibility.

Migration approach

Six steps for a successful My Practice Now to HubSpot data migration

  1. Export and inventory My Practice Now data objects

    FlitStack connects to My Practice Now via API using scoped read-only credentials. We extract all client records, appointments, invoices, line items, practitioners, and custom field definitions in the first pass. This export is the complete source-of-truth for the migration — any gaps identified in the export are flagged and resolved before field mapping begins. The practitioner list is prioritized so HubSpot Admins can create user accounts before migration.

  2. Design HubSpot custom properties and ticket pipeline before data moves

    FlitStack delivers a HubSpot schema setup plan based on the Practice data inventory. For every Practice custom client field, we specify the HubSpot property name, type, and picklist values. For appointments, we define the ticket pipeline stages matching Practice appointment statuses. Your HubSpot admin (or our team) creates these properties in HubSpot Settings before migration validation runs. This step prevents migration failures from type mismatches or missing destination fields.

  3. Export workflow and automation definitions for rebuild reference

    Practice workflows, appointment reminder sequences, and invoice-triggered automations do not migrate — they must be rebuilt in HubSpot. FlitStack exports the complete workflow definitions from Practice as a structured JSON reference document including trigger types, conditions, and action sequences. Your HubSpot admin or a FlitStack consultant uses this document to rebuild equivalent automations in HubSpot Workflows and Sequences after go-live.

  4. Run a sample migration with field-level diff before full commit

    A representative slice — typically 50–200 clients, appointments, and invoices — migrates to your live HubSpot account first. We generate a field-level diff report comparing source values to destination values so you can verify appointment-to-ticket mapping, invoice-to-deal amount mapping, practitioner owner resolution, and custom property population before the full run. Any mapping adjustments are made before the delta migration window opens.

  5. Execute full migration with delta-pickup window and audit log

    The full migration runs against your HubSpot account using the validated field mappings. A delta-pickup window of 24–48 hours opens simultaneously, capturing any new or modified clients, appointments, or invoices created in Practice during the cutover. Every migration operation is logged in the FlitStack audit log. If reconciliation identifies mismatched record counts or missing associations, one-click rollback reverts the destination to the pre-migration state so corrections can be made and the migration rerun.

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
HubSpot logo

HubSpot

Destination

Strengths

  • Genuinely useful free CRM tier with no seat limit on contact records.
  • All-in-one sales engagement layer (sequences, email tracking, calling, dialer) embedded natively in the CRM, eliminating a separate integration.
  • Intuitive interface and fast onboarding for individual reps, per G2 and Capterra reviews.
  • Workflow automation triggers across contacts, deals, and tickets with a visual builder.
  • API coverage for all standard objects including custom objects at Enterprise tier.

Weaknesses

  • Pricing model is contact-based at the marketing layer — importing all records as marketing contacts can multiply the monthly bill by 4×.
  • Feature tier cliffs are frequent surprises: sequences, calling, advanced reporting, and quoting are all gated, often requiring plan upgrades mid-implementation.
  • Mandatory onboarding fees at Professional ($1,500) and Enterprise ($3,500) are not prominently disclosed on the pricing page.
  • API rate limits are restrictive for bulk migration — burst limits of 100-200 req/10sec and search endpoint limits of 4 req/sec require careful job queuing.
  • Custom objects, additional pipelines, and advanced forecasting are Enterprise-only, making cost projections difficult for growing teams.

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

  • 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 HubSpot 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 HubSpot data migrations

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

Can't find your answer?

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

Book a free 30 minute consultation

Most My Practice Now to HubSpot migrations complete in 48–72 hours of clock time for small practices with under 5,000 client records. Firms with more than 50,000 records, multiple practitioners, invoice history, and extensive custom client fields extend to 5–7 days. The longest step is pre-migration HubSpot schema setup — creating the ticket pipeline, custom properties, and HubSpot user accounts for each practitioner.

Adjacent paths

Related migrations to explore

Ready when you are

Move from My Practice Now.
Land in HubSpot, 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