CRM migration

Migrate from Salesforce Marketing Cloud Account Engagement to Microsoft Dynamics 365 Sales

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

Salesforce Marketing Cloud Account Engagement logo

Salesforce Marketing Cloud Account Engagement

Source

Microsoft Dynamics 365 Sales

Destination

Microsoft Dynamics 365 Sales  logo

Compatibility

70%

7 of 10

objects map 1:1 between Salesforce Marketing Cloud Account Engagement and Microsoft Dynamics 365 Sales .

Complexity

BStandard

Timeline

4-6 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from Salesforce Marketing Cloud Account Engagement to Microsoft Microsoft Dynamics 365 Sales is a structural shift from a B2B marketing automation platform tightly coupled to Salesforce CRM, into a sales CRM that sits at the center of the Microsoft 365 ecosystem. The central challenge is that MCAE's Prospect object has no direct equivalent in Microsoft Dynamics 365 Sales — Prospects must be distributed across Leads, Contacts, and Accounts, and the decision about which records become which is a scoping call that determines whether your lead routing survives the move. We map Prospects by scoring tier: Prospects with high behavioural scores and no associated Account map to Lead; Prospects linked to a Salesforce Account that maps to a Dynamics Account become Contacts; and Prospects without an email match are held for manual resolution. Custom Fields migrate as typed fields against the appropriate Dynamics entity. Email Templates carry their HTML content but require merge field syntax to be rewritten from Pardot double-brace (%%first_name%%) to Dynamics-compatible tokens. Scoring Categories, Tags, and List memberships migrate as data but not as active automation logic — the scoring weights and list membership rules are documented for your Dynamics admin to rebuild using Sales Copilot or Power Automate. Engagement Programs and Automation Rules do not migrate because they reference internal Pardot IDs that do not exist in Dynamics 365; we deliver a written program inventory with recommended Dynamics equivalents. The Dynamics 365 Dataverse API governs all record inserts, with batch chunking, exponential backoff, and owner lookup resolution against the Microsoft 365 User table.

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

Salesforce Marketing Cloud Account Engagement logo

Salesforce Marketing Cloud Account Engagement

What's pushing teams away

  • Steep learning curve and complex UI require dedicated training or consultant hours before teams can build sophisticated automations without trial-and-error.
  • High total cost of ownership beyond the license fee — agencies, developers, or additional consultants are frequently needed to configure and optimize campaigns at scale.
  • Contact volume limits by tier create billing surprises — teams that outgrow their tier's Prospect cap are forced to upgrade or pay overage fees, and there is no prorated credit for downgrades.
  • Limited flexibility for non-Salesforce CRMs — Account Engagement is architecturally tied to Salesforce, making it a poor fit for teams running HubSpot, Zoho, or Microsoft Dynamics as their CRM of record.
  • The platform's complexity creates slow time-to-value — even straightforward tasks like form creation or list segmentation require navigating multiple menu layers and configuration screens.

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 Salesforce Marketing Cloud Account Engagement objects map to Microsoft Dynamics 365 Sales

Each row shows how a Salesforce Marketing Cloud Account Engagement 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.

Salesforce Marketing Cloud Account Engagement

Prospect

maps to

Microsoft Dynamics 365 Sales

Lead or Contact (split required)

1:many
Fully supported

MCAE Prospects have no direct Dynamics 365 equivalent. We split Prospects by scoring tier at migration time: Prospects with a behavioural score above a customer-defined threshold and a linked Salesforce Account that maps to a Dynamics Account become Contacts attached to that Account. Prospects with scores below the threshold or no Account linkage become Leads. The split threshold is defined during scoping based on the customer's scoring category matrix. The original Pardot prospect score migrates as a custom field prospect_score__c on both Lead and Contact for audit and rebuild reference. Email address is the sole unique identifier in Pardot; we apply a three-pass matching strategy (exact email, normalised email, manual resolution queue) to detect duplicates before insert.

Salesforce Marketing Cloud Account Engagement

Custom Field

maps to

Microsoft Dynamics 365 Sales

Custom Field (on Lead, Contact, or Account)

1:1
Fully supported

Pardot Custom Fields are first-class API objects with full CRUD support in the v5 API. We export field definitions (label, data type, associated Tags) and their values per Prospect. Each Custom Field maps to a typed field on the appropriate Dynamics entity (Lead or Contact) based on whether the Prospect splits to Lead or Contact. Picklist and multi-select fields require a value-set audit against Dynamics AllowedValues. Custom Fields that reference Pardot-only objects (Engagement Programs, Scoring Categories) are flagged as data fields rather than functional fields and migrated as text or picklist values.

Salesforce Marketing Cloud Account Engagement

Account (Salesforce-linked)

maps to

