Marketo Success Series: Programs

Marketo Employee
Marketo Employee

Welcome to the Marketo Success Series! In this series, we partner with Marketo Champions and Champion Alumni to fully explore how some of our most celebrated Marketo experts are using Marketo to drive success. In this edition, Marketo Champions @Jenn_DiMaria2 and @Maarten_Westdo2  teamed up to create a full deep-dive into how they are leveraging Programs.


What Are Programs?


Marketo defines Programs as a single marketing initiative and the container for local assets (like forms, landing pages, etc); however, they’re more than the glue that keeps everything together. They also tie marketing activities to revenue and give quick insights into what’s performing (or maybe more importantly: what’s not).


Why Do You Need It?


“However beautiful the strategy, you should occasionally look at the results.”


The simplest reason? Reporting. But organization is a big deal, too. Back in the day, Marketo didn’t have Programs. Long-term users probably remember how reporting was possible but required manual labor to piece together reports and organize assets; it could easily become the wild west. These days, Programs make a single initiative easy to organize and measure.


You can almost think of Programs as a way to track people’s activity through a mini-funnel. Your main marketing funnel tracks a buyer’s journey and a Program’s funnel (through the use of “statuses”) tracks granular activities that - over time - can be used to push people through your main funnel. Plus, you can quickly identify where people are getting stuck so you can remove any potential barriers to conversion.


How to Use Programs


Program Types


The first step in using Marketo Programs is understanding the five types and when they should be used:


  • Default
    • This is the default setting for all Marketo Programs and can be used for anything from housing operational campaigns (ex: People Processing) to tracking a lead’s flow through a content campaign, like downloading a whitepaper
  • Event
    • Used to house event-specific assets and set the dates of an event (like a trade show, road show or a webinar)
  • Engagement
    • These are Programs designed for nurturing and contain multiple streams and the ability to set individual cadences directly
  • Email
    • Email Programs are useful for one-off blasts where you want all your reporting at a glance (read: pretty dashboards). Email Programs can even be embedded in Default and Event Programs to help keep all your initiatives in one place.
  • InApp (Optional if you purchased the *** module)


Organization (Alternate Title: Why Naming Conventions Are Your Friend)


Before you start building any Programs, you absolutely must decide on a naming convention. Trust me - they may not be a huge deal in the beginning, but you’ll thank your lucky stars in two years if you act now. Why? Because in addition to helping you sort or search quickly, consistent Program names make analysis and comparison easier.


Here’s why:


Example: No Naming Convention (or an inconsistent one)





Example: Standardized Naming Convention





Notice how comparing one Program type to another (and sorting for comparison) is simpler when using a naming convention - and this is only with a small sampling. Imagine what this report would look like if you had hundreds of Programs scrambled together. 


Don’t know where to start? Here’s a formula you can adopt for your organization:


[Abbreviated Program Type]-[4-digit Year]-[2-digit Month]-[2-digit date]-[Program Description]-[Location or Content Type]


Pro Tip: Make sure to check with your CRM administrator to get some alignment on the naming conventions between your CRM and Marketo. Keeping them consistent across platforms will make it easier to find campaigns and ensures you and anyone using the CRM are looking at the same thing.


Acquisition Programs


Before we dive in, it’s worth noting that Acquisition Program (AP) is different than source. A source tells you how a lead first entered your system (ex: list purchase), while an Acquisition Program tells you the first Program (ie: initiative) a lead engaged with. Every lead in your system should have an Acquisition Program, even if that Program is called “Pre-Marketo Acquisition” so you know they came over from another system; otherwise, those records will get attributed to the first Program they interact with, which would be false data.


Half the battle here is knowing how an Acquisition Program is set because it can be either automatic or manual depending on your setup. An Acquisition Program is automatically set if a person converts using a Marketo form on a local landing page (“local” meaning the landing page lives within a Program). But if your Marketo form lives in Design Studio and is embedded on your website, you’ll have to write a local campaign to set the Acquisition Program:








To make things even more exciting, there will come a day when you won’t want a certain Program to get acquisition credit. For example, let’s say you have a Google AdWords campaign pointing toward a whitepaper housed on a Marketo landing page. Best practices dictate that each should have its own Program but the default setup will set the whitepaper Program (that houses the landing page) as the AP.


To change the default process, you’ll need to create an operational Smart Campaign within the Google AdWords Program:










Channels are a more tactical piece of a Program setup. All Programs rely on channel structure for reporting purposes so it’s important to put upfront thought into your setup.


The best way to decide how you want to report on your Program is to first determine your KPIs: what information will help you smarter decisions, faster?


At this point, you can probably guess that you’ll have to choose an appropriate channel before creating a program. For example, a Webinar program is built using the Webinar channel. Examples of other channels might include:


  • Blog
  • Nurture
  • Online Advertising
  • Trade Show
  • Webinar


If you need more help deciding on your channels, another tip is to closely align them with your lead sources.




Once you’ve decided on your channels, your next step is to define any milestones you want to track as people progress. Those milestones are what Marketo calls “statuses”, which allow you to track a person’s flow through each Program (you can think of it like a mini marketing funnel).


Take, for example, a Webinar Channel. You may define specific webinar activities you’d like to track as the following:


  • Invited
  • Registered
  • No Show
  • Attended
  • Attended On-Demand


Note that people can’t move backwards through Program statuses. When you’re setting up your Channels and their statuses, you’ll notice that Marketo requires you to order them (this is called “Steps”):





That’s because we’re only tracking forward momentum with the end goal being success (see below for more information about what that means).


People can, however, move back and forth between statuses with the same step number. This is helpful when a record is intended to switch back-and-forth between statuses instead of progressing.





If you want to report on channel activities in your CRM (we’ll use SFDC as an example), you should create the SFDC campaign from the Setup tab of your Program to make sure the statuses match - Marketo will sync the Program statuses to the SFDC campaign automatically so you can report on the same data in each system:


Program in Marketo:




Coordinating SFDC Campaign:




Once connected, Marketo will automatically change a person’s status in the coordinating SFDC campaign as their status changes within the Program (in other words, you don’t need to include that process as a separate flow step):





One reason why you might not want to connect a Program to your SFDC campaign is because some companies store records only in Marketo until they’re ready to sync to sales. In that case, I still recommend setting up the SFDC campaign from Marketo to ensure the statuses align, then disconnect once you’ve confirmed the sync is complete. At that point, you would have to include the status change as a separate flow step:





Just note that the 1:1 sync doesn’t eat through your API calls, whereas using flow steps to change SFDC campaign statuses does.


Speaking of statuses, these aren’t only useful for tracking activity. You can also trigger off status changes for important operational campaigns like scoring and lead sourcing. For example, if someone’s status changes to Attended in a Program whose name begins with “TS-” (remember when we discussed naming conventions?), then you could consider throwing some points their way for visiting your tradeshow booth.




One of the Marketo’s most powerful features is that it can be customized to fit your business. That concept is best displayed by setting a Program’s “Success”. “Success” simply means is that a person has performed your desired action - that’s it. If you need at-a-glance reporting about whether or not an initiative is working, all you need to do is pull up a report of how many people are in a Program and how many of them have reached your desired “Success” measurement.


You’ll define which statuses are “success” in your Channel setup:





Going back to our Webinar Channel example, you may decide that a Webinar is successful when X number of people have a status of either Attended or Attended On-Demand. When you run your reports, you’ll then be able to quickly answer the question: “Was this Program worth my time and money?”


As always, Marketo allows for further customization. Say your success in a tradeshow channel is defaulted to Visited Booth but your goal for a single tradeshow is to make appointments and follow up with those people later. You can tell Marketo to change the Program success to something like, Requested Contact (if you’ve set this up in your Channels, of course) as part of an operational campaign:





The benefit here is that you continue comparing apples to apples in your Program reports because you’re always tracking successes (instead of specific activities that vary) from Program to Program.


How to Scale Programs




