CRM migration
Field-level mapping, validation, and rollback between Nutshell and Microsoft Dynamics 365 Sales . We move data and schema; workflows are rebuilt natively in Microsoft Dynamics 365 Sales .
Nutshell
Source
Microsoft Dynamics 365 Sales
Destination
Compatibility
6 of 8
objects map 1:1 between Nutshell and Microsoft Dynamics 365 Sales .
Complexity
BStandard
Timeline
3-5 weeks
Try the reverse
Overview
Moving from Nutshell to Microsoft Microsoft Dynamics 365 Sales is a structural migration that requires resolving three platform differences before records can import. First, Nutshell's flat People-to-Company hierarchy has no direct Dynamics 365 equivalent because Dynamics 365 requires Contacts to attach to Accounts via a foreign key; we pre-build the Account-Contact relationship graph during extraction so that no Contact lands orphaned. Second, Nutshell has no Opportunity or Deal object, so pipeline stages and deal values stored in Nutshell Pipelines must be mapped to Dynamics 365 Opportunity with a pre-configured Record Type and Sales Process. Third, Nutshell's JSON-RPC API lacks a bulk endpoint, so we implement cursor-based pagination with rate-limit handling to extract large record sets without timeout. We do not migrate email sequences (server-side automation inaccessible via API) or attachments (binary blobs not returned by the API). We deliver a written inventory of Nutshell workflows and sequences for your Dynamics 365 admin to rebuild in Power Automate or Sales Cadences post-migration.
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
Nutshell platform overview
Scorecard, SWOT, gotchas, and pricing for Nutshell.
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.
Source platform guide
Nutshell migration guide
Understand the data you're exporting from Nutshell before mapping it.
Destination checklist
Microsoft Dynamics 365 Sales migration checklist
Pre- and post-cutover tasks for moving onto Microsoft Dynamics 365 Sales .
Source checklist
Nutshell migration checklist
Exit checklist for unwinding your Nutshell 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 Nutshell 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.
Nutshell
People
Microsoft Dynamics 365 Sales
Contact
1:1Nutshell People records map directly to Dynamics 365 Contact. Standard fields (name, email, phone, address) migrate via Dataverse REST API. The critical dependency is that Contacts in Dynamics 365 require an AccountId Lookup to a parent Account; we extract Nutshell People alongside their associated Company during the same API call and resolve the AccountId at insert time. Any Person without a Company in Nutshell is created as a Contact on a placeholder Account or held for reconciliation depending on the customer's business rules.
Nutshell
Company
Microsoft Dynamics 365 Sales
Account
1:1Nutshell Company records map to Dynamics 365 Account. Company domain, address, industry, and custom fields migrate. Account is the parent of Contact in the Dynamics 365 data model, so we insert Accounts before Contacts in the migration sequence. The nut_companies.id field becomes the dedupe key during import to prevent duplicate Accounts.
Nutshell
Lead
Microsoft Dynamics 365 Sales
Lead
1:1Nutshell Lead records map to Dynamics 365 Lead. Leads in Nutshell are separate from People and have their own lifecycle, custom fields, and owner assignment. We map Lead Status from Nutshell to Dynamics 365's leadqualitycode and map any lead score or rating custom fields to their Dynamics 365 equivalents. Leads do not require an Account parent until they are qualified and converted.
Nutshell
Pipeline
Microsoft Dynamics 365 Sales
Opportunity + Record Type + Sales Process
1:manyNutshell Pipelines with their stage configurations have no direct single-object equivalent in Dynamics 365. Nutshell pipeline stages map to Dynamics 365 Opportunity StageName values, and each Nutshell Pipeline becomes a Dynamics 365 Record Type on Opportunity with a corresponding Sales Process that whitelists the mapped stage values. Stage probabilities migrate to stageprobability field on OpportunityStage. This is a configuration step that we complete in the destination environment before Opportunity records are imported.
Nutshell
Activity (calls, emails, meetings, tasks)
Microsoft Dynamics 365 Sales
Task, Event, EmailMessage
1:1Nutshell Activity records attached to People or Companies migrate to Dynamics 365 Task (calls, emails, tasks) and Event (meetings). Email activities migrate as EmailMessage records linked to Tasks on the activity timeline. Call disposition, duration, and recording URL (if accessible) migrate to custom Task fields. ActivityDate preserves the original Nutshell timestamp for timeline ordering. We extract Activities via paginated API reads and insert them in batches using Dataverse batch operations with a maximum of 100 records per request.
Nutshell
Custom Field (People, Company, Lead)
Microsoft Dynamics 365 Sales
Custom Field
1:1Nutshell custom field definitions for People, Company, and Lead are enumerated during discovery and recreated in Dynamics 365 with equivalent field types. Text fields map to Text, number fields to Integer or Decimal, date fields to DateTime, and checkbox fields to Two Option. Picklist fields in Nutshell map to Option Sets in Dynamics 365. Custom fields are deployed to the destination environment before any data import begins so that the schema is ready for incoming records.
Nutshell
Tag
Microsoft Dynamics 365 Sales
Multi-Select Picklist or Topic
lossyNutshell tags on People and Companies migrate to Dynamics 365 as either multi-select picklist fields on Contact and Account, or as Topics with TopicAssignment records. The customer selects the strategy during scoping. Tag hierarchies (if configured in Nutshell) are flattened during transfer. Tags used for lead scoring or segmentation are mapped to custom fields or Dynamics 365 Insights premium fields depending on the destination tier.
Nutshell
User (Owner)
Microsoft Dynamics 365 Sales
User
1:1Nutshell Users serve as record owners and appear in activity logs. We map Nutshell users to Dynamics 365 User records by email match. Users without a matching Dynamics 365 User go to a reconciliation queue for the customer's admin to provision before record import resumes. The nut_users.id maps to systemuserid in Dynamics 365.
| Nutshell | Microsoft Dynamics 365 Sales | Compatibility | |
|---|---|---|---|
| People | Contact1:1 | Fully supported | |
| Company | Account1:1 | Fully supported | |
| Lead | Lead1:1 | Fully supported | |
| Pipeline | Opportunity + Record Type + Sales Process1:many | Fully supported | |
| Activity (calls, emails, meetings, tasks) | Task, Event, EmailMessage1:1 | Fully supported | |
| Custom Field (People, Company, Lead) | Custom Field1:1 | Fully supported | |
| Tag | Multi-Select Picklist or Topiclossy | Fully supported | |
| User (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.
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
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
Discovery and schema baseline
We audit the source Nutshell account across plan tier, People count, Company count, Lead count, Activity volume per object, custom field definitions per object, pipeline definitions (stage names, order, probabilities), active tag taxonomy, and active email sequences. We also document the Nutshell-to-Dynamics 365 edition fit: Sales Professional ($65/user) covers single-pipeline migrations without complex custom objects; Enterprise ($105/user) is needed for multi-pipeline Record Type management, advanced territory forecasting, or integration with Finance or Supply Chain modules. The discovery output is a written migration scope, a data volume estimate, and a Dynamics 365 edition recommendation.
Destination schema design and pre-configuration
We design the Dynamics 365 schema before any data extraction. This includes provisioning custom fields (mapped from Nutshell custom field definitions), creating Option Sets for picklist fields, pre-configuring Account and Contact field-level security, designing the Record Type and Sales Process structure for Opportunity based on the Nutshell pipeline inventory, and creating the Activity timeline configuration. Dynamics 365 schema is deployed to a Sandbox environment first for validation against real Nutshell sample data. Account-Contact relationship rules are established at this stage to prevent orphaned Contact imports.
Paginated extraction from Nutshell JSON-RPC API
We extract Nutshell data using cursor-based pagination with configurable batch sizes. People and their associated Company references are extracted together in a joined pass to build the relationship graph. Leads, Activities, Tags, and custom field data are extracted in parallel passes. We implement retry logic with exponential backoff on rate-limit responses (HTTP 429). Extraction produces a staging dataset organized by object with source IDs preserved for reconciliation. The extraction phase typically runs over one to three days depending on total record volume.
Sandbox migration and reconciliation
We run a full migration into the Dynamics 365 Sandbox environment using production-like data volumes from the Nutshell staging dataset. The customer's RevOps lead reconciles record counts (Accounts in, Contacts in, Leads in, Activities in), spot-checks 20-40 records against the Nutshell source for field accuracy, and validates that the Account-Contact relationship graph resolved correctly with no orphaned Contacts. Any mapping corrections, missing custom fields, or schema gaps are fixed in Sandbox before production migration begins.
Owner reconciliation and User provisioning
We extract every distinct Nutshell User referenced on People, Company, Lead, and Activity records and match by email against the Dynamics 365 destination org's User table. Any Nutshell User without a matching Dynamics 365 User goes to a reconciliation queue. The customer's Dynamics 365 admin provisions missing Users and assigns them the appropriate Security Roles before production migration begins. OwnerId references on Opportunities and Activities require a valid systemuserid, so this step is a hard prerequisite for the production phase.
Production migration in dependency order
We run production migration in record-dependency order: Accounts (from Nutshell Companies), Contacts (with AccountId resolved from the People-Company relationship graph), Leads, Opportunities (with Record Type, Sales Process, StageName, AccountId, and OwnerId resolved from Nutshell Pipeline data), Activities (Tasks, Events, EmailMessages via Dataverse batch API), and Tags (as multi-select picklist or Topics). Each phase emits a row-count reconciliation report before the next phase begins. The Nutshell source account remains live during migration so that no new records are created during the cutover window.
Cutover, validation, and automation rebuild handoff
We freeze writes to Nutshell during cutover, run a final delta migration of any records modified during the migration window, then switch the system of record to Microsoft Dynamics 365 Sales . We deliver the automation inventory document listing all Nutshell sequences and workflows with trigger conditions and recommended Power Automate or Sales Cadence equivalents. We support a one-week hypercare window for reconciliation issues. We do not rebuild Nutshell sequences or workflows as Power Automate flows inside the migration scope; that is a separate engagement.
Platform deep dives
Nutshell
Source
Strengths
Weaknesses
Microsoft Dynamics 365 Sales
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 Nutshell and Microsoft Dynamics 365 Sales .
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
Nutshell: Not publicly documented in summary form..
Data volume sensitivity
Nutshell 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 Nutshell to Microsoft Dynamics 365 Sales migration scoping. Not seeing yours? Book a call.
Walk through your Nutshell 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 Nutshell
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.