Adobe Campaign integrates with Salesforce through Adobe's own CRM (customer relationship management) connector. You create a Salesforce.com external account in Campaign and run a wizard that turns the Salesforce objects you pick into Campaign tables. Then you schedule workflows that import, export or delete records. Adobe documents this connector for Campaign v8 and Campaign Classic v7. It syncs objects such as contacts, leads, accounts and opportunities in both directions.
This Adobe Campaign Salesforce integration guide covers what the connector syncs, what you need, the setup steps and sync design. It also covers the alternatives and the pitfalls, including an authentication change on the Salesforce side that needs attention before December 2026.
How does Adobe Campaign integrate with Salesforce?
There are three main routes, and the native connector is the most direct one.
The connector is part of a package Adobe calls CRM connectors. Adobe describes a dedicated assistant for selecting tables available in the CRM. Sync runs in both directions, so data stays current in each system. Once configured, all syncing runs through a workflow activity called CRM connector.
The second route goes through Adobe Experience Platform (AEP). Experience Platform has a Salesforce source connector. Audiences built in Adobe Real-Time Customer Data Platform (Real-Time CDP) can then reach Campaign through a dedicated destination. That's a fit when Experience Platform is already your profile hub.
The third route is custom: files, application programming interfaces (APIs) or an integration platform between the two systems. It's more work to build but gives you full control.
Why connect them at all? Adobe lists three benefits. Sales and marketing send consistent messages, and email history shows against each contact in the CRM. CRM data also becomes usable on any channel Campaign sends on. In plain terms, sales sees what marketing sent, and marketing can target what sales knows.
What does the Salesforce connector sync?
The connector syncs whichever Salesforce objects you select during setup. Adobe's examples include accounts, opportunities, leads and contacts. Each selected object becomes a table in Campaign, and the CRM connector activity then moves data in one of four ways.
| Operation | What it does | Typical use |
|---|---|---|
| Import from the CRM | Pulls records and chosen fields into the Campaign table | Daily load of new and changed contacts and leads |
| Export to CRM | Inserts or updates Salesforce records from Campaign data | Writing back opt-outs or campaign engagement |
| Import objects deleted in the CRM | Brings in records deleted in Salesforce during a date range | Removing deleted contacts from Campaign targeting |
| Delete objects in the CRM | Deletes Salesforce records by primary key | Rare; usually governed by CRM admins |
Imports can be filtered, sorted and run incrementally. Exports can run in batches for speed. Enumerations (picklists) can also be synchronised, so a Salesforce picklist such as lead status maps to a matching Campaign enumeration.
What doesn't it do? The connector works in batches, not as a real-time event stream. Syncs run when the workflow runs, so schedule them to match how fresh the data needs to be. If you need a sale in Salesforce to trigger an email within seconds, plan an API-based or transactional messaging design instead.
What do you need before you connect Campaign to Salesforce?
Most delays come from access and licensing, not configuration. Check these first:
- The CRM connectors package. Adobe says the feature is available through a dedicated package, so confirm it's provisioned on your Campaign instance.
- A supported API version. Campaign v8's compatibility matrix lists the Salesforce connector at API version 49. The setup screen asks you to pick it.
- A Salesforce integration user. The external account needs a Salesforce login, password and security token. Create a dedicated user with access to the objects and fields you'll sync.
- Secure connections. Adobe states that Campaign CRM connectors only work with a secure URL (https).
- Client console access. Setup happens in the Campaign v8 client console, and Adobe notes you must log off and back on to approve the account.
- A field map. Agree which objects, fields and picklists sync, in which direction, and which system wins when both change.
The last item matters most. A one-page field map signed by the CRM owner and the Campaign owner prevents most of the arguments that follow a go-live.
How do you set up the Salesforce connector in Campaign v8?
Adobe's setup has four stages. None is long, but each depends on the one before.
1. Create the Salesforce external account
In the Campaign explorer, go to Administration, Platform, External accounts and create a new account of type Salesforce.com. Enter the Salesforce login in the Account field, the password and the security token. Adobe says you can ignore the Client identifier field. Select the API version, tick Enable, then log off and back on to the client console.
2. Select the tables to synchronise
Open the Salesforce CRM configuration wizard, choose the Salesforce objects to synchronise and start the process. Campaign generates a schema for each one, which you can check under Administration, Configuration, Data schemas.
3. Synchronise enumerations
Use the "Synchronizing enumerations" link to match each Salesforce picklist with a Campaign enumeration. You can replace all values of a Campaign enumeration with the CRM values. Check the result under Administration, Platform, Enumerations.
4. Build the sync workflows
Create workflows that use the CRM connector activity, one per flow of data. Adobe's example uses Microsoft Dynamics, but the pattern is the same. It imports contacts, reconciles them with existing Campaign data, removes duplicates and updates the database. A typical set covers inbound contacts and leads, inbound accounts, outbound engagement or opt-outs, and a deleted-records sweep.
Our Adobe Campaign implementation guide shows where this work sits in a wider project. It also explains why the data model comes before the connector.
How should you design the sync workflows?
Good sync design is mostly about incremental loads, keys and error handling. Adobe's documentation is specific on each.
Incremental imports
Two fields are mandatory on import. The Salesforce record identifier links records across systems, and Campaign adds it automatically. The last modification date is required for incremental imports.
With the automatic index option, Campaign collects only records changed since the last import. For Salesforce, it uses LastModifiedDate and then SystemModstamp by default. For the generic CRM connector activity, Adobe says you create the option that stores the last import date yourself. It lives under Administration, Platform, Options, in the format yyyy/MM/dd hh:mm:ss.
Filters
CRM filters are stricter than normal Campaign queries. Adobe lists the rules:
- Only one operator type per filtering level.
- No AND NOT operator.
- Comparisons only on empty values or numbers.
- No JOIN comparisons.
- A single field on the left-hand side, not an expression.
Design filters with those limits in mind, or import a wider set and filter inside Campaign.
Exports
Exports insert or update Salesforce records. Adobe warns that you must specify the primary key of the remote table to update records. Without it, data is inserted as new records instead. It's an easy way to create duplicate contacts in Salesforce on the first export run.
Deletions and errors
Salesforce keeps deleted records for a limited time. Adobe cautions that Salesforce elements deleted more than 30 days ago can't be recovered. Run the deleted-objects import well inside that window.
Turn on "Keep the rejections in a file" and "Process errors" in the activity's Behavior tab. The reject transition carries errorSymbol and errorMessage columns for Salesforce. Route them to an alert, or to a retry after a wait.
A worked example
Picture a business-to-business (B2B) team with Salesforce as the system of record. Leads and contacts import every hour using the automatic index, so new sign-ups get a welcome email the same day. Accounts import nightly, because company data changes slowly. Opt-outs and the last email engagement date export back to Salesforce each night, keyed on the Salesforce ID. A weekly workflow imports deleted records and removes them from targeting. Each flow has its own reject file and an owner who checks it.
What are the alternatives to the native connector?
The connector suits most marketing syncs. These options fit when it doesn't.
| Option | When it fits | Main trade-off |
|---|---|---|
| Native CRM connector | Contacts, leads, accounts and opt-outs on a schedule | Batch only; tied to the API version Adobe supports |
| Experience Platform and Real-Time CDP | Salesforce is one of several sources feeding a unified profile | Needs Experience Platform licences; audiences arrive in batches |
| Integration platform or custom APIs | Complex transformations, many systems, or event-driven flows | You own build, monitoring and upkeep |
| Scheduled file exchange | Simple daily extracts through secure file transfer (SFTP) or Amazon S3 | Latency and file handling, but easy to reason about |
The Experience Platform route has its own documented limits. Adobe's Salesforce source connector now requires OAuth 2 client credential authentication, as basic authentication is deprecated. It detects only soft-deleted records, not hard deletes.
On the Campaign side, the Campaign Managed Cloud Services destination needs Campaign 8.4 or higher. By default it activates at most 25 audiences, with up to 20 mapped fields each. It also runs no more often than every three hours.
Custom integrations can use Campaign v8's APIs. Adobe lists SOAP (an older XML-based web services standard) and JavaScript APIs, plus REST APIs, which it highlights for instances migrated from Campaign Standard. File exchange runs through SFTP or Amazon S3 external accounts. If you go this way, budget for monitoring. Integrations fail quietly, and nobody notices until a campaign goes to the wrong people.
Still choosing between platforms rather than wiring them up? Our comparison of Salesforce Marketing Cloud vs Adobe Campaign covers the product-level differences.
What goes wrong with Adobe Campaign and Salesforce integrations?
Most failures trace back to identity, ownership or authentication. These are the ones to plan for.
- Duplicates in Campaign v8 Enterprise, Adobe's Full Federated Data Access (FFDA) deployment. Adobe states that in Enterprise deployments, the Snowflake database doesn't enforce unique keys, so duplicates must be handled by you. Put a deduplication step in every import workflow.
- Duplicates in Salesforce. Exports without a primary key insert rather than update.
- Two masters for one field. If both systems can change email or consent, you need a written rule for which wins. Without one, values flip back and forth on every sync.
- Picklist drift. A new Salesforce picklist value won't appear in Campaign until enumerations are resynchronised, and "Replace" overwrites Campaign values.
- Missed deletions. Deleted records older than 30 days can't be retrieved, so a monthly sweep is too slow.
- Over-syncing. Adobe's data model guidance says Campaign is neither a data warehouse nor a reporting tool. Sync only fields used for targeting, data processes or personalisation.
- Lead and contact overlap. Leads and contacts sync as separate objects. Decide how Campaign treats a person who exists as both.
The authentication change to watch
This one deserves its own warning. Salesforce is retiring the SOAP API login() call, part of its older web services interface. The change covers API versions 31.0 through 64.0 and lands in its Summer '27 release. It tells integration owners to move to OAuth with external client apps. It also says login() is disabled by default for orgs created in Winter '26 and later.
There's a nearer date too. From 1 December 2026, Salesforce says every user who authenticates with SOAP API login() needs the Use Any API Auth user permission.
Why does this matter for Campaign? Campaign v8's compatibility matrix lists the Salesforce connector at API version 49, inside that range. Adobe's setup page asks for a login, password and security token, but it doesn't say which Salesforce authentication call the connector uses.
So ask Adobe Support or your Adobe Transition Manager two questions now. How does the connector authenticate, and what's the plan for Summer '27? If the answer is login(), give the integration user the Use Any API Auth permission before 1 December 2026.
Which approach fits your team?
Match the integration to the job and to who will run it.
- Use the native connector if you mainly need contacts, leads and accounts in Campaign, with engagement or opt-outs written back on a schedule.
- Use the Experience Platform route if Salesforce is one source among several and you already license Real-Time CDP. Our post on Adobe Campaign and Audience Manager integration explains how Real-Time CDP audiences reach Campaign.
- Use an integration platform or custom APIs if transformations are complex or flows must be event-driven. You'll need engineers to support it.
Whichever you pick, the owner matters as much as the tool. Someone has to watch the reject files and fix the mapping when Salesforce admins add fields.
What to do next
Work through this before you book the build:
- Confirm the CRM connectors package is provisioned on your Campaign instance.
- List the Salesforce objects and fields to sync, with direction and the system of record for each.
- Create a dedicated Salesforce integration user with the minimum access needed.
- Ask Adobe how the connector authenticates and how it handles Salesforce's Summer '27 change.
- Decide sync frequency for each flow, including a deleted-records sweep inside 30 days.
- Design reject handling and alerts before go-live.
- Test a full import and export cycle in non-production with realistic volumes.
When you compare implementers, ask each one for a Campaign to Salesforce sync they've run in production and how they handled duplicates. The Adobe Campaign request for proposal (RFP) template asks you to scope each import and export workflow. That means source system, file format, frequency and error behaviour. If the CRM side needs its own specialist, see the Salesforce Sales Cloud partner list.
To shortlist Campaign implementers, start with the Adobe Campaign partner finder, then use compare to view them side by side.
Frequently Asked Questions
Does Adobe Campaign have a native Salesforce connector?
Yes. Adobe provides a Salesforce.com CRM connector for Campaign v8 and Campaign Classic v7, delivered in its CRM connectors package. It creates Campaign tables from the Salesforce objects you choose and syncs them through the CRM connector workflow activity. The v8 compatibility matrix lists the connector at Salesforce API version 49.
Can Adobe Campaign write data back to Salesforce?
Yes. The CRM connector activity has an export operation that inserts or updates Salesforce records from Campaign data, such as opt-outs or a last email engagement date. To update existing records rather than create new ones, the export has to specify the remote table's primary key, which is usually the Salesforce record ID.
How often does the Campaign and Salesforce sync run?
As often as you schedule the workflow. The connector works in batches, so a common pattern is hourly imports for leads and contacts and nightly runs for slower-changing objects. Incremental imports use Salesforce's last-modified fields, so each run collects only changed records. For instant reactions to Salesforce events, an API-based design fits better.
Is the Campaign connector affected by Salesforce retiring login()?
Adobe's documentation doesn't say which authentication call the connector uses, so ask Adobe directly. Salesforce is retiring SOAP API login() for API versions 31.0 to 64.0 in Summer '27, and Campaign's connector is listed at version 49. From 1 December 2026, users who authenticate with login() also need the Use Any API Auth permission.
Can I connect Salesforce to Campaign through Adobe Experience Platform instead?
Yes. Experience Platform has a Salesforce source connector, which now requires OAuth 2 client credentials. Audiences built in Real-Time CDP can then reach Campaign v8, version 8.4 or higher, through the Campaign Managed Cloud Services destination. This route needs Experience Platform licences and runs in batches no more often than every three hours.
Which Salesforce objects can Adobe Campaign sync?
Any object you select in the configuration wizard becomes a Campaign table, and Adobe's examples name accounts, opportunities, leads and contacts. Picklists can be synchronised as Campaign enumerations. Sync only the objects and fields you'll use for targeting, personalisation or data processes, because Campaign isn't designed to mirror your whole CRM.