CRM migration

Migrate from Dynamics 365 Marketing to Microsoft Dynamics 365 Sales

Field-level mapping, validation, and rollback between Dynamics 365 Marketing and Microsoft Dynamics 365 Sales . We move data and schema; workflows are rebuilt natively in Microsoft Dynamics 365 Sales .

Dynamics 365 Marketing logo

Dynamics 365 Marketing

Source

Microsoft Dynamics 365 Sales

Destination

Microsoft Dynamics 365 Sales  logo

Compatibility

100%

11 of 11

objects map 1:1 between Dynamics 365 Marketing and Microsoft Dynamics 365 Sales .

Complexity

BStandard

Timeline

4-8 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Migrating from Dynamics 365 Marketing to Microsoft Microsoft Dynamics 365 Sales is a within-family Dataverse move that consolidates two separate licensing lines ($1,500/tenant/month for Marketing plus $65/user/month for Sales) into a single Sales tier. Both applications share the same Contact, Account, Lead, and Opportunity schema, so the core CRM records migrate cleanly. The complications are specific to the marketing layer: the Marketing Contact billing flag has no Microsoft Dynamics 365 Sales equivalent, interaction and Journey data live in the msdynmkt_ prefixed tables outside the core CRM schema, and the Configuration Migration Tool cannot transfer high-volume transactional engagement history. We extract standard CRM entities through the Dataverse API, handle the marketing contact flag in a pre-import scoping pass, and deliver a written asset inventory for every Journey definition, Customer Insights segment, and marketing form requiring admin rebuild. Workflows, automations, and Copilot-assisted Journey logic do not migrate as code.

Field-level fidelity

Every standard and custom field arrives verified.

Schema-aware mapping

AI proposes the map; you confirm before any record moves.

Relationships preserved

Parent–child, lookups, and ownership stay linked.

Full activity history

Calls, emails, meetings — with original timestamps.

Attachments & notes

Documents, uploads, and inline notes move with the record.

Why teams make this switch

Two sides of the same decision

Leaving

Dynamics 365 Marketing logo

Dynamics 365 Marketing

What's pushing teams away

  • Users without prior Microsoft stack experience report the interface as complex and overwhelming, with menu navigation described as clunky and feature locations hard to remember across sessions.
  • Performance degrades noticeably when handling large contact databases or running complex Journey logic, leading to slow load times that disrupt marketing team workflows.
  • Licensing costs are prohibitive for small to mid-market teams; the per-tenant Marketing price point starts at $1,500/month before user-level CRM seats are added.
  • Implementation timelines commonly stretch to 6-12 weeks for full deployments, and organizations underestimate the hidden costs of training, integration, and data migration that are not included in licensing quotes.
  • Power Apps and Power Automate are marketed as low-code but require technical resources to extend; business users hit barriers quickly when documentation assumes IT-level familiarity.

Choosing

Microsoft Dynamics 365 Sales  logo

Microsoft Dynamics 365 Sales

What's pulling them in

  • Deep Microsoft 365, Teams, and Outlook integration makes Microsoft Dynamics 365 Sales a natural fit for Microsoft-first organizations already invested in that ecosystem
  • Sales Enterprise and Premium tiers offer unlimited custom tables and advanced AI-driven forecasting and predictive analytics not available in lower tiers
  • Professional tier pricing at $65 per user per month offers a lower entry cost than Salesforce for SMB teams with straightforward CRM needs
  • Flexible customization options allow businesses to build bespoke apps, tailor forms and views, and integrate with other Dynamics 365 modules
  • Microsoft Copilot AI tools are embedded directly into the sales workflow on Enterprise and Premium, automating routine tasks and providing deal intelligence

Object mapping

How Dynamics 365 Marketing objects map to Microsoft Dynamics 365 Sales

Each row shows how a Dynamics 365 Marketing 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.

Dynamics 365 Marketing

Contact

maps to

Microsoft Dynamics 365 Sales

Contact

1:1
Fully supported

Dynamics 365 Marketing shares the msdyn_contact table in Dataverse with the CRM layer, so Contacts map directly to Microsoft Dynamics 365 Sales Contact. Standard fields (fullname, emailaddress1, telephone1, address) are identical between source and destination. We flag contacts that had Marketing Contact billing status during scoping and carry the original billing classification in a custom field mktg_contact_flag__c on the destination Contact so that the admin team has full visibility into which records triggered tenant-level marketing charges in the source environment.

