CRM migration
Field-level mapping, validation, and rollback between Results and Microsoft Dynamics 365 Sales . We move data and schema; workflows are rebuilt natively in Microsoft Dynamics 365 Sales .
Results
Source
Microsoft Dynamics 365 Sales
Destination
Compatibility
8 of 9
objects map 1:1 between Results and Microsoft Dynamics 365 Sales .
Complexity
BStandard
Timeline
2-3 weeks
Overview
Moving from Results to Microsoft Microsoft Dynamics 365 Sales requires upfront field-verification because Results does not publish a public API schema or detailed object model that allows us to plan mapping without direct account access. We scope the migration by connecting to the Results instance or receiving a data export, identifying every custom field, calculated property, pipeline structure, and engagement object before we commit to a migration plan. Microsoft Microsoft Dynamics 365 Sales uses the Dataverse data model with Account-Contact-Opportunity as the core entity hierarchy, where Deals from Results map to Opportunities, Companies map to Accounts, and Contacts map directly. We resolve the relationship chain (Account must exist before Contact, Contact before Opportunity) during import, and we use the Dynamics 365 Bulk API for activity history to avoid CSV-loader timeouts on large engagement volumes. Workflows, automations, and any calculated fields do not migrate; we deliver a written inventory of these for the customer's admin to rebuild in Dynamics or Power Automate.
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
Results platform overview
Scorecard, SWOT, gotchas, and pricing for Results.
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 Results 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.
Results
Contact
Microsoft Dynamics 365 Sales
Contact
1:1Results Contacts map directly to Dynamics 365 Contacts. We extract every standard and custom property on the Contact record and map to typed Dataverse attributes. The primary key lookup on Contact is the email address, used for deduplication during import. Contact requires a parent Account (AccountId) after Account import completes, so we stage Contact import as phase two.
Results
Company
Microsoft Dynamics 365 Sales
Account
1:1Results Companies map to Dynamics 365 Accounts. Company name becomes Account Name, domain becomes Website, and industry codes map to a configured Account.IndustryCode picklist. We run Account import as phase one because Contact and Opportunity both require an AccountId reference before insert.
Results
Deal
Microsoft Dynamics 365 Sales
Opportunity
1:1Results Deals map to Dynamics 365 Opportunities. The deal name becomes Opportunity.Name, deal value becomes Amount, close date becomes EstimatedCloseDate, and pipeline stage maps to a Microsoft Dynamics 365 Sales Process and Stage. If Results uses multiple pipelines, each becomes a separate Record Type on Opportunity.
Results
Pipeline
Microsoft Dynamics 365 Sales
Record Type + Sales Process
lossyResults pipeline definitions (pipeline names, stage values, probabilities) map to Dynamics 365 Record Types and Sales Processes. We configure the Record Type and Sales Process in the destination Dynamics 365 environment before Opportunity import, ensuring stage values are whitelisted per pipeline context.
Results
Activity: Task
Microsoft Dynamics 365 Sales
Task
1:1Results task records (created, completed, assigned) map to Dynamics 365 Task. Subject, Description, Status, Priority, and ActivityDate transfer directly. Owner resolution matches Results owner email to Dynamics 365 User.email.
Results
Activity: Meeting
Microsoft Dynamics 365 Sales
Event
1:1Results meeting records map to Dynamics 365 Event. StartDateTime, EndDateTime, Location, and Subject transfer directly. Attendees create EventRelation records linked to the corresponding Contact or Account in Dynamics.
Results
Activity: Note
Microsoft Dynamics 365 Sales
Note
1:1Results notes map to Dynamics 365 Note (or Annotation) objects. Body text transfers as is. We attach notes to the parent Contact, Account, or Opportunity via the ObjectId lookup field.
Results
Attachment
Microsoft Dynamics 365 Sales
Annotation (File Attachment)
1:1File attachments from Results are extracted and uploaded as Dynamics 365 Annotation records with file content in DocumentBody. We preserve filename, content type, and file size. The RegardingObjectId links the attachment to the corresponding Contact, Account, or Opportunity.
Results
Custom Field
Microsoft Dynamics 365 Sales
Custom Field (Dataverse)
1:1Any custom fields discovered during scoping migrate as custom attributes on the target entity in Dynamics 365. We create the custom attribute via the Dataverse API before migration, matching the field type (string, integer, decimal, picklist, boolean, datetime). Calculated fields in Results do not transfer; we flag them for manual configuration in Dynamics.
| Results | Microsoft Dynamics 365 Sales | Compatibility | |
|---|---|---|---|
| Contact | Contact1:1 | Fully supported | |
| Company | Account1:1 | Fully supported | |
| Deal | Opportunity1:1 | Fully supported | |
| Pipeline | Record Type + Sales Processlossy | Fully supported | |
| Activity: Task | Task1:1 | Fully supported | |
| Activity: Meeting | Event1:1 | Fully supported | |
| Activity: Note | Note1:1 | Fully supported | |
| Attachment | Annotation (File Attachment)1:1 | Fully supported | |
| Custom Field | Custom Field (Dataverse)1: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.
Results gotchas
QuickBooks-linked records have dual sources of truth
Suite is not architected to scale beyond ~15 users / 15K contacts
No documented public REST API
Field Service photos and signatures require separate binary extraction
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 export verification
We request a full data export from Results or connect to the instance via available API access to inventory every object, custom field, pipeline, and engagement type. We verify record counts per object, identify calculated fields, flag any restricted or archived data that should not migrate, and confirm the export format (CSV, JSON, direct API pull). This step produces a written migration scope that both parties sign off on before schema design begins.
Schema design and custom field creation
We design the Dynamics 365 destination schema by mapping each Results object to its Dataverse equivalent, creating custom attributes for any Results custom fields, and configuring Record Types and Sales Processes for each Results pipeline. Schema is deployed to a Dynamics 365 Sandbox environment first for validation. We coordinate with the customer's Dynamics 365 admin to assign the migration service principal the necessary Dataverse privileges (Create, Read, Write, Delete on target entities).
Data profiling and cleansing
We run a data quality assessment on the Results export, identifying duplicate records (matched on email and company name), missing required fields (Account Name, Contact Email), inconsistent date formats, and special character issues. We produce a cleansing report with row-level recommendations. The customer approves which records to de-dupe, archive, or correct before we proceed to import.
Sandbox migration and reconciliation
We run a full migration into the Dynamics 365 Sandbox using production-like data volume. The customer's RevOps lead reviews 25-50 randomly selected records per object against the Results source, validates relationship integrity (Contacts linked to Accounts, Opportunities linked to Contacts), and signs off on mapping accuracy. Any field mapping corrections happen in Sandbox before production migration begins.
Production migration in dependency order
We run production migration in the correct record-dependency sequence: Accounts (from Companies), Contacts (with AccountId resolved), Opportunities (with AccountId and OwnerId resolved), Activities (Tasks, Events, Notes, Attachments via Bulk API), Custom Fields (dataverse attribute insert followed by value migration). Each phase emits a row-count reconciliation report. We freeze Results write access during the final 48-hour delta window to capture any records modified during migration.
Cutover, validation, and automation handoff
We enable Dynamics 365 as the system of record after final validation, deliver the automation inventory document for the customer's admin to rebuild in Power Automate, and provide a one-week hypercare window for reconciliation issues. We do not rebuild workflows, automations, or calculated fields inside the standard migration scope; those are documented for the customer's admin or a separate Power Automate engagement.
Platform deep dives
Results
Source
Strengths
Weaknesses
Microsoft Dynamics 365 Sales
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 2 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 Results and Microsoft Dynamics 365 Sales .
Object compatibility
2 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
Results: Not publicly documented.
Data volume sensitivity
Results 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 Results to Microsoft Dynamics 365 Sales migration scoping. Not seeing yours? Book a call.
Walk through your Results 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 Results
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.