CRM migration

Migrate from Phreesia to Freshsales

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

Phreesia logo

Phreesia

Source

Freshsales

Destination

Freshsales logo

Compatibility

92%

11 of 12

objects map 1:1 between Phreesia and Freshsales.

Complexity

BStandard

Timeline

5–10 business days

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Phreesia is a patient-intake and engagement platform used by healthcare practices for registration, insurance verification, consent collection, and payments. It is not a CRM — it does not natively store leads, pipelines, or deal records. Freshsales is a sales CRM with a fixed object model: Leads, Contacts, Accounts, Deals, Tasks, and Events. There is no direct object-to-object correspondence between the two platforms, so the migration scope is narrower than a typical CRM-to-CRM project. We extract patient demographic records, appointment data, insurance fields, and consent records from Phreesia, then map them into Freshsales Contact and custom fields. Intake forms, clinical screenings, and logic-driven questionnaires cannot map to any native Freshsales object — they require manual rebuild using Freshsales web forms or a third-party forms tool. Workflows, payment automation, and EHR integrations built in Phreesia do not transfer. Freshsales imposes plan-level restrictions on custom fields: the Growth plan ($9/user/mo) supports basic text, number, and date fields; advanced field types and custom objects require Pro ($39) or Enterprise ($59). We use the Freshsales CRM API for record ingestion, respecting their rate limits of 700 API requests per minute, and run a delta-pickup window to capture any Phreesia records 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

Phreesia logo

Phreesia

What's pushing teams away

  • Workflow automation beyond intake is limited; recall campaigns, treatment plan follow-ups, and marketing sequences require separate tools, frustrating practices seeking a unified patient engagement platform.
  • Integration promises sometimes do not match actual capability; organizations report that promised data write-back to their PM/EHR did not function as sold during implementation.
  • Frequent user interface updates disrupt staff workflows and require retraining, with some reviewers describing the platform as difficult to navigate after changes.
  • Patient-facing complexity creates friction for older or less technical patients, who struggle with self-service check-in and require staff assistance that partially negates efficiency gains.
  • Pricing is opaque and requires sales consultation, making budget planning difficult and leading some organizations to seek alternatives with published pricing tiers.

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 Phreesia objects map to Freshsales

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

Phreesia

Patient Record (Demographics)

maps to

Freshsales

Contact

1:1
Fully supported

Patient first name, last name, email, phone, address, and date of birth map directly to Freshsales Contact standard fields. Email serves as the unique identifier for de-duplication across the migration. Phone number maps to Freshsales Contact.phone, and mobile phone maps to Contact.mobile. The composite address object on Contact receives the street, city, state, zip, and country fields from Phreesia. Date of birth maps to Contact.date_of_birth. This direct field mapping preserves all core demographic data without transformation.

Phreesia

Patient Demographics (unconverted)

maps to

Freshsales

Lead

1:many
Fully supported

Phreesia patient records are undifferentiated — every record is a patient regardless of appointment status. We apply a lifecycle routing rule: patients with at least one completed appointment in Phreesia migrate to Freshsales Contact; those with only scheduled but not-yet-completed appointments route to Freshsales Lead. This split is determined by querying Phreesia appointment records for each patient during migration and applying the routing rule consistently.

Phreesia

Insurance Record (Payer + Policy)

maps to

Freshsales

Custom Fields on Contact

1:1
Fully supported

Freshsales has no native insurance object. Payer name, policy number, group ID, and coverage status migrate to custom text fields on Contact. Insurance type (commercial, Medicare, Medicaid) maps to a custom dropdown. These fields require Freshsales Pro or Enterprise for advanced dropdown types.

Phreesia

Appointment / Visit Record

maps to

Freshsales

Deal

1:1
Fully supported

Each completed appointment becomes a Freshsales Deal. The Deal name uses the appointment date plus provider name. If the appointment generated a billing amount, that value maps to Deal.amount. Otherwise, amount is set to zero and a custom Appointment_Type__c field records the visit type. Pipeline and stage are set to default values unless the organization defines custom pipelines.

Phreesia

Appointment / Visit Record

maps to

Freshsales

Task

1:1
Fully supported

Each completed appointment in Phreesia generates a Freshsales Task record for follow-up tracking purposes. The Task captures appointment date, provider name, and appointment status. Tasks are linked to the corresponding Contact via the foreign key relationship, preserving a complete appointment history within Freshsales even for visits that generated no billing amount and therefore have no associated Deal record.

Phreesia

Patient Consent Record

maps to

Freshsales

Note on Contact

1:1
Fully supported

Consent form completion records including form name, signed date, and consent type are written as Freshsales Notes attached to the Contact record. The consent form name becomes the Note title, the signed date maps to Note.created_at, and the full consent text content is stored in the Note body field. This approach preserves the complete consent audit trail without requiring custom objects or advanced field types on any Freshsales plan tier.

Phreesia

Intake Form Configuration

maps to

Freshsales

No equivalent

1:1
Fully supported