Dynamics 365 Marketing

Lead

maps to

Microsoft Dynamics 365 Sales

Lead

1:1
Fully supported

Leads are a native Dataverse entity in both the Marketing and Sales environments. Lead lifecycle stages (leadstatus, leadsource, statecode) map directly. We preserve any lead scoring values from Customer Insights - Data as a custom field ci_lead_score__c if the destination admin wants to retain those values for prioritization after migration. Owner lookup resolves by email against the destination User table.

Dynamics 365 Marketing

Account

maps to

Microsoft Dynamics 365 Sales

Account

1:1
Fully supported

Accounts are the org-level parent records in both source and destination and map 1:1. Industry, address, and custom account fields transfer directly. Account hierarchies are preserved where the source had parent-account relationships. We resolve the primary contact lookup during the Account import pass so that the parent-account chain is intact before any Contact import that references it.

Dynamics 365 Marketing

Opportunity

maps to

Microsoft Dynamics 365 Sales

Opportunity

1:1
Fully supported

Opportunities in Dynamics 365 Marketing and Sales share the msdyn_opportunity table in Dataverse. Pipeline stage, estimated close date, amount, probability, and owner assignment transfer directly. The opportunity-to-contact and opportunity-to-account lookups resolve at migration time using the contact and account IDs written in earlier passes. We validate that the destination Sales Process whitelists the imported stage values before the opportunity batch is committed.

Dynamics 365 Marketing

ActivityPointer (Email, Task, PhoneCall, Appointment)

maps to

Microsoft Dynamics 365 Sales

Task, Event, EmailMessage

1:1
Fully supported

Activities in Dynamics 365 Marketing live in the ActivityPointer entity with type-specific child tables. Emails, tasks, phone calls, and appointments map to the corresponding Microsoft Dynamics 365 Sales activity objects. The regarding object lookup (regardingobjectid) re-associates each activity with its parent Contact, Account, or Opportunity in the destination. We preserve the original ActivityDate for timeline ordering. High-volume activity migration uses the Dataverse Bulk API with exponential backoff and batch chunking to avoid timeout errors on large engagement histories.

Dynamics 365 Marketing

Annotation (Notes with attachments)

maps to

Microsoft Dynamics 365 Sales

Note

1:1
Fully supported

Note records with file attachments stored as Annotation entries are exported individually. We preserve the objectid and objecttypecode to re-associate each Note with its parent Contact, Account, Lead, or Opportunity in Microsoft Dynamics 365 Sales . File attachments migrate as Salesforce ContentDocument equivalents in Dataverse, with ContentDocumentLink maintaining the parent relationship. We run this pass after the parent records exist in the destination to avoid orphaned notes.

Dynamics 365 Marketing

User (Owner)

maps to

Microsoft Dynamics 365 Sales

User

1:1
Fully supported

User records and owner assignments on all CRM entities resolve by email match between the source and destination User tables. Dynamics 365 Marketing and Sales share the same Azure AD-backed identity layer, so most active users resolve automatically. Any source owner without a matching destination User goes to a reconciliation queue; the admin provisions the missing user before record migration resumes. Inactive source owners are preserved as inactive User records in the destination with the original ownerid for audit integrity.

Dynamics 365 Marketing

Custom Entities

maps to

Microsoft Dynamics 365 Sales

Custom Entity

1:1
Mapping required

Custom entities created within a Dataverse solution export as managed solution schema files from the Configuration Migration Tool or as unmanaged solution ZIPs. We pre-create the destination schema in Microsoft Dynamics 365 Sales before any custom entity data is imported, including all custom fields, lookup relationships to standard entities, and validation rules. The customer must provide the managed solution file or schema export; we do not infer custom entity structure from UI exports because those omit relationship metadata and field security profiles.

Dynamics 365 Marketing

Customer Journey (msdynmkt_journey)

maps to

Microsoft Dynamics 365 Sales

Campaign

1:1
Fully supported

