CRM migration
Field-level mapping, validation, and rollback between My Dental Clinic and Twenty CRM. We move data and schema; workflows are rebuilt natively in Twenty CRM.
My Dental Clinic
Source
Twenty CRM
Destination
Compatibility
12 of 12
objects map 1:1 between My Dental Clinic and Twenty CRM.
Complexity
BStandard
Timeline
48–96 hours
Overview
My Dental Clinic stores patient records, treatment histories, insurance details, appointment ledgers, and clinical notes in a clinical-first practice-management model. Twenty CRM is a modern open-source CRM built on TypeScript, NestJS, React, and PostgreSQL — it uses People for contacts, Companies for accounts, Opportunities for deals, Notes for free-form text, and Tasks for action items. The two models differ significantly: My Dental Clinic treats appointments and clinical notes as first-class objects, while Twenty maps these to Notes and Tasks linked to People records. FlitStack AI extracts patient demographics, insurance fields, procedure codes, and treatment plan data from My Dental Clinic via its export API, transforms them into Twenty's People and Opportunities schema, creates custom fields for insurance policy numbers and tooth-chart references, and loads via Twenty's REST API or CSV import. Ledgers and appointment schedules — which My Dental Clinic stores in structured clinical tables — do not have native equivalents in Twenty and must be rebuilt as Tasks or handled as custom objects after migration. Workflows, appointment automations, and recall sequences do not migrate and require manual rebuild in Twenty's workflow builder.
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 My Dental Clinic 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.
My Dental Clinic
Patient Record
Twenty CRM
People
1:1My Dental Clinic patient records map to Twenty CRM's People object. Core contact fields (name, email, phone, address) migrate directly. Clinical fields such as insurance provider, policy number, and procedure codes require custom fields in Twenty's Data Model before the import runs.
My Dental Clinic
Practice / Clinic
Twenty CRM
Company
1:1My Dental Clinic's practice or clinic entity maps to Twenty CRM's Company object. Practice name, address, phone, website, and industry fields transfer directly. When the source includes a billing address or tax ID, those become custom fields on the Company record. Multi-location practices generate separate Company records linked by a custom location-identifier field, and each location can be linked to its corresponding People records via the companyId lookup.
My Dental Clinic
Insurance Record
Twenty CRM
Custom Fields on People
1:1Insurance provider, policy number, group number, and coverage type from My Dental Clinic's insurance module migrate as custom text and select fields on the People record. Coverage percentages and annual maximums become custom number fields. Insurance renewal dates become custom date fields.
My Dental Clinic
Treatment Plan
Twenty CRM
Opportunity
1:1My Dental Clinic treatment plans — including procedure description, estimated cost, provider assignment, and completion status — map to Twenty CRM's Opportunity object. Procedure codes migrate as a custom field. Treatment plan stage (proposed, accepted, in-progress, completed) maps to Opportunity Stage via value mapping.
My Dental Clinic
Procedure History Line Item
Twenty CRM
Note or Custom Object
1:1Individual procedure line items within a treatment plan — date, procedure code, tooth number, provider, fee — are too granular for standard Opportunity fields. We aggregate them into a Note attached to the Opportunity, or into a custom Procedure_History custom object with a relation to the People record.
My Dental Clinic
Recall / Appointment Reminder
Twenty CRM
Task
1:1My Dental Clinic recall records (next appointment date, recall type, provider) map to Twenty CRM Tasks with a due date, linked to the People record. Recall type (hygiene, perio, restorative) becomes a custom select field on the Task. This preserves the recall mechanism in Twenty's task model.
My Dental Clinic
Clinical Note / SOAP Notes
Twenty CRM
Note
1:1My Dental Clinic clinical notes (subjective, objective, assessment, plan) migrate as Twenty CRM Notes attached to the People record. SOAP sections are preserved as plain text within the Note body. Provider attribution and note date are retained on the Note record.
My Dental Clinic
Appointment Ledger Entry
Twenty CRM
Custom Object or Note
1:1My Dental Clinic appointment ledgers (date, provider, procedure, fee, payment status, write-offs) have no direct Twenty CRM equivalent. We migrate them as a custom Ledger_Entry object with relations to People and Opportunity, or as Notes with structured text. Practices that rely heavily on ledger reporting should plan for a separate financial reconciliation step.
My Dental Clinic
Consent Form / Document
Twenty CRM
File Attachment on People
1:1Consent forms and supporting documents stored in My Dental Clinic re-upload as file attachments to the corresponding People record in Twenty CRM. Inline images within documents are extracted and re-hosted. Large X-ray files or DICOM images are referenced via URL custom fields pointing to the original storage location.
My Dental Clinic
Provider / Staff
Twenty CRM
WorkspaceMember
1:1My Dental Clinic provider and staff records map to Twenty CRM's WorkspaceMember (user) records. Provider specialty, license number, and NPI migrate as custom fields on the WorkspaceMember. Owner assignment on migrated records resolves via email match to the corresponding Twenty user.
My Dental Clinic
Referral Source
Twenty CRM
Custom Field on People or Note
1:1My Dental Clinic referral source tracking (referring dentist, marketing channel, internal referral) migrates as a custom select field on the People record called Referral_Source__c. The field can store a primary source and can be updated manually after import. Attribution notes—such as referral date, source details, or campaign tag—migrate as Note records linked to the People record for full auditability and future reporting.
My Dental Clinic
Custom Dental Field (Tooth Chart, X-Ray Reference)
Twenty CRM
Custom Field on People
1:1Tooth-chart diagrams and X-ray file references stored in My Dental Clinic's clinical notes cannot be represented as standard Twenty CRM fields. We create a long-text custom field (Tooth_Chart_Reference__c) and a URL custom field (X_Ray_Link__c) on the People record to preserve these references. The actual chart data or image files must be re-hosted separately.
| My Dental Clinic | Twenty CRM | Compatibility | |
|---|---|---|---|
| Patient Record | People1:1 | Fully supported | |
| Practice / Clinic | Company1:1 | Fully supported | |
| Insurance Record | Custom Fields on People1:1 | Fully supported | |
| Treatment Plan | Opportunity1:1 | Fully supported | |
| Procedure History Line Item | Note or Custom Object1:1 | Fully supported | |
| Recall / Appointment Reminder | Task1:1 | Fully supported | |
| Clinical Note / SOAP Notes | Note1:1 | Fully supported | |
| Appointment Ledger Entry | Custom Object or Note1:1 | Fully supported | |
| Consent Form / Document | File Attachment on People1:1 | Fully supported | |
| Provider / Staff | WorkspaceMember1:1 | Fully supported | |
| Referral Source | Custom Field on People or Note1:1 | Fully supported | |
| Custom Dental Field (Tooth Chart, X-Ray Reference) | Custom Field on People1: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.
My Dental Clinic gotchas
Dental ledgers are structurally complex to migrate accurately
Tooth-numbering systems differ between dental platforms
Insurance carrier IDs must be re-mapped post-migration
Custom clinical note templates may not map directly
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
Audit My Dental Clinic data export and design Twenty schema
FlitStack AI extracts the complete data inventory from My Dental Clinic — patients, insurance records, treatment plans, clinical notes, recall schedules, providers, and practice information. We identify all active records, flag duplicates, and document any fields that require custom creation in Twenty's Data Model. We deliver a schema setup plan specifying which custom fields to create (Insurance_Provider__c, Procedure_Code__c, Recall_Type__c, etc.), their types, and the import order. This step typically runs 3–5 business days.
Create Twenty CRM custom fields and prepare workspace
Before any data is loaded, your Twenty admin (or our team) creates the custom fields and any custom objects identified in the audit. For insurance fields, procedure codes, recall types, and source system IDs, we provide the exact field names, types, and pick-list values to configure. Workspace members must be invited and active in Twenty before the migration runs, because owner resolution relies on email matching between My Dental Clinic provider records and Twenty WorkspaceMember records.
Resolve relationships and sequence the export load order
Twenty CRM enforces referential integrity during import: Companies must load before People, and People must load before Opportunities. FlitStack AI restructures the My Dental Clinic export into the correct load order, maps provider IDs to Twenty WorkspaceMember email addresses, and links treatment plans to the correct People records via peopleId. Any orphaned records (patients without a mapped practice, treatment plans without a patient) are flagged with a resolution plan before the full run proceeds.
Run sample migration with field-level diff
A representative slice — typically 100–500 records spanning patients across different insurance plans, treatment plans at various stages, and a sample of clinical notes — migrates first. We generate a field-level diff comparing source values against the imported Twenty records so you can verify insurance field mapping, treatment plan stage values, recall date logic, and owner resolution before the full migration commits. Any mapping corrections are applied to the full migration configuration before cutover.
Full migration with delta-pickup window and post-migration validation
The full migration loads Companies, then People (with insurance fields and original create dates preserved), then Opportunities (with procedure codes and stage mapping), then Notes, Tasks (recalls), and custom objects. A delta-pickup window of 24–48 hours captures any My Dental Clinic records modified during cutover. An audit log records every imported record. One-click rollback is available if reconciliation against the My Dental Clinic backup reveals discrepancies exceeding your defined tolerance threshold.
Platform deep dives
My Dental Clinic
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 My Dental Clinic 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
My Dental Clinic: Not publicly documented..
Data volume sensitivity
My Dental Clinic 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 My Dental Clinic to Twenty CRM migration scoping. Not seeing yours? Book a call.
Walk through your My Dental Clinic 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 My Dental Clinic
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.