CRM migration

Migrate from Adobe Campaign to Salesforce Sales Cloud

Field-level mapping, validation, and rollback between Adobe Campaign and Salesforce Sales Cloud. We move data and schema; workflows are rebuilt natively in Salesforce Sales Cloud.

Adobe Campaign logo

Adobe Campaign

Source

Salesforce Sales Cloud

Destination

Salesforce Sales Cloud logo

Compatibility

54%

7 of 13

objects map 1:1 between Adobe Campaign and Salesforce Sales Cloud.

Complexity

BStandard

Timeline

5-8 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from Adobe Campaign to Salesforce is a structural data migration with significant platform model differences. Adobe Campaign uses an XML-schema-based data model centered on nms:recipient as the primary profile table with delivery logs split across local and cloud databases in v8's FFDA architecture. Salesforce uses a relational object model with Contacts, Leads, Accounts, and Opportunities. We extract Recipients via workflow-based data exports (bypassing the 100,000-row list ceiling), reconcile BroadLog records from both FFDA databases, and map the split Adobe Campaign recipient to a Contact with opt-in status preserved in a custom field. Delivery templates, campaign metadata, and custom schemas migrate as structured objects. Seed addresses, internal testing workflows, and Adobe-specific dynamic content blocks do not migrate; we deliver a written inventory for admin reconstruction. We do not migrate automations, CRM connectors, or IMS technical operator configurations 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

Adobe Campaign logo

Adobe Campaign

What's pushing teams away

  • Steep learning curve and complex UI require significant internal training investment, pushing smaller teams toward simpler alternatives.
  • High enterprise cost with opaque pricing and per-active-profile billing creates budget pressure, especially as contact lists grow beyond initial contract estimates.
  • Known issues with analytics and reporting lag behind competitor expectations, making performance measurement and campaign attribution harder to surface.
  • API documentation gaps and version-specific restrictions make integrations and automations brittle and difficult to maintain without specialist developer support.
  • Landing page timeouts and slow load times in the web interface frustrate marketers who need to move quickly during campaign windows.

Choosing

Salesforce Sales Cloud logo

Salesforce Sales Cloud

What's pulling them in

  • The AppExchange marketplace with 5,000+ prebuilt apps gives enterprises integrations for nearly every business workflow without custom development.
  • Native Einstein AI for lead scoring, opportunity insights, and predictive forecasting adds intelligence without a separate platform purchase.
  • Territory management, multi-currency support, and advanced forecasting satisfy the needs of complex B2B sales organizations with structured revenue teams.
  • Slack, Tableau, and CPQ are deeply integrated into the core platform, keeping the sales stack unified for teams already in the Salesforce ecosystem.
  • Organizations with a large, established Salesforce implementation choose it because switching costs — integrations, custom code, trained admins — are prohibitive.

Object mapping

How Adobe Campaign objects map to Salesforce Sales Cloud

Each row shows how a Adobe Campaign 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.

Adobe Campaign

Recipient (nms:recipient)

maps to

Salesforce Sales Cloud

Contact

1:1
Fully supported

Adobe Campaign nms:recipient is the primary profile table. Standard fields (email, format preference, address) map directly to Salesforce Contact fields. Custom fields added via schema extension land as custom properties or mapped to custom Contact fields. We set a custom field ac_original_email_format__c to preserve the Adobe Campaign format preference (HTML, text, or none) because Salesforce Contact has no native format equivalent.

Adobe Campaign

Recipient

maps to

Salesforce Sales Cloud

Lead

1:1
Fully supported

Recipients designated as unconverted or marketing-only in Adobe Campaign may map to Salesforce Lead instead of Contact depending on the customer's buyer journey model. We define the routing rule during scoping based on subscription status and campaign engagement history.

Adobe Campaign

Delivery logs (BroadLog)

maps to

Salesforce Sales Cloud

Campaign Member (CampaignMember)

1:1
Mapping required

BroadLog records track every message sent across email, SMS, and push channels. We map them to Salesforce CampaignMember records linked to the migrated Campaign, preserving send date, status (sent, bounced, delivered), and error reason. Aggregate open and click tracking logs map separately to CampaignMember custom fields because Salesforce CampaignMember has no native engagement score fields.

Adobe Campaign

Campaign (nms:campaign)

maps to

Salesforce Sales Cloud

Campaign

1:1
Fully supported

Adobe Campaign Campaign metadata (labels, start and end dates, type, status, budget) maps to Salesforce Campaign. We preserve campaign owner from Adobe Campaign as the Salesforce Campaign OwnerId resolved via User email lookup. Parent-child campaign hierarchy maps to Salesforce Campaign hierarchy natively.

Adobe Campaign

Program (Standard and v8)

maps to

Salesforce Sales Cloud

Campaign (folder hierarchy)

lossy
Fully supported