Journey definitions stored in the msdynmkt_journey table have no direct equivalent in Microsoft Dynamics 365 Sales . Customer Insights - Journeys uses trigger-based logic, segment membership conditions, and AI-assisted content selection that do not exist in the Sales Campaign model. We extract Journey configuration (trigger type, segment references, email asset IDs, delay logic, and goal metrics) and deliver it as a written asset inventory document. The customer's admin uses this to rebuild equivalent Campaigns with Quick Campaign activity sequences in Microsoft Dynamics 365 Sales . The emails referenced in Journey definitions are inventory-only and must be rebuilt as Sales-email templates.

Dynamics 365 Marketing

Marketing List

maps to

Microsoft Dynamics 365 Sales

Campaign (via static campaign membership)

1:1
Fully supported

Marketing Lists contain member records and are associated with Campaigns in Dynamics 365 Marketing. We export the list membership and recreate each list as a static Campaign in Microsoft Dynamics 365 Sales , with CampaignMember records carrying the same contact or lead associations. Dynamic Marketing List logic (query-based membership) cannot be replicated in Sales without rebuilding the query criteria manually. We document the original query logic for the admin to evaluate which lists warrant a static rebuild versus a manual segmentation approach in Microsoft Dynamics 365 Sales .

Dynamics 365 Marketing

Segment (Customer Insights - Data)

maps to

Microsoft Dynamics 365 Sales

None (documentation only)

1:1
Fully supported

Segment definitions and membership data live in the Customer Insights - Data service, a separate Dataverse instance from the core CRM. Migrating segment membership as static CampaignMember records is possible but the segment criteria that drive dynamic membership have no equivalent in Microsoft Dynamics 365 Sales . We export the segment criteria and deliver a written segment inventory with recommended Sales-based segmentation equivalents (using Contact fields, Account industry, or Lead source as the segmentation basis). If the customer is also licensing Dynamics 365 Customer Insights after migration, segment recreation in Customer Insights - Data is a separate engagement.

Gotchas + challenges

What specifically takes care here

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 Marketing logo

Dynamics 365 Marketing gotchas

High

Marketing Contact billing triggers on record import

High

Configuration Migration Tool does not migrate high-volume transactional data

Medium

Customer Insights segments are stored separately from Dataverse CRM records

Medium

Marketing Lists and Campaign Activities have legacy schema dependencies

Low

Custom entities require a managed solution schema, not a UI export

Microsoft Dynamics 365 Sales  logo

Microsoft Dynamics 365 Sales gotchas

High

Professional tier 15-table custom table limit blocks migrations

High

October 2024 pricing increase applies at renewal for all customers

Medium

Custom fields must be created in the UI before API writes

Medium

Power Platform request limits apply to bulk migrations

Medium

Activity records orphaned to inactive owners fail silently

Pair-specific challenges

  • Marketing Contact billing flag has no Microsoft Dynamics 365 Sales equivalent

    Dynamics 365 Marketing charges per tenant for any record qualifying as a Marketing Contact. Microsoft Dynamics 365 Sales has no equivalent billing classification; all Contacts use the per-user licensing model. We flag which source records had Marketing Contact status during the scoping pass and carry the original status into a custom field mktg_contact_flag__c on the destination Contact. This preserves the classification for audit purposes and lets the admin identify records that should not be re-enrolled in any future marketing automation without explicit admin approval, preventing unexpected re-activation of tenant-level billing.

  • Interaction data and Journey history do not transfer to Sales

    Journey interaction data (email open events, click events, form submission logs, segment membership changes) is stored in the Customer Insights - Data service, not in the core CRM Dataverse. The Microsoft Configuration Migration Tool explicitly states that interaction data is never included in export bundles. We cannot migrate Journey interaction history into Microsoft Dynamics 365 Sales because Sales has no equivalent data model for marketing event logs. We document the Journeys in scope, their trigger logic, and the assets they reference so the admin rebuilds them as Campaigns or evaluates a separate Customer Insights - Journeys re-deployment.

  • Source and destination environments must run the same Marketing version

    Microsoft's Configuration Migration Tool documentation requires that source and destination Customer Insights - Journeys environments run the same version before any configuration transfer. If the source is on an older version of Customer Insights - Journeys than the destination Sales environment (which does not include Customer Insights), the tool cannot be used for schema validation. We handle this by working from the managed solution schema file exported from the source rather than running the Configuration Migration Tool against a mismatched destination, which avoids the version compatibility requirement for CRM entity migration.

  • Multiple address purposes cannot all be marked primary

    Dynamics 365 Marketing allows multiple address roles (invoice, delivery, billing, shipping) on a single Contact or Account with multiple addresses marked as primary for different purposes. Microsoft Dynamics 365 Sales supports only one primary address per entity. When source records have a primary invoice address and a primary delivery address on the same entity, we map the primary address fields to the standard address block and flag the secondary address roles in custom fields for the admin to reconcile. This contextual difference between the two Dataverse data models requires advance planning and business-user validation of the mapping output.