The best way to quickly spin up any initiative is to create a library of Program templates that can be cloned over and over. Each template should contain all the assets and operational campaigns you use the most so, ideally, the process becomes only a matter of updating the content and pressing “Activate”—especially ideal if you have a bunch of people working on your team who aren’t power users but who need to execute on campaigns.


One of the other amazing things about Marketo programs is the ability to clone them across instances and workspaces. This is great if you have a setup for testing, staging and production. As long as the assets (smart campaigns, email programs, etc.) are included you can import the entire program. Two Important notes though, First is that if fields are being referenced it is important that both instances have these fields available. Secondly you will need to ask Marketo support to connect your instances together, this isn't the case by default, after the connection Marketo can clone your full instance to the new instance once.


Here are some examples of Program templates:





If you need a quick example, Marketo has a bunch of templates in their Program Library that you can import by going to:







For more examples of what you can do to scale Programs, check out Joe Reitz’s Marketo Summit 2017 presentation: Game of Clones. To make Programs truly scalable for any organization, Joe uses one their most powerful features:




Tokens deserve a chapter of their own and luckily, this eBook will cover that in detail. We recommend reading Edward’s chapter later on but did want to mention how important they are if you want to use Programs to their full potential.


At their base level, tokens are what you can pull into an asset to populate data specific to a lead. Marketo has several types of tokens:

  • Global
    • Global tokens are things like your lead’s name, email address, etc.
  • System
    • System tokens are specific to your Marketo instance, like it’s date/time, so you can stamp this information to a lead record when they perform certain actions
  • Program
    • Program tokens are obviously specific to a Program and can be something like the Program name. Like system tokens, they’re useful for stamping to a lead if you’re trying to record historic data.
  • Local
    • Local tokens are also specific to a Program but they’re tokens you define on an individual basis. For example, a webinar Program may have a token called “{{my.WebinarTitle}}” that gets pulled into all the assets so you only have to update that information in one place - perfect for scalability.


We’ll stop there now that you know what’s possible and let you check out the Tokens chapter for more information about how to put them to good use.


Program Reporting


Marketo has a special Programs Performance Report. It’s very basic but it does allow for some quick program overview reports. A cool feature is that reports can be segmented/filtered easily if you have set up tags as we mentioned before.





If you sync your programs with SFDC campaigns, then a good question to ask yourself is: where do I want to report from? That really depends on your organization and maybe a little bit on personal preference. If, for example, you want to visualize some results into dashboards, then you might be better off in salesforce. Marketo, on the other hand, will do a much better job at revenue attribution (First Touch and Multi Touch), which could be a reason to select Marketo as your main reporting tool.

Regardless of which route you take, don’t be surprised if numbers don’t match up completely. This has several reasons and these are things you can lose a lot of time on if you are asked to explain them (and some simply can't be explained).


Take a look at the chapter on reporting for a deep dive.


Period Costs


As mentioned earlier, Marketo allows you to enter Period Costs for your programs. This is crucial if you want to start tracking your spend per channel by adding in revenue results for ROI calculations.


For our international readers, it’s important to know that all period costs are in USD. That also applies to opportunity values, which is the only way successful ROI calculations can be made.


That said, there isn’t a way yet to use the Marketo SFDC integration to sync over the period costs to the Salesforce campaign. Simply also because those don't track costs per campaign per period but just the total costs.

Level 10 - Champion Alumni

Great overview!

Level 3 - Champion Alumni

What a comprehensive, valuable overview. There are some great reminders of best practice in here that busy marketers can easily overlook (or is that just me?) and why keeping this data clean is so important. Bookmarking this for my EOY clean up!

Level 1

Excellent read! Thanks for sharing!

Level 2

Great read! Thanks for sharing. I wish it had more examples on best practices for online advertising programs and how they best setup to sync with SFDC.

Example: do we setup a program for Google AdWords for all leads coming from this channel? If so, the sales team wouldn't really care about the source of the lead but more so about which form the lead filled. Some forms can have different options (request a quote or demo selection in the same field) so it's hard to set a different status.

I'm new to Marketo so maybe it's just a current struggle, not sure if others have the same concern/question.

Thanks again @Will_Harmon2 !