CRM migration

Migrate from Quanum Practice Management to Twenty CRM

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 logo

Quanum Practice Management

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

100%

12 of 12

objects map 1:1 between Quanum Practice Management and Twenty CRM.

Complexity

BStandard

Timeline

2–4 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

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.

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

Quanum Practice Management logo

Quanum Practice Management

What's pushing teams away

  • Mandatory product discontinuation as of January 2024 puts all remaining customers on a forced migration timeline with no new feature development or security patches.
  • Read-only mode entered January 2024 means staff cannot create new records in EHR modules—only view and export existing data.
  • Contract cancellation on existing subscriptions leaves practices with no long-term support commitment from Quest Diagnostics.
  • Limited export formats (Access DB, CCDA, QRDA I) create data portability risk, especially for practices with complex custom fields or specialty-specific billing codes.
  • Consolidation of independent physician practices and the discontinuation decision creates urgency that overrides preference-based software selection.

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 Quanum Practice Management objects map to Twenty CRM

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

maps to

Twenty CRM

People

1:1
Fully supported

Quanum 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)

maps to

Twenty CRM

People (custom field)

1:1
Fully supported

Quanum 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

maps to

Twenty CRM

Company (insurance carrier) + People (subscriber)

1:1
Fully supported

Quanum 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

maps to

Twenty CRM

Note or Task

1:1
Fully supported

Twenty 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

maps to

Twenty CRM

People (type = Provider)

1:1
Fully supported

Quanum 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

maps to

Twenty CRM

Company

1:1
Fully supported

Quanum 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)

maps to

Twenty CRM

Custom Object or Note

1:1
Fully supported

Quanum 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

maps to

Twenty CRM

Custom Object or Note

1:1
Fully supported

Quanum 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

maps to

Twenty CRM

Note

1:1
Fully supported

Quanum'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

maps to

Twenty CRM

Custom Field on People

1:1
Fully supported

Quanum 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

maps to

Twenty CRM

Note (content) or external reference

1:1
Fully supported

Quanum 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

maps to

Twenty CRM

Not transferable

1:1
Fully supported

Quanum 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.

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.

Quanum Practice Management logo

Quanum Practice Management gotchas

High

Product discontinuation creates mandatory migration with no vendor transition support

High

Access database export requires technical knowledge to interpret

Medium

CCDA export scope is limited to clinical summaries, not full records

Medium

QRDA I export is specialised and may not map directly to new quality reporting modules

Low

Lab Services Manager is separate and not discontinued—requires coordinated but independent migration

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

  • Quanum's Access database export requires custom transformation before Twenty's CSV import

    Quanum does not provide a direct CSV export. Data is delivered as a Microsoft Access database (.mdb) file or as ONC-scoped CCDA XML documents. The Access file contains normalized tables with relationships between patients, appointments, insurance, and billing records that must be denormalized and joined before Twenty's CSV import will accept them. This conversion step is technically complex — queries written for Microsoft Access do not export directly to CSV without a technical intermediate step. We handle the Access-to-CSV transformation as a named deliverable in the migration scope, but practices should request the Access file from Quest Diagnostics as early as possible since the file generation and download process can take 2–4 weeks on Quest's end.

  • Twenty has no native scheduling or appointment object — appointment history migrates to Notes

    Twenty CRM v1.0 ships without a native scheduling or appointment object. Quanum appointment records — which include date, time, provider, visit type, status, and clinical notes — cannot map to a structurally equivalent object in Twenty. We route appointment history to Notes attached to the People record using a structured text format that preserves the appointment date, provider name, visit type, and outcome. If your practice uses appointment data for reporting (visit frequency, no-show rates, provider volume), these metrics will require a custom report builder or a third-party scheduling integration post-migration. Twenty's roadmap includes calendar features, but their current availability should be confirmed with the Twenty team before you commit to the migration scope.

  • Quanum's insurance carrier and subscriber data requires a two-record mapping

    Quanum stores insurance as a compound record per patient — carrier name, plan type, group number, member ID, subscriber name, and subscriber relationship are fields within the patient record or a linked insurance table. Twenty has no native insurance object. We split this into two records: the insurance carrier as a Company in Twenty, and the patient's insurance metadata (member ID, group number, subscriber relationship) as custom fields on the People record. The consequence is that insurance reporting across patients (e.g., how many patients carry a specific plan) requires either a custom report or a filter on the People object's custom insurance fields — not a native insurance module.

  • Twenty Free plan caps custom objects at 10 — Enterprise unlocks unlimited

    Twenty's Free plan limits custom objects to 10 per workspace. Practices migrating from Quanum with multiple custom objects — procedure history, diagnosis tracking, billing records, referral sources — may exceed the Free plan's cap. We audit the Quanum data model during the discovery phase and recommend the appropriate Twenty plan based on the number of distinct custom object types required. The Professional plan ($9 per user per month) supports 10 custom objects, and the Organization cloud plan supports unlimited custom objects. Self-hosted Twenty has no plan restrictions — all custom objects are available regardless of user count.

  • Quanum's CCDA export is ONC-scoped and excludes billing and scheduling data

    Quest Diagnostics offers a CCDA (Consolidated Clinical Document Architecture) export for practices migrating to another EHR. However, CCDAs are scoped to ONC 21st Century Cures Act requirements — they contain demographics, problems, medications, allergies, and immunizations. They explicitly exclude Quanum's scheduling data, billing records, insurance arrays, and custom practice management fields. If your migration strategy relies on the CCDA export as the primary data source, you will lose appointment history, billing records, and insurance metadata. We recommend requesting both the Access database export (for complete practice management data) and the CCDA export (for clinical data portability compliance) and using them as complementary sources.

Migration approach

Six steps for a successful Quanum Practice Management to Twenty CRM data migration

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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

Context on both ends of the pair

Quanum Practice Management logo

Quanum Practice Management

Source

Strengths

  • Tightly integrated Quest Diagnostics lab ordering and result retrieval for practices with strong Quest referral relationships.
  • Web-based deployment eliminates on-premise server requirements, reducing IT overhead for small practices.
  • Specialty-trained RCM experts aligned to billing nuances across multiple medical specialties.
  • Dashboard and reporting customisation for front-office workflow optimisation.
  • Mature platform with long operational history preferred by established independent practices.

Weaknesses

  • Mandatory end-of-life as of January 2024 creates urgent forced migration without vendor support for the transition.
  • Entire EHR module switched to read-only mode—practices cannot create new records, only view and export existing data.
  • Three export mechanisms only: Access DB (technical), CCDA (clinical summaries), and QRDA I (quality reporting). No modern API.
  • Microsoft Access database format requires technical expertise to interpret; data must be uploaded into another EHR to be usable.
  • Limited data portability for practices with complex custom fields or specialty-specific workflow configurations.
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. 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 Quanum Practice Management and Twenty CRM.

  • 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

    Quanum Practice Management: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

Estimate your Quanum Practice Management 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 Quanum Practice Management to Twenty CRM data migrations

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

Can't find your answer?

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 consultation

Most migrations complete in 2–4 weeks for small practices with fewer than 5,000 patient records and a clean Access database export. Mid-market practices with 5,000–50,000 records, insurance arrays, appointment history, and 20+ custom fields extend to 8–16 weeks. The Access database conversion step — unique to Quanum as a source — is the longest variable. Practices that request the Access file from Quest Diagnostics early in the process reduce the total timeline compared to those who begin discovery after requesting the export.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Quanum Practice Management.
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