Migration approach

Six steps for a successful Dynamics 365 Marketing to Microsoft Dynamics 365 Sales data migration

  1. Discovery and marketing asset inventory

    We audit the source Dynamics 365 Marketing environment for Contact volume, marketing contact flag distribution, active Journey definitions, segment criteria, marketing form count, marketing list membership size, and engagement history volume. We pair this with a scoping pass that identifies which records had Marketing Contact billing status in the source and carries that classification forward. The discovery output is a written migration scope with record counts per entity, a Journey and segment asset inventory, and a Microsoft Dynamics 365 Sales edition recommendation (Professional at $65/user or Enterprise at $105/user) based on the pipeline complexity and any required custom objects.

  2. Schema preparation in Microsoft Dynamics 365 Sales

    We pre-create all custom fields referenced in the source managed solution schema, including the mktg_contact_flag__c field for the marketing billing classification. If custom entities are in scope, we provision the destination custom object schema with all field types, lookup relationships, and validation rules matched to the source. We configure the Sales Process with the stage values present in the source Opportunities so that the stage probability mapping is valid at import time. All schema changes deploy to a Sandbox first for validation before any data moves.

  3. Sandbox migration and record reconciliation

    We execute a full migration into a Microsoft Dynamics 365 Sales Sandbox using production-equivalent data volume. The customer's admin reconciles record counts for Contacts, Accounts, Leads, and Opportunities against the source, spot-checks field values on 25-50 randomly selected records, and validates that the marketing contact flag populated correctly on flagged records. The admin signs off on the sandbox migration before we proceed to production. Any field mapping corrections or schema adjustments happen at this stage.

  4. Owner and User provisioning

    We extract every distinct owner referenced on CRM records (Contact, Account, Lead, Opportunity, Activity) and match by email against the destination Microsoft Dynamics 365 Sales User table. Because both source and destination are within the same Microsoft 365 tenant, most users resolve automatically. Any source owner without a matching destination User goes to a reconciliation queue; the admin provisions the missing user. Migration cannot proceed past this step because OwnerId references on Opportunities and Leads are required fields in Microsoft Dynamics 365 Sales .

  5. Production migration in dependency order

    We run production migration in the correct dependency sequence: Accounts (from source Companies), Contacts (with AccountId resolved and mktg_contact_flag__c populated), Leads, Opportunities (with OwnerId, AccountId, and Sales Process stage resolved), Activities (Tasks, Events, EmailMessages via Bulk API with chunking), Notes and attachments (with ContentDocumentLink re-association), and Custom Entities last with their lookup references resolved. Each phase emits a row-count reconciliation report before the next phase begins. Marketing lists become static Campaigns with CampaignMember records for the member associations.

  6. Cutover, validation, and Journey rebuild handoff

    We freeze writes in Dynamics 365 Marketing during cutover, run a final delta migration for records modified during the migration window, then designate Microsoft Dynamics 365 Sales as the system of record. We deliver the Journey and segment asset inventory document to the customer's admin team, covering every active Journey with its trigger logic, segment criteria, email assets, and recommended Microsoft Dynamics 365 Sales Campaign equivalent. We support a one-week hypercare window for reconciliation issues. We do not rebuild Journeys as Sales Campaigns inside the migration scope; that work is a separate engagement or an internal admin task.

Platform deep dives

Context on both ends of the pair

Dynamics 365 Marketing logo

Dynamics 365 Marketing

Source

Strengths

  • Native integration with Microsoft 365, Teams, and SharePoint eliminates separate identity and document management overhead.
  • Dataverse provides a unified data layer across CRM, Customer Service, and Marketing, enabling single-customer-record views without ETL synchronization.
  • Customer Insights - Journeys includes AI-assisted content generation and predictive lead scoring as part of the Marketing tier.
  • Per-tenant pricing covers unlimited marketing contacts beyond the base tenant fee, which benefits large database marketers.
  • Configuration Migration Tool supports movement of marketing assets between environments for Dev-Test-Prod promotion.

