Skip navigation
All Places > Marketo Whisperer: Implementation Tips > 2016 > May

In a flow step, you can add a choice “Program Status is” or “Program Status is not”. When you look at the dropdown options, you will only see program statuses that apply to the program the smart campaign lives within. For example, if the smart campaign is inside of a Live Event program, you will only see the program statuses available for the Live Event channel.


However, people sometimes wonder if this choice applies only to those who have that status within the program or if it applies to anyone who has that status in any program with that same channel. After testing, I confirmed that this only applies to the program that the smart campaign lives within. If you have one individual with Registered status in Program A and one individual with Registered status in Program B, a smart campaign built within Program A will only apply to the first individual; it would not apply to the second individual.


In Marketo, there are often multiple ways of designing the same program using one or more smart campaigns, particularly when it comes to nurture. Not all ways of doing things are equal from a performance/efficiency standpoint. I recently had the opportunity to do some testing to confirm which of the variations would be the most efficient and which tradeoffs are worth making.


Note that throughout all of these tests, smart list optimization techniques were applied as described in this earlier blog post.


These tests were run with batches of 20,000 leads to compare overall and average processing time. They were done with a specific campaign objective in mind and, as such, may not be applicable in all situations.


The basic premise of this campaign was that an Interest field was being populated by various actions in the Marketo database. Based on this Interest field, we wanted to check against a list of qualification criteria to update another field, indicating which nurture program and which stream the person should be in. We then wanted to move them into the appropriate stream of the appropriate nurture.


Question 1: Are two triggers triggering off the same action better than one trigger with choices in the flow step?

Even this morning I saw someone suggest on the discussion forums that someone consolidate two identical triggers into one single campaign. I think this is a pretty common viewpoint among Marketo users, even myself. But is it always the best choice? In this particular example, I had several filters on the smart list in addition to the triggers. I ran a test of this variation against a variation in which I moved the qualification criteria into the flow step and combined the two campaigns into one campaign, but using choices and referencing smart lists containing the filters.

Variation A (criteria in SL)

  • Average run time of campaign A: .1557 sec per lead
  • Average run time of campaign B: .2115 sec per lead
  • Summed total processing time for 20,000 records: 7,500 sec

Variation B (criteria in flow with choices)

  • Average run time of combined campaign: .3539 sec per lead
  • Summed total processing time for 20,000 records: 7,077 sec

So, as you can see, the difference is relatively minimal. However, since in Variation A, I can be running two campaigns simultaneously, the total time to complete could be slightly lower. As you add additional flow steps with more choices, however, the performance of Variation A pulls away from the performance of Variation B.


Question 2: If I have shared criteria across multiple campaigns and want to move them into a smart list to make it easier to manage, how much efficiency gain do I lose?

Often times when we're constantly repeating the same criteria over and over again, it can be tempting to pull that criteria into a central smart list to make it easier if we have to update it. But as most Marketo users know, Member of Smart List references do add a little more performance overhead. Is it still worth it? How much performance do we lose? I took the criteria from variation A and moved all of the shared components into a central smart list to test this out. (Note by this point I was doing tests on batches, not triggers, so my baseline comparison will be different from Question 1).

Variation A (criteria in smart campaign)

  • Average run time of campaign A: .2928 sec per lead
  • Average run time of campaign B: .1230 sec per lead
  • Summed total processing time for 20,000 records: 2,394 sec

Variation B (criteria in separate smart list)

  • Average run time of campaign A: .1122 sec per lead
  • Average run time of campaign B: .1385 sec per lead
  • Summed total processing time for 20,000 records: 2,471 sec

As you can see, the additional cost for moving the smart list criteria out into a central smart list was relatively small, so this may be worth doing in cases where you have complex criteria being used over and over and you want to maintain central management.


I'll share some more tests in a few days when I have a little more time to write them up.

What's a control group?

A control group is established in order to facilitate tracking the impact of a marketing campaign. It is executed by selecting a random sample from the target audience and excluding them from the marketing tactic. This allows you to filter out the effect of those individuals who might have purchased anyway as well as the effect of other channels that might be difficult to measure, such as TV or radio advertising.


What are the options for control groups in Marketo?

