CRM migration

Migrate from Phreesia to Twenty CRM

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

Phreesia logo

Phreesia

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

100%

11 of 11

objects map 1:1 between Phreesia and Twenty CRM.

Complexity

BStandard

Timeline

48–96 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Phreesia and Twenty CRM serve fundamentally different functions: Phreesia is a patient-intake platform built for healthcare organizations, handling registration, insurance verification, clinical screening, consent capture, and payment collection at point of care. Twenty CRM is a general-purpose open-source CRM modeled around People, Companies, Opportunities, Tasks, and custom objects. There is no native alignment between the two data models — Phreesia's patient-level clinical and insurance data must be mapped into Twenty's People object with custom fields, and its appointment and consent records become Tasks and Notes respectively. FlitStack AI uses Phreesia's CSV export and API endpoints where available to extract all patient demographics, insurance carrier and policy data, consent timestamps, appointment history, and clinical screening results. We then build the corresponding custom fields in Twenty (Settings → Data Model), migrate People records with all standard and custom fields, and attach consent PDFs and clinical screening outputs as Notes or file attachments. Workflows, automations, and payment-processing logic built inside Phreesia do not transfer — we export those definitions as reference documents for your team to rebuild inside Twenty's workflow builder or via n8n.

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

Twenty CRM logo

Twenty CRM

What's pulling them in

  • Top open-source CRM on GitHub with 40.6K stars, giving teams full source code access and infrastructure ownership without per-feature licensing surprises.
  • Free self-hosting under AGPL-3.0 means unlimited users and custom objects for the cost of cloud infrastructure alone, typically $20–100/month.
  • Pricing page explicitly mocks competitors for charging add-on fees for API access, webhooks, and workflows — transparency that resonates with RevOps teams burned by Salesforce.
  • Unlimited custom objects and fields with no price impact, letting teams shape the data model to their business rather than forcing business into rigid schemas.
  • Modern TypeScript/React/PostgreSQL stack means developer-led teams can extend, self-host, or integrate without fighting legacy architecture.

Object mapping

How Phreesia objects map to Twenty CRM

Each row shows how a Phreesia object lands in Twenty CRM, including any object-level transformations, lookup resolution, or schema-design dependencies.

Typical mapping — final map is confirmed during the sample migration step.

Phreesia

Patient

maps to

Twenty CRM

People

1:1
Fully supported

Phreesia Patient records map directly to Twenty People records. Core demographics (name, date of birth, address, phone, email) migrate as standard Twenty fields. Medical record number (MRN) and Phreesia patient ID are stored as custom fields for traceability and delta-run de-duplication.

Phreesia

Insurance Record

maps to

Twenty CRM

Custom Object: Insurance Record

1:1
Fully supported

Phreesia Insurance is a linked object on Patient — carrier name, policy number, group number, subscriber ID, and relationship to subscriber do not map to any standard Twenty field. FlitStack creates a custom object with these fields and links each Insurance Record to the corresponding People record via a relation field.

Phreesia

Consent Form

maps to

Twenty CRM

Note + File Attachment

1:1
Fully supported

Phreesia consent records (HIPAA, treatment consent, financial policy) contain e-signature timestamps and document metadata. We migrate the consent type, capture date, and signer name as a Twenty Note on the People record, and attach the original PDF as a file linked to that Note.

Phreesia

Clinical Screening

maps to

Twenty CRM

Custom Object: Clinical Screening + Note

1:1
Fully supported

Phreesia captures clinical screening responses (PHQ-9, blood pressure, glucose, allergies, medications) as structured or free-text data. We create a custom Clinical Screening object with relevant fields and link it to the People record; raw response text migrates as a Note attachment for audit continuity.

Phreesia

Appointment

maps to

Twenty CRM

Task

1:1
Fully supported

Phreesia Appointment records include date, time, provider name, appointment type, and status. These map to Twenty Tasks: Task.name becomes the appointment type, Task.dueAt maps to the appointment datetime, and the provider name migrates as a custom field on the Task record.

Phreesia

Payment Record

maps to

Twenty CRM

Custom Object: Payment

1:1
Fully supported

Phreesia Payment records (amount, date, method, status, description) do not map to any standard Twenty object. We create a Payment custom object linked to the People record, storing amount as currency, date as a date field, and payment method as a select field.

Phreesia

Provider / Staff

maps to

Twenty CRM

WorkspaceMember

1:1
Fully supported

Phreesia provider and staff records are resolved by email against Twenty WorkspaceMembers. Unmatched providers are flagged before migration — your team either invites them to Twenty first or assigns records to a fallback member. Provider specialty and credentials migrate as custom fields on the WorkspaceMember record.

Phreesia

Intake Form Response

maps to

Twenty CRM

Note + Custom Field

