CRM migration
Field-level mapping, validation, and rollback between Sensei Cloud and Microsoft Dynamics 365 Sales . We move data and schema; workflows are rebuilt natively in Microsoft Dynamics 365 Sales .
Sensei Cloud
Source
Microsoft Dynamics 365 Sales
Destination
Compatibility
10 of 11
objects map 1:1 between Sensei Cloud and Microsoft Dynamics 365 Sales .
Complexity
BStandard
Timeline
2–4 weeks
Overview
Sensei Cloud is a dental-practice-management platform built around patients, providers, appointments, treatment plans, insurance carriers, and billing claims. Microsoft Dynamics 365 Sales is a general-purpose sales CRM built around accounts, contacts, leads, opportunities, and activities. The two platforms share almost no native object equivalence, which makes this one of the more complex CRM-adjacent migrations in our catalog. We extract records from Sensei Cloud via the platform's REST API and structured exports, then load them into Dynamics 365 Sales through the Dataverse Web API. Patient demographics, contact information, and insurance records land in Contact and custom fields. Provider information maps to Contact records with a custom Role field. Appointment history, treatment plans, and clinical notes migrate as Activity records or custom Treatment Plan entities. Billing ledger entries migrate as custom Invoice or Payment records. The migration does not move Sensei Cloud workflows, fee schedules, clinical imaging files (those re-upload to SharePoint or Dynamics 365's native file storage), or insurance eligibility rules — those are configuration artifacts that must be rebuilt in Dynamics 365 or referenced from exported documentation. FlitStack AI sequences the load so parent records (practices as Accounts, providers as Contacts) exist before child records (patients, appointments) to preserve referential integrity through the Dataverse API.
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
Sensei Cloud platform overview
Scorecard, SWOT, gotchas, and pricing for Sensei Cloud.
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 Sensei Cloud 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.
Sensei Cloud
Patient
Microsoft Dynamics 365 Sales
Contact
1:1Patient first name, last name, date of birth, address, phone, and email map directly to Dynamics 365 Contact fields. The patient's primary dental practice is stored as AccountId lookup. Insurance subscriber relationship is preserved as a custom field or through the Contact's Related Contacts mechanism.
Sensei Cloud
Patient
Microsoft Dynamics 365 Sales
Account
many:1Sensei Cloud does not have a separate Account entity — the practice or DSO name lives on the Patient record. We split this into Dynamics 365 Account (the practice/DSO name) and Contact (the individual patient), linking them via AccountId. Multi-location practices create a parent Account hierarchy in Dynamics.
Sensei Cloud
Provider / Dentist
Microsoft Dynamics 365 Sales
Contact
1:1Provider records (dentist, hygienist, specialist) from Sensei Cloud map to Dynamics 365 Contact records tagged with a custom Provider_Role__c pick-list field (e.g., General Dentist, Oral Surgeon, Orthodontist). Provider NPI numbers map to a custom NPI__c field. Active/inactive status maps to a custom Provider_Status__c field.
Sensei Cloud
Appointment
Microsoft Dynamics 365 Sales
Custom Appointment Table (Appointment__c) or Bookable Resource Booking
1:1Sensei Cloud appointment records (date, time, provider, procedure codes, treatment room, status) have no native Dynamics 365 equivalent. We create a custom Appointment__c table in Dataverse keyed to the Contact (patient) and the Provider Contact. CDT procedure codes map to a custom Procedure_Code__c pick-list. Appointment status (Confirmed, Completed, No-Show, Cancelled) maps to a custom Status__c field.
Sensei Cloud
Treatment Plan
Microsoft Dynamics 365 Sales
Custom Treatment_Plan__c Table
1:1Treatment plans in Sensei Cloud include proposed procedures, tooth numbers, surface annotations, fees, and insurance estimates. We create a custom Treatment_Plan__c table linked to Contact (patient), storing procedure descriptions, CDT codes, estimated fees, and the planning provider as a Contact lookup. Historical plans migrate as completed records with a Completed_Date__c timestamp.
Sensei Cloud
Clinical Note / Per-Tooth Charting
Microsoft Dynamics 365 Sales
Custom Clinical_Note__c Table
1:1Clinical notes and per-tooth charting data (surfaces treated, materials used, periodontal readings) have no Dynamics 365 equivalent. We create a custom Clinical_Note__c table linked to Contact and Appointment__c, storing note content as a long-text field, tooth numbers as a text field, and periodontal data as structured custom fields. Original clinical timestamps are preserved.
Sensei Cloud
Insurance Carrier
Microsoft Dynamics 365 Sales
Account
1:1Sensei Cloud insurance carrier records (payer name, payer ID, address) map to Dynamics 365 Account records with a custom Insurance_Carrier__c = true flag. Subscriber ID, group number, and subscriber relationship (Self, Spouse, Dependent) are custom fields on the patient Contact record. Insurance-eligible procedure lists are preserved as custom pick-list values on the Treatment_Plan__c procedure field.
Sensei Cloud
Billing Ledger / Claim
Microsoft Dynamics 365 Sales
Custom Billing_Ledger__c Table
1:1Sensei Cloud ledger entries (charge, payment, adjustment, insurance payment, write-off, claim status) map to a custom Billing_Ledger__c table linked to Contact and Treatment_Plan__c. Entry type maps to a pick-list (Charge, Payment, Adjustment, Insurance Payment, Write-off). Claim submission status maps to a custom Claim_Status__c field. Original posting dates are preserved as custom datetime fields.
Sensei Cloud
Referral Source / Marketing Source
Microsoft Dynamics 365 Sales
Custom Referral_Source__c Field on Contact
1:1How the patient found the practice (referral, advertising, organic search, etc.) is stored in Sensei Cloud as a patient property. We migrate this as a custom pick-list field (Referral_Source__c) on Contact. If the referral is a specific dentist or physician, that provider record exists in Dynamics as a Contact with Provider_Role__c = Referral.
Sensei Cloud
Document / Attachment (clinical images, signed forms)
Microsoft Dynamics 365 Sales
SharePoint (via Dynamics 365 integrated document management) or Note / Attachment on Contact
1:1Sensei Cloud file attachments (PDF treatment plans, signed consent forms, imaging exports) are downloaded and re-uploaded to the SharePoint document library integrated with the Dynamics 365 Contact record. Smaller attachments (signed forms as PDFs) can attach directly to the Contact record via Dynamics Notes and Attachments. File size limits from the Dynamics/SharePoint integration apply.
Sensei Cloud
Insurance Eligibility Response
Microsoft Dynamics 365 Sales
Custom Insurance_Eligibility__c Table
1:1Eligibility check results—including coverage percentage, annual maximum remaining, deductible met, and applicable waiting periods—are stored as custom Insurance_Eligibility__c table records in Dataverse, linked to the patient Contact and to the Insurance Carrier Account. The eligibility check date, response timestamp, and payer response code are preserved as custom datetime and text fields for audit continuity and downstream reconciliation.
| Sensei Cloud | Microsoft Dynamics 365 Sales | Compatibility | |
|---|---|---|---|
| Patient | Contact1:1 | Fully supported | |
| Patient | Accountmany:1 | Fully supported | |
| Provider / Dentist | Contact1:1 | Fully supported | |
| Appointment | Custom Appointment Table (Appointment__c) or Bookable Resource Booking1:1 | Fully supported | |
| Treatment Plan | Custom Treatment_Plan__c Table1:1 | Fully supported | |
| Clinical Note / Per-Tooth Charting | Custom Clinical_Note__c Table1:1 | Fully supported | |
| Insurance Carrier | Account1:1 | Fully supported | |
| Billing Ledger / Claim | Custom Billing_Ledger__c Table1:1 | Fully supported | |
| Referral Source / Marketing Source | Custom Referral_Source__c Field on Contact1:1 | Fully supported | |
| Document / Attachment (clinical images, signed forms) | SharePoint (via Dynamics 365 integrated document management) or Note / Attachment on Contact1:1 | Fully supported | |
| Insurance Eligibility Response | Custom Insurance_Eligibility__c Table1: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.
Sensei Cloud gotchas
Legacy conversion leaves messy patient and chart duplicates
Chrome-only browser support affects migration workstation compatibility
Imaging data requires separate Carestream-format conversion pipeline
Billing ledger errors cannot be corrected post-creation
Provider assignments sometimes stored as text rather than foreign key
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
Extract Sensei Cloud data via REST API and structured exports
FlitStack AI connects to Sensei Cloud using the API credentials provided during onboarding. We extract patient demographics, provider records, appointment history, treatment plans, insurance carrier data, and billing ledger entries in sequence. For clinical notes and imaging metadata, we use Sensei Cloud's export tools and the imaging download interface. We generate a pre-migration data inventory showing record counts per object so both teams can confirm scope before schema setup begins.
Stand up Dynamics 365 custom tables and field-level security
Before any records move, we create the custom Dataverse tables required for this migration: Appointment__c, Treatment_Plan__c, Clinical_Note__c, Billing_Ledger__c, Insurance_Eligibility__c, and associated custom fields on Contact and Account. We configure Field-Level Security on sensitive fields (SSN_Last_Four__c) so only authorized roles can read them. If the destination is Sales Professional, we validate that total custom-table count stays within the 15-table limit and flag any overage to the customer before the migration plan is finalized.
Load Accounts and Contacts first, then providers, then patients
Dynamics 365 requires Accounts to exist before Contacts can reference them via AccountId. We load insurance carrier Accounts first (flagged Insurance_Carrier__c = true), then provider Contacts with their Provider_Role__c and NPI__c values, then patient Contacts linked to the appropriate Account. Owner resolution maps the Sensei Cloud provider or admin user email to a Dynamics 365 user by email match — unmatched owners are flagged before migration commits so the customer can assign a fallback owner or provision the user in Dynamics 365 first.
Migrate appointments, treatment plans, and clinical notes with parent-record integrity
With Accounts and Contacts in place, we load Appointment__c records linking each appointment to the patient Contact and the provider Contact by their Source_System_ID__c lookups. Treatment plans follow, linked to Contact and Appointment__c. Clinical notes and per-tooth charting records complete the clinical picture. All records carry their original creation and modification timestamps as custom datetime fields so reporting continuity is preserved from day one in Dynamics 365.
Migrate billing ledger and insurance eligibility data
Billing ledger entries and insurance eligibility responses are loaded last, once all patient Contacts are confirmed in Dynamics 365. Claim status transitions are preserved as a time-ordered audit trail on each Billing_Ledger__c record. We run a field-level reconciliation comparing total ledger charges, payments, and adjustments in Sensei Cloud against the sum of migrated Billing_Ledger__c amounts — any discrepancy above 0.01% triggers a re-run of the billing migration before go-live.
Run delta pickup, re-host imaging in SharePoint, and deliver final audit log
After the full migration commits, we open a delta window (24–48 hours) capturing any records created or modified in Sensei Cloud during the cutover. Imaging files are exported from Sensei Cloud Imaging and uploaded to the SharePoint document library, with folder links mapped back to each patient Contact record. FlitStack AI delivers a complete audit log of all insert, update, and link operations. One-click rollback reverts the Dynamics 365 environment to its pre-migration state if reconciliation uncovers data integrity issues.
Platform deep dives
Sensei Cloud
Source
Strengths
Weaknesses
Microsoft Dynamics 365 Sales
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. All 8 core objects map 1:1 between Sensei Cloud and Microsoft Dynamics 365 Sales .
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Sensei Cloud and Microsoft Dynamics 365 Sales .
Object compatibility
All 8 core objects map 1:1 between Sensei Cloud 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
Sensei Cloud: Not publicly documented.
Data volume sensitivity
Sensei Cloud 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 Sensei Cloud to Microsoft Dynamics 365 Sales migration scoping. Not seeing yours? Book a call.
Walk through your Sensei Cloud 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 Sensei Cloud
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.