Dev GuideAPI Reference
Dev GuideAPI ReferenceUser GuideProduct feedbackGitHubNuGetDev CommunitySubmit a ticketLog In

Integrate Salesforce DMP

This topic describes how to enable the Salesforce DMP integration in Optimizely Web Experimentation and create new audiences using the Salesforce DMP integration



Krux was acquired by Salesforce and renamed to Audience Studio DMP. Contact your Customer Success Manager for any assistance.

Integrating Optimizely Web Experimentation with the Salesforce data management platform (DMP) lets you create targeted audiences in Optimizely Web Experimentation based on visitor segments in Salesforce. From there, you can run targeted experiments and personalization campaigns.

There are two parts to integrating: enabling Salesforce DMP in Optimizely Web Experimentation and creating a Salesforce DMP audience.

1. Enable Salesforce DMP in Optimizely Web Experimentation

To enable Salesforce DMP, you need two pieces of information: an API key and your namespace. Your Salesforce DMP representative can provide both.

The namespace may be missing for certain legacy Salesforce DMP accounts. The namespace is not essential to the integration, so the integration should still work without the namespace as long as the correct API Key is provided. 



The namespace is defined by Salesforce DMP and usually corresponds with your company name. For example, the namespace for ACME Company might be “acme.” You can find the namespace by looking in local storage on a page where Salesforce DMP is running.

Optimizely Web Experimentation uses the namespace to identify which local storage key to evaluate. For the ACME Company example, the local storage key would be kxacme_segs_partner, but you only need to enter “acme” into the Optimizely Web Experimentation integration setup.

When you have the API key and namespace from Salesforce DMP, here's how to enable the integration:

  1. Go to Settings > Integrations.
  2. Select DMP in the list, and toggle the button to On in the right sidebar.
  3. Enter your DMP log-in credentials (username and password), API key and namespace in the Integration Details.
  4. Click Save.

Now your project is connected with Salesforce DMP, and Optimizely can read the visitor segments defined in your Salesforce DMP account.

The Salesforce DMP integration uses the Salesforce DMP visitor segments defined on your website. Each audience in Salesforce DMP has a unique ID, available in a website cookie. Optimizely Web Experimentation reads the unique ID to match a user on each page-view.

2. Create a Salesforce DMP audience

After you enable the Salesforce DMP integration, you can create Optimizely Audiences (or add Salesforce DMP conditions to current Audiences) based on visitor segments in Salesforce DMP.

  1. Go to Audiences and click Create New Audience.

  2. Enter a name for the new audience in the Name field.

  3. In the Conditions list, click the Salesforce DMP dropdown menu.

  4. Click and drag the Audience Segment condition into the space under Audience Conditions.

  5. Under Audience Conditions, select the options you want from the dropdown menus.
    Here’s an example audience we created:

  6. In DMP, check the box to select each visitor segment you want to set up in Optimizely.

    Here are the visitor segments set up in our example DMP account—note the Optimizely-specific category:

    The dropdown shows only the visitor segments in your DMP account that have a Sub Category of "Optimizely." To expose a DMP segment to Optimizely Web Experimentation, edit the Sub Category field to "Optimizely."

  7. With your audience conditions set, click Save Audience.

Now you'll see your DMP segments in Optimizely Web Experimentation.



The integration does not work on first page load for a visitor. The DMP local storage key is not populated in time for the Optimizely snippet to evaluate it on the visitor’s first-page load.

Troubleshoot issues

Here are a few common questions about the DMP integration.

Does the integration work on first page load for a visitor?

Unfortunately, no. The DMP local storage key is not populated in time for the Optimizely snippet to evaluate it on the visitor’s first-page load.

Why don't I see DMP visitor segments in the Optimizely Web Experimentation audience builder?

If your DMP visitor segments are not showing up in the Optimizely Web Experimentation audience builder, follow these steps:

  1. Re-enter your DMP username and password in the Optimizely Web Experimentation integration settings.
  2. Confirm your API key with your DMP representative and ensure it is entered correctly in the Optimizely settings for the DMP integration.
  3. Confirm that the segments in DMP are set up with Optimizely Web Experimentation as the sub-category. 

How do I see what DMP segments I’m in as a visitor to my site?

  1. Go to Settings > Integrations to your DMP settings to find your namespace.
  2. Look for the DMP local storage key: kx[namespace]_segs_partner. The value for the key should be a comma-separated array that includes the visitor segment IDs for segments that DMP added that visitor to.
  3. If you do not have a namespace, look for the local storage key, kxsegs\_partner.

Why is the DMP visitor segment in local storage, but not the Optimizely experiment?

If you see the DMP visitor segment in localStorage but not the Optimizely experiment, try these steps:

  1. Refresh the page.
  2. Confirm that the DMP namespace is entered correctly in your Optimizely Web Experimentation settings for the DMP integration.
  3. Contact Optimizely support for further assistance.

Why can I not get into DMP visitor segments?

  1. Try enabling a "send a do not track request" instead of setting the DMP visitor segments in local storage, which sets a "kxlastminute_optout=true" flag in local storage.
  2. Check the segment conditions with DMP and how often DMP pushes updates. Contact your DMP representative for help if needed.