Weaknesses

  • Per-tenant marketing pricing at $1,500/month plus user-level CRM seats creates significant cost for organizations not already committed to the Microsoft stack.
  • Steep learning curve and complex UI navigation mean implementation projects routinely require 6-12 weeks with dedicated admin resources.
  • Performance issues arise with large datasets and complex Journey logic, particularly when the marketing environment shares Dataverse capacity with other applications.
  • The split between outbound marketing (Customer Insights - Journeys) and transactional CRM data introduces schema complexity that simpler standalone marketing tools do not have.
  • Configuration Migration Tool cannot handle high-volume transactional data; large record migrations require Power Automate flows or custom plugins instead.
Microsoft Dynamics 365 Sales  logo

Microsoft Dynamics 365 Sales

Destination

Strengths

  • Native integration with Microsoft 365, Teams, Outlook, and SharePoint for unified productivity workflow
  • Unlimited custom tables and complex workflows on Enterprise tier enable deep customization for complex sales processes
  • AI-driven predictive analytics and deal intelligence on Enterprise and Premium tiers help sales teams prioritize pipeline
  • Dataverse unified data layer provides a consistent API and data model across all Dynamics 365 and Power Platform apps
  • Strong security model with Field-Level Security and Record Ownership rules for governance-conscious enterprises

Weaknesses

  • Sales Professional tier caps custom tables at 15, creating a migration ceiling for highly customized SMB environments
  • October 2024 pricing increases of $15 per user across all tiers apply to existing customers upon renewal
  • Implementation typically requires costly certified partners, adding 30–50% to total project cost
  • Updates and platform releases can disrupt customizations and plugins, requiring regression testing after each wave
  • Non-Microsoft integrations require additional configuration or middleware, limiting flexibility for heterogeneous tech stacks

Complexity grading

How hard is this migration?

Standard CRM migration. All 8 core objects map 1:1 between Dynamics 365 Marketing and Microsoft Dynamics 365 Sales .

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across Dynamics 365 Marketing and Microsoft Dynamics 365 Sales .

  • Object compatibility

    A

    All 8 core objects map 1:1 between Dynamics 365 Marketing and Microsoft Dynamics 365 Sales .

  • Field mapping clarity

    C

    Field mapping is derived from defaults — final spec confirmed during the sample migration.

  • Timeline complexity

    B

    8-object category — typical timelines run 2–7 days end-to-end.

  • API constraints

    B

    Dynamics 365 Marketing: Dataverse Web API enforces organization-level throttling; specific limits vary by workload and are not publicly documented at fixed thresholds.

  • Data volume sensitivity

    A

    Dynamics 365 Marketing exposes a bulk API — large-volume migrations stream efficiently.

Estimator

Estimate your Dynamics 365 Marketing to Microsoft Dynamics 365 Sales migration cost

Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.

Step 1

What are you migrating?

Pick a category, then your source and destination platforms.

Category

FAQ

Frequently asked questions about Dynamics 365 Marketing to Microsoft Dynamics 365 Sales data migrations

Answers to the questions buyers ask most during Dynamics 365 Marketing to Microsoft Dynamics 365 Sales migration scoping. Not seeing yours? Book a call.

Can't find your answer?

Walk through your Dynamics 365 Marketing to Microsoft Dynamics 365 Sales migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

Most migrations land between four and eight weeks for accounts under 15,000 Contacts with no custom entities, clean Dataverse schemas, and a straightforward marketing contact flag pre-scoping pass. Migrations with large engagement histories (over 200,000 activity records), multiple custom entities, marketing list re-creation, or a separate Customer Insights segment inventory extend to ten to sixteen weeks because of the sandbox reconciliation cycle, the asset documentation work, and the marketing contact billing flag resolution pass. Microsoft Dynamics 365 Sales implementations without the marketing module are typically faster to configure post-migration because there is no Customer Insights dependency to validate.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Dynamics 365 Marketing.
Land in Microsoft Dynamics 365 Sales , intact.

Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.

Accuracy guarantee Rollback included Quote in 1 business day