CRM migration
Field-level mapping, validation, and rollback between Dentrix and Salesforce Sales Cloud. We move data and schema; workflows are rebuilt natively in Salesforce Sales Cloud.
Dentrix
Source
Salesforce Sales Cloud
Destination
Compatibility
10 of 12
objects map 1:1 between Dentrix and Salesforce Sales Cloud.
Complexity
BStandard
Timeline
2–4 weeks
Overview
Dentrix organizes patient data in a single-practice, server-resident schema: patients, providers, appointments, clinical notes, treatment plans, CDT-coded procedures, insurance records, and billing ledger entries. There is no comprehensive public REST API for Dentrix G-series; data extraction typically requires reading proprietary .dat files, running built-in export utilities, or using the Dentrix API Exchange program where available. The result is a flattened, denormalized dataset that must be normalized into Salesforce's relational model — Accounts for insurance providers, Contacts for patients, custom objects for treatment plans and clinical records, and Events or Tasks for appointments. FlitStack AI sequences the migration so that foreign-key dependencies resolve in the right order: insurance providers land as Accounts first, then patients map to Contacts with the provider AccountId attached, then appointments, treatment plans, and clinical notes populate against the correct Contact records. CDT procedure codes migrate as a custom pick-list field (CDT_Code__c) on the treatment plan object so your Salesforce admin can build reports filtered by procedure type. Imaging files referenced in Dentrix are preserved as external URL fields pointing to a designated cloud storage bucket rather than uploaded directly into Salesforce Files — a necessary accommodation given HIPAA storage compliance and file-size limits. Workflows, recall reminders, and appointment-confirmation sequences built in Dentrix do not transfer; we document your existing Dentrix workflow rules as a rebuild reference for your Salesforce admin. The migration runs read-only against your Dentrix instance throughout, your team continues scheduling and charting in Dentrix during cutover, and a 24–48 hour delta window captures any records modified between the bulk extract and the final re-verification step.
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 Dentrix object lands in Salesforce Sales Cloud, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Dentrix
Patient
Salesforce Sales Cloud
Contact
1:1Dentrix patient records map directly to Salesforce Contact. The patient's primary family Account is created or matched first, then Contact is linked via AccountId. All contact fields (name, phone, email, address) map 1:1. Dentrix patient create date is preserved in Original_Patient_Create_Date__c custom datetime.
Dentrix
Patient.Address
Salesforce Sales Cloud
Contact (MailingAddress fields)
1:1Patient mailing address fields (street, city, state, zip, country) in Dentrix map to Contact.MailingStreet, MailingCity, MailingState, MailingPostalCode, MailingCountry. If Dentrix stores a separate billing address, it maps to Contact.OtherAddress fields in Salesforce.
Dentrix
Insurance Record
Salesforce Sales Cloud
Account + Contact (junction)
many:1Dentrix insurance carrier name becomes a Salesforce Account (Insurance_Carrier__c type). The subscriber ID, group number, and eligibility dates migrate to a custom Insurance_Detail__c junction object linking the patient Contact to the carrier Account. If the insurance carrier Account already exists, FlitStack matches by name before creating a duplicate.
Dentrix
Appointment
Salesforce Sales Cloud
Event / Custom Appointment__c
1:1Dentrix appointments map to Salesforce Events with Subject = patient name + procedure type, StartDateTime and EndDateTime from Dentrix slot start/end, and WhoId = Contact. Custom fields Operatory__c, Provider__c (lookup to User), and Appointment_Type__c capture Dentrix-specific appointment attributes. Practices preferring a dedicated appointment object use a custom Appointment__c custom object instead.
Dentrix
Treatment Plan
Salesforce Sales Cloud
Custom Treatment_Plan__c object
1:1Dentrix treatment plans have no Salesforce standard equivalent. FlitStack creates a Treatment_Plan__c custom object with fields for plan date, provider, status (proposed/accepted/completed), total fee, and CDT_Code__c pick-list. Each Treatment_Plan__c links to the patient Contact via Contact__c lookup. Original treatment plan create date stored in Original_Create_Date__c.
Dentrix
Procedure History
Salesforce Sales Cloud
Custom Procedure__c object
1:1Individual CDT-coded procedures performed on a patient create Procedure__c records linked to the Treatment_Plan__c and Contact. CDT_Code__c stores the ADA procedure code as a custom pick-list. Surface__c (tooth surface), Quad__c (quadrant), and Fee__c fields capture procedure specifics. Completed procedures have Status__c = 'Completed' with Completion_Date__c.
Dentrix
Clinical Note
Salesforce Sales Cloud
Custom Clinical_Note__c object
1:1Dentrix clinical note text migrates to a Clinical_Note__c custom object with a Long Text Area field (32K character limit) preserving full note content. Notes are linked to Contact via Contact__c lookup and to Treatment_Plan__c when associated. Provider attribution preserved via Provider__c lookup to User. Original note timestamp stored in Original_Note_Date__c.
Dentrix
Provider (Dentist/Hygienist)
Salesforce Sales Cloud
User + Contact
1:manyDentrix providers who need Salesforce login (associate dentists, office managers) become Salesforce Users, matched by email address. Providers who do not need CRM access (referring dentists, retired associates) become Contacts with the custom flag Is_Provider__c = true and Specialty__c pick-list (General Dentist, Hygienist, Oral Surgeon, etc.).
Dentrix
Billing Ledger Entry
Salesforce Sales Cloud
Custom Billing_Ledger__c object
1:1Dentrix billing ledger entries map to a custom Billing_Ledger__c object linked to Contact. Fields include Transaction_Type__c (charge/payment/adjustment), Amount__c, Procedure_Link__c (lookup to Procedure__c), Insurance_Payment__c, Patient_Payment__c, and Ledger_Date__c. Historical ledger data is preserved for auditing even though Salesforce is not a dental billing system.
Dentrix
Document / Imaging Reference
Salesforce Sales Cloud
Custom Source_Imaging_URL__c field
1:1Dentrix stores X-ray and imaging file paths pointing to a local or network server share. Because Salesforce Files has a 25MB per-file limit and re-uploading clinical images creates HIPAA storage compliance complexity, FlitStack preserves the original file path as a custom URL field Source_Imaging_URL__c on the Contact. Your team configures the destination storage and updates URLs post-migration.
Dentrix
Recall / Appointment Reminder
Salesforce Sales Cloud
No equivalent
1:1Dentrix recall rules (6-month cleaning reminders, per-procedure follow-up intervals) are workflow logic with no Salesforce native equivalent. FlitStack exports the recall configuration as a structured reference document your Salesforce admin uses to build Salesforce Flow reminder rules post-migration. The original recall interval data is preserved in a custom Recall_Rule__c field on Contact for reference.
Dentrix
Medical / Clinical Alert
Salesforce Sales Cloud
Custom Clinical_Alert__c field
1:1Patient allergies, medical conditions, and clinical alerts stored in Dentrix map to a custom pick-list and text field on Contact. Multiple alerts per patient require either a multi-select pick-list or a custom Clinical_Alert__c junction object depending on the number of alert types. HIPAA-flagged conditions stored per your compliance requirements.
| Dentrix | Salesforce Sales Cloud | Compatibility | |
|---|---|---|---|
| Patient | Contact1:1 | Fully supported | |
| Patient.Address | Contact (MailingAddress fields)1:1 | Fully supported | |
| Insurance Record | Account + Contact (junction)many:1 | Fully supported | |
| Appointment | Event / Custom Appointment__c1:1 | Fully supported | |
| Treatment Plan | Custom Treatment_Plan__c object1:1 | Fully supported | |
| Procedure History | Custom Procedure__c object1:1 | Fully supported | |
| Clinical Note | Custom Clinical_Note__c object1:1 | Fully supported | |
| Provider (Dentist/Hygienist) | User + Contact1:many | Fully supported | |
| Billing Ledger Entry | Custom Billing_Ledger__c object1:1 | Fully supported | |
| Document / Imaging Reference | Custom Source_Imaging_URL__c field1:1 | Fully supported | |
| Recall / Appointment Reminder | No equivalent1:1 | Fully supported | |
| Medical / Clinical Alert | Custom Clinical_Alert__c field1: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.
Dentrix gotchas
No public API for Dentrix G data extraction
Imaging files stored separately from patient records
Balance-forward billing ledger requires explicit handling
In-flight insurance claims must clear before cutover
Custom fields vary per practice with no standard schema
Salesforce Sales Cloud gotchas
Workflow Rules and Process Builder are retired
Bulk API batch quota exhaustion during large imports
Storage overage billing is non-obvious
Account-Contact many-to-many relationship mapping
Territory and team member import ordering dependencies
Pair-specific challenges
Migration approach
Audit Dentrix data sources and build the extraction specification
FlitStack begins every Dentrix migration with a data audit phase. We inventory the .dat file modules present in your Dentrix installation, validate the built-in export utility coverage, and identify any custom fields your practice has added to the standard Dentrix schema. We produce an extraction specification listing every source table, the expected record counts, and the field-level mapping to Salesforce objects. For Dentrix Ascend (cloud) practices, we use the API Exchange endpoints where available. For Dentrix G4 server installations, we run extraction scripts against the .dat files. This phase also identifies records with missing required fields (patients without dates of birth, appointments without providers) so data cleansing happens before the load, not after.
Design and deploy Salesforce custom schema
Before any data loads, FlitStack designs the Salesforce custom object and field schema required to hold Dentrix clinical and dental-specific data. We create the Treatment_Plan__c and Procedure__c custom objects with the CDT_Code__c pick-list, the Clinical_Note__c object, the Billing_Ledger__c object, and all custom Contact fields (Insurance_Subscriber_ID__c, Clinical_Alert__c, Source_Imaging_URL__c, etc.). We also create any necessary Account records for insurance carriers and set up the junction object linking patients to their insurance providers. We deliver a schema deployment plan so your Salesforce admin can create the fields via Setup or deploy via a change set before the migration run commits.
Extract, normalize, and stage Dentrix data
Dentrix data is extracted from .dat files, CSV exports, or API responses into a normalized staging format. During this phase, patient records are deduplicated (Dentrix sometimes creates duplicate patient entries across module imports), provider email addresses are resolved to Salesforce User IDs, insurance carriers are matched or created as Account records, and CDT codes are validated against the ADA code set. Clinical notes are extracted with full timestamps and provider attribution. All staged records are validated against the Salesforce field-type constraints (field length limits, pick-list values, date formats) before the load is attempted. Records failing validation are flagged in a correction report for your team to review.
Run sample migration with field-level diff
A representative slice of 100–500 records migrates first, covering patients, appointments, treatment plans, procedures, and clinical notes. FlitStack generates a field-level diff comparing source values against destination field values in Salesforce. You verify that patient names, addresses, CDT codes, provider assignments, and insurance links appear correctly in Salesforce before the full run commits. This sample also validates that the custom objects and junction relationships load correctly — particularly the treatment-plan-to-contact lookup chain. Any mapping errors discovered at this stage are corrected before the bulk migration runs.
Execute full migration and delta-pickup cutover
The full Dentrix dataset loads into Salesforce via Bulk API 2.0, chunked into 150,000-record batches for large practices. A delta-pickup window of 24–48 hours runs after the bulk load completes, capturing any appointments, clinical notes, or patient records modified in Dentrix during the migration window. The delta run appends to the Salesforce dataset so the final state reflects Dentrix at go-live. An audit log records every record created or updated, and one-click rollback is available if reconciliation against the Dentrix source reveals unexpected discrepancies. After validation, your team is briefed on the Salesforce configuration and the recall-workflow rebuild document is handed off.
Platform deep dives
Dentrix
Source
Strengths
Weaknesses
Salesforce Sales Cloud
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 Dentrix and Salesforce Sales Cloud.
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
Dentrix: Not publicly documented for Dentrix Ascend API Exchange.
Data volume sensitivity
Dentrix 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 Dentrix to Salesforce Sales Cloud migration scoping. Not seeing yours? Book a call.
Walk through your Dentrix to Salesforce Sales Cloud migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave Dentrix
Other ways to arrive at Salesforce Sales Cloud
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.