· 13 min read

Adobe Campaign Salesforce Integration: Connector, Setup and Pitfalls (2026)

Adobe Campaign v8 and Campaign Classic connect to Salesforce through a built-in CRM connector: you mirror the Salesforce objects you need and move records in scheduled workflows. Campaign Standard has no such connector. Below: which version can do what, how the connector works, the alternatives, a setup path and the consent and volume traps.
A workflow canvas of connected campaign steps and a CRM cloud with a database, linked by two-way arrows and a consent shield, illustrating an Adobe Campaign Salesforce integration
Connecting Adobe Campaign and Salesforce?Tell us which Campaign version you run and what marketing and sales need from each other. We’ll map the data flow and consent rules, build the connector workflows or a custom integration, and support it after launch.
Map my Campaign and Salesforce flow

What an Adobe Campaign Salesforce integration should do

The usual setup: sales and service teams keep customers in Salesforce, and the marketing team sends email, SMS and push at scale from Adobe Campaign. Without a link, marketing segments on a stale export, and reps call people who unsubscribed last week.

A useful integration does four jobs:

  • Fresh audiences. Contacts and leads, with the account and owner fields marketing segments on, reach Campaign on a schedule.
  • One consent record. An unsubscribe in either system reaches the other before the next send or the next call.
  • Responses for sales. Who opened, clicked or replied lands in Salesforce, so reps see engagement and campaign reports work.
  • Clean deletes. Records deleted or merged in Salesforce stop receiving messages from Campaign.

It is not a copy of the whole CRM. Campaign tables built for millions of profiles and Salesforce API allocations both punish “sync everything”. Start with the fields a segment or a report actually uses.

Which Adobe Campaign version you have decides the route

“Adobe Campaign” covers three products with different integration options. According to Adobe’s Experience League documentation, as of October 2026:

VersionSalesforce CRM connectorStatusRoute to Salesforce
Campaign v8Yes: Salesforce.com external account, configuration wizard, CRM Connector workflow activityCurrent version, offered as Adobe Campaign Managed Cloud ServicesCRM connector; or Experience Platform; or APIs
Campaign Classic v7Yes, same connector family (the v7 docs point to the v8 guides for Salesforce)Still supported; Adobe documents a transition to v8 and says v7 reaches end of support in the coming years. Check Adobe’s “Products and technical support periods” page for your dateCRM connector now; plan it again in the v8 move
Campaign StandardNo. Its integrations list names Microsoft Dynamics 365 as the only CRMAdobe says Standard users are eligible to transition to Campaign v8iPaaS or custom job; or move to v8 first

Adobe’s compatibility matrices for both v8 and Classic v7 list the Salesforce connector against Salesforce API version 49. That is the API version you pick in the external account.

How the Campaign CRM connector works

The connector ships in a dedicated CRM connectors package, and Adobe notes it only works over a secure (https) URL. There are three parts.

1. The Salesforce external account

In the Campaign Client Console, under Administration, Platform, External accounts, you create an account of type Salesforce.com with a Salesforce login, password, security token and API version. Adobe’s guide says the client identifier can be left empty, and that you log off and back on to finish the setup.

2. The configuration wizard

The Salesforce CRM configuration wizard lets you pick the Salesforce tables to synchronize. Campaign then generates a data schema for each, which you can check under Administration, Configuration, Data schemas. A second assistant synchronizes enumerations: it copies Salesforce picklist values into Campaign enumerations, optionally replacing the existing values.

3. The CRM Connector workflow activity

Data moves only when a workflow runs. The activity has four operations:

  • Import from the CRM. Pick the remote object and fields. The Salesforce record ID is added automatically and links the records. With Automatic index on, each run imports only records changed since the last run, using LastModifiedDate or SystemModstamp.
  • Export to the CRM. Copies a Campaign table to Salesforce. If you set the Salesforce primary key, records are updated; without it, they are inserted. An Export in batches option speeds up large exports.
  • Import objects deleted in the CRM. You give a date range. Adobe warns that for Salesforce, records deleted more than 30 days ago can’t be recovered, so the job must run well within that window.
  • Delete objects in the CRM. Deletes Salesforce records by primary key. Use it rarely, if ever.

The Behavior tab can keep rejects in a file and add a reject transition. For Salesforce, each reject carries an error symbol and message, so you can log failures and retry them from the same workflow.

Your options compared

The connector is the default for v8 and Classic. The other routes fit specific situations:

Campaign CRM connectorExperience Platform routeMarketo Engage insteadiPaaS or custom API
FitsCampaign v8 or Classic v7, scheduled sync is fineCompanies already running Adobe Experience PlatformTeams still choosing a tool, B2B lead managementCampaign Standard, near-real-time needs, complex rules
What syncsAny Salesforce tables you mirror; exports back to any objectSalesforce into AEP (contacts, leads, accounts, opportunities, campaigns, campaign members and more); AEP audiences into Campaign v8Leads, contacts, campaign membership both ways; accounts, opportunities one wayAnything the APIs expose
DirectionBoth, as separate workflowsMostly into Adobe; write-back needs another pathBuilt-in two-way syncYour design
TimingWorkflow scheduleBatch ingestion, then audience syncContinuous cyclesEvent-driven or scheduled
Cost levelIncluded with the Campaign package; build effort in workflowsAEP licenses plus setupA different Adobe product licensePlatform subscription or build cost plus upkeep
LimitsNo background sync, 30-day deletion window, password-and-token login in Adobe’s console setup guideOnly soft deletes reach AEP; no write-back to SalesforceBuilt for B2B lead management rather than high-volume B2C messagingYou own retries, API changes, monitoring

The Experience Platform route. Adobe documents a Salesforce source for Experience Platform that ingests contacts, leads, accounts, opportunities, opportunity contact roles, campaigns, campaign members and account contact relations. Adobe’s documentation says Basic authentication for this source is deprecated and OAuth 2 Client Credential authentication is required. It also says only soft-deleted Salesforce records are detected, not hard deletes.

Experience Platform then sends audiences to Campaign v8 through the Adobe Campaign Managed Cloud Services destination, and a matching source returns Campaign delivery and tracking logs to Platform. It is a strong route if you already run AEP, and an expensive one to buy just for this.

Marketo Engage. If you are still picking a platform and the job is B2B lead scoring and handoff to sales, Marketo’s native sync is a closer fit. Our Marketo Salesforce integration guide covers it.

For smaller teams, the Mailchimp Salesforce integration guide shows the lighter end of the market.

Which option fits you?

Your Campaign version and whether you already run Experience Platform narrow this down fast. Five questions, including what must flow back to Salesforce, give you a route.

Which Adobe Campaign Salesforce route fits?

How the data flows

Split ownership cleanly: Salesforce is the system of record for people and accounts. Campaign is the system of record for deliveries and tracking. Consent is the one field both sides can change, so it needs an explicit rule.

Scheduled workflows, both directions Salesforce (people and accounts) Contacts, leads Accounts, owners Deleted records Recoverable 30 days Email Opt Out Campaign members Adobe Campaign (messaging) Mirrored tables Then Campaign profiles Profile cleanup Stop sending to deletes Opt-outs, tracking Delivery and click logs Import, changed records only Import deleted objects Export: opt-outs, responses Into Campaign (CRM Connector import) Salesforce ID, name, email, phone, country, account, owner, segment fields, consent scheduled; Automatic index on Into Salesforce (CRM Connector export) Email Opt Out, campaign member status, summary engagement fields update by Salesforce ID; rejects to a file
Two imports and one export, each in its own scheduled Campaign workflow. Nothing moves between runs, so the schedule is part of the design.

Object and field mapping: what goes where

This is the minimum set for a working sync. Every extra field should be one that a named segment or report actually uses.

SalesforceAdobe CampaignDirectionSystem of record
Contact (Id, name, email, phone, mailing country)Mirrored contact table, then recipient profileSalesforce → CampaignSalesforce
Lead (Id, name, email, company, status, source)Mirrored lead table, then recipient profile with a type flagSalesforce → CampaignSalesforce
Account (Id, name, industry, owner, tier)Mirrored account table, linked to profilesSalesforce → CampaignSalesforce
Opportunity (stage, close date, amount)Only as a segment flag, if neededSalesforce → CampaignSalesforce
Picklists (lead source, industry, status)EnumerationsSalesforce → Campaign (enumeration assistant)Salesforce
Email Opt Out on contacts and leadsEmail opt-out (denylist) on the profileBoth, with a written precedence ruleWhichever side the unsubscribe happened on
Campaign Member (status) or a custom response objectDelivery and tracking logs, summarizedCampaign → SalesforceCampaign
Deleted or merged recordsProfiles flagged or removedSalesforce → Campaign, within 30 daysSalesforce

Two habits keep the mirror clean. First, key everything on the Salesforce record ID, not on email: contacts and leads share addresses, and a person can exist as both.

Second, summarize engagement before export. Writing every open and click to Salesforce as its own record burns API calls and storage; a status per campaign member plus a few “last engaged” fields is what reps actually read.

