Marketo Program Sync to Salesforce Campaign options for Enterprise

The client would be running many Marketo Programs globally across different regions. At the same time the client was using Salesforce as their CRM and wanted information to be pushed to Salesforce Campaigns. Marketo has several ways to accomplish this. This post will explore the different ways to accomplish this and lay out the pro’s and con’s of each mothod!

Programs in Marketo

Programs are basic building blocks in Marketo. Marketers create Programs to support their marketing activities. For example the Marketo marketing team runs roughly 100 programs per month. A program could be a webinar program or an email send program for example.


  • Typically house the assets for that marketing initiative
  • Have costs
  • Are the basis for program reporting in Marketo
  • Track success which feeds into method by which we give attribution credit
  • Can be organized in reports using naming conventions and tags
  • Can be cloned (i.e. copy paste) for the next initiative

Here is an example of an event Program in Marketo:

event program image

The above Program has everything needed for the event such as 4 different emails, 2 web pages, 2 lists.

Your marketing team will be spending their time in Marketo and will be creating and executing Marketo Programs.

At the same time many enterprise clients use Salesforce Campaigns typically for reporting purposes. Marketo can pass information to Salesforce Campaigns and in some cases back from Salesforce Campaigns to Marketo Programs.

The simplest way is the native Marketo Program sync functionality. This is the recommended way unless there is some reason why this is not workable for the client.

Native program sync

Native Program sync creates a one-to-one bi-directional relationship between the Marketo Program and the Salesforce Campaign.

Here is how you would go about syncing a Marketo Program to a Salesforce Campaign.

To sync a Marketo Program you will first click on this link on the Program Summary tab:


Then we recommend you “Create New” to create the matching Campaign in Salesforce (with create new the Marketo Program statuses will become the Salesforce Member statuses – these statuses must match):


Best practice is to have the Salesforce Campaign name be the same as your Marketo Program name. This will make it simpler to match one ot the other. The name is auto-populated with the Program name facilitating this:


You can also add a description here which gets pushed to Salesforce (see above).

Once you create a new Salesforce Campaign via the above steps it will take about 2 minutes for it to appear in Salesforce.

Once created it will take about 3 additional minutes for the Salesforce Campaign member status values in Salesforce to change from the Default settings to the Program Statuses associated with your Marketo Program.

One the syc is in place the below data passes between Marketo and Salesforce:


Some of the data that passes is bi-directional and some is one-way as designated by the above arrows.

Here is a screenshot of a Salesforce record which shows what data has been updated as a result of actions taken in Marketo:


The blue arrows above show everything that was updated as a result of the Marketo Program sync and adding a lead to that Marketo Program.

And this is the campaign members view in Salesforce:


In the above example I added a lead  to the Marketo Program with a status of attended and they showed up in Salesforce.

Use flow steps to pass Program information to Salesforce

If you don’t want to use native Program sync you can use Marketo Flow Steps to pass information to Salesforce campaigns.

Here is the Marketo Flow Step you would use:


You can:

  • Choose the Salesforce Campaign by name
  • Select a status

This Marketo Flow Step will make a one-time request to add this person to the Salesforce Campaign and set the appropriate status in Salesforce.

Pro’s and Cons of native sync vs. using flow steps to push to Salesforce campaigns:

Here are the pro’s and con’s for native Marketo Program sync:

native sync image

And here are the pro’s and cons for using flow steps in Marketo:

flow step image

Customer examples

Scenario 1 – Native sync

In this example the customer planned to execute marketing activities in Marketo and wanted visibility in Salesforce as well.

Other assumptions:

-The client was ok with Marketo driving what Salesforce Campaigns would be in Salesforce

-The client had a naming convention for Marketo that also worked with Salesforce Campaigns

-The client would report primarily out of Marketo but could report out of Salesforce if needed

In this case the client went with the practice of creating programs in Marketo as needed and using the native sync to create the matching Campaigns in Salesforce. For non-Marketo activities the client created the Program in Marketo and pushed it to Salesforce so the visibility would be in Marketo as well.

Scenario 2 – Flow steps to push information to Campaigns

In this example the client had very large numbers of Salesforce Campaigns. In fact they were uploading Campaigns to Salesforce in very large numbers and these campaigns represented variations in their marketing offer.

Additional assumptions:

  • We did not have the ability to bulk upload Programs to Marketo like they were doing in Salesforce
  • The client relied on the existing method for Salesforce reporting and were not willing to change the Campaign use on the Salesforce side

So this client was able to keep the campaign creation in Salesforce and use Marketo flow steps to push statuses one-way to Salesforce as needed. The client had issues with too much data being pushed over the API initially because they were pushing email sent statuses from Marketo to Salesforce in the ten thousand to one hundred thousand per send volume. We recommended that they only push more meaningful information like email clicked or forms submitted.

Scenario 3 – Native sync and modified Marketo Program structure

In this scenario the client wanted to use the native sync and at the same time could not ensure that each Marketo Program would match a Salesforce Campaign. There could be more or less Salesforce Campaigns desired than the number of Marketo Programs planned.

With client abc there was a situation where there are more Salesforce Campaigns. The client was running a small number or centrally located Marketo Programs and there were a larger number of Salesforce Campaigns by business unit.

In this case what we did was break apart the Marketo Programs to have a “primary program” and any number of shell programs. It is then the shell Programs that would be synced to Salesforce Campaigns.

program sync image 1

In the above example there are 4 Marketo Programs in total of which 3 are synced to Salesforce Campaigns.

With this approach certain functions need to be in the primary Program while other functions are in the shell Program. This table shows how this client split the functionality:

program sync image 2


There are options in terms of how you sync your Marketo Programs to Salesforce Campaigns. Strategically you want to select the best option for your needs given your goals.

adminMarketo Program Sync to Salesforce Campaign options for Enterprise


  1. Kate Miller

    This was VERY helpful as there’s not much info about this I could find. Thank you!

Leave a Comment