CRM migration
Field-level mapping, validation, and rollback between Henry Schein One and Salesforce Sales Cloud. We move data and schema; workflows are rebuilt natively in Salesforce Sales Cloud.
Henry Schein One
Source
Salesforce Sales Cloud
Destination
Compatibility
11 of 12
objects map 1:1 between Henry Schein One and Salesforce Sales Cloud.
Complexity
BStandard
Timeline
48–72 hours
Overview
Henry Schein One organizes dental practices around patients, providers, appointments, treatment plans, and billing ledgers — a schema built around chair time and insurance reimbursement cycles. Salesforce Sales Cloud organizes around Account, Contact, Lead, and Opportunity — a schema built for B2B sales pipelines and revenue tracking. These models share almost no native equivalences. Every patient becomes either a Lead or Contact depending on whether they have an open treatment plan. Every appointment becomes a Salesforce Event with custom fields for chair, provider, and procedure type. Treatment codes (CDT codes) and insurance adjustments have no Salesforce standard equivalent and require custom fields and a custom Insurance Ledger object. The migration runs through Salesforce Bulk API 2.0 to handle the volume typical of a multi-location DSO, with a 24–48 hour delta-pickup window to capture records modified during the cutover. FlitStack does not migrate Dentrix workflows, imaging software integrations, or insurance EDI enrollment — those require separate rebuild projects documented in the migration plan.
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 Henry Schein One 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.
Henry Schein One
Patient
Salesforce Sales Cloud
Contact / Lead
1:manyPatients without an active treatment plan route to Salesforce Lead. Patients with an open treatment plan route to Salesforce Contact and are attached to a DSO Account representing their primary practice location. The split preserves the patient record while keeping Salesforce's Lead/Contact distinction meaningful for follow-up and recall workflows.
Henry Schein One
Provider / Dentist
Salesforce Sales Cloud
Contact
1:1Providers are stored as Contacts with a custom Provider_Type__c pick-list field set to 'Dentist', 'Hygienist', 'Oral Surgeon', or 'Office Manager'. Provider NPI numbers migrate to NPI__c custom field. Provider scheduling associations are preserved as a many-to-one relationship via the Provider__c lookup on the Event object.
Henry Schein One
Appointment
Salesforce Sales Cloud
Event
1:1Each appointment maps to a Salesforce Event. StartDateTime and EndDateTime carry the original appointment time. Custom fields capture the Operatory__c, Appointment_Status__c, and Procedure_Code__c (CDT code) for each slot. Completed appointments with clinical notes carry the note content in the Description field and a custom Clinical_Note__c long-text area.
Henry Schein One
Treatment Plan
Salesforce Sales Cloud
Custom: Treatment_Plan__c
1:1Treatment plans have no Salesforce standard equivalent. We create a Treatment_Plan__c custom object linked to Contact via a lookup. The object stores proposed CDT codes, estimated fees, accepted flag, and treatment plan date. Each line item of the plan is a Treatment_Plan_Line__c custom object related to the parent plan.
Henry Schein One
Procedure / Ledger Entry
Salesforce Sales Cloud
Custom: Procedure__c
1:1Clinical procedures (CDT codes) and their associated fees, adjustments, and insurance payments become Procedure__c records linked to the Contact. Each procedure record stores the CDT_Code__c, Description__c, Fee__c, Insurance_Paid__c, Patient_Paid__c, Adjustment__c, and Procedure_Date__c. The full procedure history constitutes the migrated ledger.
Henry Schein One
Insurance Plan
Salesforce Sales Cloud
Custom: Insurance_Plan__c + Account
1:1Insurance carriers map to Salesforce Account records (type = 'Insurance Carrier'). Individual employer-sponsored plans are stored in a custom Insurance_Plan__c object linked to the carrier Account, storing group number, subscriber ID format, and coverage percentages per procedure category. Patient-level coverage assignments are tracked via Insurance_Coverage__c custom fields on the Contact.
Henry Schein One
Recall / Hygiene Appointment
Salesforce Sales Cloud
Task
1:1Recall intervals (e.g., '6-month hygiene recall') migrate as Salesforce Tasks with a custom Recall_Type__c pick-list and a custom Recall_Due_Date__c field. Tasks are related to the Contact and assigned to the Provider for the recall. FlitStack does not rebuild the automated recall reminders in Salesforce Flow — those are documented for your admin to configure post-migration.
Henry Schein One
Clinical Note / Perio Chart
Salesforce Sales Cloud
Note / Custom: Clinical_Note__c
1:1Short clinical notes migrate as Salesforce Notes. Perio chart data (probing depths, recession values) has no Salesforce standard — we create a Clinical_Note__c custom object with long-text area fields for perio data, procedure notes, and medical-conditions flags. The data is preserved for reference but not structured for reporting.
Henry Schein One
Attachment / Image
Salesforce Sales Cloud
Salesforce Files (ContentDocument)
1:1Images and attachments are downloaded from the Dentrix file store and re-uploaded as Salesforce Files linked to the associated Contact or Procedure record. Dentrix's proprietary image file-naming encoding requires a file reference map to ensure images link to the correct patient. The 25MB per-file Salesforce limit applies; oversized files are flagged for manual handling.
Henry Schein One
Practice / Location
Salesforce Sales Cloud
Account
1:1Each physical practice location maps to a Salesforce Account (type = 'Dental Practice'). Multi-location DSO accounts use a parent Account hierarchy (ParentId) to reflect corporate structure. Provider and patient counts per location are stored in custom fields on the Account for reporting.
Henry Schein One
Source System ID
Salesforce Sales Cloud
Source_System_ID__c
1:1Every migrated record carries its original Dentrix record ID in Source_System_ID__c (text field, external ID). This enables delta-run de-duplication, rollback targeting, and cross-referencing in the FlitStack audit log. No Salesforce standard field is overwritten with source IDs — CreatedDate and LastModifiedDate reflect migration timestamps.
Henry Schein One
Appointment Reminder / Automated Recall
Salesforce Sales Cloud
N/A
1:1Appointment reminders and automated recall sequences are built-in Dentrix workflows. Salesforce Flow handles these use cases but requires a fresh build. FlitStack exports the Dentrix workflow definitions as a reference document for your admin to configure post-migration. The data supporting those workflows — recall dates, appointment history — does migrate.
| Henry Schein One | Salesforce Sales Cloud | Compatibility | |
|---|---|---|---|
| Patient | Contact / Lead1:many | Fully supported | |
| Provider / Dentist | Contact1:1 | Fully supported | |
| Appointment | Event1:1 | Fully supported | |
| Treatment Plan | Custom: Treatment_Plan__c1:1 | Fully supported | |
| Procedure / Ledger Entry | Custom: Procedure__c1:1 | Fully supported | |
| Insurance Plan | Custom: Insurance_Plan__c + Account1:1 | Fully supported | |
| Recall / Hygiene Appointment | Task1:1 | Fully supported | |
| Clinical Note / Perio Chart | Note / Custom: Clinical_Note__c1:1 | Fully supported | |
| Attachment / Image | Salesforce Files (ContentDocument)1:1 | Fully supported | |
| Practice / Location | Account1:1 | Fully supported | |
| Source System ID | Source_System_ID__c1:1 | Fully supported | |
| Appointment Reminder / Automated Recall | N/A1: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
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
Scope and schema mapping
FlitStack ingests the source system schema via the Henry Schein One API Exchange (where endpoints are available) or structured export. We map every standard and custom field, flag dental-specific objects (Procedure, Treatment Plan, Insurance Ledger, Recall), and identify fields that require custom Salesforce objects and fields. We deliver a Schema Setup Plan specifying every custom object, field API name, pick-list value set, and required Salesforce-side configuration before any data moves. HIPAA PHI scoping is confirmed at this stage and a BAA is executed.
Create Salesforce custom objects and fields
Your Salesforce admin (or FlitStack's team acting with appropriate org access) creates the custom objects and fields described in the Schema Setup Plan: Treatment_Plan__c, Treatment_Plan_Line__c, Procedure__c, Insurance_Plan__c, Insurance_Coverage__c, Clinical_Note__c, and all custom fields on Contact, Lead, Event, Task, and Account. Record types are created if different provider types or location types require distinct page layouts. This step runs in parallel with source data extraction and must be complete before any insert operations begin.
Sequence data migration respecting foreign-key dependencies
Salesforce requires Account records before Contact records (via AccountId) and Contact records before Events (via WhoId and WhatId). FlitStack sequences the migration: (1) Accounts for each practice location, (2) Contacts for providers, (3) Contacts for patients routed by treatment plan status, (4) Insurance carrier Accounts and custom Insurance_Plan__c records, (5) Procedure__c and Treatment_Plan__c records linked to Contact, (6) Events for appointments linked to both patient Contact and provider Contact, (7) Tasks for recall items. This ordering prevents null lookup errors and ensures referential integrity across all objects.
Run sample migration with field-level diff
A representative slice — typically 200–500 patient records spanning multiple locations, with appointments, procedures, and recalls — migrates first. FlitStack generates a field-level diff comparing source values against Salesforce field values for every mapped field, including custom objects. You verify CDT-code value mapping accuracy, insurance ledger totals matching source totals, appointment-provider linkage, and imaging file reference map completeness before the full run commits. Sample migration failures are corrected in the mapping plan before bulk processing begins.
Execute full migration with delta-pickup window
The full dataset migrates using Salesforce Bulk API 2.0 with batch throttling to respect API limits. A delta-pickup window — typically 24–48 hours after the full run completes — captures any patient records, appointments, or procedures created or modified in Dentrix during the cutover window. FlitStack's audit log records every insert, update, and error at the field level. One-click rollback is available if field-level reconciliation fails — this rolls back all Salesforce inserts in the target org without touching the source Dentrix system. After rollback confirmation, the migration can be re-run with corrected mapping.
Post-migration handover and rebuild documentation
FlitStack delivers the complete migration report: record counts per object, error log with resolution steps, source-to-destination ID cross-reference file, and a custom object configuration summary. Workflow and automation rebuild documentation — exported Dentrix workflow definitions mapped to equivalent Flow triggers and actions — is handed off to your Salesforce admin. Imaging file reference map is verified for completeness. A 30-day post-migration support window covers any data discrepancies discovered after go-live reconciliation.
Platform deep dives
Henry Schein One
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 Henry Schein One 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
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 Salesforce Sales Cloud migration scoping. Not seeing yours? Book a call.
Walk through your Henry Schein One 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 Henry Schein One
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.