CRM migration
Field-level mapping, validation, and rollback between Open Dental and Nutshell. We move data and schema; workflows are rebuilt natively in Nutshell.
Open Dental
Source
Nutshell
Destination
Compatibility
10 of 10
objects map 1:1 between Open Dental and Nutshell.
Complexity
BStandard
Timeline
48–72 hours
Overview
Open Dental is a dental practice management system built around the patient record (PatNum), with family groupings tied to a guarantor, comprehensive scheduling, clinical procedure logging, and insurance billing modules. Nutshell is a general-purpose CRM that models business relationships as People (contacts) linked to Accounts (companies), with leads, deals, tasks, and activities. The two platforms share almost no schema overlap — Open Dental's clinical, insurance, and billing modules have no native Nutshell equivalents — so every migration requires custom field creation and careful mapping of the family-guarantor model to Nutshell's flat contact hierarchy. FlitStack AI extracts patient records from Open Dental via its REST API (pagination at 100 records per request, rate-limited to approximately one request per five seconds under ApiReadAll permissions). We map patients to Nutshell People, preserve guarantor relationships using Nutshell's parent-contact structure, surface appointment history as activities with original timestamps, and store clinical data — procedure codes, tooth numbers, treatment dates — in Nutshell custom fields. Insurance carrier and plan data also map to custom fields. Open Dental workflows and automated recall systems have no migration path and must be rebuilt in Nutshell using its automation tools; we export workflow definitions as a reference document for your team to review during the rebuild phase.
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 Open Dental object lands in Nutshell, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Open Dental
Patient
Nutshell
Person
1:1Open Dental patient records map directly to Nutshell People. The PatNum is stored as Source_System_ID__c for traceability and delta-run reconciliation. First name, last name, email, phone, and address fields map 1:1. Standard demographic fields translate without transformation. Patients without an email receive a placeholder email flagging incomplete data for follow-up during the migration review phase.
Open Dental
Patient.Guarantor
Nutshell
Person.parent_id
1:1Open Dental's guarantor field identifies the family head responsible for billing. We map the guarantor relationship by creating a parent-contact link in Nutshell. Non-guarantor family members become Nutshell People linked to the guarantor as parent. This preserves family grouping without requiring a separate junction object.
Open Dental
Appointment
Nutshell
Activity (Task / Event)
1:1Open Dental appointment records become Nutshell Activities. The appointment date/time, status, provider, and procedure description migrate as a Task with original timestamp preserved. Completed appointments map as completed Tasks with completion dates set to the original appointment time; scheduled appointments map as open Tasks with due dates reflecting the upcoming appointment slot.
Open Dental
ProcedureLog
Nutshell
Custom Fields on Person
1:1Open Dental procedure logs (treatment codes, tooth numbers, procedure dates, surface notations) have no native Nutshell equivalent. We create custom fields on the Nutshell Person record — Procedure_Date__c, Procedure_Code__c, Tooth_Number__c — and store the most recent procedure summary for reference. Full clinical history is preserved in a JSON blob in a long-text custom field for audit purposes.
Open Dental
InsPlan / PatPlan
Nutshell
Custom Fields on Person
1:1Insurance plan carrier name, subscriber ID, effective date, and coverage percentage have no Nutshell equivalent since Nutshell lacks a native insurance module. We create Insurance_Carrier__c, Subscriber_ID__c, Insurance_Effective_Date__c, and Coverage_Percent__c custom fields on the Nutshell Person record. Subscriber relationship (self, spouse, child) maps to a dropdown custom field for clarity.
Open Dental
PatField
Nutshell
Custom Fields on Person
1:1Open Dental custom patient fields (defined in Setup > Family/Insurance > Patient Field Defs) map to Nutshell custom fields on the Person entity. Field type is preserved — pick-list becomes Nutshell dropdown, checkbox stays checkbox, date stays date. New Nutshell custom fields are created during the pre-migration schema setup phase.
Open Dental
Payment
Nutshell
Custom Fields on Person
1:1Open Dental payment records (payment date, amount, split allocation) cannot map to a native Nutshell object since Nutshell has no billing module. We create Last_Payment_Date__c and Last_Payment_Amount__c custom fields on the Person record to surface the most recent payment activity for reference during the transition period.
Open Dental
Provider
Nutshell
Custom Field on Activity
1:1Open Dental provider names are extracted from appointment and procedure logs and stored as a Provider__c custom field on Nutshell Activities. Nutshell does not have a native provider object, so provider name is appended to the activity description rather than creating a separate provider directory.
Open Dental
Recall
Nutshell
Custom Field on Person
1:1Open Dental recall entries (next cleaning date, recall type) have no Nutshell equivalent. We create Recall_Date__c and Recall_Type__c custom fields on the Person record. Open Dental's automated recall workflow does not migrate — it must be rebuilt in Nutshell using its task automation or exported as a rebuild reference.
Open Dental
Document
Nutshell
Attachment on Person
1:1Open Dental patient documents (uploaded files, scanned forms, images) are downloaded from Open Dental's document storage and re-uploaded as attachments on the corresponding Nutshell Person record. File size limits and supported formats are validated against Nutshell's attachment constraints before upload.
| Open Dental | Nutshell | Compatibility | |
|---|---|---|---|
| Patient | Person1:1 | Fully supported | |
| Patient.Guarantor | Person.parent_id1:1 | Fully supported | |
| Appointment | Activity (Task / Event)1:1 | Fully supported | |
| ProcedureLog | Custom Fields on Person1:1 | Fully supported | |
| InsPlan / PatPlan | Custom Fields on Person1:1 | Fully supported | |
| PatField | Custom Fields on Person1:1 | Fully supported | |
| Payment | Custom Fields on Person1:1 | Fully supported | |
| Provider | Custom Field on Activity1:1 | Fully supported | |
| Recall | Custom Field on Person1:1 | Fully supported | |
| Document | Attachment on Person1: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.
Open Dental gotchas
X-ray images do not migrate between systems
Scanned documents require a separate image conversion with additional cost
Server must run MySQL with myISAM engine, not InnoDB
API pagination is limited to 100 records per request
Custom sheets use proprietary XML that only imports to Open Dental
Nutshell gotchas
Contact tier limits enforced on import
No bulk API endpoint requires paginated extraction
Email sequences not exportable via API
Foundation plan disables key sales features
Pair-specific challenges
Migration approach
Schema setup and mapping plan
Before extracting any data, we review the Open Dental database schema for the target practice and generate a Nutshell custom field creation plan. We create all required custom fields on the Nutshell Person entity — procedure fields, insurance fields, recall fields, PatField equivalents — and define the mapping rules for guarantor-to-parent-contact relationships. This schema plan is delivered as a checklist for your Nutshell admin to approve before we proceed to extraction. Typical setup involves 15–30 custom fields depending on Open Dental PatField count and insurance complexity.
Data extraction with API pagination and rate limiting
We connect to the Open Dental REST API using the practice's developer and customer keys. Extraction runs in paginated batches of 100 records per request, respecting the one-request-per-five-second rate limit under ApiReadAll permission. We extract patients first (with PatNum, guarantor, demographics), then appointments, procedure logs, insurance plans, and PatFields. Family relationships are resolved by fetching guarantor PatNum values and matching them to parent patient records. Each extraction run produces a staged CSV with source IDs preserved for linkage during import.
Sample migration with field-level verification
A representative slice — typically 100–300 patient records spanning several families, with appointments and insurance — is imported into Nutshell as a test run. We verify that guarantor relationships map correctly, custom fields populate with the right values, appointment history appears as activities on the correct Person record, and insurance data lands in the intended custom fields. You review the test set in Nutshell before we commit to the full migration. Any mapping corrections are applied to the import configuration before the full run.
Full migration with delta pickup window
The full patient record set is imported into Nutshell using the verified mapping configuration. A delta-pickup window of 24–48 hours runs concurrently with the import, capturing any new patients, appointments, or record edits that occur in Open Dental during the cutover. All imported records are reconciled against the source record count to confirm zero loss. After the delta window closes, we run a final de-duplication check using the Source_System_ID__c field and generate a migration report showing record counts by object, any records that failed import, and the reason for each failure.
Post-migration handoff and rebuild reference export
We deliver the completed migration report, a full export of Open Dental workflow definitions and recall schedules in a structured format, and a field-mapping reference document showing every Open Dental table column and its Nutshell destination. Your team uses these exports to rebuild Open Dental recall automations in Nutshell's task automation system. FlitStack AI retains no data from your migration; all source files are deleted after the handoff confirmation. One-click rollback to the pre-migration state is available for 48 hours after go-live if reconciliation reveals unexpected gaps.
Platform deep dives
Open Dental
Source
Strengths
Weaknesses
Nutshell
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 Open Dental and Nutshell.
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
Open Dental: Remote mode: 1,000 elements; Local/Service mode: 10,000 elements; Enterprise tier doubles Remote mode limits.
Data volume sensitivity
Open Dental 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 Open Dental to Nutshell migration scoping. Not seeing yours? Book a call.
Walk through your Open Dental to Nutshell migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave Open Dental
Other ways to arrive at Nutshell
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.