How to set it up, step by step

With the CRM connector, the data contract comes before the external account, and deletions get their own workflow before the first export. Screens differ between Campaign builds, so keep Adobe’s Experience League guides open for yours.

  1. Confirm your version and packageCampaign v8 or Classic v7, with the CRM connectors package installed. On Campaign Standard, stop here and decide between a custom flow and the move to v8.
  2. Write the data contractWhich Salesforce objects and fields marketing segments on, which consent field wins in which case, and what goes back to Salesforce. One page, signed off by marketing ops and the Salesforce admin.
  3. Create a dedicated Salesforce integration userGive it API access and read access only to the objects and fields in the contract. Add edit rights on the few fields Campaign writes. Supported editions come with a limited number of Salesforce Integration user licenses for this purpose. Generate its security token.
  4. Connect a sandbox firstIn the Campaign Client Console, add a Salesforce.com external account pointing to a Salesforce sandbox. Enter the login, password, security token and the API version from Adobe’s compatibility matrix. Enable it, then log off and on.
  5. Run the configuration wizardSelect only the tables in your contract. Check the generated schemas, then run the enumeration assistant for the picklists you segment on.
  6. Build the import workflowScheduler, CRM Connector (import), then dedup and update of Campaign profiles. Create the text option for Automatic index by hand under Administration, Platform, Options, and filter out records you must not message.
  7. Build the deletions workflowA daily CRM Connector import of deleted objects for the last few days, which flags or removes matching profiles. Daily runs keep you far inside the 30-day window.
  8. Build the export workflowCollect opt-outs and summarized responses, then CRM Connector (export) with the Salesforce ID as primary key so records update instead of duplicating. Turn on Export in batches and reject handling.
  9. Test real scenariosTry a new lead, a converted lead, a merged contact and a deleted record. Add an unsubscribe in each system, a picklist value Campaign doesn’t know, and a bulk update of 50,000 records.
  10. Switch to productionRepeat the external account against production, run the first full import outside business hours, then turn on the schedules and watch rejects for two weeks.

Built by Gilzor

Results we’ve shipped

70+products launched
98%delivered on time
85%clients come back
Art Scherbakov, Co-FounderAndrew Laminsky, CTOYuri Rudenya, Head of Mobile Development at GilzorAlena Timofeeva, Product Marketing Lead

Talk to the people who build it. Tell us about your project and get a free estimate of scope, timeline and cost.

See how we’d approach yours

Pitfalls and how to fix them

ProblemWhat happensFix
Consent driftSomeone unsubscribes in Campaign, but Salesforce still shows them as opted in, and a rep’s email or the next import re-subscribes themExport opt-outs at least as often as you import; never let an import clear an opt-out set in Campaign
Missed deletionsA record deleted in Salesforce keeps receiving email because the deletions job last ran six weeks agoRun the deleted-objects import daily; alert if it fails twice
Full reloadsWithout Automatic index, every run re-reads the whole object and eats API calls and run timeTurn on Automatic index; maintain its date option; filter to the records marketing needs
Salesforce API limitsLarge imports, unbatched exports and other integrations together exhaust the org’s daily API allocationCheck usage in Salesforce Setup; batch exports; schedule big runs at night; summarize engagement before export
Campaign API throughputCustom jobs calling Campaign v8 directly get HTTP 429 errors; Adobe documents a throughput (TPS) limit on its API layerUse workflows and batch loads for volume; reserve API calls for unitary updates
DuplicatesExports without the Salesforce ID insert new records; the same email exists as a lead and a contactAlways export with the primary key; decide whether a person is a lead or a contact before sync
Picklist mismatchA new Salesforce picklist value is missing in Campaign, so segments miss peopleRe-run the enumeration assistant after Salesforce picklist changes; add it to the admin runbook
Login change in SalesforceAdobe’s Client Console guide sets up the external account with a password and security token, and Salesforce has announced that the SOAP API login() call (API versions 31.0 to 64.0) retires with the Summer ’27 releaseAsk Adobe support now how your connector authenticates and what changes before Summer ’27; don’t tie the account to a person whose password rotates

When to go beyond the connector

The connector is a scheduled batch tool, and that is fine for most audience syncs. Custom work, or an iPaaS such as MuleSoft, Workato or Boomi, starts to pay off when:

  • You run Campaign Standard and are not moving to v8 yet.
  • A Salesforce event must trigger a message within minutes, for example a closed-won deal starting an onboarding series.
  • Records need filtering, enrichment or approval in transit, under rules you can audit.
  • Several Salesforce orgs feed one Campaign instance.