Microsoft Dynamics 365 Sales

Account

1:1
Fully supported

MCAE has no native Account object — Prospects are linked to Salesforce Accounts via the Pardot-Salesforce Connector. We resolve the Salesforce Account ID stored on each Prospect and map it to a Dynamics Account. If the Salesforce Account name does not already exist as a Dynamics Account, we create it during the migration. Account Website, Industry, and Address fields migrate directly. Account records are inserted before Contact and Lead records so that AccountId lookups are satisfied at the time of record import.

Salesforce Marketing Cloud Account Engagement

Campaign

maps to

Microsoft Dynamics 365 Sales

Campaign

1:1
Fully supported

MCAE Campaigns track marketing initiative performance and link to Salesforce Campaigns. We export Campaign metadata (Name, Type, Status, StartDate, EndDate, BudgetedCost) and Prospect-level activity data (opens, clicks, form submissions) as Campaign Member activity records in Dynamics 365. The Campaign Member Status field maps from MCAE Campaign member engagement status. Campaign hierarchies (parent-child campaign structures in Pardot) map to Dynamics Campaign hierarchy via ParentCampaignId lookup.

Salesforce Marketing Cloud Account Engagement

User / Owner

maps to

Microsoft Dynamics 365 Sales

User (Microsoft 365)

1:1
Fully supported

Pardot Users (Assigned Users / Owners) correspond to the Salesforce Users who own Prospect records. We map Pardot user_id to Dynamics User by email address lookup against the Microsoft 365 Azure Active Directory tenant. Owners without a matching Dynamics User go to a reconciliation queue for the customer's admin to provision before record import resumes. Inactive Pardot users are mapped to inactive Dynamics users so that OwnerId references are satisfied without reactivating licences.

Salesforce Marketing Cloud Account Engagement

Tag

maps to

Microsoft Dynamics 365 Sales

Multi-Select Picklist or Topic

lossy
Fully supported

Tags segment Prospects and attach to Custom Fields. We export tag definitions and their assignments per Prospect. Tags migrate as a multi-select picklist on Lead or Contact, or as Dynamics Topics with TopicAssignment records, depending on the customer's use case. The tag strategy is chosen during scoping. Tags used for marketing segmentation map to Dynamics marketing lists and Campaign Member records.

Salesforce Marketing Cloud Account Engagement

Scoring Category

maps to

Microsoft Dynamics 365 Sales

Custom Field + Scoring Specification

lossy
Fully supported

Scoring Categories define named weight buckets (behavioural score vs. demographic grade). We export category definitions, weight rules, and the per-Prospect category scores. The scores migrate as typed fields on Lead or Contact. The weight logic is not functional at the destination — it is documented as a written specification for the customer's Dynamics admin to rebuild using Sales Copilot lead scoring or a Power Automate flow with a scoring calculation layer.

Salesforce Marketing Cloud Account Engagement

List / Segment

maps to

Microsoft Dynamics 365 Sales

Marketing List or SharePoint List

1:1
Fully supported

Static Lists and Dynamic Lists segment Prospects for targeted campaigns. We export list memberships as Prospect records with the list name stored on each record. Dynamic Lists with rule-based criteria do not migrate as active lists — the criteria are documented and the customer rebuilds them as Dynamics Marketing Lists or Power Automate-based segments. Static list memberships migrate as a custom field list_name__c or as Campaign Member records linked to a corresponding Dynamics Campaign.

Salesforce Marketing Cloud Account Engagement

Email Template

maps to

Microsoft Dynamics 365 Sales

Dynamics Email Template

1:1
Fully supported

Email Templates contain HTML content, dynamic content blocks, and merge fields. We export template HTML and metadata. The double-brace Pardot merge field syntax (%%first_name%%, %%email%%) is rewritten to Dynamics-compatible token syntax ({(lead.firstname)}, {(lead.emailaddress})). Templates with complex branching conditional logic are flagged for manual rebuild in Dynamics Email Templates or Power Automate approval flows rather than automated import, because Dynamics Email Templates handle conditional content differently from Pardot dynamic content blocks.

Salesforce Marketing Cloud Account Engagement

Engagement Activity (opens, clicks, form submissions)

maps to

Microsoft Dynamics 365 Sales

Campaign Activity or Note

1:1
Fully supported

MCAE tracks Prospect engagement activity (email opens, link clicks, form submissions) against Campaigns. We export engagement history per Prospect-Campaign pair and create Campaign Activity records in Dynamics or Notes linked to the corresponding Contact or Lead. Engagement timestamps are preserved. Note that MCAE's Visitor Activity tracking (anonymous browsing behaviour) does not have a native Dynamics equivalent and is documented as a gap in the written migration report.

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.

Salesforce Marketing Cloud Account Engagement logo

