Salesforce Marketing Cloud (SFMC) is where many teams build and send email. The Optimove integration lets you plan and execute email campaigns in Salesforce Marketing Cloud, using Optimove's customer segmentation.
Optimove connects to Salesforce Marketing Cloud Email for three things:
- To send your campaign audience and any customer data you choose, right when the campaign runs.
- To trigger Salesforce Marketing Cloud to send the selected email template to that audience, for scheduled and real-time campaigns alike.
- To pull campaign metrics back into Optimove, for individual customers and for the whole campaign.
This guide will walk you through how to connect your Salesforce Marketing Cloud account, personalize your templates, run campaigns and fix the most common setup problems, from gathering your account details to viewing results in Optimove.
How to Set Up the Salesforce Marketing Cloud Email Integration
Gather your Salesforce Marketing Cloud details
Collect this information from your Salesforce Marketing Cloud account. You will submit it with your integration request in Step 3. You will find the External Keys in Email Studio, under Admin → Send Management.
What you need:
- Business Unit(s): The Business Unit(s) you want to connect, if you have more than one.
- Send Classification External Key: Under Send Management → Send Classifications, open your send classification and copy its External Key.
- Delivery Profile External Key: Under Send Management → Delivery Profiles, find the Delivery Profile used by that send classification and copy its External Key.
- Sender Profile External Key: Under Send Management → Sender Profiles, find the Sender Profile used by that send classification and copy its External Key.
- Data Extension folder ID: The folder where Optimove should create the Data Extensions it uses for your campaign audiences.
- Content Builder folder ID(s): The folder(s) holding the email templates you want to sync to Optimove.
-
API credentials: The
clientId,clientSecret,accountIdandsubDomainfrom the Optimove package you install in Step 2. - Email attribute name: The Optimove attribute that holds the customer's email address. Optimove sends this value with every campaign. If the email address is stored on the Salesforce Marketing Cloud side, this attribute can hold a hashed email instead of the plain address.
- If you whitelist specific IPs to access your Salesforce environment, reach out to your Customer Success Manager (CSM) for Optimove's IP list.
Instructions: Find your keys and folder IDs
- In Salesforce Marketing Cloud, open Email Studio.
- Go to the Admin tab.
- Go to Send Management → Send Classifications. Open your send classification and copy its External Key (key 1 of 3).
- Open the send classification. Under Sender Information, note which Sender Profile and Delivery Profile it uses.
- Go to Send Management → Delivery Profiles. Find that Delivery Profile and copy its External Key (key 2 of 3).
- Go to Send Management → Sender Profiles. Find that Sender Profile and copy its External Key (key 3 of 3).
- Choose or create the Data Extension folder. Go to Subscribers → Data Extensions, then right-click the folder and select New Folder.
- Get the Data Extension folder ID. Click the folder. The
categoryIdshows at the bottom of the screen.
- Get your Content Builder folder ID(s). In Content Builder, turn on Show Folders and the ID column. (In Classic Content, the folder ID is the
cidin the page URL.)
Install the Optimove package in Salesforce Marketing Cloud
Optimove connects to Salesforce Marketing Cloud through an Installed Package with a Server-to-Server API Integration component. This package gives Optimove the credentials it needs to run your campaigns, so you must create it before the integration can be set up.
- In Salesforce Marketing Cloud, go to Setup. Under Platform Tools → Apps, select Installed Packages.
- Click New to add a package.
- Give the package a name (for example, Optimove) and click Save.
- Open the package and click Add Component.
- Choose API Integration, then click Next.
- Choose Server-to-Server (OAuth grant type: Client Credentials), then click Next.
- Set the Scope (the permissions the integration needs), then click Save. Select all available scopes. The integration reads and writes Data Extensions, reads your Content Builder email assets, sends emails, and reads tracking events.
After you save, open the API Integration component to find its credentials. Send these values to Optimove:
- clientId and clientSecret: Shown on the API Integration component.
-
subDomain: The first part of your Base URIs (the value before
.auth.marketingcloudapis.com,.rest.marketingcloudapis.com, and.soap.marketingcloudapis.com). It is the same in all three. - accountId: Your Business Unit ID (MID).
Submit your integration request
- In the Optimove Customer Portal, submit the "Salesforce Marketing Cloud Email" request form with the details you gathered in Steps 1 and 2.
Optimove configures the channel
We set up the channel on your instance and load your templates. This usually takes 4-5 business days.
Add your personalization attributes (optional)
Customers are matched between Optimove and Salesforce Marketing Cloud by their Customer ID. There are two ways to personalize the emails you send through this integration:
- Data that already lives in Salesforce Marketing Cloud: For example, subscriber attributes or your own Data Extensions. Salesforce Marketing Cloud fills these in itself, matched by Customer ID. There is nothing to set up in Optimove.
- Data that lives in Optimove: Like First Name, Country, or Lifetime Value. Optimove sends these values together with the audience, as columns in the campaign Data Extension, the moment a campaign runs. You choose which attributes to send yourself in the Optimove UI.
The instructions below apply only if you want Optimove to supply the personalization values. If your personalization data lives in Salesforce Marketing Cloud, you can skip them. Once the channel is live, you can select the customer attributes you want to send yourself.
- In Optimove, go to Settings → Webhook Configuration and open your SFMC email channel.
- In the Attributes picker, select the customer attributes you want to send (for example, First Name, Age, LTV).
- In your Salesforce Marketing Cloud email templates, use these attributes as personalization strings, for example,
%%First Name%%.
Scheduled vs. real-time campaigns: The steps above cover scheduled campaigns, where you pick the attributes to send in the webhook configuration. For real-time campaigns, the personalization fields used in your campaign are sent automatically with each send. There is nothing extra to configure.
See Salesforce's documentation for guidance on personalization strings.
The "Optimove Attributes" Data Extension
You only need this if you use Optimove attributes in your templates. Optimove automatically creates and maintains a Data Extension called Optimove Attributes in your Data Extension folder, and syncs your Optimove attributes into it. This lets you see your Optimove attributes directly in Salesforce Marketing Cloud and use this Data Extension when testing new templates.
Connect multiple Business Units or brands (optional)
You can connect Optimove to multiple Business Units under the same Salesforce Marketing Cloud account.
- In the request form from Step 3, choose Yes under the Multiple Business Units section.
- Fill out the required information for each Business Unit in the details file.
- Tick the details-file upload section and attach the completed file to the request.
Multiple brands in one Business Unit
If you send each brand with its own Send Classification (with its own Sender Profile and Delivery Profile), send us one set of the three External Keys per brand. Each brand then appears in the brand selector when you set up a campaign. If one Send Classification with a dynamic Sender Profile already routes your brands, one set of keys is enough.
Brands in separate Optimove instances
If your brands run in separate Optimove instances, we connect each instance on its own. Submit one request per instance, with the details for that instance.
Test before you go live
Run a few test campaigns against a small test Target Group before you go live.
How the Integration Works
Campaign setup and execution
- In Optimove, create a campaign and select Salesforce Marketing Cloud Email as the execution channel.
- Choose the Business Unit or brand, if you have more than one.
- Choose a template from the synced list.
- Choose your Target Group and, optionally, promo codes.
- Set the send time (scheduled) or the trigger (real-time).
- Scheduled campaigns: At the scheduled time, Optimove sends the Target Group and any personalization data to Salesforce Marketing Cloud, and triggers the send in batches.
- Real-time campaigns: As each customer meets the trigger, Optimove sends that customer and triggers the send individually.
- You can test and preview the campaign before it sends, directly from Optimove.
- Campaign status: Optimove shows the status of each campaign (for example, processing, completed), so you always know where a send stands.
Template syncing
Optimove syncs your email templates and previews on a regular basis. To add or remove templates from Optimove, add or remove them from the connected folder in Salesforce Marketing Cloud.
Campaign metrics
Optimove retrieves delivery, open, click, and unsubscribe metrics from Salesforce Marketing Cloud and shows them in your Optimove campaign reports, alongside your other channels.
- Aggregate metrics: Totals per campaign (for example, 9,500 of 10,000 opened).
- Per-customer metrics: Individual customer engagement, available in Customer 360.
Campaign cancellation
Optimove sends the campaign audience to Salesforce Marketing Cloud at the moment the campaign executes: at the send time for scheduled campaigns, and as each customer meets the trigger for real-time campaigns. Until then, you can remove the campaign from your Optimove marketing plan, and nothing is sent.
Once the campaign is running in Optimove, the audience has already been sent to Salesforce Marketing Cloud. In that case, cancel the send in Salesforce Marketing Cloud manually if the send time has not passed yet.
See Salesforce's documentation for further guidance on this topic.