CRM migration
Field-level mapping, validation, and rollback between Dent-O-Soft and Twenty CRM. We move data and schema; workflows are rebuilt natively in Twenty CRM.
Dent-O-Soft
Source
Twenty CRM
Destination
Compatibility
10 of 12
objects map 1:1 between Dent-O-Soft and Twenty CRM.
Complexity
BStandard
Timeline
24–48 hours
Overview
Dent-O-Soft organizes data around a dental practice model: patient records, appointments, treatment plans, procedure codes, insurance claims, and lab prescriptions. Twenty CRM uses a standard CRM object model with People, Companies, Opportunities, Tasks, and Notes — plus unlimited custom objects. There is no structural equivalence between the two, so the migration is a schema redesign, not a field-for-field rename. We audit your Dent-O-Soft data and identify which records map directly to Twenty standard objects versus which require custom object creation. Patient records become People with a link to an insurance carrier Company record; treatment plans become Opportunities; appointments become Tasks; insurance claims and lab prescriptions need custom objects. We use Twenty's CSV import (up to 20,000 records per batch) or REST/GraphQL API calls (100 calls/minute on Pro, 200 on Organization) for the load. Views, workflows, and permissions in Dent-O-Soft do not migrate — we export definitions as a rebuild reference for your Twenty admin. The 24–48 hour delta-pickup window captures in-flight appointments and treatment updates during cutover.
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 Dent-O-Soft 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.
Dent-O-Soft
Patient
Twenty CRM
People
1:1Patient records map to Twenty's People object. Name, email, phone, address, and date of birth migrate directly. Insurance carrier is stored as a link to a Company record (created or matched first). Original patient ID is preserved in Source_System_ID__c custom field for traceability and delta-run deduplication.
Dent-O-Soft
Insurance Carrier
Twenty CRM
Company
1:1Dental insurance carriers are organizations, not people, so they migrate to Twenty's Companies object. Carrier name becomes the Company name; address and phone map directly. A custom field (Carrier_Type__c) is set to 'Insurance Carrier' to distinguish from practice or lab Company records.
Dent-O-Soft
Treatment Plan
Twenty CRM
Opportunity
1:1Treatment plans migrate to Twenty Opportunities with planned treatment amount mapped to Amount, plan status mapped to Opportunity stage via value mapping (Proposed → 'Initial Exam', Approved → 'Treatment Plan', Completed → 'Closed Won'), and provider as the Opportunity owner resolved by email match to Twenty workspace members.
Dent-O-Soft
Procedure
Twenty CRM
Opportunity / Custom Object
1:manyIndividual procedures attached to a treatment plan split into two paths: procedure fee and tooth code are custom fields on the parent Opportunity (linked by opportunityId); procedure history (dates, surfaces, materials) migrates as a custom Procedure custom object linked to the People record. Tooth number and surface use custom fields; ADA procedure codes require value mapping against Twenty custom select options.
Dent-O-Soft
Appointment
Twenty CRM
Task
1:1Appointments map to Twenty Tasks. Appointment date and time become Task dueDate and startTime; provider becomes the Task assignee matched by email to Twenty workspace members; appointment type is stored in a custom Task_Type__c field; notes and clinical instructions become the Task body or an attached Note.
Dent-O-Soft
Clinical Note / Chart Note
Twenty CRM
Note
1:1Clinical notes, progress notes, and periodontal chart entries migrate to Twenty Notes attached to the relevant People record. The note subject is set from the note type or date; the body contains the full clinical text. Per-tooth charting data is stored as a custom Note or custom object depending on structure complexity.
Dent-O-Soft
Insurance Claim
Twenty CRM
Custom Object: InsuranceClaim
1:1Twenty has no native insurance claim object. We create a custom InsuranceClaim object with fields for claim number, carrier (lookup to Company), patient (lookup to People), service date, billed amount, paid amount, adjustment, adjustment reason, and claim status. Claim status uses a custom select with values matching the source (Pending, Submitted, Paid, Denied, Appeal).
Dent-O-Soft
Lab Prescription
Twenty CRM
Custom Object: LabPrescription
1:1Lab work orders migrate to a custom LabPrescription object with lab name (lookup to Company), prescription date, due date, status, tooth number, shade, material, design instructions, and patient link. Lab vendor records are created as Companies with type 'Dental Lab' before prescriptions are imported.
Dent-O-Soft
Recall / Re-care Entry
Twenty CRM
Task
1:1Dent-O-Soft recall intervals (6-month cleaning, annual exam) become Tasks with a due date calculated from the last appointment date plus the recall interval. A custom field Recall_Type__c stores the recall category (prophy, perio maintenance, exam). The Task is linked to the People record and assigned to the practice's default owner.
Dent-O-Soft
Referring Provider
Twenty CRM
People / Company
1:manyReferring dentists and specialists split based on Dent-O-Soft type: if stored as an organization, they become Companies with type 'Referral Source'; if as an individual, they become People records linked to a referring Company. A custom field Referral_Source__c marks the relationship.
Dent-O-Soft
Document / Attachment
Twenty CRM
Note / File
1:1Treatment consent forms, insurance cards, and clinical documents migrate as Twenty Notes attached to the relevant People record. For image files, we note the file type and size; images are re-uploaded to Twenty's file storage and linked. File size limits per Twenty storage configuration apply.
Dent-O-Soft
Payment / Ledger Entry
Twenty CRM
Custom Object: Payment
1:1Patient payment history and ledger entries migrate to a custom Payment object linked to People and Opportunity. Fields include payment date, amount, payment method, applied-to procedure, and balance. Payment totals are not automatically rolled up — a custom rollup field or report is built post-migration.
| Dent-O-Soft | Twenty CRM | Compatibility | |
|---|---|---|---|
| Patient | People1:1 | Fully supported | |
| Insurance Carrier | Company1:1 | Fully supported | |
| Treatment Plan | Opportunity1:1 | Fully supported | |
| Procedure | Opportunity / Custom Object1:many | Fully supported | |
| Appointment | Task1:1 | Fully supported | |
| Clinical Note / Chart Note | Note1:1 | Fully supported | |
| Insurance Claim | Custom Object: InsuranceClaim1:1 | Fully supported | |
| Lab Prescription | Custom Object: LabPrescription1:1 | Fully supported | |
| Recall / Re-care Entry | Task1:1 | Fully supported | |
| Referring Provider | People / Company1:many | Fully supported | |
| Document / Attachment | Note / File1:1 | Fully supported | |
| Payment / Ledger Entry | Custom Object: Payment1: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.
Dent-O-Soft gotchas
No API and no documented bulk export path
On-premises deployment with limited remote access
No free trial and no published pricing
Single-language support (English) and small distribution footprint
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 Dent-O-Soft data structure and export options
We begin by identifying every data object in your Dent-O-Soft instance: patient records, appointments, treatment plans, procedures, insurance claims, lab prescriptions, recall entries, clinical notes, and documents. We determine the export mechanism available — CSV export from the Dent-O-Soft admin interface, direct database query if self-hosted, or manual extraction. We inventory record counts per object, identify custom fields and pick-list values, and document relationships between records. This audit produces the mapping document that drives every subsequent step.
Configure Twenty workspace: custom objects, fields, and value mappings
Before data is moved, we create all custom objects and fields in Twenty that Dent-O-Soft uses but Twenty does not have natively: InsuranceClaim, LabPrescription, Procedure, PerToothRecord; custom fields on People (Gender__c, Insurance_Group__c, Carrier_Company__c, Source_System_ID__c); custom fields on Task (Task_Type__c, Recall_Type__c); custom fields on Opportunity (Procedure_Code__c, Tooth_Number__c, Surface__c, Procedure_Fee__c). We also build value-mapping tables for appointment status, treatment plan stage, claim status, procedure code, and recall type. All custom fields and select options are live in Twenty before any import begins.
Import sequence: Companies → People → Opportunities → Custom objects
We execute the migration in Twenty's required import order. First, all unique insurance carriers, labs, and referring providers are created as Company records. Second, patient People records are imported with carrier links resolved to existing Company IDs. Third, treatment plan Opportunities are imported linked to patient People IDs and provider workspace members. Fourth, appointments are imported as Tasks linked to the patient People record. Fifth, insurance claims, lab prescriptions, and procedure records are imported as custom objects with their respective lookups. Each batch is validated before the next begins.
Run sample migration with field-level diff and owner resolution
A representative slice — typically 100–300 records spanning patients, appointments, treatment plans, and one or two custom objects — migrates first. We generate a field-level diff showing every source value and its destination counterpart so you can verify procedure code mapping, carrier lookup resolution, appointment status translation, and owner email matching to Twenty workspace members. Unmatched owners, duplicate Company records, and failed lookups are flagged and corrected before the full run. No record type or page layout configuration is needed in Twenty since Twenty does not use Salesforce-style record types.
Full migration run with delta-pickup and audit log
The full dataset migrates against Twenty using CSV import batches (up to 20,000 records per batch) or API calls at the rate limit for your plan. A delta-pickup window of 24–48 hours runs in parallel, capturing any new appointments, treatment plan changes, or patient records created or updated in Dent-O-Soft during the cutover period. Every operation is logged in an audit trail. If reconciliation fails — a batch fails validation, a custom field mapping breaks, or record counts do not match — one-click rollback reverts the Twenty workspace to its pre-migration state so the issue can be diagnosed and the run re-attempted.
Platform deep dives
Dent-O-Soft
Source
Strengths
Weaknesses
Twenty CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 1 of 8 objects need a manual workaround.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Dent-O-Soft and Twenty CRM.
Object compatibility
1 of 8 objects need a manual workaround.
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
Dent-O-Soft: N/A.
Data volume sensitivity
Dent-O-Soft 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 Dent-O-Soft to Twenty CRM migration scoping. Not seeing yours? Book a call.
Walk through your Dent-O-Soft 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 Dent-O-Soft
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.