Salesforce Marketing Cloud Account Engagement gotchas

High

Engagement Programs and Automation Rules cannot be exported

High

Prospect contact volume limits enforced per tier

High

Email address is the sole unique identifier for Prospect matching

Medium

Multi-Business Unit accounts require separate migration scoping

Medium

Email Template merge fields use Pardot syntax incompatible with most destinations

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

  • Engagement Programs and Automation Rules cannot migrate

    MCAE Engagement Programs and Automation Rules reference internal Pardot object IDs (Prospect IDs, Campaign IDs, Form IDs, Landing Page IDs) that do not exist in Microsoft Dynamics 365 Sales . The architectural consequence is that no destination system can accept these IDs on insert. Attempting to import automation configurations as-is produces orphaned references and broken workflow triggers. We document the full program structure — trigger conditions, stage progressions, action sequences, and email sends — during scoping and deliver it as a written rebuild specification. The customer's Dynamics admin rebuilds them using Sales Copilot sequences, Power Automate flows, or Dynamics workflow rules. This gap is specific to the MCAE-to-Dynamics pair and reflects Pardot's tight Salesforce-internal ID architecture rather than any limitation of Dynamics 365.

  • Email address is the sole Prospect dedupe key

    Pardot uses email address as the primary key for Prospect identity with no stable external ID equivalent. Microsoft Dynamics 365 Sales has separate Lead and Contact objects, each with its own dedupe rules. When migrating Prospects with shared email addresses across multiple records, the three-pass matching strategy (exact email, normalised email, manual queue) must resolve whether the duplicates become separate Leads, merge into a single Contact, or are flagged for manual resolution before import. We run deduplication as a pre-migration transform before any records are inserted into Dynamics to prevent duplicate Leads or Contacts from being created silently.

  • Merge field syntax incompatibility requires manual rewriting

    Pardot email templates use double-brace merge field syntax (%%first_name%%, %%company%%, %%score%%) which is not compatible with Dynamics 365 Email Template tokens ({(lead.firstname)}, {(contact.firstname)}). We rewrite simple merge fields as part of the template export step. However, dynamic content blocks and conditional display logic in Pardot templates do not have a direct Dynamics equivalent — Dynamics Email Templates use if/endif liquid template logic which requires manual reconstruction. Templates containing complex conditional logic are flagged in the migration inventory and rebuilt by the customer's marketing team post-migration.

  • Scoring Categories require full rebuild at destination

    MCAE Scoring Categories define named buckets with weighted rules (e.g., behavioural score from email engagement vs. demographic grade from firmographic data). We export the category definitions and per-Prospect category scores as static data fields on Lead and Contact. The scoring weight logic — which actions increment which score, by how much, with what decay — is a Pardot configuration that does not export. We deliver a written scoring specification that the customer's Dynamics admin uses to rebuild lead scoring using Sales Copilot AI-powered insights or Power Automate. The original Pardot scores survive the migration as historical data; the live scoring mechanism must be rebuilt.

  • Multi-Business Unit accounts require separate scoping

    MCAE Business Units partition Prospect records, Users, and branding within a single account. The Pardot API operates within a single Business Unit scope — there is no endpoint to cross-query all BUs simultaneously. If the source MCAE account has multiple Business Units, each BU is scoped as a separate migration project with its own Prospect export, User mapping, and template inventory. Business Unit-level sender profiles, tracking domains, and IP warm-up pools are documented separately and reconfigured manually in Microsoft Dynamics 365 Sales with the customer's email infrastructure team.

Migration approach

