A Comprehensive Guide to Executable Vs Request Campaigns

Tyron_Pretorius
Level 9 - Champion Level 9 - Champion
Level 9 - Champion

Not quite sure what the difference between a Marketo executable campaign and a Marketo request campaign is and when you should use one over the other? Then you’ve come to the right place. This post will explain the difference, give examples of when each should be used, and also clear up the enigmatic “Use Parent Campaign Token Context” option.

 

Simply put, the difference between Marketo executable and request campaigns is that executable campaigns are executed sequentially while request campaigns are executed in parallel.

 

When 2 Marketo executable campaigns are placed one after another in a smart campaign flow, the first executable campaign will execute all its flow steps BEFORE the second executable campaign executes the first of its flow steps.

 

When 2 Marketo request campaigns are placed one after another, the first request campaign is requested, and then straight afterward the second request campaign is requested and both will carry out their flow steps simultaneously.

So when should you use one over the other?

 

 

Marketo Executable Vs Request Campaign Summary

 

Marketo executable & request campaigns are campaigns that can be called from the flow of other smart campaigns i.e. parent campaigns, to carry out a series of actions. Sharing an executable or request campaign between multiple parent campaigns makes maintenance easier because the shared actions in the executable/request campaign can be changed in one place.

 

Whereas if an executable/request campaign was not used and the same flow actions were placed across all the parent campaigns then if a change needs to be made to the shared actions the change would have to be repeated across all the parent campaigns.

 

  Executable Request
Executed in Series Parallel
Call Webhooks No Yes
Use Delays No Yes
Remove from Flow Removed from child & parent(s) Only removed from child
Called via API No Yes

Summary of the differences between executable and request campaigns in Marketo

When to Use Request Campaigns

 

Tyron_Pretorius_0-1710197262343.pngRequests campaigns executing in parallel

Marketo request campaigns are suited to when you have flows that can execute in parallel and do not depend on one another. For example, when someone is created you can set up 3 Marketo request campaigns:

  • One request campaign to set their attribution fields
  • Then right away request a second campaign to set the person’s subscription
  • Then right away request a third campaign to score them according to their demographic and firmographic field values

 

Since the subscription, attribution, and scoring flows do not depend on one another this is a good chance to use Marketo request campaigns because all these flows will complete quicker in parallel than if they were executed sequentially using executable campaigns.

 

When to Use Executable Campaigns

 

Tyron_Pretorius_1-1710197262365.pngExecutable campaigns executing sequentially

 

You should use Marketo executable campaigns when you have flows that depend on one another and each previous flow must be fully executed before the next flow can begin. For example, if we want to decide whether to “Marketing Qualify” or MQL someone then we can set up 3 Marketo executable campaigns to run one after another:

  1. The first executable campaign will score their quality across their demographic and firmographic field values
  2. Next, the second executable campaign will score all their behavior over the past few days
  3. Finally, the third executable campaign will look at their quality score and their behavior score and decide whether the person should become a Marketing Qualified Lead (MQL)

 

In this example, since we need to ensure that both the quality scoring and behavior scoring flows have been executed before we execute the MQL campaign, this is the perfect chance to use Marketo executable campaigns.

 

Use Parent Campaign Token Context Explained

 

Tyron_Pretorius_2-1710197262355.pngSetting the “Use Parent Campaign Token Context” parameter

 

The best way to understand the difference between selecting “True” or “False” for the “Use Parent Campaign Token Context” is to watch the video at the top of this post where I show what happens when a campaign is executed with this value as “True” versus “False”.

 

If “Use Parent Campaign Token Context” is set to “True” then all the tokens below will be taken from the program containing the parent campaign or the parent campaign itself:

  • My Tokens
  • Campaign Tokens
  • Program Tokens
  • Member Tokens
  • Trigger Tokens (if the parent campaign was triggered)

 

Otherwise, if “Use Parent Campaign Token Context” is set to “False” then all these token values will be taken from the program containing the executable campaign or they will be taken from the executable campaign itself (in which case using trigger tokens will be useless because the executable campaign has no trigger).

 

If there does not happen to be a token value present in the executable campaign and “Use Parent Campaign Token Context” is set to “False” then the executable campaign will fall back to using the token value from the parent campaign or the program containing the parent campaign.

 

When to Use Parent Campaign Token Context

 

An example of where you would want to set “Use Parent Campaign Token Context” to “True” is if you have 3 contact sales form fill campaigns each in their own program that all request the same executable campaign to MQL a person and populate the applicable MQL fields:

  1. Contact Sales – Enterprise
  2. Contact Sales – SMB
  3. Contact Sales – Startup

 

In the executable campaign, we want to provide the sales team context on why this person is MQLing through “MQL Source” fields. Therefore, we can set these “MQL Source” fields equal to the {{campaign.name}} or the {{program name}} token and since “Use Parent Campaign Token Context” is set to “True” these values will be populated from the programs containing the contact sales campaigns or the contact sales campaigns themselves.

 

Tyron_Pretorius_3-1710197262336.pngSetting MQL Source fields using parent campaign token context

When Not to Use Parent Campaign Token Context

 

The case where a parent campaign executes a number of executable campaigns for different ad campaigns is a great example of where “Use Parent Campaign Token Context” should be set to “False”.

 

Since each of the executable attribution campaigns uses “My Tokens” from the program that contains them to populate attribution fields we DO NOT want to override these “My Token” values with those from the parent campaign.

 

Tyron_Pretorius_4-1710197262461.pngAttribution My Tokens

Tyron_Pretorius_5-1710197262431.pngExecutable campaigns for attribution

Parent Campaign Token Context Override via API

 