Phreesia's logic-driven intake questionnaires (conditional questions, clinical screening logic, custom response validation) have no Freshsales equivalent. These must be rebuilt manually using Freshsales web forms, Typeform, or a similar tool. We document the Phreesia form structure for the rebuild team.

Phreesia

Payment / Card-on-File Record

maps to

Freshsales

No equivalent

1:1
Fully supported

Phreesia stores card-on-file tokens and payment history for time-of-service collection. Freshsales has no native payment or billing object. Payment tokens do not migrate. We document the payment method on file as a Note for reference; actual payment processing stays in Phreesia or moves to a dedicated payment platform.

Phreesia

Clinical Screening Result

maps to

Freshsales

Custom Fields on Contact

1:1
Fully supported

Patient-reported screening results (PHQ-9, tobacco use, social determinants) collected during Phreesia intake migrate to custom fields on Contact. Field types depend on the result format: numeric scores use Number fields; yes/no outcomes use Checkbox; categorical results use Dropdown. Growth plan users may need to upgrade to Pro for advanced field types.

Phreesia

Provider / Staff Record

maps to

Freshsales

User (Freshsales Owner)

1:1
Fully supported

Phreesia provider and staff records resolve by email match to Freshsales User accounts. Unmatched providers are flagged before migration — the team either provisions Freshsales users first or assigns records to a fallback owner. Provider specialty maps to a custom User field.

Phreesia

EHR Integration Settings

maps to

Freshsales

No equivalent

1:1
Fully supported

Phreesia's bidirectional EHR and PM integrations including eClinicalWorks, Epic, and athenahealth are destination-specific configurations stored within Phreesia that do not export via API. These integrations must be rebuilt in Freshsales through the Freshworks Marketplace or using middleware such as Zapier or a custom API integration. We document the current Phreesia integration flow in detail for the rebuild team to reference during reconstruction.

Phreesia

Phreesia Internal ID

maps to

Freshsales

Custom Field on Contact

1:1
Fully supported

The original Phreesia patient record identifier is preserved as a custom text field (Phreesia_Patient_ID__c) on the Freshsales Contact during migration. This custom field enables delta-run de-duplication checks, prevents duplicate record creation on subsequent migration runs, and provides traceability back to the source Phreesia system for reconciliation and audit purposes after migration completion.

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.

Phreesia logo

Phreesia gotchas

High

PM/EHR integration configuration must be validated before patient data import

High

Custom intake forms lack a standard schema export

Medium

Phreesia is an intake platform, not a longitudinal patient database

Low

Patient secure authentication links are time-limited and non-migratable

Medium

Payment plan configurations require manual reconciliation

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

  • Freshsales Growth plan blocks advanced custom field types needed for insurance and clinical data

    The Freshsales Growth plan ($9/user/mo) restricts custom fields to basic types: text, number, date, checkbox, currency, and dropdown. Insurance payer type dropdowns, clinical screening result pick-lists, and multi-select outcome fields all require Freshsales Pro ($39) or Enterprise ($59). Migration plans that assume custom dropdowns on Growth will fail validation. We audit the target plan tier before building the field map and flag any field type violations so the organization can upgrade before data lands.

  • Phreesia intake forms and clinical questionnaire logic have no Freshsales equivalent

    Phreesia's core product is its logic-driven intake questionnaires — conditional questions based on appointment type, provider, or patient responses. These forms are configuration data within Phreesia, not records in a database, so they do not export via API. Freshsales has no native form-logic engine; basic web forms and survey integrations are the replacement path. We document the current Phreesia form structure field-by-field so the rebuild team has a spec, but the migration itself carries no form logic. This is a manual rebuild that typically takes 1–3 weeks depending on form complexity.

  • Appointment-to-Deal mapping requires a default pipeline and stage configuration in Freshsales first

    Freshsales Deals require a Pipeline and Stage to be configured before records can be created. Phreesia appointment records have no native pipeline concept. Before migration, Freshsales must have at least one pipeline created (Settings → Deals → Pipeline) with at least one stage. We deliver a pre-migration Freshsales setup checklist that includes pipeline creation. If the organization has multiple Phreesia locations that should map to separate pipelines, each requires a distinct Freshsales pipeline and associated stage set, which multiplies the pre-migration configuration work.

  • Phreesia patient records lack a native lifecycle stage — Freshsales Lead/Contact routing requires a business rule

    Freshsales splits records into Lead and Contact based on lifecycle stage or conversion status. Phreesia has no lifecycle stage field — every record is a patient. We route records by appointment history: patients with at least one completed appointment become Contacts; those with only scheduled but not-yet-completed appointments become Leads. This rule must be agreed upon with the client before migration because it determines which Freshsales object receives the data and which fields are visible in the default layout. Mis-routing requires manual correction post-migration.

  • Payment records and card-on-file data do not migrate and have no Freshsales home

    Phreesia's payment module stores card-on-file tokens, billing history, and payment plan configurations. Freshsales has no payment, billing, or financial object. We preserve payment method descriptions (e.g., 'Visa ending 4242 — Card on File') as a Note on the Contact for reference, but the actual tokenized payment data, charge history, and outstanding balance records cannot transfer. Organizations that need to maintain payment records post-migration should retain Phreesia for billing, migrate to a dedicated healthcare payment platform, or implement Freshsales + a payment integration (Stripe, Square) for future transactions. We document the existing payment setup so the replacement is planned, not accidental.

