CRM migration
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
Source
HubSpot
Destination
Compatibility
11 of 11
objects map 1:1 between My Practice Now and HubSpot.
Complexity
BStandard
Timeline
48–72 hours
Overview
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.
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 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
HubSpot
Contact
1:1My 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
HubSpot
Contact Custom Properties
1:1Any 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
HubSpot
Ticket
1:1Practice 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
HubSpot
Deal
1:1Practice 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
HubSpot
Product
1:1Services 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
HubSpot
Deal Note / Custom Field
1:1Practice 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
HubSpot
Contact Note / Engagement
1:1Notes 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
HubSpot
HubSpot File
1:1Documents 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
HubSpot
HubSpot User
1:1Practitioners 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
HubSpot
HubSpot Workflow (rebuild reference)
1:1Workflows, 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
HubSpot
HubSpot Service Hub Portal (rebuild)
1:1Practice'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.
| My Practice Now | HubSpot | Compatibility | |
|---|---|---|---|
| Client | Contact1:1 | Fully supported | |
| Client Custom Properties | Contact Custom Properties1:1 | Fully supported | |
| Appointment | Ticket1:1 | Fully supported | |
| Invoice | Deal1:1 | Fully supported | |
| Line Item / Service | Product1:1 | Fully supported | |
| Payment Record | Deal Note / Custom Field1:1 | Fully supported | |
| Client Note | Contact Note / Engagement1:1 | Fully supported | |
| Document / File Attachment | HubSpot File1:1 | Fully supported | |
| Practitioner / Staff | HubSpot User1:1 | Fully supported | |
| Practice Workflow / Automation | HubSpot Workflow (rebuild reference)1:1 | Fully supported | |
| Client Portal Configuration | HubSpot Service Hub Portal (rebuild)1: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
HubSpot gotchas
Marketing Contacts billing model is migration-critical
Feature tier gating is not visible until onboarding
Mandatory onboarding fees inflate year-one cost
HubSpot CSV importer cannot migrate engagements or attachments
Custom objects require Enterprise and a pre-existing schema
Pair-specific challenges
Migration approach
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.
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.
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.
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.
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
My Practice Now
Source
Strengths
Weaknesses
HubSpot
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 My Practice Now and HubSpot.
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
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 HubSpot migration scoping. Not seeing yours? Book a call.
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 consultationAdjacent paths
Other ways to leave My Practice Now
Other ways to arrive at HubSpot
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.