The Marketo API allows you to either schedule or request a smart campaign. In both of these requests, you can pass values for “My Tokens” that will be used instead of the values that are set in the program containing the smart campaign. Similarly, if this scheduled or requested smart campaign then executes an executable campaign with “Use Parent Campaign Token Context” set to “True”, the executable campaign will use the “My Token” values passed from the API.

 

Tyron_Pretorius_6-1710197262464.pngOverriding My Tokens using the API

Creating/Cloning Marketo Executable & Request Campaigns via API

 

When you need to create/clone Marketo executable and request campaigns in bulk or automatically upon some event you can make an API request to the create smart campaign endpoint or the clone smart campaign endpoint in your code or automation tool.

 

To see how these particular API requests can be useful in the real (MOPs) world take a look at the Program Cloning Via API post which shows you how to use the API to clone programs, clone campaigns, and activate/schedule campaigns automatically using Zapier.

 

Now back to creating and cloning Marketo request campaigns. This is pretty straightforward. Once the original smart campaign has the “Campaign is Requested” trigger then you can simply make the API requests linked above to create or clone the program.

The gotcha is for executable campaigns!

 

When creating or cloning Marketo executable campaigns you need to include the “isExecutable” parameter in the body of the request and set this value to “True”. If you do not set this parameter then the created or cloned campaign will not be executable, it will simply be a batch campaign.

 

Tyron_Pretorius_7-1710197262409.pngCreating an executable campaign using the Marketo API

Tyron_Pretorius_8-1710197262421.pngCloning an executable campaign using the Marketo API

N.B. Whether you are cloning a campaign manually or with the API, cloning a trigger campaign to make it executable will not work. You will have to remove the trigger from the campaign being cloned, essentially creating a batch campaign, or you will have to create a new campaign (making sure to select the “Executable” checkbox) with the same filters in the smart list and the same flow steps.

 

Marketo Executable & Request Campaign FAQs

 

What is an executable campaign in Marketo?

 

Marketo executable campaigns are campaigns that can be called from the flow of other smart campaigns i.e. parent campaigns, to carry out a series of actions. All of the actions in the executable campaign will be completed first before returning to the flow of the parent campaign for any remaining actions to be carried out.

 

What is a request campaign in Marketo?

 

Marketo request campaigns are campaigns that can be called from the flow of other smart campaigns i.e. parent campaigns, to carry out a series of actions. The series of actions in the request campaign will be carried out at the same time as the actions in the flow of the parent campaign i.e. they will be carried out in parallel.

 

What is the difference between executable and request campaigns?

 

The difference between executable and request campaigns in Marketo is that executable campaigns are executed sequentially, each action in the campaign will be completed before returning to the parent flow, while request campaigns are executed in parallel along with the actions in the parent flow.

 

Request campaigns are suited to when you have flows that can execute in parallel and do not depend on one another whereas executable campaigns should be used when you have flows that depend on one another and each previous flow must be fully executed before the next flow can begin.

 

Can webhooks be used in an executable campaign?

 

You cannot use webhooks in the flow of an executable campaign. If you need to request a webhook then you can put this webhook in a requestable campaign and then request that campaign from the executable campaign. See the Webhook Guide with Examples post for an example of how to do this.

 

Can wait steps be used in an executable campaign?

You cannot use wait steps in the flow of an executable campaign. This makes sense since you should only be requesting the executable campaign when its actions are ready to be completed. If you need to delay for some reason then you can put this wait step in the flow of the parent campaign that is requesting the executable campaign.

 

Can the Smart List of an executable campaign be empty?

The smart list of an executable campaign can indeed be empty, however, you can add filters to the smart list to limit the people who can qualify for the campaign once it has been requested. As shown in the image below, clicking into the “Execute Campaign” activity in a person’s activity log will show whether they qualified for the executable campaign or not.

 

Tyron_Pretorius_9-1710197262469.pngActivity detail showing “Qualified” parameter

Can anonymous leads qualify for executable and request campaigns?

 

I can confirm from my testing that anonymous leads who become known cannot trigger request or executable campaign flow steps in campaigns they qualified for while anonymous.

 

Can I change an existing campaign to an executable campaign?

 

Unfortunately, once a campaign has been created there is no way to convert it to an executable campaign. This is why it is important when creating a campaign from scratch or cloning an existing campaign that you make sure you check the “Executable” checkbox.

 

Tyron_Pretorius_10-1710197262490.pngSelecting the “Executable” checkbox

 

This question only applies to batch campaigns since campaigns with a trigger cannot be turned into executable campaigns anyway, you would have to remove the trigger first and convert the campaign to a batch campaign.

Can an executable campaign be called across workspaces?

 

Executable campaigns cannot be called across workspaces.

 

How many executable campaigns can be daisy-chained together?

 

You can daisy-chain executable campaigns 3 layers deep e.g. Parent campaign > Executable 1 > Executable 2 > Executable 3.

 

What happens if I use a “Remove from Flow” action within an executable campaign?

 

When you use a “Remove from Flow” action within an executable campaign the person will be removed from the flow of the executable campaign AND the flows of any parent campaigns that called this executable campaign.

If this is problematic then you can:

  • Configure a ‘request campaign’ chain rather than an ‘execute campaign’ chain so that “Remove from Flow” steps do not impact other campaigns
  • Reconfigure the chain of campaigns so that all necessary flow actions happen before any “Remove from Flow” steps occur.

 

Can I execute an executable campaign via API?

 

No. While it is possible to request a request campaign or to schedule a batch campaign using the Marketo API, currently, there is no way to execute an executable campaign via API.

Instead, you should clone the executable campaign, leaving the “Executable” checkbox unchecked, and add a “Campaign is Requested” trigger to the smart list with “Web Service API” as the source. Then you can request this request campaign using the API.

2794
0