There are several ways of structuring control groups in Marketo. However, only one approach provides complete capabilities for program-level reporting, so if you want to report in Marketo (particularly in Revenue Explorer), having separate programs is your best choice. The chart below compares the four major approaches:



Lead Custom Field

Static List

Program Status

Separate Program

Can be in multiple control groups at a time





Works for both campaign and tactic-level reporting





Visible in RCA





Usable in all RCA program reporting







To see how this would be executed in Marketo, we will use the example of Campaign A, which will have a control group, and which consists of two marketing tactics: Tactic 1 (an email) and Tactic 2 (a direct mail), each of which will also have a control group. For the purposes of this example, we will set the control group at 10%.


Program Structure

For Campaign A, we create two programs – one to contain the eligible audience and one to contain the control group. We do the same each of the tactics. The channel utilized for the campaign audiences is operational, while the channels utilized for the tactics are selected based on the type of tactic (Email and Direct Mail).

Selecting Control Groups

Selecting control groups is done using Marketo’s random sample functionality, which allows you select a percentage of a target audience defined in a smart list and then take some action.


To select the campaign control group, we define our audience in the smart list and then run a Change Program Status flow action to select a random sample of 10% and add that group to the Campaign Control Group program. The balance of the audience is added to the primary program.


To select the tactic control group, we define our audience in the smart list based on membership in the primary campaign program.

In the flow, we then select another 10% of this remaining audience to pull out into a control group specific to this tactic. The balance is placed in the program that will complete the outbound activity.


The end result with 111 people who are initially eligible for the campaign would look roughly like this:




In reporting, the outbound program and the control group program can be viewed side-by-side for comparison purposes. To facilitate this by ensuring the programs show up next to each other in the reporting, I recommend naming them virtually identically, with the addition of CG at the end to indicate which program is for the control group.


Each program should also be tagged as being a member of that specific campaign:


This will allow you to group the control groups and the active programs to compare success rates and pipeline/revenue generated:

Note: There may be one small flaw here with my operational control group programs not showing up in the Program Opportunity Analysis report. I'm still testing various things to figure out exactly what's making them not show up. I'll update this once I figure out the best approach.


If desired, these programs can be synced to Salesforce using the Salesforce campaign sync.

During an integration with SFDC there are some fields from SFDC which will automatically appear in Marketo which aren't part of the SFDC object visibility rules. (Check out this article for a list of fields). Two of the fields (Email Bounced Date and Email Bounced Reason) which will sync into Marketo are used in SFDC to track whether the email address is valid. These two fields are not connected or integrated with the Marketo Email Invalid and Email Invalid Cause fields. You can use smart campaigns and tokens to set these two fields. Remember to set up data management campaigns to reset the fields if the email address changes.


SFDC Field


Available in Marketo as a Filter in a Smart List

Marketo Token

Email Bounced Date

Date record bounced in SFDC


{{lead.Email Bounced Date}}

Email Bounced Reason

Reason record bounced in SFDC


{{lead.Email Bounced Reason}}


Marketo Field


Available in Marketo as a Filter in a Smart List

Marketo Token

Email Invalid

Marketo recognizes the email address is invalid



Email Invalid Cause

Cause of the email being invalid


{{lead.Email Invalid Cause}}


Here are some additional resources for learning about the Marketo integration with SFDC.

What is a period cost?

Period cost is a Marketo term that refers to the amount spent on a program. This amount is defined by the Marketo user in the Setup tab of a specific program. Information on how to add the period cost can be found on the Marketo Community.


Why do we need period costs?

Period costs are important for reporting in Marketo for a couple of reasons:

  1. The default behavior in Marketo is to only show programs with period costs in Revenue Cycle Analytics (RCA) reporting. If you do not put a period cost in the program Setup tab, you will be missing valuable information from your reports.
    Note that you now have the ability to override this default behavior at the Admin > Channel level as well as at the individual program level if desired. However, there are still other reasons you should include period cost in your programs, as explained below.

  2. The Program Cost Analysis, Program Opportunity Analysis, and Program Revenue Stage Analysis reports in RCA have cost-related options for timeframe – Cost Year, Cost Quarter, and Cost Month.  If you do not associate some kind of cost, even $0, to a specific month, the program will not show up in any reports where
    you use the Program Cost Timeframe dimension. In the Program Opportunity Analysis report, opportunity-related timeframes are available, but in the other
    two, cost timeframe is the only time dimension.
  3. Much of the reporting available in Revenue Cycle Analytics utilizes cost to help analyze the effectiveness of marketing tactics. Metrics like Cost Per New Name, Cost Per Success, and Return on Investment will be meaningless without cost data entered into Marketo.