Six steps for a successful Salesforce Marketing Cloud Account Engagement to Microsoft Dynamics 365 Sales data migration

  1. Discovery and object audit

    We audit the source MCAE account across Business Units, Prospect volume, Custom Field definitions (label, type, associated Tags), Scoring Category rules, List memberships, Email Template count and complexity, and active Engagement Program count. We pair this with a Microsoft Dynamics 365 Sales environment audit: edition (Professional at $65/user, Enterprise at $105/user, Premium at $150/user), existing entity schema, User count, and active Power Automate flows. The discovery output is a written migration scope document that defines the Lead-Contact split threshold, the Custom Field mapping to Dynamics entities, and a list of Engagement Programs requiring rebuild specification.

  2. Lead-Contact split rule design and Dynamics schema preparation

    We design the destination schema in Microsoft Dynamics 365 Sales . This includes provisioning any missing custom fields on Lead and Contact (with Salesforce field types matched to Dynamics column types), configuring Lead Status values, defining Account naming conventions, and setting up Dynamics Marketing Lists to replace MCAE static lists. The Lead-Contact split threshold is codified as a SQL transform rule that runs during the Prospect export. Dynamics schema is deployed into a Sandbox environment first for validation before production migration begins.

  3. Sandbox migration and reconciliation

    We run a full migration into a Dynamics 365 Sandbox using production-like data volume. The customer's Dynamics admin and RevOps lead reconcile record counts (Leads in, Contacts in, Accounts in, Campaign Members in), spot-check 25-50 records against the MCAE source, and validate that merge field syntax renders correctly in a test email template. Any mapping corrections — field type mismatches, picklist value gaps, Owner lookup failures — are logged and fixed in the sandbox before production migration begins.

  4. Owner reconciliation and Microsoft 365 User provisioning

    We extract every distinct Pardot User referenced on Prospect records and match by email against the Dynamics 365 destination's Azure Active Directory User table. Unmatched owners go to a reconciliation queue. The customer's IT team provisions any missing Microsoft 365 users and assigns Dynamics 365 Security Roles before record import resumes. OwnerId references must be satisfied before inserting Leads and Contacts because Dynamics enforces lookups at insert time.

  5. Production migration in dependency order

    We run production migration in record-dependency order: Accounts (from Salesforce Accounts linked to Prospects), Users (validated, provisioned), Leads and Contacts (with the scoring-tier split applied and email dedupe resolved), Custom Field values on each record, Campaigns (with Campaign Member activity history), Scoring Category data (as custom fields), Tags (as multi-select picklist values), Lists (as Marketing Lists), and Email Templates (with merge field syntax rewritten). Each phase emits a row-count reconciliation report before the next phase begins. The Dynamics Dataverse API governs all inserts with batch chunking and exponential backoff.

  6. Cutover, delta migration, and Engagement Program handoff

    We freeze MCAE Prospect writes during cutover, run a final delta migration of any records modified during the migration window, then enable Microsoft Dynamics 365 Sales as the CRM of record. We deliver the Engagement Program inventory document (all active programs documented with triggers, stages, actions, and recommended Dynamics equivalent) to the customer's admin team. We support a one-week hypercare window for reconciliation issues. Rebuilding Engagement Programs, Automation Rules, and dynamic scoring logic is outside standard migration scope — it is a separate engagement or an internal admin rebuild task.

Platform deep dives

Context on both ends of the pair

Salesforce Marketing Cloud Account Engagement logo

Salesforce Marketing Cloud Account Engagement

Source

Strengths

  • Salesforce-native bidirectional CRM sync keeps Prospect and Contact data aligned without manual export.
  • Einstein AI lead scoring from the Plus tier onwards prioritises high-intent Prospects automatically.
  • Engagement Studio enables visual, multi-step B2B nurture sequences without developer involvement.
  • B2B-specific data model — Grading, Scoring Categories, and multi-touch attribution — reflects complex buying committees.
  • Diverse pricing tiers from Growth through Premium+ serve startups through enterprise marketing teams.

Weaknesses

  • Engagement Programs and Automation Rules are not exportable, requiring full manual rebuild at the destination.
  • Steep learning curve demands ongoing admin investment or agency fees to configure and maintain effectively.
  • Contact volume limits by tier create billing surprises when teams exceed their included Prospect count.
  • Limited value outside the Salesforce ecosystem — poor fit for HubSpot, Zoho, or Microsoft Dynamics CRM environments.
  • Complex UI with multiple navigation layers slows day-to-day tasks for non-technical marketing users.
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 Salesforce Marketing Cloud Account Engagement and Microsoft Dynamics 365 Sales .

B

Overall complexity

Standard migration

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

  • Object compatibility

    A

    All 8 core objects map 1:1 between Salesforce Marketing Cloud Account Engagement 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

    C

    Salesforce Marketing Cloud Account Engagement: Daily API quota varies by Account Engagement edition (tier); resets at start of day in the account's time zone. Maximum 5 concurrent requests per Business Unit. Exceeding the daily limit returns error code 122..

  • Data volume sensitivity

    A

    Salesforce Marketing Cloud Account Engagement exposes a bulk API — large-volume migrations stream efficiently.

Estimator

Estimate your Salesforce Marketing Cloud Account Engagement 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 Salesforce Marketing Cloud Account Engagement to Microsoft Dynamics 365 Sales data migrations

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

Can't find your answer?

Walk through your Salesforce Marketing Cloud Account Engagement 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 MCAE-to-Dynamics migrations land between four and six weeks for accounts under 20,000 Prospects with no multi-Business Unit complexity and no engagement history larger than 100,000 records. Migrations with multiple Business Units, large engagement histories, Scoring Category recalculation specifications, or a large Email Template library (over 50 templates with complex conditional logic) move to eight to twelve weeks because of merge field rewriting, multi-pass email matching, and the Dataverse API's batch-rate cadence.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Salesforce Marketing Cloud Account Engagement.
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