CRM migration
Field-level mapping, validation, and rollback between Adobe Campaign and Microsoft Dynamics 365 Sales . We move data and schema; workflows are rebuilt natively in Microsoft Dynamics 365 Sales .
Adobe Campaign
Source
Microsoft Dynamics 365 Sales
Destination
Compatibility
4 of 10
objects map 1:1 between Adobe Campaign and Microsoft Dynamics 365 Sales .
Complexity
BStandard
Timeline
5-8 weeks
Overview
Moving from Adobe Campaign to Microsoft Microsoft Dynamics 365 Sales is a marketing-to-sales platform migration, not a like-for-like replacement. Adobe Campaign organizes data around Recipients, Deliveries, and campaign programs; Microsoft Dynamics 365 Sales uses Contacts, Accounts, Leads, and Opportunities. These schemas do not align natively, which means campaign orchestration logic, delivery logs, and subscription management records require explicit mapping or custom entity design before migration. We pre-build the destination schema in a Dynamics 365 Sandbox, resolve the Recipient-to-Contact or Recipient-to-Lead split based on lifecycle status, preserve Active Profile billing flags in a custom field to prevent downstream billing surprises, and handle Adobe Campaign's list export ceiling of 100,000 rows by configuring chunked workflow-based extraction for large profile sets. Workflows, targeting logic, and delivery automations do not migrate; we deliver a written inventory of every active workflow for the customer's admin to rebuild in Microsoft Dynamics 365 Sales or a companion marketing tool.
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
Adobe Campaign platform overview
Scorecard, SWOT, gotchas, and pricing for Adobe Campaign.
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 Adobe Campaign 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.
Adobe Campaign
Recipient (nms:recipient)
Microsoft Dynamics 365 Sales
Contact or Lead (split required)
1:manyAdobe Campaign Recipients with a known account relationship and engagement history map to Microsoft Dynamics 365 Sales Contact attached to an Account. Recipients that are purely marketing list entries with no sales touch history map to Lead for initial qualification routing. We compute the split using the Recipient's last delivery date, subscription status, and any custom lifecycle field, and preserve the original recipient ID in a custom field ac_recipient_id__c for audit. Extended nms:recipient schema fields migrate as custom Contact or Lead fields; we parse the schema XML to derive the underlying column name before mapping.
Adobe Campaign
Organization (nms:organization)
Microsoft Dynamics 365 Sales
Account
1:1Adobe Campaign Organization records map directly to Microsoft Dynamics 365 Sales Account. Organization name becomes Account Name, and the organization's country or industry sector maps to standard Account fields. The Account is created before any Contact import so that the CustomerId lookup is satisfied at the moment of Contact insert. If the source uses only Recipients without a separate Organization table, we extract the domain from each Recipient email address to group them into Account records during migration.
Adobe Campaign
Delivery (nms:delivery)
Microsoft Dynamics 365 Sales
Campaign + custom delivery field
lossyAdobe Campaign Deliveries have no direct equivalent in Microsoft Dynamics 365 Sales . We create a Microsoft Dynamics 365 Sales Campaign record for each Adobe Campaign delivery, storing the delivery label as Campaign Name, the send date as Start Date, and the delivery status as a custom ac_delivery_status__c picklist field. Total sent count, total opened count, and total clicked count migrate as numeric custom fields on the Campaign. Delivery content (email body, subject line, personalisation tokens) is not migratable; we document the content inventory for the customer's marketing team to rebuild in their chosen campaign execution tool.
Adobe Campaign
BroadLog (delivery logs)
Microsoft Dynamics 365 Sales
CampaignMember + custom entity
1:manyBroadLog records track every message sent per Recipient per delivery. We migrate these as Microsoft Dynamics 365 Sales CampaignMember records linked to the Contact or Lead and the Campaign, with delivery status (Sent, SoftBounce, HardBounce, Delivered) mapped to CampaignMember Status values. v8's FFDA dual-database architecture means BroadLogs may exist in both the local and cloud database; we query both and deduplicate by Recipient ID and delivery ID before inserting into Dynamics. Aggregate open and click rates recalculate in Dynamics from the migrated tracking log data.
Adobe Campaign
Service and Subscription (nms:service)
Microsoft Dynamics 365 Sales
Custom entity (ac_subscription) or Marketing List
lossyAdobe Campaign Services represent opt-in subscription lists with double-opt-in confirmation flows. Microsoft Dynamics 365 Sales has no native subscription management object. We create a custom ac_subscription entity in Dataverse with fields for service name, subscription status (Subscribed, Unsubscribed, Pending), subscription date, and confirmation date, linked to the Contact via a lookup. The customer chooses between a custom entity approach or a Marketing List approach during scoping based on their downstream marketing tool plan.
Adobe Campaign
Program (nms:program)
Microsoft Dynamics 365 Sales
Campaign hierarchy or custom entity
lossyAdobe Campaign Standard and v8 Programs are hierarchical containers for campaigns, workflows, and targeting logic. Microsoft Dynamics 365 Sales Campaigns are flat; no native hierarchy exists. We map top-level Programs to a custom ac_program__c field on Campaign, and if multi-level hierarchy is required, we create a self-referencing lookup on Campaign to model the parent-child structure. Program-specific permissions do not migrate and must be reconfigured in Microsoft Dynamics 365 Sales security roles.
Adobe Campaign
Custom schema (nms:ext: or FDA-linked)
Microsoft Dynamics 365 Sales
Custom entity in Dataverse
1:1Adobe Campaign custom schemas built via schema extension or FDA connectors to external SQL databases require custom extraction logic. We inspect the schema XML during the pre-migration audit to derive the underlying table structure and column types, then design a corresponding custom entity in Microsoft Dynamics 365 Sales Dataverse with matching field types, lookups, and optionsets. Custom entity naming follows the source schema name with a prefix to avoid naming collisions with standard Dynamics objects.
Adobe Campaign
Tracking log (NmsTrackingLog)
Microsoft Dynamics 365 Sales
Custom entity (ac_tracking_log)
1:1Adobe Campaign tracking logs store open events, click events, and URL click-throughs per Recipient per delivery. Microsoft Dynamics 365 Sales has no native tracking log object. We create a custom ac_tracking_log Dataverse entity with fields for Recipient (lookup to Contact), Campaign (lookup to Campaign), event type (Open, Click, Bounce), URL clicked, and timestamp. Click-through URLs and timestamped events migrate for reporting continuity; aggregate open and click rates recalculate in the destination from these individual event records.
Adobe Campaign
Enumerations and picklists
Microsoft Dynamics 365 Sales
Optionsets or picklist fields
1:1Adobe Campaign enumerations defined in schema XML (such as deliveryStatus, gender, format preference) use internal integer values that differ from Microsoft Dynamics 365 Sales optionset labels. We maintain a value-mapping table keyed by enumeration name and map the integer value to the corresponding Dynamics optionset label before insert. Format preference (HTML vs Plain Text) maps to the Contact's email format field if Dynamics supports it, or to a custom ac_email_format__c optionset field.
Adobe Campaign
Workflow (nms:workflow)
Microsoft Dynamics 365 Sales
Not migratable
lossyAdobe Campaign targeting workflows, campaign workflows, and technical workflows are not migratable. Workflow XML packages contain dynamic content blocks, queryDef expressions, and delivery activities that do not map to Microsoft Dynamics 365 Sales or Power Automate equivalents. We deliver a written inventory of every active workflow during scoping, documenting the workflow name, trigger type, query criteria, segmentation logic, delivery actions, and approval gates. The customer's admin or a Dynamics 365 partner rebuilds the workflow logic in Power Automate, Microsoft Dynamics 365 Sales Playbooks, or a dedicated marketing automation tool.
| Adobe Campaign | Microsoft Dynamics 365 Sales | Compatibility | |
|---|---|---|---|
| Recipient (nms:recipient) | Contact or Lead (split required)1:many | Fully supported | |
| Organization (nms:organization) | Account1:1 | Fully supported | |
| Delivery (nms:delivery) | Campaign + custom delivery fieldlossy | Fully supported | |
| BroadLog (delivery logs) | CampaignMember + custom entity1:many | Fully supported | |
| Service and Subscription (nms:service) | Custom entity (ac_subscription) or Marketing Listlossy | Fully supported | |
| Program (nms:program) | Campaign hierarchy or custom entitylossy | Fully supported | |
| Custom schema (nms:ext: or FDA-linked) | Custom entity in Dataverse1:1 | Fully supported | |
| Tracking log (NmsTrackingLog) | Custom entity (ac_tracking_log)1:1 | Fully supported | |
| Enumerations and picklists | Optionsets or picklist fields1:1 | Mapping required | |
| Workflow (nms:workflow) | Not migratablelossy | 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.
Adobe Campaign gotchas
ACS to ACC schema migration breaks dynamic content blocks
Per-active-profile billing counts every imported Recipient
Technical operator IMS migration mandatory in v8.5+
v8 FFDA dual-database architecture complicates data mapping
List export ceiling of 100,000 rows requires chunking
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 source audit
We audit the source Adobe Campaign instance across all active editions (Classic v7, Standard, v8) to capture Recipients, Organizations, delivery history, subscription records, custom schemas, and workflow inventory. For v8 instances, we query both the local and cloud FFDA databases to produce a reconciled profile set. We identify any schema extensions to the nms:recipient table, FDA-linked external tables, and custom enumeration values that require value mapping. The discovery output is a written migration scope, a data volume estimate, and a recommendation on the Recipient-to-Contact-or-Lead split logic based on engagement history.
Schema design and custom entity build
We design the destination schema in a Microsoft Dynamics 365 Sales Sandbox. This includes provisioning custom entities for ac_subscription, ac_tracking_log, and any custom schema equivalents from Adobe Campaign; custom fields on Contact, Lead, Account, and Campaign for Adobe Campaign extended fields and delivery metrics; optionsets for migrated enumeration values; and the campaign hierarchy structure for Programs. We configure the Microsoft Dynamics 365 Sales Campaign object to receive Adobe Campaign delivery metadata. All custom schema is validated against the source field inventory before any data loads begin.
Extraction, deduplication, and value mapping
We extract profile data from Adobe Campaign using the appropriate method for the edition and volume: workflow-based data extraction with chunking for profile sets above 100,000 rows, REST API for smaller sets, or database query against both FFDA tables for v8. We apply the Recipient-to-Contact-or-Lead split logic during extraction, map enumeration values using the value-mapping table, flag Active Profile billing status in a custom field, and deduplicate records across both v8 databases before producing the final export set. The extraction emits a record-count reconciliation report against the source query result.
Sandbox migration and reconciliation
We run a full migration into a Microsoft Dynamics 365 Sales Sandbox using production-equivalent data volume. The customer's CRM administrator reconciles record counts (Accounts in, Contacts in, Leads in, Campaign Members in, Custom entity records in), spot-checks 25-50 random records against the Adobe Campaign source, and validates that the Recipient-to-Contact-or-Lead split produced the expected distribution. Any schema corrections, field mapping adjustments, or value-mapping fixes happen in the Sandbox before production migration begins.
Production migration in dependency order
We run production migration in record-dependency order: custom entity metadata first (so the target schema exists), Accounts (from Adobe Campaign Organizations), Leads and Contacts (with the split applied and AccountId resolved), Campaigns (with delivery metadata from Adobe Campaign deliveries), CampaignMembers (BroadLog records linked to the resolved Contact or Lead and Campaign), ac_subscription records linked to Contact, and ac_tracking_log records linked to Contact and Campaign. Each phase emits a row-count reconciliation report before the next phase begins. We use Microsoft Dynamics 365 Sales Dataverse bulk API operations with batch chunking and exponential backoff on throttling responses.
Cutover, validation, and workflow inventory handoff
We freeze Adobe Campaign writes during cutover, run a final delta migration of any records modified during the migration window, then enable Microsoft Dynamics 365 Sales as the system of record. We deliver the Adobe Campaign workflow inventory document to the customer's admin team with recommended Power Automate or Microsoft Dynamics 365 Sales Playbook equivalents for each workflow requiring rebuild. We support a one-week hypercare window where we resolve any record reconciliation issues. We do not rebuild Adobe Campaign workflows or delivery automations inside the migration scope; that is a separate engagement for the customer's admin or a Dynamics partner.
Platform deep dives
Adobe Campaign
Source
Strengths
Weaknesses
Microsoft Dynamics 365 Sales
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. All 8 core objects map 1:1 between Adobe Campaign and Microsoft Dynamics 365 Sales .
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Adobe Campaign and Microsoft Dynamics 365 Sales .
Object compatibility
All 8 core objects map 1:1 between Adobe Campaign and Microsoft Dynamics 365 Sales .
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
Adobe Campaign: Not publicly documented; throughput limits are contract-specific and enforced at the infrastructure level.
Data volume sensitivity
Adobe Campaign 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 Adobe Campaign to Microsoft Dynamics 365 Sales migration scoping. Not seeing yours? Book a call.
Walk through your Adobe Campaign 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 Adobe Campaign
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.