CRM migration
Field-level mapping, validation, and rollback between DentAdmin and Twenty CRM. We move data and schema; workflows are rebuilt natively in Twenty CRM.
DentAdmin
Source
Twenty CRM
Destination
Compatibility
10 of 10
objects map 1:1 between DentAdmin and Twenty CRM.
Complexity
BStandard
Timeline
3–7 days
Overview
DentAdmin is a dental-practice management system built around patient records, appointments, treatment plans, invoicing, and RIZIV-code billing — it is not a general-purpose CRM, which means the data model has deep clinical and financial logic baked into its objects. Twenty CRM is a modern open-source CRM built around People, Companies, Opportunities, Notes, Tasks, and unlimited custom objects. We map DentAdmin patients → Twenty People, referring dentists → Twenty Companies (with type set to 'Referral'), insurance providers → Twenty Companies (type 'Insurance'), appointments → Twenty Tasks with Workspace Member relations, and treatment records → a custom 'Treatment' object. Clinical and billing fields with no CRM equivalent (RIZIV professional codes, Mutuality identifiers, tooth-number fields, treatment codes) migrate as custom fields on the People object or on the Treatment custom object. We export DentAdmin data via its API (3,600 calls per hour limit), batch the requests to stay within that ceiling, and load into Twenty via REST/GraphQL or CSV import depending on record volume. Workflows, automations, and the RIZIV billing engine do not migrate — they have to be rebuilt in Twenty's workflow builder or as custom logic outside the CRM. We run a sample migration first with a field-level diff so you can verify the mapping before the full cutover commits.
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 DentAdmin 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.
DentAdmin
Patient
Twenty CRM
People
1:1DentAdmin patients map directly to Twenty People records. All contact fields (name, phone, email, address) migrate as standard Twenty fields. Belgian healthcare identifiers (RIZIV professional codes, Mutuality numbers) are stored as custom text fields on the People record since Twenty has no native Belgian healthcare field. The original DentAdmin patient ID is preserved as Source_System_ID__c for delta-run de-duplication.
DentAdmin
Provider / Referring Dentist
Twenty CRM
Company
1:1Referring dentists and specialist providers from DentAdmin map to Twenty Companies with a custom 'ProviderType' field set to 'Referral' or 'Specialist'. The company's name, address, and phone migrate as standard Company fields. If DentAdmin stores multiple provider addresses per dentist, the primary address becomes the Company record and additional addresses are preserved as custom fields or notes.
DentAdmin
Insurance Company
Twenty CRM
Company
1:1Mutuality and insurance company records from DentAdmin map to Twenty Companies with a custom 'CompanyType' field set to 'Insurance'. The company's name and registration number migrate as standard fields. Insurance policy numbers and coverage tiers attached to patients migrate as custom fields on the People record rather than on the Company record.
DentAdmin
Appointment
Twenty CRM
Task
1:1DentAdmin appointments become Twenty Tasks linked to the Patient (People record) via the Task's ' Person' relation and to the treating provider via the 'Assignee' field mapped to a Twenty Workspace Member. Appointment type (check-up, treatment, consultation) maps to a custom 'AppointmentType' select field. Date and duration migrate as Task due date and a custom duration field. Room and chair assignments from DentAdmin are stored as custom text fields.
DentAdmin
Treatment Record
Twenty CRM
Custom Object: Treatment
1:1DentAdmin treatment records have no direct Twenty CRM equivalent — Twenty has no native dental-procedure object. We create a custom 'Treatment' object in Twenty with fields for procedure code (mapped from DentAdmin's RIZIV procedure list), tooth number or quadrant, date performed, treating provider, associated Patient (People relation), and treatment cost. Tooth-number notation (FDI, Universal) is preserved as a text field to avoid data loss on format interpretation.
DentAdmin
Invoice / Financial Record
Twenty CRM
Custom Object: Invoice
1:1DentAdmin's invoicing module does not map to any Twenty CRM standard object — Twenty has no native invoicing. Invoice records migrate as a custom 'Invoice' object with fields for invoice number, date, amount, patient (People relation), treatment reference (Treatment custom object relation), and payment status. Original invoice PDFs are exported from DentAdmin and re-uploaded as file attachments to the Invoice record in Twenty.
DentAdmin
Document / Attachment
Twenty CRM
Note
1:1DentAdmin document attachments (treatment plans, lab prescriptions, clinical images) associated with a patient become Twenty Notes linked to the People record. If DentAdmin exports attachments as files rather than inline content, the file is downloaded to local storage and re-uploaded to Twenty's file storage, with the file URL embedded in the Note body. Large archives (panoramic X-rays, intraoral scans) may exceed Twenty's default file size limits and are flagged for manual handling.
DentAdmin
Accounting / RIZIV Module
Twenty CRM
No equivalent in Twenty
1:1DentAdmin's RIZIV billing engine and accounting module are healthcare-financial constructs with no CRM equivalent. RIZIV procedure codes and Mutuality billing logic do not migrate — those records become reference data on the Treatment custom object, and the billing workflow needs to be rebuilt in Twenty or handled in a separate accounting tool. We preserve all financial transaction records as a custom 'BillingTransaction' object for historical reference.
DentAdmin
Workflows and Sequences
Twenty CRM
Twenty Workflow Builder
1:1Appointment reminder sequences, recall workflows, and treatment-plan follow-up sequences in DentAdmin have no direct equivalent in Twenty CRM. They must be rebuilt in Twenty's workflow builder or as an external automation layer. We export DentAdmin workflow definitions as a structured reference document so your Twenty admin can rebuild them in the correct order.
DentAdmin
Reports and Dashboards
Twenty CRM
Twenty Dashboards
1:1DentAdmin's built-in clinical and financial reports (RZIV-code utilization, patient retention, treatment revenue by provider) do not migrate. The underlying data — appointments, treatments, invoices — is fully migrated, and the Twenty dashboard builder can reconstruct those reports from the migrated records. We provide a report-mapping worksheet listing each DentAdmin report and its Twenty equivalent using the migrated data.
| DentAdmin | Twenty CRM | Compatibility | |
|---|---|---|---|
| Patient | People1:1 | Fully supported | |
| Provider / Referring Dentist | Company1:1 | Fully supported | |
| Insurance Company | Company1:1 | Fully supported | |
| Appointment | Task1:1 | Fully supported | |
| Treatment Record | Custom Object: Treatment1:1 | Fully supported | |
| Invoice / Financial Record | Custom Object: Invoice1:1 | Fully supported | |
| Document / Attachment | Note1:1 | Fully supported | |
| Accounting / RIZIV Module | No equivalent in Twenty1:1 | Fully supported | |
| Workflows and Sequences | Twenty Workflow Builder1:1 | Fully supported | |
| Reports and Dashboards | Twenty Dashboards1: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.
DentAdmin gotchas
No publicly documented REST API for DentAdmin
Pricing is opaque and requires direct contact
RIZIV code version drift between systems
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 DentAdmin data and export capabilities
FlitStack AI connects to DentAdmin via its REST API and inventories all object types available for export: patients, providers, insurance companies, appointments, treatment records, and attachments. We verify which DentAdmin edition you are running to confirm API access and rate-limit ceiling (3,600 calls/hour), then produce an export plan listing every object, estimated record count, and any fields that cannot be extracted via API (those require CSV export from the desktop application). The audit output is a data inventory document that defines the full scope before any field mapping begins.
Map DentAdmin schema to Twenty data model
We create a field-level mapping document pairing every DentAdmin field to its Twenty equivalent. Standard contact fields map directly. RIZIV codes, Mutuality numbers, and tooth-notation fields map to custom fields on the People object. Treatment records map to a new 'Treatment' custom object with a relation to People. Invoice history maps to an 'Invoice' custom object. We identify all custom fields and custom objects that must be pre-created in Twenty's Settings → Data Model and deliver the schema setup plan to your Twenty admin with field types, select-option values, and relation definitions. This plan is reviewed and approved before step 3 begins.
Set up Twenty workspace and create custom schema
Before any data lands, your Twenty admin (or our team) creates the custom fields and custom objects defined in the mapping document. For the Treatment custom object, we define fields for procedure code, tooth number, treatment date, cost, and relations to People and WorkspaceMember. For the Invoice custom object, we define fields for invoice number, date, amount, and payment status. If your DentAdmin setup has provider-specialty pick-list values, those are created as select options in the corresponding custom fields. We verify all fields appear in Twenty's table views before the import step begins.
Run sample migration with field-level diff
A representative slice of records — typically 100–200 patients spanning different creation dates, a cross-section of providers, and a sample of appointments and treatment records — migrates first. We generate a field-level diff between the DentAdmin source record and the Twenty destination record so you can verify that RIZIV codes, Mutuality numbers, tooth-notation values, and dentist assignments all landed correctly. If a mapping is wrong or a required custom field was missed, this step catches it before the full run commits data. You review the diff and approve the sample before we proceed.
Execute full migration with delta pickup
Companies migrate first (they have no foreign-key dependencies), then People with their companyId relations, then Tasks with personId and WorkspaceMember assignments, then Treatment and Invoice custom objects with their relations. We batch DentAdmin API calls to stay within the 3,600 calls/hour ceiling using exponential backoff. A delta-pickup window of 24–48 hours runs in parallel with your final DentAdmin use: any appointments booked, patients modified, or treatments recorded in DentAdmin during the cutover are captured and loaded into Twenty after the initial batch completes. An audit log records every operation, and one-click rollback is available if record counts or relationship integrity fail validation.
Platform deep dives
DentAdmin
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 DentAdmin 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
DentAdmin: Not publicly documented.
Data volume sensitivity
DentAdmin 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 DentAdmin to Twenty CRM migration scoping. Not seeing yours? Book a call.
Walk through your DentAdmin 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 DentAdmin
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.