What costs should be listed as a period cost?

We advise that you capture variable costs in Marketo as period costs. Fixed costs, such as headcount and capital resources, are complex to add in and do not provide a large amount of additional value, since the primary purpose of cost reporting in Marketo is to enable comparisons between programs. By excluding fixed costs from all programs, we can obtain a reasonably accurate comparison without unnecessary work that is better suited to a financial reporting tool.


Variable costs that should be included in Marketo as period costs include agency fees, event sponsorship costs, pay-per-click fees, and any other incremental expenses accrued specifically for the execution of one program.


How should costs be allocated across time?

For variable costs that are accrued at a specific point in time, there are arguments to be made for accumulating the cost in the month it occurred, in the month the marketing activity is launched, or dividing it across all of the months the marketing activity is live. Although it is not as realistic, we advise that you allocate the cost to the month in which it was launched, because there is no other way in which to see the month the program launched in RCA reporting in the three reports that utilize cost timeframe and do not offer membership status timeframes.


Although you can choose to enter multiple period costs within a single month in Marketo, there is no reporting benefit to doing so. The descriptions entered in Marketo are not visible in RCA reporting and you are not able to see the individual costs per month. All of the reports show sums of period costs across the given time period. For this reason, it is simpler for the Marketo user to enter the sum of the costs for that month in one single period cost entry in the Marketo program rather than breaking them
out into multiple entries, which has no effect on reporting.


How should we manage period cost for ongoing programs and/or programs with no variable costs?

For programs with no variable costs, such as most web form and email programs, we advise adding a period cost of $0 or $1. Whether you choose $0 or $1 only impacts what you see in the cost-related columns in reporting. If you select $0, you will see dashes or N/A messages. If you select $1, you will see very large, essentially meaningless numbers or $0 instead.


For ongoing programs, we recommend setting up multiple period costs when you do the initial setup of the program. For example, if I have a web form that will be live on the website for the entire year, when I build the program, I can add 12 period costs of $0 beginning with January. This will ensure that the program’s new names and successes are always available in your monthly and quarterly reports.


What if I do not want to enter period cost manually?

While you can enter period costs manually, it is also possible to populate period cost using the REST APIs for programs. The Update Program API call allows you to pass in cost information to an existing program. You can also create a program via the API using the Create Program API call, at which point you could choose to pass in the cost.

Brian Law

Landing Page Report Tricks

Posted by Brian Law Employee May 2, 2016

The landing page performance report in the analytics area of Marketo is helpful for reporting on the following information:

  • Marketo landing page name
  • Total Views
  • Conversions
  • Conversion rate
  • New names
  • First/Last Activity




Some of the things the report doesn't include are Page URL, Template, Editing Mode and Program. This information can be found in the Design Studio area of Marketo. When you click on Landing Pages you will only see the Page Name, Approved, Mobile Enabled, Templates, Editing Mode and Program. However, when you export the information you will also be able to see the Page URL, Views and Conversions.


Export Example


By the way, you can use the view to approve landing pages in bulk.

Here are some tips on using the Change Owner flow step when you are integrated to SFDC:

  • A record must be synced to SFDC
  • Leads can be changed to Users or Queues
  • Contacts can be changed to Users
  • Contacts cannot be owned by a Lead Queue. If you assign a Contact to a Queue, nothing will happen.
  • The change owner flow step will only change the lead/contact owner.  It isn't configured to change account owners.


If you use the Sync Lead to SFDC flow step and choose the auto assignment rule, if the lead is already in sync and assigned to an owner it should stay the same. The lead owner will not change. You need to use the Change Owner flow step to assign the record to a different owner.