CRM migration
Field-level mapping, validation, and rollback between The Practice and Freshsales. We move data and schema; workflows are rebuilt natively in Freshsales.
The Practice
Source
Freshsales
Destination
Compatibility
12 of 12
objects map 1:1 between The Practice and Freshsales.
Complexity
BStandard
Timeline
48–72 hours of active migration time
Overview
The Practice stores client-centric practice-management data: client profiles with contact details, session and appointment history, intake form responses, custom client fields, document attachments, billing records, and therapist or coach ownership. Freshsales CRM organizes data around Leads, Contacts, Accounts, and Deals with a lifecycle-stage model, AI scoring, and built-in phone and email. The migration carries every client record, company record, appointment note, and custom field into the equivalent Freshsales object, maps The Practice owner email to Freshsales user accounts, and preserves intake-form field values as custom fields on the Contact record. Scheduling and appointment-blocking logic, automated session reminders, and practice-specific billing constructs have no native Freshsales equivalent and must be rebuilt manually after migration. We use scoped read access on The Practice and the Freshsales REST API to execute the migration so your team continues working in The Practice during the cutover window with a 24–48 hour delta pickup capturing in-flight changes.
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 The Practice object lands in Freshsales, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
The Practice
Client
Freshsales
Contact
1:1The Practice client profile maps directly to a Freshsales Contact. The primary email, phone, name, address, and owner fields migrate 1:1. The Practice client ID is stored as Source_System_ID__c on the Freshsales Contact for delta-run de-duplication and ensures referential integrity across systems.
The Practice
Client Company / Organization
Freshsales
Account
1:1When a The Practice client is associated with a company or organization, that data maps to a Freshsales Account. The Account Name, Website, Industry, and Employee Count fields migrate as direct equivalents. If no company is recorded in The Practice, no Account record is created.
The Practice
Client Status (Active, On Hold, Discharged)
Freshsales
Contact Lifecycle Stage
1:1The Practice client status is a pick-list that maps to Freshsales Lifecycle Stage. 'Active' maps to 'Customer', 'On Hold' maps to 'Subscriber', and 'Discharged' maps to a custom lifecycle value. This mapping is configurable — your team chooses the stage values before migration.
The Practice
Session / Appointment Record
Freshsales
Task
1:1Each session or appointment in The Practice migrates as a Freshsales Task record with Type='Appointment'. The original session date and duration are preserved in the Task's due date and description fields. The owning therapist maps to the Freshsales user by email match.
The Practice
Session Notes
Freshsales
Note
1:1Free-text session notes migrate as Freshsales Notes attached to the corresponding Contact record. Original create timestamps are preserved in the note metadata. Rich-text formatting is converted to plain text for compatibility. The migrated notes retain the author’s name and are searchable within Freshsales, supporting future reporting and follow-up workflows.
The Practice
Intake Form Responses
Freshsales
Custom Fields on Contact
1:1Intake-form field names and values from The Practice become Freshsales custom fields on the Contact object. Each field requires a corresponding custom field to be created in Freshsales before migration. We deliver a field-creation checklist as part of the migration plan.
The Practice
Custom Client Fields
Freshsales
Custom Fields on Contact / Account
1:1Any specialty-specific custom fields (e.g., treatment modality, referral source, insurance carrier) map to Freshsales custom fields on Contact or Account depending on whether the field applies to the person or the organization. Field data type (text, number, pick-list, date) is preserved during mapping.
The Practice
Document / Attachment
Freshsales
Freshsales File Attachment
1:1Documents and attachments (PDFs of intake forms, signed contracts, session recordings if stored) are downloaded from The Practice and re-uploaded to Freshsales as file attachments on the relevant Contact or Account record. We respect the per-plan storage limits (Growth: 2GB/user, Pro: 5GB/user, Enterprise: 100GB/user).
The Practice
Billing / Payment Record
Freshsales
Custom Fields on Contact
1:1Invoice and payment history from The Practice's billing module does not map to a native Freshsales object. We preserve billing summary fields (outstanding balance, last payment date) as read-only custom fields on the Contact for reference. Full invoice history is exported as a CSV alongside the migration.
The Practice
Therapist / Practitioner User
Freshsales
Freshsales User
1:1The Practice practitioner or therapist email resolves to a Freshsales User account by email match. Unmatched practitioners are flagged before migration — either invite them to Freshsales first or assign their clients to a designated fallback owner. No Contact lands without an OwnerId.
The Practice
Recurring Appointment Block
Freshsales
Freshsales Calendar Integration (Manual Rebuild)
1:1The Practice recurring availability blocks and recurring appointment templates have no Freshsales equivalent. We export the recurring schedule data as a structured CSV that your team can use to configure Freshsales calendar integrations with Google Calendar or Outlook post-migration for smooth scheduling.
The Practice
Client Tag / Label
Freshsales
Freshsales Contact Tag
1:1Tags and labels applied to clients in The Practice migrate as Freshsales Contact Tags. Tag names are preserved exactly. Tags used for segmentation or automation triggers are documented for workflow rebuild reference. These tags enable targeted marketing campaigns, lead routing, and performance reporting across your Freshsales instance.
| The Practice | Freshsales | Compatibility | |
|---|---|---|---|
| Client | Contact1:1 | Fully supported | |
| Client Company / Organization | Account1:1 | Fully supported | |
| Client Status (Active, On Hold, Discharged) | Contact Lifecycle Stage1:1 | Fully supported | |
| Session / Appointment Record | Task1:1 | Fully supported | |
| Session Notes | Note1:1 | Fully supported | |
| Intake Form Responses | Custom Fields on Contact1:1 | Fully supported | |
| Custom Client Fields | Custom Fields on Contact / Account1:1 | Fully supported | |
| Document / Attachment | Freshsales File Attachment1:1 | Fully supported | |
| Billing / Payment Record | Custom Fields on Contact1:1 | Fully supported | |
| Therapist / Practitioner User | Freshsales User1:1 | Fully supported | |
| Recurring Appointment Block | Freshsales Calendar Integration (Manual Rebuild)1:1 | Fully supported | |
| Client Tag / Label | Freshsales Contact Tag1: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.
The Practice gotchas
No public API means all migration data must be extracted manually
Session recordings and large files require separate manual download
Client group and tag inheritance is not automatically preserved in exports
Contract PDFs are stored as linked files, not embedded records
Freshsales gotchas
Freddy AI is Pro-tier only despite heavy marketing
Post-migration emails and sequences are disabled
Bot session credits are a one-time 500-session allocation
Phone credits charged per minute with no cap
File storage limits scale with plan tier
Pair-specific challenges
Migration approach
Export The Practice data and audit the schema
We connect to The Practice via scoped read access and export all client records, session history, notes, attachments, custom fields, and user accounts. We audit the field inventory to identify intake-form fields, billing flags, and specialty properties. This produces a schema-diff document showing every The Practice field and its proposed Freshsales target — this is the foundation for the custom field creation checklist.
Create Freshsales custom fields and configure lifecycle mapping
Your Freshsales admin (or our team with admin credentials) creates the custom fields identified in the schema audit — intake-form fields on Contact, billing reference fields, and any custom objects. We configure the client-status-to-lifecycle-stage value mapping and validate it with you before the migration sample run. Owner resolution runs against Freshsales user list by email match; unmatched practitioners are flagged for team action.
Run a sample migration with field-level diff
A representative slice of records — typically 100–500 spanning clients, companies, deals, session tasks, and notes — migrates to Freshsales first. We generate a field-level diff showing every mapped field, its source value, and its destination value. You review the sample in Freshsales to validate lifecycle stage assignment, owner resolution, note attachment, and custom field population. No full run commits until the sample is approved.
Execute full migration with delta-pickup window
The full record set migrates to Freshsales via the REST API, paced to respect Freshsales rate limits for your plan tier. After the primary run completes, a delta-pickup window (24–48 hours) captures any records created or modified in The Practice during the cutover period. The audit log records every operation. One-click rollback reverts all changes if reconciliation fails and ensures data integrity.
Deliver supplementary exports and rebuild reference
Alongside the migrated records, we deliver: (1) a CSV export of full billing and invoice history that has no Freshsales equivalent; (2) a recurring availability CSV for calendar reconfiguration; (3) a workflow-rebuild reference document mapping each The Practice automation trigger to Freshsales Workflow builder equivalents. We provide a handoff session with your Freshsales admin to complete the rebuild tasks that must happen outside the migration scope.
Platform deep dives
The Practice
Source
Strengths
Weaknesses
Freshsales
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 The Practice and Freshsales.
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
The Practice: Not publicly documented.
Data volume sensitivity
The Practice 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 The Practice to Freshsales migration scoping. Not seeing yours? Book a call.
Walk through your The Practice to Freshsales migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave The Practice
Other ways to arrive at Freshsales
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.