1:1
Fully supported

Phreesia intake forms generate structured responses (demographic updates, insurance corrections, social history). We extract key field values into custom fields on the People record and attach the completed form as a Note for reference. Highly structured responses may warrant a custom intake-response object.

Phreesia

Custom Phreesia Object

maps to

Twenty CRM

Custom Object

1:1
Fully supported

Phreesia Enterprise setups may include custom intake objects for specialty programs, site-specific workflows, or organization-defined data structures. These custom Phreesia objects map 1:1 to Twenty custom objects, preserving field types and pick-list values where possible. If a custom Phreesia object uses N:N relationships (such as a patient enrolled in multiple programs), FlitStack creates the corresponding junction records and relation fields in Twenty during migration to maintain the relationship graph.

Phreesia

Document / File Attachment

maps to

Twenty CRM

File Attachment on Note

1:1
Fully supported

Phreesia files attached to patient records include insurance cards, ID scans, signed consent forms, and clinical documents. These files re-upload to Twenty as file attachments linked to the corresponding Note or People record, preserving original file names and upload timestamps where available. Your Twenty hosting configuration determines applicable file size limits — we verify compatibility during the pre-migration audit and flag any files that exceed your hosting tier's constraints.

Phreesia

Revenue Cycle / Billing

maps to

Twenty CRM

No Equivalent in Twenty

1:1
Fully supported

Phreesia's revenue-cycle management, eligibility verification logic, and payment collection workflows are platform-native constructs that cannot be extracted via CSV or API. We export all available workflow definitions, rule configurations, and automation sequences as reference documents for your team to evaluate. These exports serve as blueprints for rebuilding critical revenue-cycle processes in Twenty's workflow builder or integrating a dedicated billing tool such as Stripe, Chargebee, or a specialized medical billing platform.

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

Twenty CRM logo

Twenty CRM gotchas

High

Import order is enforced and critical

High

Export limited to 20,000 records and visible columns only

Medium

Soft-deleted records count toward uniqueness and trigger restores

Medium

API rate limits cap at 200 req/min on Organization tier

Low

No native email sequences — follow-up cadences require external tools

Pair-specific challenges

  • Phreesia exposes no public REST or GraphQL API for third-party migration tools

    Phreesia's integrations with PM and EHR systems use HL7, FHIR, and proprietary connectors managed by Phreesia's own integration team. There is no documented public API that FlitStack can call directly to extract patient records, insurance data, or consent forms programmatically. Migration relies on Phreesia's built-in CSV export function (available under Settings → Data Export) and manual data retrieval. If your Phreesia plan does not include data export or if the export is limited to a subset of records, you must request expanded export access from Phreesia support before migration begins. This constraint adds a preparation step not present in typical CRM-to-CRM migrations.

  • Insurance and clinical data require custom objects and fields in Twenty — no native healthcare schema

    Twenty CRM has no native objects for insurance records, clinical screening results, or consent forms. Every Phreesia data type that falls outside People, Companies, Opportunities, Tasks, and Notes requires a custom object or custom field created in Settings → Data Model before import. For a typical healthcare migration, FlitStack creates 5–10 custom fields on People (MRN, insurance carrier, policy number, primary provider, preferred language) plus 2–3 custom objects (Insurance Record with carrier/policy/group/subscriber fields, Clinical Screening with type/date/result fields, Payment with amount/date/method/status). Fields must exist before CSV import — importing into non-existent fields silently fails. We deliver a complete custom-field schema plan before migration runs.

  • Phreesia consent PDFs and clinical documents require manual file attachment

    Phreesia stores consent e-signatures and clinical screening results as platform-native attachments that do not export as standard file downloads in the CSV export. FlitStack handles consent metadata (type, signer, timestamp) as Notes, but the original PDF must be retrieved manually from Phreesia's document store or requested via Phreesia support. If your compliance team requires the original signed PDFs to be preserved, you must coordinate with Phreesia for document retrieval before migration. We flag this as a manual step in the migration plan and cannot guarantee document completeness without your procurement of the original files.

  • Workflows, automations, and revenue-cycle logic do not migrate and have no Twenty equivalent

    Phreesia's intake workflows, appointment reminder automations, consent collection sequences, and revenue-cycle rules are platform-native constructs with no export or API representation. Twenty's workflow builder supports basic trigger-based automations, but the logic Phreesia built for your intake flows (rules based on appointment type, insurance carrier, or patient demographics) must be rebuilt from scratch. FlitStack exports your Phreesia workflow definitions as a written reference document and can build n8n scenarios to replicate critical automations in your new stack, but this is scoped separately from the data migration.

  • Phreesia's insurance eligibility verification does not transfer to Twenty

    Phreesia's real-time insurance eligibility verification (automated eligibility checks against payers before appointments) is a platform service that cannot be exported or replicated in Twenty CRM. Twenty has no built-in eligibility verification module. Teams that rely on Phreesia's eligibility checks for revenue-cycle certainty must evaluate third-party eligibility verification services (e.g., Waystar, Availity) and integrate them via Twenty's GraphQL API or webhook triggers after migration. We surface this gap in the migration plan so it does not become a surprise at go-live.

