CRM migration
Field-level mapping, validation, and rollback between Henry Schein One and Microsoft Dynamics 365 Sales . We move data and schema; workflows are rebuilt natively in Microsoft Dynamics 365 Sales .
Henry Schein One
Source
Microsoft Dynamics 365 Sales
Destination
Compatibility
11 of 11
objects map 1:1 between Henry Schein One and Microsoft Dynamics 365 Sales .
Complexity
BStandard
Timeline
48–72 hours
Overview
Henry Schein One (operating Dentrix, Dentrix Ascend, Jarvis Analytics, and related dental tools) is a practice-management platform for dental offices, DSOs, and specialty practices. Dentrix organizes patient records, clinical notes, treatment plans, appointment schedules, insurance claims, and billing ledgers under a single per-practice subscription used by front-office staff, clinical providers, and billing teams. The Henry Schein One API Exchange exposes approximately 700 endpoints and processes roughly 6 billion data requests annually across 100,000 connected practices. Dynamics 365 Sales is a general-purpose CRM built on Microsoft Dataverse. Standard objects include Account, Contact, Lead, Opportunity, Quote, Order, Invoice, and Activity (Task, Appointment). Dynamics 365 uses a per-user licensing model (Sales Professional at $65/user/month, Sales Enterprise at $105/user/month) with a 15-custom-table limit on the Professional tier. The platform integrates natively with Microsoft 365, Teams, Outlook, and SharePoint. The migration challenge is structural: Dentrix is patient-centric with deeply embedded clinical, scheduling, and financial data. Dynamics 365 Sales is account-contact-centric with a fundamentally different data hierarchy. Appointment records, treatment plans, and clinical notes have no native equivalent in Dynamics 365 and require custom tables and field mapping. Insurance data requires custom fields because Dynamics 365 has no native insurance-carrier or coverage-percentage model. We extract data through the API Exchange (where endpoints exist) supplemented by file-based export for data elements the API does not expose. We apply type-aware field mapping for ADA codes, insurance coverage percentages, and provider assignments, then load structured records into Dynamics 365 via bulk APIs. We preserve original timestamps and owner assignments throughout. A 24–48 hour delta window captures any records modified during cutover. Workflows, automations, and reporting dashboards do not migrate — those require manual rebuild in Dynamics 365.
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.
Source platform
Henry Schein One platform overview
Scorecard, SWOT, gotchas, and pricing for Henry Schein One.
Destination platform
Microsoft Dynamics 365 Sales platform overview
Scorecard, SWOT, gotchas, and pricing for Microsoft Dynamics 365 Sales .
Data migration guide
The complete Microsoft Dynamics 365 Sales migration guide
Data model, import mechanisms, field mapping strategy, pitfalls, and cutover — by the engineers running it.
Destination checklist
Microsoft Dynamics 365 Sales migration checklist
Pre- and post-cutover tasks for moving onto Microsoft Dynamics 365 Sales .
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
Each row shows how a Henry Schein One object lands in Microsoft Dynamics 365 Sales , including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Henry Schein One
Practice
Microsoft Dynamics 365 Sales
Account
1:1Each Dentrix practice becomes a Dynamics 365 Account. Practice name, address, phone, and NPI number map to Account.Name, Address fields, and a custom NPI__c field. Multi-location DSOs get one Account per physical practice location linked to a parent Account for the DSO entity.
Henry Schein One
Patient
Microsoft Dynamics 365 Sales
Contact
1:1Dentrix patient records map to Dynamics 365 Contacts. The primary Practice (office) becomes the Contact's AccountId lookup. The original Dentrix patient ID is preserved in Source_System_ID__c for traceability and de-duplication during delta runs. Patients with guarantor relationships map to a custom Guarantor relationship on the Contact.
Henry Schein One
Provider / Dentist
Microsoft Dynamics 365 Sales
Contact + User
1:1Providers who are active Dynamics 365 users map to User records with a Contact mirror for provider details (specialty, license number). Providers who are not system users map to Contacts with a custom Provider_Type__c pick-list field (Dentist, Hygienist, Specialist) and a Provider_License__c field. Provider-to-patient associations use a custom Junction object.
Henry Schein One
Appointment
Microsoft Dynamics 365 Sales
Custom Appointment__c Table
1:1Dynamics 365 has no native dental appointment entity. We create a custom Appointment__c table with fields for Appointment_ID__c, Scheduled_Date__c, Start_Time__c, End_Time__c, Duration_Minutes__c, Appointment_Type__c, Status__c, Operatory__c, Provider_Lookup__c (to Contact), Patient_Lookup__c (to Contact), and Procedure_Code__c. The table links to the patient Contact record.
Henry Schein One
Treatment Plan
Microsoft Dynamics 365 Sales
Custom Treatment_Plan__c Table
1:1Each treatment plan in Dentrix becomes a record in a custom Treatment_Plan__c table with Treatment_Plan_ID__c, Patient_Lookup__c, Provider__c, Plan_Date__c, Status__c, Total_Fee__c, and a related Treatment_Procedure__c child table holding ADA procedure codes, tooth numbers, surfaces, fees, and provider assignment per line item.
Henry Schein One
Insurance Plan
Microsoft Dynamics 365 Sales
Custom Insurance_Carrier__c + fields on Contact/Account
1:1Dentrix insurance data (carrier name, policy number, group number, subscriber name, subscriber DOB, relationship, coverage percentages for preventive/basic/major) maps to a custom Insurance_Carrier__c table and related Insurance_Coverage__c fields on the Contact. Primary and secondary insurance carriers are distinguished by a Carrier_Priority__c pick-list.
Henry Schein One
Claims / Ledger Entry
Microsoft Dynamics 365 Sales
Custom Claim__c Table + Account
1:1Dentrix insurance claims (claim ID, status, submission date, payer, billed amount, paid amount, adjustment codes) map to a custom Claim__c table linked to the Contact and Insurance_Carrier__c. Ledger entries (charges, payments, adjustments) create corresponding records in a custom Ledger_Entry__c table for revenue cycle auditing in Dynamics 365.
Henry Schein One
Clinical Note
Microsoft Dynamics 365 Sales
Custom Clinical_Note__c Table
1:1Dentrix clinical notes (perio chart data, diagnosis codes, clinical observations) have no Dynamics 365 equivalent and migrate as records in a custom Clinical_Note__c table linked to the Contact, with Note_Date__c, Note_Type__c, Provider__c, Diagnosis_Code__c, and a long-text Note_Body__c field preserving the full clinical content.
Henry Schein One
Recall / Re-Care
Microsoft Dynamics 365 Sales
Task
1:1Dentrix recall appointments (hygiene re-care intervals, follow-up reminders) map to Dynamics 365 Tasks with Subject, Due_Date__c (calculated from recall interval), and Owner set to the assigned provider. A custom Recall_Type__c field preserves the recall category (e.g., 6-month hygiene, annual exam).
Henry Schein One
Document / File Attachment
Microsoft Dynamics 365 Sales
SharePoint + Custom File_Link__c
1:1Dentrix file attachments (consent forms, EOBs, correspondence) are exported to a SharePoint document library and linked to the patient Contact via a custom File_Link__c table holding the original filename, SharePoint URL, Dentrix internal path, and file category. Dental images (X-rays, photos) require a separate image export workflow before file linking.
Henry Schein One
Custom Practice Fields
Microsoft Dynamics 365 Sales
Custom Fields on respective tables
1:1Any custom fields defined in Dentrix (e.g., custom pick-lists, provider-specific flags, billing modifiers) are enumerated in the migration plan and created as matching custom fields in Dynamics 365 on the appropriate table (Contact, Appointment__c, Treatment_Plan__c, etc.) with consistent naming conventions.
| Henry Schein One | Microsoft Dynamics 365 Sales | Compatibility | |
|---|---|---|---|
| Practice | Account1:1 | Fully supported | |
| Patient | Contact1:1 | Fully supported | |
| Provider / Dentist | Contact + User1:1 | Fully supported | |
| Appointment | Custom Appointment__c Table1:1 | Fully supported | |
| Treatment Plan | Custom Treatment_Plan__c Table1:1 | Fully supported | |
| Insurance Plan | Custom Insurance_Carrier__c + fields on Contact/Account1:1 | Fully supported | |
| Claims / Ledger Entry | Custom Claim__c Table + Account1:1 | Fully supported | |
| Clinical Note | Custom Clinical_Note__c Table1:1 | Fully supported | |
| Recall / Re-Care | Task1:1 | Fully supported | |
| Document / File Attachment | SharePoint + Custom File_Link__c1:1 | Fully supported | |
| Custom Practice Fields | Custom Fields on respective tables1: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.
Henry Schein One gotchas
Proprietary image encoding breaks image links post-migration
Insurance EDI re-enrollment required with every payer
API Exchange restrictions limit third-party data access
PCI compliance does not transfer between systems
Jarvis Analytics generates derived data that does not export
Microsoft Dynamics 365 Sales gotchas
Professional tier 15-table custom table limit blocks migrations
October 2024 pricing increase applies at renewal for all customers
Custom fields must be created in the UI before API writes
Power Platform request limits apply to bulk migrations
Activity records orphaned to inactive owners fail silently
Pair-specific challenges
Migration approach
Audit source data and design Dynamics 365 schema
We connect to the Henry Schein One API Exchange (using your API credentials) and pull a full data inventory: patient records, provider records, appointment history, treatment plans, insurance carriers, claim ledger entries, clinical notes, and file attachment references. We simultaneously audit what API endpoints are available and flag data elements accessible only via file export. We then produce a Dynamics 365 schema plan: custom table definitions, field-level specs, relationship diagrams, and a data-volume estimate by object. Your Dynamics 365 admin (or our team) creates the custom tables before migration begins.
Map dental objects to Dynamics 365 entities and custom tables
We build the full field mapping document: each Dentrix object and field maps to either a standard Dynamics 365 field, a custom field on an existing table, or a custom table. ADA procedure codes, insurance coverage percentages, operatory assignments, and provider-to-patient relationships are handled with type-aware mapping logic. Value-mapping tables handle Dentrix pick-list values (appt status, claim status, coverage types) to ensure they land as correct pick-list values in Dynamics 365 rather than free text. The mapping document is reviewed with your team before the test migration runs.
Export, clean, and transform source data
Data extraction runs via the API Exchange where endpoints are available, supplemented by Dentrix backup file exports for data not accessible through the API (ledger entries, certain clinical notes, imaging file references). We apply data-quality rules: de-duplicate patient records by SSN last-4 and DOB, flag provider records for User-vs-Contact classification, normalize date formats, and map null insurance carriers to a placeholder. Imaging files are processed through a separate export workflow that decodes proprietary Dentrix filenames and prepares them for SharePoint upload. The cleaned, transformed dataset is staged in a secure environment for validation.
Run sample migration and field-level diff
A representative slice migrates first — typically 200–500 patient records across multiple providers and practices, including appointments, treatment plans, insurance records, and clinical notes. We generate a field-level diff report showing source value vs. destination value for every mapped field, plus a record-count summary by object. You verify ADA code mapping, insurance coverage percentages, appointment provider links, and treatment plan structure. Any mapping corrections are applied before the full run. This step is critical for dental data because the custom table structure has no standard CRM equivalent — validation catches missing fields or incorrect lookups before volume data loads.
Full migration with delta-pickup and audit log
The full dataset loads into Dynamics 365 in the correct sequence: Practices → Accounts, then Providers → Contacts, then Patients → Contacts (linked to Account), then Insurance → Insurance tables, then Appointments → Appointment__c, then Treatment Plans and Procedures → Treatment_Plan__c and Treatment_Procedure__c, then Claims → Claim__c, then Clinical Notes → Clinical_Note__c. We preserve original create dates and timestamps as custom fields so Dynamics 365 reports reflect the historical record timeline. A 24–48 hour delta-pickup window captures any appointments, treatment plans, or insurance changes made in Dentrix during the cutover. We deliver a complete audit log with record counts, error summaries, and rollback capability if reconciliation reveals unexpected gaps.
Platform deep dives
Henry Schein One
Source
Strengths
Weaknesses
Microsoft Dynamics 365 Sales
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. All 8 core objects map 1:1 between Henry Schein One and Microsoft Dynamics 365 Sales .
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Henry Schein One and Microsoft Dynamics 365 Sales .
Object compatibility
All 8 core objects map 1:1 between Henry Schein One and Microsoft Dynamics 365 Sales .
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
Henry Schein One: Not publicly documented per-org limits; enterprise customers receive dedicated API capacity.
Data volume sensitivity
Henry Schein One exposes a bulk API — large-volume migrations stream efficiently.
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 Henry Schein One to Microsoft Dynamics 365 Sales migration scoping. Not seeing yours? Book a call.
Walk through your Henry Schein One to Microsoft Dynamics 365 Sales migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave Henry Schein One
Other ways to arrive at Microsoft Dynamics 365 Sales
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.