A typical custom build listens to Salesforce Change Data Capture or Platform Events, queues the changes and writes to Campaign through its SOAP APIs. A nightly reconciliation job acts as a safety net.

Adobe documents Campaign REST APIs as well, but only on demand for FDA environments and not for Enterprise (FFDA) deployments, so check your deployment with Adobe first. If MuleSoft is already your integration layer, see our Salesforce MuleSoft integration guide.

$2–10kSimple one-way custom integration
$10–40kTypical custom two-way sync with a CRM
15–25%Of the build cost per year to keep it running

These build figures, drawn from our API integration cost guide, leave out Adobe and Salesforce licenses. For every other system you might connect to Salesforce, start with the Salesforce integration guide.

Go-live checklist

A wrong consent value here means a message to someone who opted out, so go through this list before the first production send. Check off what is done.

Adobe Campaign Salesforce go-live

FAQ

Does Adobe Campaign integrate with Salesforce natively?
Yes, in Campaign v8 and Campaign Classic v7. Both include CRM connectors with a Salesforce.com external account, a wizard that creates Campaign tables mirroring the Salesforce objects you pick, and a CRM Connector workflow activity that imports and exports records. Campaign Standard’s documentation lists no Salesforce connector; its only CRM integration is with Microsoft Dynamics 365.
Is the Adobe Campaign Salesforce connector two-way?
It can be, but only as two separate flows you build. The CRM Connector activity has four operations: import from the CRM, export to the CRM, import objects deleted in the CRM and delete objects in the CRM. A typical setup runs one workflow that imports contacts and leads into Campaign and another that exports opt-outs and campaign responses back to Salesforce.
Which Salesforce objects can Adobe Campaign sync?
Adobe’s documentation does not publish a fixed list. You choose the tables in the Salesforce CRM configuration wizard, and Campaign generates a matching schema for each. Most projects start with Contact and Lead, add Account for B2B segmentation, and write back to Campaign Member, Task or a custom object for responses.
How often does Adobe Campaign sync with Salesforce?
As often as your workflow runs. There is no background sync: a scheduler in the workflow starts the CRM Connector activity, typically hourly or daily. Turn on the Automatic index option so each run imports only records changed since the last one, based on LastModifiedDate or SystemModstamp in Salesforce.
Does Adobe Campaign Standard work with Salesforce?
Not through a documented connector. Adobe’s list of Campaign Standard integrations names Microsoft Dynamics 365 as the only CRM. Standard customers who need Salesforce data either use an iPaaS or custom job against both APIs, or move to Campaign v8, which Adobe now offers Standard customers as a transition path.
Should we use Adobe Campaign or Marketo Engage with Salesforce?
They solve different jobs. Marketo Engage has a native, near-continuous two-way Salesforce sync built for B2B lead management and sales handoff. Adobe Campaign is built for large-volume, multichannel B2C messaging, and its Salesforce link is a scheduled data integration you design. If you already own one, integrate that one; if you are choosing, start from the job, not the connector.

Where Gilzor fits

With Adobe Campaign, most of the risk sits in the consent rule and the deletions workflow, not in the connector settings. Gilzor, whose software developers work from Poland and Cyprus, builds and maintains Salesforce integrations. With Campaign, we start by mapping the data flow and consent rules with your marketing and Salesforce teams.

We then build the Campaign connector workflows or a custom integration on the Salesforce and Adobe Campaign APIs, and support it after launch. See the Salesforce integration services page for how we scope that work.

No sales pitch

Get a straight answer for your project

Tell us what you’re building. We’ll reply with options, a rough cost and timeline. If we’re not the right fit, we’ll say so.

Next, a few optional questions so the first call is useful. We use your details only to reply to your request. Privacy Policy

Yuri Rudenya
Written byYuri Rudenya

Head of Mobile Development at Gilzor. Leads iOS and Android delivery and the mobile app audits, from release process to architecture.

LinkedIn →

Gilzor · Web Development partner

Need a team for your web product?

95%referred by business partners
70+successful launches
85%repeat business
98%delivered on time

The team behind them

Art Scherbakov
Art ScherbakovCo-Founder
Andrew Laminsky
Andrew LaminskyCTOLinkedIn
Yuri Rudenya
Yuri RudenyaHead of Mobile Development at GilzorLinkedIn
Alena Timofeeva
Alena TimofeevaProduct Marketing LeadLinkedIn
Tell us what you’re buildingOptions, a rough cost and timeline for your project. No commitment.

More insights