CRM migration
Field-level mapping, validation, and rollback between Microsoft Dynamics 365 Sales and Nutshell. We move data and schema; workflows are rebuilt natively in Nutshell.
Microsoft Dynamics 365 Sales
Source
Nutshell
Destination
Compatibility
7 of 9
objects map 1:1 between Microsoft Dynamics 365 Sales and Nutshell.
Complexity
BStandard
Timeline
2-4 weeks
Try the reverse
Overview
Moving from Microsoft Dynamics 365 Sales to Nutshell is a structural simplification. Dynamics 365 uses a normalized entity model with separate Account, Contact, Opportunity, Quote, Order, and Invoice objects on the Dataverse Web API; Nutshell collapses most of this into a Company-Person-Deal model where People are embedded in Companies and Deals replace Opportunities. We resolve that entity reframing during scoping, extract via the Dataverse Web API, and load through Nutshell's REST API. We flag territory hierarchies (which have no Nutshell equivalent), commercial document chains (Quotes, Orders, Invoices), and Power Automate workflows as requiring manual rebuild post-migration. The mandatory implementation partner cost that inflates Dynamics 365 for SMB teams is eliminated by switching to Nutshell's self-serve setup, and we migrate the data layer so the admin rebuild is the only remaining work after cutover.
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
Microsoft Dynamics 365 Sales platform overview
Scorecard, SWOT, gotchas, and pricing for Microsoft Dynamics 365 Sales .
Destination platform
Nutshell platform overview
Scorecard, SWOT, gotchas, and pricing for Nutshell.
Data migration guide
The complete Nutshell migration guide
Data model, import mechanisms, field mapping strategy, pitfalls, and cutover — by the engineers running it.
Source platform guide
Microsoft Dynamics 365 Sales migration guide
Understand the data you're exporting from Microsoft Dynamics 365 Sales before mapping it.
Destination checklist
Nutshell migration checklist
Pre- and post-cutover tasks for moving onto Nutshell.
Source checklist
Microsoft Dynamics 365 Sales migration checklist
Exit checklist for unwinding your Microsoft Dynamics 365 Sales setup cleanly.
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
Each row shows how a Microsoft Dynamics 365 Sales 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.
Microsoft Dynamics 365 Sales
Account
Nutshell
Company
1:1Dynamics Accounts map to Nutshell Companies. The Account Name becomes the Company name, and the primary Address block migrates to the Company address fields. Industry, Annual Revenue, Number of Employees, Website, and any custom fields on Account migrate to corresponding Nutshell Company custom fields. The Account lookup on Dynamics Contact is resolved so that each migrated Person record is nested under the correct Company at migration time.
Microsoft Dynamics 365 Sales
Contact
Nutshell
Person (within Company)
1:1Dynamics Contacts map to Nutshell People records embedded within Companies. We resolve the parent Company reference from the Account lookup and nest the Person under the migrated Company at import time. Email, Phone, Title, Department, and Lifecycle Stage fields map to Nutshell Person fields or custom fields. Any Contact ownership in Dynamics maps to the corresponding migrated User in Nutshell.
Microsoft Dynamics 365 Sales
Lead
Nutshell
Lead
1:1Dynamics Leads map directly to Nutshell Leads with a 1:1 field mapping. Lead Status, Lead Source, and any scoring fields migrate to Nutshell Lead fields or custom fields. The Lifecycle Stage property from Dynamics (if populated on a Lead) is preserved as a custom text field in Nutshell for audit and segmentation. Dynamics Lead scoring values are flagged as notes for rebuilding in Nutshell's automation layer post-migration.
Microsoft Dynamics 365 Sales
Opportunity
Nutshell
Deal
1:1Dynamics Opportunities map to Nutshell Deals. The Opportunity Name becomes the Deal name, Estimated Close Date maps to Nutshell close date, and Amount maps to Deal value. The pipeline stage from Dynamics maps to the Nutshell pipeline stage; we define the stage mapping during scoping so stage names are transliterated rather than copied verbatim. Probability percentage, loss reason, and close date migrate as custom fields in Nutshell since Nutshell Deals do not natively track probability or loss reason as separate fields.
Microsoft Dynamics 365 Sales
Quote, Order, and Invoice
Nutshell
Deal with Note attachment
lossyDynamics Quotes, Orders, and Invoices have no direct Nutshell equivalent. We convert each Quote, Order, and Invoice to a Note attached to the parent Deal and embed the document content as structured text including line items, quantities, unit prices, and totals. The commercial chain relationship (Quote converts to Order, Order invoices out) is preserved as linked Notes rather than separate object records. Customers who need structured quoting after migration should configure Nutshell's built-in quoting feature or evaluate a third-party quoting integration.
Microsoft Dynamics 365 Sales
Activity (Task, Email, Phone Call, Appointment)
Nutshell
Note
1:1Dynamics Tasks, Emails, Phone Calls, and Appointments map to Nutshell Notes. We preserve the activity type as a prefix in the Note subject, the original timestamp, the owner, and the full body content. The rich activity timeline that Dynamics provides per record is flattened into a Note in Nutshell, which is the closest structural equivalent. Call disposition, duration, and recording links are embedded in the Note body. We flag this transformation during scoping so the customer understands that the activity timeline will display differently in Nutshell.
Microsoft Dynamics 365 Sales
Annotation (Note)
Nutshell
Note
1:1Dynamics Annotations map directly to Nutshell Notes. The annotation body, created-on timestamp, and modified-on timestamp migrate as-is. Attachments stored as SharePoint document locations or Dataverse blob storage are downloaded and reattached to the corresponding Note in Nutshell. SharePoint file paths are converted to Nutshell note attachments in the migration job.
Microsoft Dynamics 365 Sales
Product and Price List
Nutshell
Product (reference only)
lossyDynamics Products and Price Lists have no native Nutshell equivalent object. We create Nutshell Product records as a reference table with the product name and SKU stored in custom fields, and we attach pricing information from the Price List as a Note on the Product record. Customers who need live pricing integration after migration should configure a product catalog within Nutshell or use a third-party CPQ tool. We deliver a product catalog mapping document at migration close.
Microsoft Dynamics 365 Sales
User and Owner
Nutshell
User
1:1Dynamics Users map to Nutshell Users by email match. Active Users in Dynamics migrate as active Nutshell Users; inactive Users are flagged for the customer admin to review and either provision or archive in Nutshell. Dynamics Owner-based record assignments map to Nutshell User assignments on Company, Person, Lead, and Deal records. Role-based security, Business Units, and Teams from Dynamics have no Nutshell equivalent and are not migrated; the customer's admin reviews record ownership after migration and reassigns as needed.
| Microsoft Dynamics 365 Sales | Nutshell | Compatibility | |
|---|---|---|---|
| Account | Company1:1 | Fully supported | |
| Contact | Person (within Company)1:1 | Fully supported | |
| Lead | Lead1:1 | Fully supported | |
| Opportunity | Deal1:1 | Fully supported | |
| Quote, Order, and Invoice | Deal with Note attachmentlossy | Fully supported | |
| Activity (Task, Email, Phone Call, Appointment) | Note1:1 | Fully supported | |
| Annotation (Note) | Note1:1 | Fully supported | |
| Product and Price List | Product (reference only)lossy | Fully supported | |
| User and Owner | User1: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.
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
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 and source audit
We extract the full Dynamics 365 entity inventory via the Dataverse Web API, pulling Accounts, Contacts, Leads, Opportunities, Activities, Annotations, Products, and any custom tables. We count record volumes per entity, audit the custom field list against the Professional tier's 15-table ceiling if applicable, flag inactive owner IDs, and identify territory data in Account or Opportunity records. The discovery output is a written scoping document with entity counts, custom field inventory, and a flag for any schema simplification required before migration.
Field mapping design and Nutshell custom field creation
We design the field-level mapping between each Dynamics entity and its Nutshell equivalent. We identify fields that have no Nutshell equivalent (probability, loss reason, territories, commercial document chain) and document the custom field or Note-based replacement strategy for each. We then coordinate with the customer Nutshell admin to create all required custom fields in the Nutshell UI before the migration job runs. Any field that cannot be created in time is flagged and deferred to the post-migration staging window.
Owner and user reconciliation
We extract all distinct Owner IDs referenced on Accounts, Contacts, Leads, Opportunities, Activities, and Annotations and match them by email against the Nutshell destination account's user list. Any Owner without a matching Nutshell User is held in a reconciliation queue. The customer provisions missing Nutshell Users for active Dynamics users and flags inactive Dynamics users for archive or placeholder assignment in Nutshell. Migration cannot proceed past this step because Nutshell requires a valid owner reference on record insert.
Staged data extraction from Dynamics
We extract Dynamics data in dependency order using the Dataverse Web API with batched requests and configurable concurrency limits to stay within Power Platform request allocations. For large migrations, we run extraction in off-peak hours and use Dataverse bulk export where available. The extraction produces staged JSON or CSV files per entity, each tagged with the source record ID, created-on and modified-on timestamps, and owner email for reconciliation at the destination.
Migration load into Nutshell
We load data into Nutshell in record-dependency order: Companies first (as the parent for People), then People nested under Companies, then Leads, Deals with stage mapping applied, Products as reference records, and Notes converted from Dynamics Activities and Annotations. We load through Nutshell's REST API with retry logic and batch chunking. Each phase emits a row-count reconciliation report comparing source record count to destination record count before the next phase begins.
Validation, cutover, and automation inventory delivery
We validate final record counts in Nutshell, spot-check 30-50 records per entity against the Dynamics source for field-level accuracy, and check for duplicate companies or people created during import. We deliver the full automation inventory document listing every Power Automate flow, business rule, and Dynamics-specific workflow requiring rebuild in Nutshell, with a recommended Nutshell automation approach for each. We do not rebuild Dynamics workflows as Nutshell automations within the migration scope. We support a one-week hypercare window for reconciliation issues raised during the first week of Nutshell production use.
Platform deep dives
Microsoft Dynamics 365 Sales
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 Microsoft Dynamics 365 Sales 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
Microsoft Dynamics 365 Sales : Per-user and per-environment request limits enforced across Power Platform; exact limits vary by license tier and environment capacity.
Data volume sensitivity
Microsoft Dynamics 365 Sales 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 Microsoft Dynamics 365 Sales to Nutshell migration scoping. Not seeing yours? Book a call.
Walk through your Microsoft Dynamics 365 Sales 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 Microsoft Dynamics 365 Sales
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.