CRM migration
Field-level mapping, validation, and rollback between Salesforce Marketing Cloud Account Engagement and Salesforce Sales Cloud. We move data and schema; workflows are rebuilt natively in Salesforce Sales Cloud.
Salesforce Marketing Cloud Account Engagement
Source
Salesforce Sales Cloud
Destination
Compatibility
8 of 13
objects map 1:1 between Salesforce Marketing Cloud Account Engagement and Salesforce Sales Cloud.
Complexity
BStandard
Timeline
4-6 weeks
Overview
Moving from Salesforce Marketing Cloud Account Engagement into Salesforce is a lateral consolidation within the same vendor family. Account Engagement stores Prospects, Custom Fields, Scoring Categories, and engagement data that all map to standard Salesforce objects, but the architectural differences between a marketing automation layer and a CRM layer create mapping decisions that must be resolved before any record moves. Prospects with lifecycle data must split into either Salesforce Lead or Contact depending on their stage and existing CRM associations. Engagement Studio programs and Automation Rules reference internal Pardot object IDs that do not exist in Salesforce and cannot be imported; we document every program structure and deliver a rebuild handoff. We use the Salesforce Bulk API 2.0 with batch chunking and exponential backoff for engagement history because CSV loaders cannot handle the volume. Merge fields in exported Email Templates use Pardot double-brace syntax (%%first_name%%) which requires rewriting to Salesforce merge syntax ({{!Contact.FirstName}}) before import. Lists, Tags, and Custom Field definitions migrate cleanly; Dynamic Lists, Forms, and Landing Pages require rebuild at the destination. We do not migrate Workflows, Sequences, Automations, or Forms as code; these are delivered as a written inventory for your admin to rebuild.
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.
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
Each row shows how a Salesforce Marketing Cloud Account Engagement object lands in Salesforce Sales Cloud, 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
Salesforce Sales Cloud
Lead or Contact (split required)
1:manyAccount Engagement Prospects map to either Salesforce Lead or Contact depending on their lifecycle stage and existing CRM associations. Prospects with no linked Salesforce Contact or Account become Salesforce Leads. Prospects with an existing Salesforce Contact (synced via Pardot-Salesforce Connector) map directly to that Contact record. Prospects that already have a linked Account and Opportunity become Salesforce Contacts attached to the matched Account. We preserve the original Pardot Prospect ID in a custom field pardot_prospect_id__c on both Lead and Contact for audit and reconciliation. Opted-out status migrates to HasOptedOutOfEmail on the Salesforce record.
Salesforce Marketing Cloud Account Engagement
Custom Field
Salesforce Sales Cloud
Custom Field (__c)
1:1Pardot Custom Fields are first-class objects in the v5 API with full CRUD support. We export all field definitions (label, API name, type, associated tags) and their values per Prospect record, then pre-create equivalent Salesforce Custom Fields in the destination org before importing any Prospect data. Field type mapping is direct for text, number, date, and picklist fields. Multi-select picklist fields from Pardot map to Salesforce multi-select picklists. Custom field dependencies on Pardot Forms and Landing Pages are noted and flagged for rebuild.
Salesforce Marketing Cloud Account Engagement
Scoring Category
Salesforce Sales Cloud
Custom Field + Assignment Rules
lossyAccount Engagement Scoring Categories define named buckets (behavioural score vs. demographic score) with weight rules per category. We export category definitions and score values per Prospect. Scoring logic does not recalculate automatically in Salesforce because Pardot scoring rules do not migrate as automation logic. We store the imported score values in custom fields (behavioural_score__c, demographic_score__c) on Lead and Contact, and recommend rebuilding scoring logic as Salesforce Flow criteria or Lightning Flow BPA post-migration.
Salesforce Marketing Cloud Account Engagement
Tag
Salesforce Sales Cloud
Multi-Select Picklist or Campaign
1:manyPardot Tags are used for Prospect segmentation and attach to Custom Fields and Prospects via the API. We export tag definitions and their assignments per Prospect. Tags migrate to Salesforce either as a multi-select picklist field on Lead and Contact (recommended for fewer than 150 unique tags) or as Campaign Membership records linked to a tag-equivalent Salesforce Campaign. The customer selects the strategy during scoping.
Salesforce Marketing Cloud Account Engagement
Static List
Salesforce Sales Cloud
Campaign (Static)
1:1Pardot Static Lists segment Prospects for targeted campaigns. We export list memberships as Prospect records per list and create corresponding Salesforce Campaigns with Campaign Members populated from the Prospect-to-Contact mapping. Each Campaign preserves the original Pardot list name and creation date. Campaign Member Status values are mapped from Pardot list subscription status.
Salesforce Marketing Cloud Account Engagement
Dynamic List
Salesforce Sales Cloud
Campaign (Recipients need manual re-population)
lossyPardot Dynamic Lists are rule-based segments that evaluate Prospect records at send time. These rules are not exportable because they reference internal Pardot IDs and evaluation logic that does not exist in Salesforce. We document every Dynamic List definition (rule criteria, operators, field references) in a written inventory. Salesforce Campaigns with equivalent audience logic must be rebuilt using Salesforce Reports or Flow criteria.
Salesforce Marketing Cloud Account Engagement
Email Template
Salesforce Sales Cloud
Email Template
1:1Pardot Email Templates contain HTML content, dynamic content blocks, and merge fields in Pardot syntax (%%first_name%%). We export template HTML and metadata. Merge field syntax is rewritten from Pardot double-brace format to Salesforce merge syntax ({{!Contact.FirstName}}) during the export transform. Dynamic content blocks with conditional branching require manual review and reconstruction in Salesforce Content Builder because the conditional logic structure differs from Pardot dynamic content.
Salesforce Marketing Cloud Account Engagement
Campaign
Salesforce Sales Cloud
Campaign + Campaign Member
1:1Account Engagement Campaigns track marketing initiative performance and link to Salesforce Campaigns via the Pardot-Salesforce Connector. We export Campaign metadata and Prospect-level activity data (opens, clicks, form submissions) per Campaign. Campaign influence data migrates as Campaign Member records with custom fields for engagement metrics (email_opens__c, email_clicks__c, form_submissions__c). Pardot Campaign IDs stored on Prospect records are preserved in a custom field pardot_campaign_id__c.
Salesforce Marketing Cloud Account Engagement
User / Assigned User / Owner
Salesforce Sales Cloud
User
1:1Pardot Users (Assigned Users / Owners) correspond to Salesforce Users who are responsible for Prospect records. We map Pardot user_id to Salesforce user_id by email match during the migration. Any Pardot User without a matching Salesforce User goes to a reconciliation queue for the customer's admin to provision before record import resumes. Active/inactive status is preserved in a custom field pardot_user_active__c.
Salesforce Marketing Cloud Account Engagement
Engagement History (Visitor Activity)
Salesforce Sales Cloud
Campaign Member + Task + Custom Activity Fields
1:1Pardot Visitor Activities track Prospect interactions (email opens, email clicks, form submissions, page views) as historical engagement data. This activity history cannot be imported as native Salesforce objects because Salesforce's activity model (Task, Event) is not structured to receive third-party engagement data at scale. We store engagement metrics as custom fields on Campaign Member (last_email_open_date__c, last_email_click_date__c, total_form_submissions__c, total_page_views__c) and as Activity records (Task with type=Email) for significant engagement milestones. Bulk API 2.0 chunking handles volumes over 500,000 activity records.
Salesforce Marketing Cloud Account Engagement
Form
Salesforce Sales Cloud
Web-to-Lead or Experience Cloud Form (rebuild required)
1:1Pardot Forms capture Prospect data and are tied to Landing Pages and Custom Fields. We export form definitions and field mappings. Form IDs and handler URLs are internal to Account Engagement and must be re-created at the destination. We document every form's field structure, submission logic, and Custom Field mapping as a written specification for the customer's admin or web team to rebuild using Salesforce Web-to-Lead, Experience Cloud forms, or Marketing Cloud Engagement forms.
Salesforce Marketing Cloud Account Engagement
Landing Page
Salesforce Sales Cloud
Experience Cloud Site or External Hosting (rebuild required)
1:1Pardot Landing Pages are static web assets hosted within or pointing to Account Engagement. We export page content, layouts, and associated form bindings. Because Landing Pages reference internal Pardot form IDs and tracking domains, they cannot be imported as functional pages in Salesforce. We deliver a written asset inventory with page structure, associated forms, and form field mappings so that the customer's marketing team can rebuild using Experience Cloud, a CMS, or their web agency.
Salesforce Marketing Cloud Account Engagement
Business Unit
Salesforce Sales Cloud
Org + Record Types / Sharing Rules
lossyAccount Engagement Business Units partition Prospect records, Users, and branding within a single Account Engagement account. The Pardot v5 API operates within a single Business Unit scope — there is no endpoint to cross-query all BUs simultaneously. We scope each Business Unit as a separate migration project, export its Prospect records independently, and configure Business Unit-level settings (sender profiles, tracking domains, IP warm-up pools) manually at the destination or as a separate configuration engagement. Sender profiles and tracking domains must be re-created in Salesforce Authentication Settings and Marketing Cloud (if applicable) post-migration.
| Salesforce Marketing Cloud Account Engagement | Salesforce Sales Cloud | Compatibility | |
|---|---|---|---|
| Prospect | Lead or Contact (split required)1:many | Fully supported | |
| Custom Field | Custom Field (__c)1:1 | Fully supported | |
| Scoring Category | Custom Field + Assignment Ruleslossy | Fully supported | |
| Tag | Multi-Select Picklist or Campaign1:many | Fully supported | |
| Static List | Campaign (Static)1:1 | Fully supported | |
| Dynamic List | Campaign (Recipients need manual re-population)lossy | Fully supported | |
| Email Template | Email Template1:1 | Fully supported | |
| Campaign | Campaign + Campaign Member1:1 | Fully supported | |
| User / Assigned User / Owner | User1:1 | Fully supported | |
| Engagement History (Visitor Activity) | Campaign Member + Task + Custom Activity Fields1:1 | Fully supported | |
| Form | Web-to-Lead or Experience Cloud Form (rebuild required)1:1 | Fully supported | |
| Landing Page | Experience Cloud Site or External Hosting (rebuild required)1:1 | Fully supported | |
| Business Unit | Org + Record Types / Sharing Ruleslossy | 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.
Salesforce Marketing Cloud Account Engagement gotchas
Engagement Programs and Automation Rules cannot be exported
Prospect contact volume limits enforced per tier
Email address is the sole unique identifier for Prospect matching
Multi-Business Unit accounts require separate migration scoping
Email Template merge fields use Pardot syntax incompatible with most destinations
Salesforce Sales Cloud gotchas
Workflow Rules and Process Builder are retired
Bulk API batch quota exhaustion during large imports
Storage overage billing is non-obvious
Account-Contact many-to-many relationship mapping
Territory and team member import ordering dependencies
Pair-specific challenges
Migration approach
Discovery and scoping
We audit the source Account Engagement instance across all Business Units, pricing tier, Prospect volume, Custom Field definitions, Scoring Categories, active Engagement Studio programs, Automation Rules, form definitions, Landing Page assets, and engagement history volume. We pair this with a review of the destination Salesforce org: existing Lead and Contact record types, Account structure, Opportunity pipelines, custom field schemas, and Sharing Rules. The discovery output is a written migration scope document that includes the Business Unit enumeration, Prospect-to-Lead-Contact split rule, Custom Field mapping table, and a list of every asset that will migrate versus rebuild.
Schema design and Salesforce custom field provisioning
We pre-create all Salesforce Custom Fields required for the migration before any data import. This includes pardot_prospect_id__c (text) on Lead and Contact, behavioural_score__c and demographic_score__c (number) on Lead and Contact, hs_original_lifecycle__c (text) for audit trail, and any custom fields derived from Pardot Scoring Categories and Tags. We also configure Record Types, Page Layouts, and Sales Processes in the destination org. Schema is deployed into a Salesforce Sandbox first for validation before production migration begins.
Sandbox migration and reconciliation
We run a full migration into a Salesforce Sandbox using production-equivalent data volume. The customer's Salesforce admin and marketing lead review record counts (Prospects in, Leads out, Contacts out, Accounts in, Campaign Members in), spot-check 25-50 random records against the Account Engagement source, and sign off the schema and mapping before production migration begins. Any field type mismatches, validation rule rejections, or lookup resolution failures surface here and are corrected before production.
Pardot merge field rewrite and Email Template export
We export all Pardot Email Templates with HTML content. During the export transform, we rewrite Pardot double-brace merge field syntax (%%field_name%%) to Salesforce merge syntax ({{!Contact.FieldName}}) for Contact fields and ({{!Lead.FieldName}}) for Lead fields. Dynamic content blocks with conditional branching are flagged for manual reconstruction in Salesforce Content Builder. We deliver a written template audit report listing every template, its merge fields, dynamic content usage, and rebuild status.
Production migration in dependency order
We run production migration in record-dependency order: Salesforce Users (validated, not migrated), Accounts (created or matched by domain), Opportunities (created or matched by name and Account), Custom Fields (provisioned), Leads (for Prospects with no existing Salesforce Contact), Contacts (for Prospects linked to existing Salesforce Contacts), Scoring Category values (custom fields), Tags (multi-select picklist or Campaign Members), Static Lists (Salesforce Campaigns), Email Templates (with rewritten merge fields), and engagement history (Bulk API 2.0 with chunking and exponential backoff). Each phase emits a row-count reconciliation report before the next phase begins.
Engagement Studio inventory and Flow rebuild handoff
We deliver the Engagement Studio and Automation Rule inventory document to the customer's Salesforce admin team. This document includes every active program with its trigger type, step-by-step sequence, CRM update actions, wait actions, and a recommended Salesforce Flow equivalent for each step. We do not rebuild Engagement Studio as Salesforce Flow inside the migration scope; that is a separate engagement. We support a one-week hypercare window post-cutover for reconciliation issues.
Platform deep dives
Salesforce Marketing Cloud Account Engagement
Source
Strengths
Weaknesses
Salesforce Sales Cloud
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 Salesforce Marketing Cloud Account Engagement and Salesforce Sales Cloud.
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
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
Salesforce Marketing Cloud Account Engagement 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 Salesforce Marketing Cloud Account Engagement to Salesforce Sales Cloud migration scoping. Not seeing yours? Book a call.
Walk through your Salesforce Marketing Cloud Account Engagement to Salesforce Sales Cloud migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave Salesforce Marketing Cloud Account Engagement
Other ways to arrive at Salesforce Sales Cloud
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.