How It Works

Find out how our solution helps you turn browsers into buyers.


From Shopify to Klaviyo, explore over 80 integrations.


Access guides, troubleshooting, and expert assistance.

About Us

Hear our origin story and meet our team.


Become an official Partner.

Affiliate Program

Learn more about our Affiliate Program.


Explore career opportunities with


See upcoming events we’re hosting or attending.


Got a referral? Let us know here.

Product Support

Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors

Integrate with SalesForce Marketing Cloud

You can integrate your account directly with SalesForce Marketing Cloud.

An integration between and SalesForce Marketing Cloud does three things:

  1. Automatically sends contacts acquired in your account to SalesForce Marketing Cloud into a data extension of your choosing.
  2. Automatically suppresses existing contacts in your SalesForce Marketing Cloud account.
  3. Ability to set up custom filters to sync filters (ie, send leads from different domains to different data extensions or ESPs).

What you’ll need

1. Your Client ID, REST Base URI, and Client Secret. To find those in your SalesForce Marketing Cloud account, click your user icon in the top right, then click Setup.

2. In the left-hand navigation, click Apps > Installed Packages. Then, click New.

3. Give the package a Name and Description, and click Save.

4. Click Add Component.

5. Choose API Integration, and click Next.

6. Choose Server-to-Server, and click Next.

7. Under Contacts > Audiences and List and Subscribers, click Read and Write under both. Under Data > Data Extensions, click Read and Write. Then, click Save.

8. You will find your Client ID, REST Base URI, and Client Secret.

9. We also recommend you create the data extension name you’d like to sync your contacts in SalesForce Marketing Cloud with before finalizing the integration.

To get started

1. Click on Integrations from the left navigation panel in Then, click Available Integrations at the top and choose the Marketing Cloud icon.

2. Paste your Client ID, REST Base URI, and Client Secret. Then, click Connect.

3. Set up JSON Mapping, and click Next. (Refer to “How to Set Up JSON Mapping” in the section below.) Remember: The JSON must contain the ‘email' and ‘created_or_update_at' to continue with the synchronization process—and ‘email', 'suppression_filter_date', and ‘created_or_update_at' for suppression.

4. Set up your Contact Suppression. Once you enable automatic suppression, will sync your regular, opt-in data extension from your ESP and add it to your suppression list. This prevents you from paying for contacts you already have. Once you’ve enabled this option, the sync will run daily at 6 p.m. EST.

You must choose YES to suppress. Then, pick either daily contact suppression (recommended) or one-time suppression and the data extension to suppress from.

Daily contact suppression: This action will load all of your contacts from SalesForce Marketing Cloud into your suppression list and will automatically import new contacts every day into your suppression list.

One time suppression: This action will only run once and load your current SalesForce Marketing Cloud contacts into your suppression list.

You will also need to choose the data extension to suppress from by clicking on the drop-down menu.

When you’re finished, click Next.

4. Click Yes to upload your collected contacts, and choose a data extension to sync them to. Pick a data extension from the drop-down menu to sync contacts to. Your sync contacts will be collected from this point on in real-time. You can also enable 3rd party validation or custom sync options.

If you check the box to enable custom sync options, that will display five options: filter by email domain, full or portion of a landing page URL, landing page domain, state, and referrer URL.

This feature allows you to filter your contacts before you send them to your ESP. For example, you can send all contacts who hit different landing pages to separate data extensions. Or, send all of your California leads to one ESP and Texas leads to another.

Email domain: This field auto-fills/populates with email domains (ex. Gmail, Yahoo Mail, AOL, etc.) from your collected contacts.

Full or portion of a landing page URL: If you’ve put the script on several pages or the entire site, this field allows you to pull out contacts who have only hit Landing Page A or Landing Page B. This option does not auto-populate, so you will have to add in the exact URL.

Landing page domain: If you added script to both and, for example, the landing page domain would be either or This field will auto-populate.

State: This filter allows you to pull out only contacts from one or more states.

Referrer URL: This is the URL the contact comes to your site from.

When you’re finished, click Next.

