CRM migration
Field-level mapping, validation, and rollback between Dynamics 365 Field Service and Nutshell. We move data and schema; workflows are rebuilt natively in Nutshell.
Dynamics 365 Field Service
Source
Nutshell
Destination
Compatibility
12 of 12
objects map 1:1 between Dynamics 365 Field Service and Nutshell.
Complexity
BStandard
Timeline
24–72 hours
Overview
Microsoft Dynamics 365 Field Service runs on the Dataverse model, storing Work Orders, Bookings, Resources, and schedule data alongside standard CRM objects like Accounts, Contacts, and Opportunities. Nutshell's data model is simpler — Companies, People, Leads, Deals, Activities, Products, and Competitors — with no native work-order or field-service scheduling entity. We map Accounts to Companies, Contacts to People, Opportunities to Deals, and Work Orders to a Deal-plus-custom-field structure that preserves incident type, priority, and status without forcing you into Nutshell's sales-only paradigm. Custom fields from both platforms carry over as Nutshell custom fields on their respective record types. Dynamics automations, Power Automate flows, and Resource Scheduling Optimization rules do not migrate — we export the definitions as rebuild references for your Nutshell admin. The migration runs via Nutshell's JSON-RPC API (impersonation mode) and Dynamics' Dataverse Web API, sequenced so foreign-key dependencies resolve correctly: Accounts before Contacts, then Work Orders mapped after Deals are staged.
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 Dynamics 365 Field Service 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.
Dynamics 365 Field Service
Account
Nutshell
Company
1:1Direct map. Dynamics Accounts map to Nutshell Companies. Account.Name becomes Company.name. The primary address (address1_line1, city, state, postal code, country) maps to the standard Nutshell Company address fields. Any secondary addresses are recorded as Nutshell Notes tagged with address type (e.g., 'Billing', 'Shipping') for reference. This preserves the full address hierarchy while keeping the Company record clean.
Dynamics 365 Field Service
Contact
Nutshell
Person
1:1Direct map. Dynamics Contacts become Nutshell People. All standard person fields (name, email, phone, title, address) map directly. The Contact's primary AccountId resolves to a Company lookup in Nutshell — if the Account is not yet migrated, the Contact is held in a staging queue until the Account is confirmed.
Dynamics 365 Field Service
Lead
Nutshell
Lead
1:1Direct map with a value-mapping note. Dynamics Lead.statuscode and statecode map to Nutshell's Lead status pick-list (New, Working, Dead, Won). Dynamics lead-quality scores or grading fields become a custom Number field on Nutshell Leads. Dynamics Lead.industry maps to a custom pick-list if that data is tracked.
Dynamics 365 Field Service
Opportunity
Nutshell
Deal
1:1Direct map. Dynamics Opportunities map to Nutshell Deals. opportunity.amount becomes deal.value, close date maps to the Deal close date, and OwnerId resolves by email to the Nutshell User. The Dynamics salesstage (statecode/statuscode) maps to Nutshell's pipeline stage pick-list per pipeline.
Dynamics 365 Field Service
Product
Nutshell
Product
1:1Direct map. Dynamics Product records (name, productnumber, defaultuomscheduleid, quantitydecimal, standardprice) map to Nutshell Products. Pricing_unit maps to Nutshell's unit field. Bundle and Option products from Dynamics expand into flat product entries in Nutshell — the bundle relationship is preserved in a custom text field on the Nutshell Product.
Dynamics 365 Field Service
msdyn_workorder
Nutshell
Deal + Custom Fields
1:1Work Orders have no direct Nutshell equivalent. We create a Nutshell Deal per Work Order and add custom fields: Work_Order_ID__c (Dynamics ID for traceability), Incident_Type__c, Service_Territory__c, Priority__c, and Actual_Duration__c. The Deal name derives from the Work Order subject or the related Account + incident reference. This preserves Work Order data in a Nutshell-native format without forcing it into a non-contextual Notes field.
Dynamics 365 Field Service
msdyn_bookableresource
Nutshell
Person + Custom Fields
1:1Dynamics Resources (technicians, crews, facilities) map to Nutshell People with a custom Resource_Type__c field set to 'Bookable Resource'. Resource traits, skills, and organizational unit are captured as custom multi-select or text fields on the Person record. Resource-specific constraints (like start/end locations) cannot map to Nutshell's simpler schema and are exported as a reference CSV for the customer's FSM tooling decision.
Dynamics 365 Field Service
msdyn_workorderincident
Nutshell
Note (on related Deal)
1:1Work Order Incidents (the line-item problems being resolved) map to Notes attached to the corresponding Nutshell Deal. Each incident's description, product, and service task lines are concatenated into a Note with a prefix tag '[Work Order Incident]' so the original data is searchable post-migration.
Dynamics 365 Field Service
Activity (Task, Email, PhoneCall, Appointment)
Nutshell
Activity
1:1Direct map across activity types. Dynamics Tasks, Emails, Phone Calls, and Appointments map to Nutshell Activities with original timestamps, owners, and subject lines preserved. The activity's regardingobjectid resolves to the mapped Nutshell record (Company, Person, or Deal). Email body content maps to the Nutshell Activity description field.
Dynamics 365 Field Service
msdyn_customfield (any entity)
Nutshell
Custom Field (same entity)
1:1Any Dynamics custom attribute on Account, Contact, Lead, Opportunity, or Work Order that has no direct Nutshell equivalent is created as a Nutshell custom field on the target entity. We create the field before the migration run, preserving data type (text, number, date, dropdown). Pick-list values from Dynamics map as options in the Nutshell custom field.
Dynamics 365 Field Service
Competitor
Nutshell
Competitor
1:1Direct map. Dynamics Competitor entity maps 1:1 to Nutshell Competitors, transferring name, website URL, and description fields. Additional attributes such as primary contact or address stored on the Dynamics record become custom fields on the Nutshell Competitor. When a Dynamics Opportunity references a Competitor, the relationship is recreated as a Competitor association on the corresponding Nutshell Deal, preserving competitive context for the sales pipeline.
Dynamics 365 Field Service
msdyn_fieldservicecoveragetemplate / Territory
Nutshell
Tag
1:1Dynamics territory and coverage templates have no Nutshell equivalent, so territory information is saved as tags on the related Account/Company record. Each territory name becomes a Nutshell Tag, and the associated region and priority are stored in a CSV export. The export includes fields such as territory ID, region, service area, and scheduling constraints, giving the customer's FSM rebuild team a reference for configuring territories in their new scheduling system.
| Dynamics 365 Field Service | Nutshell | Compatibility | |
|---|---|---|---|
| Account | Company1:1 | Fully supported | |
| Contact | Person1:1 | Fully supported | |
| Lead | Lead1:1 | Fully supported | |
| Opportunity | Deal1:1 | Fully supported | |
| Product | Product1:1 | Fully supported | |
| msdyn_workorder | Deal + Custom Fields1:1 | Fully supported | |
| msdyn_bookableresource | Person + Custom Fields1:1 | Fully supported | |
| msdyn_workorderincident | Note (on related Deal)1:1 | Fully supported | |
| Activity (Task, Email, PhoneCall, Appointment) | Activity1:1 | Fully supported | |
| msdyn_customfield (any entity) | Custom Field (same entity)1:1 | Fully supported | |
| Competitor | Competitor1:1 | Fully supported | |
| msdyn_fieldservicecoveragetemplate / Territory | Tag1: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.
Dynamics 365 Field Service gotchas
Dataverse service protection API limits throttle bulk exports
Offline profile FetchXML tuning is source-environment-specific
Project Operations integration has bidirectional sync limitations
Copilot add-on credits do not migrate and reset at zero
File attachments stored in SharePoint require separate file migration
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
Discovery audit and field-level schema inventory
We pull the full metadata from your Dynamics 365 instance via the Dataverse Web API — all entities, custom attributes, pick-list option sets, and relationship definitions. We simultaneously inventory your Nutshell account's existing custom fields, pipeline configuration, and user list. The audit output is a gap analysis: which Dynamics fields have direct Nutshell equivalents, which need custom fields created in Nutshell before migration, and which (like RSO scheduling constraints) have no Nutshell home and will be exported as reference artifacts. This step typically runs 1–2 days and produces the migration plan your team reviews before we touch production data.
User and owner resolution by email
Dynamics stores owner assignments as systemuserid GUIDs. Nutshell identifies users by email address. We run an email-resolution pass: every Dynamics owner email is matched against your Nutshell user list. Matched owners map directly. Unmatched owners are flagged in a pre-flight report — your team either creates the corresponding Nutshell user or assigns those records to a fallback owner before migration begins. Work Order resources (msdyn_bookableresource) are resolved the same way, with unmatched resources surfaced as People records tagged with a Resource_Type__c custom field.
Work Order transformation and staging
Because Nutshell has no work-order entity, we pre-compute the Work Order-to-Deal transformation before any records are written. For each msdyn_workorder record, we generate a corresponding Nutshell Deal payload with the prefix '[Work Order]', custom fields for incident type, priority, and service territory, and a source-system ID pointing back to the Dynamics GUID. The Work Order sub-tables (incidents, service tasks, products) are resolved — incidents attach as Notes on the Deal; products link to the Nutshell Product catalog. The staging payload is validated against Nutshell's field type constraints before the migration run commits any data.
Sample migration with field-level diff
A representative slice of 100–300 records migrates first: a mix of Accounts/Companies, Contacts/People, Leads, Opportunities/Deals, Work Orders, and Activities. We generate a field-level diff between the source Dynamics record and the resulting Nutshell record so you can verify that pick-list value mappings are correct, custom fields populated, owner resolution worked, and Deal names derived from Work Orders carry the expected context. You sign off on the sample before the full run commits. This is where we catch mapping gaps before they affect your entire dataset.
Full migration with delta-pickup and one-click rollback
The full record set migrates via the Nutshell JSON-RPC API, batched and paced to respect Nutshell's rate limits. A delta-pickup window of 24–48 hours after the full run captures any Dynamics records modified or created during cutover. Every operation — inserts, updates, skipped records, and errors — is written to an audit log. If reconciliation fails (record count mismatch, field validation error, or data integrity issue), one-click rollback reverts the Nutshell instance to its pre-migration state so you can investigate and re-run without a partial-data problem.
Platform deep dives
Dynamics 365 Field Service
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 Dynamics 365 Field Service 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
Dynamics 365 Field Service: Service protection limits enforced per org; specific numeric thresholds are not publicly documented by Microsoft and vary by workload type.
Data volume sensitivity
Dynamics 365 Field Service 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 Dynamics 365 Field Service to Nutshell migration scoping. Not seeing yours? Book a call.
Walk through your Dynamics 365 Field Service 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 Dynamics 365 Field Service
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.