Adobe Campaign Programs are hierarchical containers for Campaigns in Standard and v8. Folder structure and program labels migrate as Salesforce Campaign records with a Program__c custom field to preserve hierarchy depth. Program-specific permissions do not migrate and must be reconfigured in Salesforce at the destination.

Adobe Campaign

Service (opt-in subscriptions)

maps to

Salesforce Sales Cloud

Campaign + CampaignMember

1:many
Fully supported

Adobe Campaign Services represent opt-in subscription lists (e.g., weekly newsletter, product updates). Each Service maps to a Salesforce Campaign. The subscription relationship between Recipient and Service maps to CampaignMember with Status = Sent and a custom field ac_subscription_date__c carrying the original subscription timestamp.

Adobe Campaign

Delivery template

maps to

Salesforce Sales Cloud

Salesforce Email Template (or Custom Object)

lossy
Fully supported

Adobe Campaign delivery templates (email, SMS, push) contain routing parameters, content blocks, and personalisation tokens. We assess each template for migration: email templates with simple personalisation map to Salesforce Email Templates; templates with dynamic content blocks, conditional logic, or advanced personalisation are documented for rebuild in Marketing Cloud Content Builder or a custom object with Visualforce/Aura rendering.

Adobe Campaign

Custom schema (nms:ext:)

maps to

Salesforce Sales Cloud

Custom Object (__c)

1:1
Fully supported

Adobe Campaign custom tables created via nms:ext: namespace or FDA-linked external schemas require custom extraction logic. We inspect the schema XML to derive the underlying SQL table structure, then map to Salesforce custom objects with equivalent field types. Lookup relationships between custom schemas map to Salesforce lookup or master-detail relationships on the custom object.

Adobe Campaign

Tracking log (NmsTrackingLog)

maps to

Salesforce Sales Cloud

CampaignMember custom fields

1:1
Fully supported

Tracking logs (open, click, bounce events) are stored in NmsTrackingLog. We preserve click-through URLs and timestamped events as CampaignMember custom fields (ac_first_click_date__c, ac_last_click_url__c, ac_bounce_date__c). Aggregate open and click rates are recalculated at the destination; we do not import computed metrics that depend on the source platform's calculation engine.

Adobe Campaign

Control group

maps to

Salesforce Sales Cloud

Campaign (static group)

1:1
Fully supported

Control groups in Adobe Campaign exclude populations from delivery targeting. We extract the exclusion criteria and reapply them as a Salesforce Campaign static group or a CampaignMember records with a control group flag. The rebuild approach is documented for the customer's admin to implement in Salesforce Flow or a list view.

Adobe Campaign

Enumerations

maps to

Salesforce Sales Cloud

Picklist values

lossy
Fully supported

Adobe Campaign enumerations defined in schema XML (e.g., deliveryStatus, gender, subscriptionStatus) may have different internal values in Salesforce. We maintain a value-mapping table keyed by enumeration name and map to Salesforce picklist values during import. Values without a Salesforce picklist match route to a custom picklist field with the original enumeration values preserved.

Adobe Campaign

Workflows

maps to

Salesforce Sales Cloud

Flow (documentation only)

lossy
Mapping required

Adobe Campaign targeting workflows, campaign workflows, and technical workflows can be exported as XML packages. Dynamic content blocks and queryDef expressions frequently break across editions and do not migrate. We deliver a written inventory of every active workflow with its trigger, conditions, actions, and recommended Salesforce Flow equivalent. The customer's admin or a Salesforce partner rebuilds them post-migration.

Adobe Campaign

Seed address

maps to

Salesforce Sales Cloud

Test Contact (documentation)

lossy
Fully supported

Seed addresses are Adobe Campaign internal testing records used for proofing. They are instance-specific and not designed for cross-platform portability. We do not migrate seed addresses and recommend rebuilding proof lists in Salesforce using the customer's test contact set or Salesforce's built-in test sending capability.

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.

Adobe Campaign logo

Adobe Campaign gotchas

High

ACS to ACC schema migration breaks dynamic content blocks

High

Per-active-profile billing counts every imported Recipient

Medium

Technical operator IMS migration mandatory in v8.5+

Medium

v8 FFDA dual-database architecture complicates data mapping

Low

List export ceiling of 100,000 rows requires chunking

Salesforce Sales Cloud logo

Salesforce Sales Cloud gotchas

High

Workflow Rules and Process Builder are retired

High

Bulk API batch quota exhaustion during large imports

Medium

Storage overage billing is non-obvious

Medium

Account-Contact many-to-many relationship mapping

Low

Territory and team member import ordering dependencies

