CRM migration

Migrate from Core Practice to Freshsales

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

Core Practice logo

Core Practice

Source

Freshsales

Destination

Freshsales logo

Compatibility

73%

8 of 11

objects map 1:1 between Core Practice and Freshsales.

Complexity

BStandard

Timeline

48–72 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Core Practice stores dental practice data — patients, appointments, treatment records, billing, and multi-office locations — in a domain-specific schema built for clinical workflows. Freshsales organizes data around Leads, Contacts, Accounts, and Deals with a Contact Lifecycle Stage model and multi-pipeline deal management. FlitStack AI maps Core Practice patients to Freshsales Contacts, Core Practice appointments to Freshsales Appointments, and treatment/billing records to custom fields on Contact and Account objects. Multi-location dental practices map to Freshsales Accounts with location information in address fields. Freshsales has no clinical or treatment-management module — treatment plan data and clinical notes become custom fields for reference; they cannot drive Freshsales workflows since those must be rebuilt in Freshsales's automation tools. We use Core Practice's API to export records in sequence (patients first, then appointments, then treatments) and bulk-insert into Freshsales with lookup resolution by email match. A delta-pickup window captures any records created or modified during cutover.

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

Core Practice logo

Core Practice

What's pushing teams away

  • Excessive clicks and overcomplicated workflows frustrate staff and slow down appointment booking.
  • Patients are reported lost due to poor data integrity and unreliable patient record management.
  • The platform scores poorly on ease of use, value for money, and customer service compared to competitors.
  • Low review volume (6 verified reviews) suggests limited adoption and a lack of community resources.
  • Users report the software is useless at making appointments, directly undermining core dental practice operations.

Choosing

Freshsales logo

Freshsales

What's pulling them in

  • Lowest barrier to entry among major CRMs — the free tier supports up to 3 users and includes core CRM functionality before committing to per-seat pricing.
  • Built-in chat, email, and phone reduce reliance on third-party integrations for basic sales communication and contact management.
  • Freddy AI contact scoring and deal insights are included on Pro plans at a lower price than comparable HubSpot tiers.
  • Kanban pipeline views across Contacts, Accounts, and Deals provide visual deal management without requiring custom configuration.
  • Integration with the broader Freshworks ecosystem (Freshdesk, Freshchat, Freshservice) reduces tool sprawl for teams already using Freshworks.

Object mapping

How Core Practice objects map to Freshsales

Each row shows how a Core 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.

Core Practice

Patient

maps to

Freshsales

Contact

1:1
Fully supported

Core Practice patients map directly to Freshsales Contacts. First name, last name, email, phone, and address fields transfer as-is. Patient status (active/inactive/recall) migrates to a custom pick-list field since Freshsales has no patient-status concept — the Contact Lifecycle Stage does not map directly to clinical status.

Core Practice

Patient

maps to

Freshsales

Account

many:1
Fully supported

When a Core Practice patient is also a household or family billing account, we create a Freshsales Account (family/household name) and link the Contact records to it. Insurance subscriber information on the patient becomes custom fields on the Account for billing clarity.

Core Practice

Appointment

maps to

Freshsales

Appointment

1:1
Fully supported

Core Practice appointments map to Freshsales Appointments with start time, end time, owner, and linked Contact preserved. Clinical metadata (provider name, operatory number, procedure codes) migrates as custom fields on the Appointment record since Freshsales Appointments lack clinical context fields.

Core Practice

Treatment Plan

maps to

Freshsales

Custom Field on Contact

1:1
Fully supported

Core Practice treatment plans (procedures, diagnoses, notes) have no Freshsales equivalent. We migrate treatment plan summaries and procedure codes as long-text custom fields on the Contact record. Detailed clinical notes become attachments or custom fields per your specification — they cannot drive Freshsales automations.

Core Practice

Treatment Record

maps to

Freshsales

Custom Field on Contact

1:1
Fully supported

Individual treatment records (date, procedure, provider, tooth number, notes) migrate as a series of custom fields on the Contact or as a JSON blob in a long-text field. Freshsales has no native treatment history object — clinical data is preserved for reference but cannot generate Freshsales reports by procedure type without custom reporting setup.

Core Practice

Billing Record / Ledger Entry

maps to

Freshsales

Deal

1:1
Fully supported

Core Practice billing ledger entries (charges, payments, adjustments) are financial events. We map outstanding balances to Freshsales Deal amounts and payment history to custom fields on the Contact or linked Deal. A patient with an outstanding balance becomes a Deal record keyed to the Contact's Account.

Core Practice

Insurance Information

maps to

Freshsales

Custom Field on Contact / Account