5. Choose whether or not you want to enable the SalesForce Marketing Cloud integration now. Once you enable the integration, your suppression and collection sync settings will apply and begin. Then, click Finish.

6. Once the integration is complete, you will see the integration date, API details, contact suppression, contact synce (the option to set/change the data extension it’s synced to), and Mapping JSON. You can also Remove the integration from this page at the top.

How to set up JSON Mapping

We automatically include the default JSON mapping for contacts for the fields that SalesForce allows.

Please note that this does not, by default, include all the fields we provide with our contact records (see below for a full list of fields that we include with all contact records). 

You will have to add custom fields in Salesforce for any/all fields we cannot include by default to sync all fields (such as domain, landing page URL, etc).

**Note that all fields except for email must be marked nullable (not required).**

Here are the fields we include automatically for contacts that are synced to Salesforce:

  • email
  • first name (if included in your plan)
  • last name (if included in your plan)
  • referrer

Those fields are included by default in the JSON field as seen here (if these fields are included in your plan):

  • "Email": "%email%",
  • "LastName": "%last_name%",
  • "FirstName": "%first_name%",
  • "LeadSource": "%referrer%"

This JSON section can be used to add, modify, or delete one or more fields for your contacts.

If you add a new field to our JSON, you must first create the field in Salesforce. If the field does not exist in Salesforce and you add it here,  the sync process will fail if and when we try to create the contact in Salesforce.

Here is a list of all the field names that are included with all contact records. Fields with an asterisk are not included by default and you will have to add them manually both in Salesforce and in this JSON mapping in order to sync them from to Salesforce:

  • email
  • first_name (if included in plan)
  • last_name (if included in plan)
  • email_domain*
  • clicked_at*
  • landing_page_url*
  • landing_page_domain*
  • referrer
  • page_title*

Dynamic fields

In addition, these dynamic fields can be included:

  • timestamp: this is the timestamp generated the instant that the contact is created in SalesForce.
  • datetime: generates a Date-Time for the instant the contact is created in SalesForce, this has the format that SalesForce requests for its creation.
  • date: generates a Date the instant a contact is created in SalesForce, which has the format that SalesForce requests for its creation.

Static fields

You can also manually add static fields to the mapping if you want all contacts to include a specific value.

For example, if you had a field called “Editorial_Daily_Opted_In” you could add the static value “yes”. That would look like this:

  "Editorial_Daily_Opted_In": "yes"

For suppression, you must include these in your JSON mapping (in our Integration Settings and in your Salesforce Marketing Cloud environment:

%email% The name of the field in which they save the contact email

%suppression_filter_date% The name of the field containing the creation date of their contacts

%created_or_update_at% The name of the field containing the creation date of their contacts

RECOMMENDATION: If you do not understand JSON mapping, do not edit the default settings.

Change the sync’d data extension

1. To change the data extension you’ve synchronized with, click Integrations > Dots Settings.

2. Click the pencil icon next to Contact Sync. Click Yes next to Upload collected contacts if you haven’t already. Then, choose a new data extension from the dropdown menu. You can also adjust your custom sync options here. Click Save.

Change suppression

1. To change your contact suppression preferences, click Integrations in the left-hand navigation. Then, click the three dots next to the integrated program and select Settings.

2. Click the pencil/edit icon next to Contact Suppression.

3. Click Yes to automatically suppress your contacts.Then, choose whether you want to suppress daily (recommended) or just this one time. Next, choose the Data Extension to suppress from the drop-down menu. When you’re done, click Save.

Remove the integration

1. To remove the integration, click Integrations > Dots Remove.

How to enable or disable the integration

1. You can turn the integration on and off by toggling to Enable/Disable from inside of the integration. Be sure to save your changes.

Sync summary

You can view your daily sync history under Sync Summary on your integration page. It will show you the date, number of completions, if there are any failures, and the number that are in the queue.

To access all of your sync history, click View Full History under Sync Summary. If there’s a failure, it will show the email address, what type of failure has occurred under ESP Feedback, and the date and time of the failure.

If you have questions about the error message, you can contact support at support[at]retention[dot]com.