CRM migration
Field-level mapping, validation, and rollback between Phreesia and Twenty CRM. We move data and schema; workflows are rebuilt natively in Twenty CRM.
Phreesia
Source
Twenty CRM
Destination
Compatibility
11 of 11
objects map 1:1 between Phreesia and Twenty CRM.
Complexity
BStandard
Timeline
48–96 hours
Overview
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.
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 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
Twenty CRM
People
1:1Phreesia 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
Twenty CRM
Custom Object: Insurance Record
1:1Phreesia 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
Twenty CRM
Note + File Attachment
1:1Phreesia 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
Twenty CRM
Custom Object: Clinical Screening + Note
1:1Phreesia 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
Twenty CRM
Task
1:1Phreesia 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
Twenty CRM
Custom Object: Payment
1:1Phreesia 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
Twenty CRM
WorkspaceMember
1:1Phreesia 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
Twenty CRM
Note + Custom Field
1:1Phreesia 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
Twenty CRM
Custom Object
1:1Phreesia 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
Twenty CRM
File Attachment on Note
1:1Phreesia 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
Twenty CRM
No Equivalent in Twenty
1:1Phreesia'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.
| Phreesia | Twenty CRM | Compatibility | |
|---|---|---|---|
| Patient | People1:1 | Fully supported | |
| Insurance Record | Custom Object: Insurance Record1:1 | Fully supported | |
| Consent Form | Note + File Attachment1:1 | Fully supported | |
| Clinical Screening | Custom Object: Clinical Screening + Note1:1 | Fully supported | |
| Appointment | Task1:1 | Fully supported | |
| Payment Record | Custom Object: Payment1:1 | Fully supported | |
| Provider / Staff | WorkspaceMember1:1 | Fully supported | |
| Intake Form Response | Note + Custom Field1:1 | Fully supported | |
| Custom Phreesia Object | Custom Object1:1 | Fully supported | |
| Document / File Attachment | File Attachment on Note1:1 | Fully supported | |
| Revenue Cycle / Billing | No Equivalent in Twenty1: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.
Phreesia gotchas
PM/EHR integration configuration must be validated before patient data import
Custom intake forms lack a standard schema export
Phreesia is an intake platform, not a longitudinal patient database
Patient secure authentication links are time-limited and non-migratable
Payment plan configurations require manual reconciliation
Twenty CRM gotchas
Import order is enforced and critical
Export limited to 20,000 records and visible columns only
Soft-deleted records count toward uniqueness and trigger restores
API rate limits cap at 200 req/min on Organization tier
No native email sequences — follow-up cadences require external tools
Pair-specific challenges
Migration approach
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.
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.
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.
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.
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
Phreesia
Source
Strengths
Weaknesses
Twenty CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 1 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 Phreesia and Twenty CRM.
Object compatibility
1 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
Phreesia: Not publicly documented.
Data volume sensitivity
Phreesia 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 Phreesia to Twenty CRM migration scoping. Not seeing yours? Book a call.
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 consultationAdjacent paths
Other ways to leave Phreesia
Other ways to arrive at Twenty CRM
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.