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

In this article
- Adobe Campaign connects to Salesforce through its own CRM connector, documented for Campaign v8 and Campaign Classic v7. You add a Salesforce external account, pick the Salesforce tables to mirror, then move data in workflows with the CRM Connector activity: import, export, import deletions and delete.
- Campaign Standard has no Salesforce connector in Adobe’s documentation (its only CRM integration is Microsoft Dynamics 365), and Adobe now invites Standard customers to move to Campaign v8. If you run Standard, plan the integration together with that move.
- The connector syncs what you build: usually contacts and leads (with accounts) into Campaign, and opt-outs and campaign responses back to Salesforce. Nothing runs until a workflow does, so the schedule, the incremental filter and the reject handling are yours to design.
- Alternatives: the Adobe Experience Platform Salesforce source (when you run AEP), Marketo Engage (if you are still choosing a tool and B2B lead management is the job), an iPaaS or a custom API integration. The quiz below points to the right one.
Jump to
- What an Adobe Campaign Salesforce integration should do
- Which Adobe Campaign version you have decides the route
- How the Campaign CRM connector works
- Your options compared
- How the data flows
- Object and field mapping: what goes where
- How to set it up, step by step
- Pitfalls and how to fix them
- When to go beyond the connector
- Go-live checklist
- Where Gilzor fits
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:
| Version | Salesforce CRM connector | Status | Route to Salesforce |
|---|---|---|---|
| Campaign v8 | Yes: Salesforce.com external account, configuration wizard, CRM Connector workflow activity | Current version, offered as Adobe Campaign Managed Cloud Services | CRM connector; or Experience Platform; or APIs |
| Campaign Classic v7 | Yes, 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 date | CRM connector now; plan it again in the v8 move |
| Campaign Standard | No. Its integrations list names Microsoft Dynamics 365 as the only CRM | Adobe says Standard users are eligible to transition to Campaign v8 | iPaaS 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 connector | Experience Platform route | Marketo Engage instead | iPaaS or custom API | |
|---|---|---|---|---|
| Fits | Campaign v8 or Classic v7, scheduled sync is fine | Companies already running Adobe Experience Platform | Teams still choosing a tool, B2B lead management | Campaign Standard, near-real-time needs, complex rules |
| What syncs | Any Salesforce tables you mirror; exports back to any object | Salesforce into AEP (contacts, leads, accounts, opportunities, campaigns, campaign members and more); AEP audiences into Campaign v8 | Leads, contacts, campaign membership both ways; accounts, opportunities one way | Anything the APIs expose |
| Direction | Both, as separate workflows | Mostly into Adobe; write-back needs another path | Built-in two-way sync | Your design |
| Timing | Workflow schedule | Batch ingestion, then audience sync | Continuous cycles | Event-driven or scheduled |
| Cost level | Included with the Campaign package; build effort in workflows | AEP licenses plus setup | A different Adobe product license | Platform subscription or build cost plus upkeep |
| Limits | No background sync, 30-day deletion window, password-and-token login in Adobe’s console setup guide | Only soft deletes reach AEP; no write-back to Salesforce | Built for B2B lead management rather than high-volume B2C messaging | You 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.
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.
| Salesforce | Adobe Campaign | Direction | System of record |
|---|---|---|---|
| Contact (Id, name, email, phone, mailing country) | Mirrored contact table, then recipient profile | Salesforce → Campaign | Salesforce |
| Lead (Id, name, email, company, status, source) | Mirrored lead table, then recipient profile with a type flag | Salesforce → Campaign | Salesforce |
| Account (Id, name, industry, owner, tier) | Mirrored account table, linked to profiles | Salesforce → Campaign | Salesforce |
| Opportunity (stage, close date, amount) | Only as a segment flag, if needed | Salesforce → Campaign | Salesforce |
| Picklists (lead source, industry, status) | Enumerations | Salesforce → Campaign (enumeration assistant) | Salesforce |
| Email Opt Out on contacts and leads | Email opt-out (denylist) on the profile | Both, with a written precedence rule | Whichever side the unsubscribe happened on |
| Campaign Member (status) or a custom response object | Delivery and tracking logs, summarized | Campaign → Salesforce | Campaign |
| Deleted or merged records | Profiles flagged or removed | Salesforce → Campaign, within 30 days | Salesforce |
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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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




Talk to the people who build it. Tell us about your project and get a free estimate of scope, timeline and cost.
Pitfalls and how to fix them
| Problem | What happens | Fix |
|---|---|---|
| Consent drift | Someone unsubscribes in Campaign, but Salesforce still shows them as opted in, and a rep’s email or the next import re-subscribes them | Export opt-outs at least as often as you import; never let an import clear an opt-out set in Campaign |
| Missed deletions | A record deleted in Salesforce keeps receiving email because the deletions job last ran six weeks ago | Run the deleted-objects import daily; alert if it fails twice |
| Full reloads | Without Automatic index, every run re-reads the whole object and eats API calls and run time | Turn on Automatic index; maintain its date option; filter to the records marketing needs |
| Salesforce API limits | Large imports, unbatched exports and other integrations together exhaust the org’s daily API allocation | Check usage in Salesforce Setup; batch exports; schedule big runs at night; summarize engagement before export |
| Campaign API throughput | Custom jobs calling Campaign v8 directly get HTTP 429 errors; Adobe documents a throughput (TPS) limit on its API layer | Use workflows and batch loads for volume; reserve API calls for unitary updates |
| Duplicates | Exports without the Salesforce ID insert new records; the same email exists as a lead and a contact | Always export with the primary key; decide whether a person is a lead or a contact before sync |
| Picklist mismatch | A new Salesforce picklist value is missing in Campaign, so segments miss people | Re-run the enumeration assistant after Salesforce picklist changes; add it to the admin runbook |
| Login change in Salesforce | Adobe’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 release | Ask 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.
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?
Is the Adobe Campaign Salesforce connector two-way?
Which Salesforce objects can Adobe Campaign sync?
How often does Adobe Campaign sync with Salesforce?
Does Adobe Campaign Standard work with Salesforce?
Should we use Adobe Campaign or Marketo Engage with Salesforce?
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.

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?
Services
Web DevelopmentCustom websites and web apps — front-end, back-end, launch and support.→By company type
Selected projects






The team behind them