Pair-specific challenges

  • FFDA dual-database splits BroadLog across two export endpoints

    Adobe Campaign v8 writes BroadLog records to both a local PostgreSQL database (for real-time UI queries) and a cloud database (for campaign execution and reporting). There is no single API endpoint that returns the complete, reconciled BroadLog set. We query both databases independently, cross-reference records by broadLogId, and deduplicate before loading to Salesforce CampaignMember. Migrations that query only one database end up with incomplete delivery history. This gotcha is specific to the Adobe Campaign v8 edition and does not apply to Classic v7 or Standard exports.

  • List export ceiling of 100,000 rows blocks direct extraction

    Adobe Campaign Standard's list export feature caps output at 100,000 rows via the Nms_ExportListLimit option. Any recipient export larger than this must use workflow-based data extraction with Load file and Transfer file activities. We configure chunked workflow exports with date-range filters or segment filters to handle unlimited volumes, combine the resulting files, and produce a single consolidated import set for Salesforce. This ceiling applies to Standard; Classic v7 deployments on-premise can use direct database queries to bypass it.

  • Dynamic content blocks and personalisation tokens do not survive cross-platform export

    Adobe Campaign delivery templates contain personalisation tokens, dynamic content blocks, and queryDef expressions that reference Adobe Campaign-specific schema fields and operator syntax. These do not translate to Salesforce Email Templates or Marketing Cloud Content Builder. We identify every template with dynamic content during the pre-migration audit, document its logic, and recommend a rebuild approach (Visualforce email template, Marketing Cloud AMPscript, or Flow-triggered email). Templates with only static content and standard personalisation tokens (e.g., first name) migrate directly.

  • IMS mandatory authentication in v8.5+ breaks legacy API integrations

    Adobe Campaign v8.5 and later require Adobe Identity Management System (IMS) for all API integrations. Legacy technical operators created before this change must be migrated to server-to-server technical accounts via the Adobe Developer Console. We include IMS account migration in the v8 migration scope, verify API connectivity using the new credentials, and confirm that data extraction workflows authenticate correctly before declaring cutover complete. This gotcha is specific to v8.5+ and does not apply to v8.0 through v8.4.

  • Enumerations in schema XML require explicit value mapping

    Adobe Campaign schema enumerations (e.g., deliveryStatus, gender, subscriptionStatus) store internal integer or string values that differ from their display labels. When migrating to Salesforce picklists, we must map both the display label and the internal value, not just the label text. If the destination Salesforce org uses a different picklist structure (e.g., global value set versus local picklist), the mapping must be explicitly rekeyed. We produce a complete enumeration value-mapping table during scoping and validate it against a test import before production migration.

Migration approach

Six steps for a successful Adobe Campaign to Salesforce Sales Cloud data migration

  1. Discovery and edition audit

    We audit the source Adobe Campaign instance across edition (Classic v7, Standard, or v8), recipient volume, active profile count, custom schema inventory, delivery log history depth, active workflows, and technical operator configuration. We identify whether v8 FFDA dual-database extraction is required and whether IMS migration is in scope for v8.5+. The discovery output is a written migration scope, an enumeration value-mapping table template, and a Salesforce edition recommendation based on recipient volume and campaign complexity.

  2. Recipient export via workflow-based extraction

    We configure Adobe Campaign workflow exports using the Load file and Transfer file activities, chunking the export by date range or segment to bypass the 100,000-row list ceiling. For v8 instances, we query both the local and cloud FFDA databases, cross-reference records by broadLogId, and produce a single reconciled recipient set. We run the export into a staging SFTP location, validate row counts against the in-platform count, and flag any recipients that should be classified as suppressed or inactive to avoid unintended Active Profile billing increments at the destination.

  3. Schema design and Salesforce sandbox migration

    We design the destination schema in Salesforce: custom objects for any Adobe Campaign custom schemas, custom fields on Contact and Campaign for Adobe Campaign-specific attributes (format preference, subscription date, bounce reason), Campaign Record Types for different delivery channel types, and picklist values configured from the enumeration value-mapping table. Schema is deployed to a Salesforce Full Copy Sandbox first for validation with production-like data volume. The customer's marketing ops lead reconciles 25-50 recipient records and delivery log samples before production migration begins.

  4. Delivery log and tracking log export

    We export BroadLog records (message send history) and NmsTrackingLog records (open, click, bounce events) from Adobe Campaign. For v8, this requires querying both FFDA databases and reconciling by broadLogId. We chunk the export by campaign date range, produce a per-campaign CSV set, and map each row to Salesforce CampaignMember records with custom engagement fields. Aggregate computed metrics (open rates, click rates) are not imported because they depend on the source platform's calculation engine; we import raw events instead and the destination reports recalculate them.

  5. Production migration in dependency order

    We run production migration in record-dependency order: Salesforce Campaign records first (from Adobe Campaign Programs and standalone Campaigns), then Salesforce Contact records (from Recipients with opt-in status resolved), then Salesforce CampaignMember records (from BroadLog linked to migrated Contacts and Campaigns), then custom object records (from Adobe Campaign custom schemas with lookup relationships resolved), and finally tracking log custom fields (linked to CampaignMember). Each phase emits a row-count reconciliation report before the next phase begins. We freeze Adobe Campaign writes during the cutover window and run a final delta migration of any records modified during the migration window.

  6. Delivery template inventory and workflow handoff

    We deliver a written inventory of every Adobe Campaign delivery template with a classification: migratable (static content, standard personalisation), rebuildable (dynamic content requiring Marketing Cloud AMPscript or Visualforce), or deprecated (references discontinued Adobe-specific features). We also deliver the Workflow inventory document listing every active targeting and campaign workflow with its trigger, conditions, actions, and recommended Salesforce Flow equivalent. We support a one-week hypercare window for reconciliation issues. We do not rebuild Adobe Campaign workflows as Salesforce Flow inside the migration scope; that is a separate engagement.

