CRM migration
Field-level mapping, validation, and rollback between Quanum Practice Management and Twenty CRM. We move data and schema; workflows are rebuilt natively in Twenty CRM.
Quanum Practice Management
Source
Twenty CRM
Destination
Compatibility
12 of 12
objects map 1:1 between Quanum Practice Management and Twenty CRM.
Complexity
BStandard
Timeline
2–4 weeks
Overview
Quanum Practice Management's Quest Diagnostics discontinuation (read-only since January 2024) has forced thousands of practices to migrate before contract cancellation. Twenty CRM, the open-source CRM with 40,000+ GitHub stars, offers a permanent home for your patient and facility data under AGPL-3.0 licensing — either self-hosted on your own infrastructure or on Twenty's managed cloud at $9 per user per month. We map every Quanum patient record to a Twenty People object, insurance carrier and plan details to custom fields on a Company record, and appointment history to Notes attached to the corresponding People record. Quanum exports its data as a Microsoft Access database or as Continuity of Care Document Archives — both require transformation before Twenty's CSV import will accept them. We handle the Access-to-CSV conversion, preserve Quanum's custom fields and multi-field records as Twenty custom fields and text blobs, and run the import sequence: Companies first, then People linked by companyId, then Notes and Tasks. Workflows, automations, and scheduling rules cannot migrate because Twenty uses a fundamentally different workflow engine. We export your Quanum workflow definitions as a rebuild reference for your Twenty admin.
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 Quanum Practice Management 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.
Quanum Practice Management
Patient Record
Twenty CRM
People
1:1Quanum patient records map to Twenty's People object. Fields including first name, last name, date of birth, address, phone, and email transfer directly. Multi-field records — where Quanum stores multiple addresses or phone numbers — are flattened to the primary value, with secondary values appended to a custom field.
Quanum Practice Management
Patient MRN (Medical Record Number)
Twenty CRM
People (custom field)
1:1Quanum assigns each patient a unique MRN. Twenty has no native MRN field. We create a custom text field (Medical_Record_Number__c) on the People object to preserve the identifier. If your practice uses MRN for lookups, this field should be set as unique in Twenty's data model.
Quanum Practice Management
Patient Insurance Array
Twenty CRM
Company (insurance carrier) + People (subscriber)
1:1Quanum stores insurance carrier name, plan type, group number, member ID, subscriber name, and subscriber relationship as an array per patient. We split this into two records: the insurance carrier as a Company in Twenty, and the subscriber relationship as custom fields on the People record (Subscriber_Name__c, Subscriber_Relationship__c, Member_ID__c, Group_Number__c).
Quanum Practice Management
Appointment / Visit
Twenty CRM
Note or Task
1:1Twenty has no native scheduling object. Quanum appointments map to Notes or Tasks attached to the People record — preserving the date, provider name, visit type, and status. If your practice needs scheduling, Twenty's roadmap includes calendar features, but current migration routes appointment history to Notes with the provider name as a tagged mention.
Quanum Practice Management
Provider / Physician
Twenty CRM
People (type = Provider)
1:1Quanum providers (physicians, NPs, PAs) are staff records with NPI, specialty, and credentialing data. In Twenty, they become People records with a custom pick-list field (Person_Type__c set to 'Provider') to distinguish them from patient People records. NPI and specialty migrate as custom text fields.
Quanum Practice Management
Facility / Practice Location
Twenty CRM
Company
1:1Quanum facilities — your main office and satellite locations — map to Twenty Company records. Company name, address, phone, and facility type transfer directly. For multi-location practices, each facility is a separate Company record linked to the operating organization via Twenty's company hierarchy feature.
Quanum Practice Management
Diagnosis Code (ICD-10)
Twenty CRM
Custom Object or Note
1:1Quanum stores ICD-10 diagnosis codes per patient encounter. Twenty has no native diagnosis object. We map active diagnoses to a custom pick-list field on the People record (Active_Diagnosis__c) and historical diagnoses to a Note with a structured text block listing code, description, and encounter date.
Quanum Practice Management
Procedure / CPT Code
Twenty CRM
Custom Object or Note
1:1Quanum procedure records contain CPT codes, modifiers, and billing amounts. These migrate to a custom object (Procedure_History__c) with fields for CPT code, description, date, and billing amount — linked to the People record. If custom objects are not available on your Twenty plan, the procedure history is stored as a structured Note instead.
Quanum Practice Management
Billing / Claim Record
Twenty CRM
Note
1:1Quanum's revenue cycle management generates claim records with payer, billed amount, paid amount, adjustment, and claim status. Twenty has no native billing object. We preserve claim history as Notes attached to the People record with a structured text format: payer name, billed amount, paid amount, adjustment reason, and status per claim.
Quanum Practice Management
Referral Source
Twenty CRM
Custom Field on People
1:1Quanum tracks how patients were referred (physician referral, walk-in, marketing campaign, etc.) as a patient attribute. We map this to a custom pick-list field (Referral_Source__c) on the People object. Referral physician details migrate as a relation to a separate People record with Person_Type__c = 'Referring Provider'.
Quanum Practice Management
Patient Document / Attachment
Twenty CRM
Note (content) or external reference
1:1Quanum attachments (insurance cards, consent forms, clinical documents) are exported as binary files in the Access database. Twenty's CSV import does not support binary file upload. We preserve the file name and a text summary of the document type as a Note, and provide a mapping guide for your admin to re-upload the actual files to Twenty's storage after migration.
Quanum Practice Management
Practice Settings / Preferences
Twenty CRM
Not transferable
1:1Quanum stores practice-level settings including scheduling rules, insurance fee schedules, and specialty-specific configurations. Twenty's data model does not have an equivalent settings object. We document these settings as a configuration checklist so your Twenty admin can configure them manually in Twenty's workspace settings.
| Quanum Practice Management | Twenty CRM | Compatibility | |
|---|---|---|---|
| Patient Record | People1:1 | Fully supported | |
| Patient MRN (Medical Record Number) | People (custom field)1:1 | Fully supported | |
| Patient Insurance Array | Company (insurance carrier) + People (subscriber)1:1 | Fully supported | |
| Appointment / Visit | Note or Task1:1 | Fully supported | |
| Provider / Physician | People (type = Provider)1:1 | Fully supported | |
| Facility / Practice Location | Company1:1 | Fully supported | |
| Diagnosis Code (ICD-10) | Custom Object or Note1:1 | Fully supported | |
| Procedure / CPT Code | Custom Object or Note1:1 | Fully supported | |
| Billing / Claim Record | Note1:1 | Fully supported | |
| Referral Source | Custom Field on People1:1 | Fully supported | |
| Patient Document / Attachment | Note (content) or external reference1:1 | Fully supported | |
| Practice Settings / Preferences | Not transferable1: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.
Quanum Practice Management gotchas
Product discontinuation creates mandatory migration with no vendor transition support
Access database export requires technical knowledge to interpret
CCDA export scope is limited to clinical summaries, not full records
QRDA I export is specialised and may not map directly to new quality reporting modules
Lab Services Manager is separate and not discontinued—requires coordinated but independent migration
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
Request and ingest the Quanum Access database export
Before any migration work begins, your practice must request the Microsoft Access database export from Quest Diagnostics — this is initiated through a Delegated Admin at your practice prior to contract opt-out. Once received, FlitStack opens the Access file, audits the table structure, and documents the relationships between patient, appointment, insurance, provider, facility, and billing tables. We also request the CCDA XML export as a complementary clinical data source for demographics and active conditions. This discovery phase produces a data dictionary that maps every Quanum table and field to its Twenty equivalent.
Convert Access database to CSV files in Twenty's import format
The Microsoft Access database uses normalized table relationships — patient data, insurance data, and appointment data live in separate tables joined by patient ID. Twenty's CSV import requires denormalized rows where each People record contains its own field values. FlitStack writes SQL joins across the Access tables to produce flat CSV files: one for People (patients), one for Companies (insurance carriers and facilities), one for Notes (appointments and billing records), and one for related People records (providers and referring physicians). Multi-value fields (e.g., multiple diagnoses, multiple insurance plans) are handled as delimited values or split into multiple rows as appropriate.
Create Twenty's data model: custom fields and custom objects
Before CSV files are uploaded, FlitStack creates the required custom fields and custom objects in your Twenty workspace via Settings → Data Model. This includes Medical_Record_Number__c and Subscriber_Relationship__c on People, Plan_Type__c and Group_Number__c on Company, Active_Diagnosis__c as a pick-list on People, and any specialty procedure or billing history custom objects. If your migration requires more than 10 custom objects and you are on Twenty Free, we identify this gap and recommend upgrading before the import runs. All custom fields are created with appropriate types (text, pick-list, date, number) and required/unique settings based on the source data audit.
Sequence and run the CSV import: Companies first, then People, then Notes
Twenty's import system requires referential integrity — Company records must exist before People records can be linked via companyId, and People records must exist before Notes can be attached to them. FlitStack sequences the import in the correct order: (1) Companies for insurance carriers and facilities, (2) People for providers and referring physicians, (3) People for patients linked to the appropriate carrier Company, (4) Notes for appointments attached to patient People records, and (5) Notes for billing history. After each import batch, we verify record counts, check for import errors highlighted in Twenty's UI, and correct any mapping mismatches before proceeding to the next batch.
Run a field-level diff and delta-pickup before go-live
After the full import, FlitStack generates a field-level comparison report between the source Access database and the migrated Twenty records — sampling 50–100 records across patients, insurance, appointments, and billing to verify field-level accuracy. Any missing or mis-mapped fields are corrected and the affected records are re-imported. We then establish a delta-pickup window aligned with your cutover date: during this window, any new patients registered in Quanum or appointment updates made during the migration period are captured and imported to Twenty before your team closes the Quanum account. An audit log is delivered documenting every record migrated, every field mapped, and every decision made during the mapping phase.
Platform deep dives
Quanum Practice Management
Source
Strengths
Weaknesses
Twenty CRM
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 Quanum Practice Management and Twenty CRM.
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
Quanum Practice Management: Not publicly documented.
Data volume sensitivity
Quanum Practice Management 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 Quanum Practice Management to Twenty CRM migration scoping. Not seeing yours? Book a call.
Walk through your Quanum Practice Management 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 Quanum Practice Management
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.