many:1
Fully supported

Primary and secondary insurance details (carrier, policy number, group number, subscriber) migrate as custom fields on both Contact and Account. Freshsales has no native insurance object — insurance data is preserved as reference fields but does not trigger Freshsales workflows.

Core Practice

Staff / Provider

maps to

Freshsales

User

1:1
Fully supported

Core Practice staff records (dentists, hygienists, admin) map to Freshsales Users by email match. Provider type (dentist, hygienist, admin) becomes a custom pick-list field on the User record. Staff without Freshsales user accounts are flagged for admin to create accounts before migration or assigned to a fallback owner.

Core Practice

Recall / Re-care

maps to

Freshsales

Task

1:1
Fully supported

Core Practice recall intervals (6-month hygiene, annual exam) generate Freshsales Tasks with due dates calculated from last appointment date plus recall interval. Recall type (hygiene, exam, perio) maps to Task subject. Open recalls become open Tasks; completed recalls become closed Tasks with completion date.

Core Practice

Practice Location

maps to

Freshsales

Account

1:many
Fully supported

Core Practice multi-location setups create separate Account records per location in Freshsales. Each location's patients link to their primary location Account via AccountId. Location address, phone, and operating hours migrate as Account fields. This enables territory management in Freshsales if you assign location-based Account teams.

Core Practice

Document / Attachment

maps to

Freshsales

File

1:1
Fully supported

Core Practice file attachments (treatment consent forms, insurance cards, clinical images) re-upload to Freshsales Files linked to the corresponding Contact or Account record. File size limits apply — Freshsales supports file uploads up to 25MB per file. Inline images in notes are extracted and rehosted as individual files.

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.

Core Practice logo

Core Practice gotchas

High

No publicly documented public API for direct data extraction

High

Proprietary patient archiving logic can silently drop records

Medium

Appointment booking reliability is a documented weakness

Medium

Limited review volume limits migration confidence

Freshsales logo

Freshsales gotchas

Medium

Freddy AI is Pro-tier only despite heavy marketing

High

Post-migration emails and sequences are disabled

Medium

Bot session credits are a one-time 500-session allocation

Medium

Phone credits charged per minute with no cap

Low

File storage limits scale with plan tier

Pair-specific challenges

  • Clinical treatment data has no Freshsales workflow trigger

    Core Practice stores clinical treatment records — procedure codes, tooth numbers, clinical notes — that drive recall reminders and clinical workflows inside Core Practice. Freshsales has no native treatment or clinical object. We migrate treatment history as custom fields on the Contact record for reference, but these fields cannot trigger Freshsales automations. Recall tasks must be regenerated from scratch in Freshsales using the last appointment date and recall interval logic from Core Practice. Your team will need to rebuild the recall automation in Freshsales Workflows after migration.

  • Multi-location patient splitting requires manual location assignment

    Core Practice multi-location setups may share patients across locations. Freshsales Account represents a single business entity — a patient seen at two locations becomes two Contact records linked to two separate Account records (one per location) or one Contact with a primary Account and location flagged in a custom field. We map location based on the patient's most-recently-visited location in Core Practice. If patients routinely visit multiple offices, your admin must decide whether to consolidate to one Contact per patient (with location stored as a field) or allow duplicates keyed by location Account.

  • Core Practice staff roles do not map to Freshsales profiles

    Core Practice differentiates staff by role (dentist, hygienist, office manager, front desk). Freshsales Users do not have a native role field — permissions are handled through profile and territory assignments. We map Core Practice staff to Freshsales Users by email and flag provider type as a custom pick-list field on the User record. But this field does not control Freshsales permissions. Your Freshsales admin must configure profile assignments for each staff member before migration to ensure appropriate access to Leads, Contacts, Accounts, and Deals.

  • Insurance information becomes orphaned reference data

    Core Practice insurance records link patients to insurance carriers with policy details, subscriber information, and coverage percentages. Freshsales has no native insurance object — we migrate insurance data as custom fields on Contact and Account. However, these fields are static reference data. If your practice uses insurance estimates or coverage calculations in Core Practice, those financial calculations do not transfer. Outstanding insurance claims tracked in Core Practice must be mapped manually to Freshsales Deals or recreated as custom objects if your workflow requires them to drive Freshsales reporting.

  • Billing ledger entries require transformation to Deals

    Core Practice billing tracks individual ledger entries — charges, payments, adjustments, write-offs — with running balances per patient. Freshsales Deals represent a single amount with a stage, not a ledger. We map the outstanding balance to a Deal with Amount = current balance and create a custom field to hold the last payment date. Historical ledger entries (payment history) are not represented in Freshsales natively — we store a payment summary as custom fields on the Contact or Deal. If you need full accounting ledger history, that data belongs in a practice management or accounting system, not Freshsales.