Platform deep dives

Context on both ends of the pair

Adobe Campaign logo

Adobe Campaign

Source

Strengths

  • Comprehensive multi-channel coverage (email, SMS, push, direct mail, WhatsApp) in a single platform reduces point-solution sprawl.
  • Federated Data Access connectors allow live query of external databases without full data replication.
  • Visual workflow engine with targeting, segmentation, and approval gates handles complex campaign orchestration.
  • XML-schema extensibility allows enterprises to model custom business objects beyond standard CRM profiles.
  • Strong deliverability infrastructure with dedicated IP warming and inbox placement tooling built into Managed Cloud tiers.

Weaknesses

  • Three active editions (Classic v7, Standard, v8) with non-compatible schema structures complicate migrations and upgrades.
  • Per-active-profile licensing means every imported record affects billing, with no concept of a truly inactive record for billing purposes.
  • No published API rate limits and limited bulk REST API coverage means large-scale data extraction requires workflow-based exports.
  • Steep onboarding and specialist skill requirements make internal teams dependent on Adobe partners for routine operations.
  • Analytics and reporting are widely cited as below enterprise expectations, especially compared to Adobe Analytics integration.
Salesforce Sales Cloud logo

Salesforce Sales Cloud

Destination

Strengths

  • Largest enterprise app ecosystem in CRM with 5,000+ AppExchange integrations covering nearly every vertical workflow.
  • Native Einstein AI delivers lead scoring, opportunity insights, and predictive forecasting without a third-party layer.
  • Advanced territory management, multi-currency, and flexible forecasting satisfy complex B2B revenue structures.
  • Deep platform extensibility: Custom Objects, Apex, Flow, and the Metadata API allow full schema customization.
  • Well-documented REST API, Bulk API, and Composite API with published rate limits for programmatic migration.

Weaknesses

  • Pricing model is layered and opaque in practice: per-seat fees plus storage overages, add-on subscriptions, and annual uplifts compound to 30–40% above sticker price.
  • Workflow Rules and Process Builder are deprecated, forcing all orgs onto Salesforce Flow — a migration task that catches many teams by surprise.
  • Steep administrative complexity: meaningful configuration requires a dedicated Salesforce admin or consultant.
  • API rate limits are edition-gated (100k/day base for Enterprise) and easily exhausted by large historical imports without throttling.
  • Data export is exportable via Data Loader but preserving relationship integrity across 30+ objects requires careful ETL sequencing.

Complexity grading

How hard is this migration?

Standard CRM migration. 1 of 8 objects need a mapping; the rest are 1:1.

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across Adobe Campaign and Salesforce Sales Cloud.

  • Object compatibility

    B

    1 of 8 objects need a mapping; the rest are 1:1.

  • 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

    Adobe Campaign: Not publicly documented; throughput limits are contract-specific and enforced at the infrastructure level.

  • Data volume sensitivity

    B

    Adobe Campaign doesn't expose a bulk API — REST + parallelization used for high-volume runs.

Estimator

Estimate your Adobe Campaign to Salesforce Sales Cloud 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 Adobe Campaign to Salesforce Sales Cloud data migrations

Answers to the questions buyers ask most during Adobe Campaign to Salesforce Sales Cloud migration scoping. Not seeing yours? Book a call.

Can't find your answer?

Walk through your Adobe Campaign to Salesforce Sales Cloud migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

Most migrations land between five and eight weeks for accounts under 50,000 Recipients, one Adobe Campaign edition, and straightforward delivery log history. Migrations with v8 FFDA dual-database reconciliation, multiple custom schemas, large BroadLog histories (over 2 million records), or cross-edition scope (Standard plus Classic) move to twelve to twenty weeks because of the dual-database export complexity, custom schema extraction work, and schema validation in a Full Copy Sandbox.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Adobe Campaign.
Land in Salesforce Sales Cloud, 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