Migration approach

Six steps for a successful Phreesia to Twenty CRM data migration

  1. Extract Phreesia data via CSV export and coordinate document retrieval

    FlitStack initiates the migration by working with your Phreesia account admin to run full CSV exports from Phreesia's data export function — covering patient demographics, insurance records, appointments, consent forms, clinical screening results, and payment history. We verify record counts against your expected volumes and flag any export limitations (record caps, missing fields, date-range restrictions). For consent PDFs and clinical documents, we provide a document-retrieval checklist that your team submits to Phreesia support. No data leaves your environment during this step — we receive the exported files and validate them before proceeding.

  2. Design Twenty CRM custom object schema and create fields before import

    Based on the Phreesia data audit, FlitStack delivers a complete Twenty custom-field schema plan: custom fields on People (MRN, Phreesia ID, primary provider, preferred language), a custom Insurance Record object with carrier/policy/group/subscriber fields, a custom Clinical Screening object with type/date/result fields, and a custom Payment object with amount/date/method/status fields. We walk your Twenty admin through creating each field in Settings → Data Model, configuring field types (text, number, select, currency, date, relation), and setting required/unique flags. No CSV import runs until all target fields exist.

  3. Resolve Phreesia providers and staff against Twenty WorkspaceMembers

    Phreesia provider and staff records are matched to Twenty WorkspaceMembers by email address. FlitStack generates a pre-migration resolution report: matched records link automatically, and unmatched providers are flagged with the action required (invite the provider to Twenty, or assign their records to a fallback member). This step is critical for appointment-to-Task migration, where assigneeId must resolve to a valid Twenty user. No task lands without a resolved owner.

  4. Run sample migration with field-level validation

    A representative slice of records — typically 200–500 patients spanning different insurance carriers, appointment types, and consent statuses — migrates first. FlitStack generates a field-level diff report comparing source values against destination values in Twenty for every mapped field. You verify MRN accuracy, insurance record linkage, consent Note attachment, and appointment Task assignment before the full run commits. Any mapping corrections are applied before the production migration begins.

  5. Execute full migration with delta-pickup window

    The full Phreesia dataset migrates into Twenty: People records with all custom fields, linked Insurance Record and Clinical Screening custom objects, Consent Notes with file attachments, and Appointment Tasks with provider assignment. A delta-pickup window of 24–48 hours captures any new patients or appointments created in Phreesia during cutover. Audit log records every operation, and one-click rollback is available if reconciliation identifies critical gaps. Post-migration, we deliver a validation report comparing Phreesia record counts against Twenty record counts per object.

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.
Twenty CRM logo

Twenty CRM

Destination

Strengths

  • AGPL-3.0 open-source license with full source code on GitHub — no vendor lock-in, no sunset risk.
  • Unlimited users and unlimited custom objects on self-hosted, with no feature gating based on headcount.
  • REST and GraphQL APIs available on all paid tiers, not locked behind an enterprise add-on fee.
  • MCP server and webhooks shipped as standard features, not premium upgrades.
  • Modern PostgreSQL-backed data model that developer teams can query, extend, and self-host.

Weaknesses

  • Recent v1.0 release means limited production hardening compared to CRMs with multi-year operational track records.
  • No native email sequencing or sales engagement tools — follow-up cadences require a separate platform.
  • No native two-way email sync or inbox integration, requiring third-party connectors for full activity logging.
  • Self-hosting 'free' pricing hides real infrastructure and DevOps costs that stack up over time.
  • Workflow automation is functional but lacks the complexity needed for sophisticated multi-step sales motions.

Complexity grading

How hard is this migration?

Standard CRM migration. 1 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 Twenty CRM.

  • Object compatibility

    B

    1 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 Twenty CRM 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 Twenty CRM data migrations

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

Can't find your answer?

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

Book a free 30 minute consultation

Most Phreesia-to-Twenty migrations complete within 48–96 hours of processing time for under 25,000 patient records with a clean CSV export. Migrations involving 25,000–200,000 records, multiple insurance carriers per patient, or custom object creation across several related entities extend to 2–4 weeks of calendar time. The longest single phase is usually the pre-migration schema design — your admin must create all custom fields in Twenty's Settings → Data Model before any CSV import runs. FlitStack provides the complete field list and configuration steps to minimize this delay.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Phreesia.
Land in Twenty CRM, 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