Migration approach

Six steps for a successful Core Practice to Freshsales data migration

  1. Extract Core Practice data in dependency order

    FlitStack AI connects to Core Practice via API and exports records in sequence: patients first (to resolve Contact lookups), then appointments, then treatments, then billing records, then staff and locations. We preserve original create dates, last-modified dates, and owner assignments from Core Practice. Multi-location exports run per-location and are tagged with location identifiers for Freshsales Account assignment. This ensures referential integrity throughout the migration process.

  2. Pre-map custom fields and value lists in Freshsales

    Before data loads, FlitStack creates the custom fields required for dental-specific data: Patient_Status__c (pick-list), Treatment_History__c (long-text), Procedure_Codes__c (text), Operatory__c (text), Insurance_Carrier__c (text), Policy_Number__c (text), Recall_Type__c (pick-list), and others identified during the audit. We also create the Freshsales Accounts for each practice location if multi-location is detected. Your Freshsales admin reviews and approves the custom field setup plan before we proceed.

  3. Match staff to Freshsales Users by email

    Core Practice staff records are matched to Freshsales Users by email address. Provider type (dentist, hygienist) is stored as a custom pick-list on the User record. Staff without Freshsales user accounts are flagged before migration — your admin creates Freshsales accounts for them or assigns their records to a fallback owner. No contact or appointment lands without an OwnerId. This prevents orphaned records and maintains accountability across the migrated dataset.

  4. Run sample migration with field-level diff

    A representative sample (typically 200–500 records spanning patients, appointments, and treatments) migrates to Freshsales first. We generate a field-level diff showing every mapped field, its source value in Core Practice, and the resulting value in Freshsales. You verify patient status mapping, recall task generation, billing-to-Deal transformation, and location assignment before the full run commits. Sample approval is required before proceeding.

  5. Full migration with delta-pickup and rollback audit

    Full data load executes in dependency order — locations first (Accounts), then patients (Contacts), then appointments, then treatments and billing. A delta-pickup window (24–48 hours) captures any Core Practice records created or modified during the cutover window. FlitStack generates an audit log of every record inserted, updated, or skipped. One-click rollback reverts all changes if reconciliation fails. After rollback confirmation, your team can retry from the delta-pickup point.

Platform deep dives

Context on both ends of the pair

Core Practice logo

Core Practice

Source

Strengths

  • Cloud-based with no server maintenance or upfront capital costs.
  • No lock-in contracts allow month-to-month commitment.
  • Australian-hosted infrastructure for local data residency compliance.
  • All-in-one bundling of commercial, clinical, and clerical functions.
  • Real-time access from any device for multi-location practices.

Weaknesses

  • Extremely low review rating (2.7/5) indicating widespread user dissatisfaction.
  • Only 6 verified reviews exist, making independent evaluation difficult.
  • Poor ease-of-use scores (3.0/5) reflect overcomplicated workflows.
  • Weak customer service ratings (2.6/5) from the small reviewer base.
  • Minimal third-party integrations and limited API documentation published.
Freshsales logo

Freshsales

Destination

Strengths

  • Generous free tier for small teams with core CRM functionality without per-seat costs.
  • All-in-one sales CRM with built-in telephony, chat, and email reducing third-party tool dependency.
  • Freddy AI contact scoring and deal predictions available on Pro tier.
  • Multiple pipeline views with Kanban and list options across all plans.

Weaknesses

  • Reports lack depth compared to competitors like HubSpot, with limited customization options.
  • Integration setup is poorly documented with no clear guides for connecting third-party tools.
  • AI features gated behind $39/user/month Pro tier despite marketing emphasis on Freddy AI.
  • Bot sessions limited to 500 one-time allocation with no monthly refresh.

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 Core Practice and Freshsales.

  • 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

    Core Practice: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

Estimate your Core Practice to Freshsales 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 Core Practice to Freshsales data migrations

Answers to the questions buyers ask most during Core Practice to Freshsales migration scoping. Not seeing yours? Book a call.

Can't find your answer?

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

Book a free 30 minute consultation

Most Core Practice to Freshsales migrations complete in 48–72 hours for practices with under 25,000 patient records. Larger setups with multi-location data or extensive custom field configurations (treatment histories, recall intervals, insurance fields) extend to 5–10 days. The custom field creation and approval step in Freshsales is typically the longest pre-migration task, as your team reviews and approves the field structure before data loads begin.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Core Practice.
Land in Freshsales, 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