Migration approach

Six steps for a successful Phreesia to Freshsales data migration

  1. Audit Phreesia data exports and confirm Freshsales plan tier

    We begin every Phreesia migration with a data audit. Phreesia pushes records to integrated EHR/PM systems rather than exposing a public bulk-export API, so the primary export path is the EHR integration or Phreesia's CSV export function. We identify all available record types — patient demographics, insurance records, appointment history, consent forms, and screening results — and confirm the export format. In parallel, we verify the target Freshsales plan. If the migration requires custom dropdowns for insurance type or clinical screening outcomes, the organization must be on Freshsales Pro or Enterprise before custom field creation begins. This step produces a Data Availability Report and a Freshsales Plan Requirements Summary.

  2. Map patient records to Freshsales Lead and Contact objects with lifecycle routing rule

    Phreesia patient records are not leads or contacts — they are undifferentiated patient records. We apply a routing rule: patients with at least one completed appointment in Phreesia become Freshsales Contacts; patients with only scheduled appointments become Leads. This rule is documented in the mapping spec and reviewed with the client before execution. We map all standard contact fields (name, email, phone, address) directly, and we store the Phreesia patient ID as Phreesia_Patient_ID__c on every record for traceability.

  3. Create custom fields and configure Freshsales pipeline before data ingestion

    Before any records move, we create the custom fields required for insurance data, clinical screening results, and appointment metadata in Freshsales. This includes Insurance_Payer__c, Insurance_Policy_Number__c, Insurance_Type__c, Coverage_Status__c, Screening_Type__c, Screening_Result__c, and Visit_Type__c. We also create at least one Freshsales pipeline with a Closed Won and Closed Lost stage so Deal records can be inserted. If the Growth plan is in use, we flag any advanced field type requirements and recommend a plan upgrade. This step is sequenced before record migration so foreign-key dependencies resolve correctly.

  4. Run sample migration with field-level diff and mapping validation

    A representative slice of records — typically 100–500 covering contacts, appointments, insurance records, and consent forms — migrates first. We generate a field-level diff comparing the Phreesia source values against the Freshsales destination fields for every mapped column. The client reviews the diff to confirm routing rules, custom field values, and Deal naming conventions before the full run commits. This is the validation gate: no full migration runs until the sample diff is signed off. Common corrections at this stage include adjusting Deal name templates, correcting insurance type value mappings, and verifying owner assignment for provider records.

  5. Execute full migration with delta-pickup window and post-migration note on payment limitations

    The full migration ingests all patient records, insurance fields, appointment Deal records, and consent Notes into Freshsales. A delta-pickup window (typically 24–48 hours) captures any Phreesia records created or modified during the cutover window. We run de-duplication checks against Phreesia_Patient_ID__c to prevent duplicate imports. After migration, we deliver a Post-Migration Report documenting the record counts by object, any records that failed to migrate with error reasons, and the list of Phreesia data that has no Freshsales equivalent (payment tokens, intake form logic, EHR integrations) with recommended rebuild paths for each.

Platform deep dives

Context on both ends of the pair

Phreesia logo

Phreesia

Source

Strengths

  • Automated insurance eligibility and benefits verification before the patient arrives reduces claim denials and front-desk work.
  • Bidirectional integrations with major PM and EHR systems keep demographics, consents, and payments synchronized automatically.
  • Patient self-service check-in saves clinical staff over five minutes per visit on average across Phreesia's network.
  • Electronic consent capture with logic-driven prompting reaches 99% automatic signature or re-signature completion rates.
  • In-house merchant processing with flat-rate pricing consolidates payment infrastructure within the same platform.

Weaknesses

  • Workflow automation is limited to intake; recall campaigns, treatment follow-up, and marketing sequences require separate systems, frustrating practices seeking unified engagement tooling.
  • API documentation is not publicly accessible, making programmatic data extraction a coordination effort with Phreesia's implementation team rather than a self-service export.
  • Integration capabilities and actual data write-back behavior vary between PM/EHR systems, with some organizations reporting promised functionality did not work as described.
  • Custom intake forms and screening logic are organization-specific, making pre-migration field mapping a manual, per-customer effort with no standardized schema export.
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 Phreesia 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

    Phreesia: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

Most Phreesia-to-Freshsales migrations complete in 5–10 business days for under 25,000 patient records. The timeline is driven by how quickly the Phreesia data export is available (EHR integration pull or CSV), whether the organization needs to upgrade to Freshsales Pro or Enterprise for custom field types, and how many custom fields and pipelines need pre-migration setup. Migrations involving appointment history, multiple insurance carriers, or clinical screening records on the Growth plan extend to 3–4 weeks. We begin with a data audit that typically takes 1–2 days before any ingestion begins.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Phreesia.
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