5 Marketo Hacks That Will Turn You Into a Marketing Automation Rockstar

Jamie Shanks
Jamie Shanks
Share on email
Share on facebook
Share on linkedin
Share on twitter


Marketo is actually a tremendously powerful rules engine that just so happens to be focused on making your sales funnel perform.

With just a few key commands, you can make Marketo deliver the right data to the right field and salesperson. What you may not realize is that it is how you use these commands that separates the experts from the power users. Here are a few of the secrets of Marketo I have learned over the past five years.

Hack 1: Controller Order Execution with Campaign is Requested

This is a little-used feature for most Marketo users. I barely used it myself until recently when I pondered how to manage rule order execution.

A lot of people use Triggers for data management or lead lifecycle flows. Many of those flows have Wait Steps so that the system or CRM has time to pass data back from other campaigns.

Since Marketo does not have a feature for “Order of Execution” on trigger campaigns, you can get around this by using Campaign is Requested.

Do not rely on setting Wait Steps in every major Trigger campaign, this is a fool’s errand. What you really want is a single trigger listening for “Lead is Created”, and all other workflows listening for an explicit “Request Campaign” from the first or subsequent flows.

Edward Unthank, founder of Etumos has written the most about this system and how you can, and should, use it for central data management and lead lifecycle flows. Let’s start with a simpler application that you can do today in about 30 minutes.

This is the Demographic Scoring Rebuilder. Traditionally, the Demographic Score was never modified, even if the lead’s Job Title changed. And while that does not happen too often, it is helpful to do so for accuracy.

Here is how it works:

  • Demographic Entry—This listens for any new lead or any data value change, then requests each Demographic Scoring Campaign after re-setting the Demographic Score.
  • Scoring Campaign—This only listens for “Campaign is Requested” and the criteria for the score. We never want to waste processor time by running a score on bad Criteria.

Here is what a finished system looks like. The “00” campaign calls 01 and 02 if the lead meets the criteria.

Demographic scoring system

Inside the Trigger campaign, we see that only the leads that meet the correct Industry or Job Titles will flow through here. There is no need to trigger if the Lead does not meet the criteria.

Demographic trigger

The Flow itself should look like this. While it is not necessary to use a Choice Step since we already filtered on Title and Industry, you may find it helpful in case you design a different system or if the data changes rapidly.

Change data value

Once the Trigger calls the next two campaigns, the lead then goes to each scoring campaign. The scoring campaign will also verify that the Lead still meets the criteria.

Again, in this case, we do not need the Choice Step because we are scoring every Title with the same Score. But if you scored Directors differently from Managers, you should have a Choice Step here.


All campaigns should be set to “Run Every Time”.

Hack 2: Date Stamp Lifecycle Stages

When you set up your Lead Lifecycle, a common question from the CMO is “How long did a lead stay in that Stage?” or “When did the lead enter MQL?”

In Marketo, we can track that in two ways:

Method 1: Use the  Revenue Cycle Model

This tracks the entry and exit dates on each Revenue Stage. This is a great way to show month-to-month or quarterly data. Unfortunately, to show this accurately requires Revenue Cycle Explorer. In addition, there is no clear “date stamp” in a field that syncs back to your CRM.

Method 2: Use a Date Stamp

To compensate for the Revenue Cycle Model limitations, you want to add a step to each Stage change campaign. It is simple to set up and enhances your CRM reporting as well.

  1. Create fields in your CRM on Leads and Contacts. Consider if you want something like “MQL Entry Date” and “MQL Exit Date” or just “Entry”. Up to you, but I do both.
  2. Make sure the Field Type is “Date”
  3. Sync these fields to Marketo.
  4. Add a flow step like this to each Stage Change.

Change data value

And make sure that the field can be written to only once using Field Blocking on Flow Step.

Then you can create a table like this:


Note: This tip is from my presentation with Jeff Coveney at the 2015 Marketo Summit. See the full manual.

Hack 3: Favicon

This is one of my favorite tricks. It is surprisingly easy and also one of the seemingly tiny things that make your web team happy.

The favicon is a cute, and somewhat useless icon, that has been around since the early web to differentiate bookmarks. Now they are used as the cute icon in your browser’s tab so you can visually see which site you might be on. The code to embed this icon on any web page is:

<link rel="shortcut icon" href="" type="image/x-icon">

You can do this in Marketo easily as well like so:

<link rel=”favicon” href=””>

Note that the .ico file likes to be at the root of your web directory, although this is not necessary for Marketo. Simply direct your Landing Page Template to your usual favicon or upload it to Marketo—but use the entire URL.

The .ico file itself can be generated at a 16px square from Photoshop or at several sites. I like if you don’t have a designer. It may take 1 to 2 days for the favicon to appear for all visitors to your Marketo Pages. Need to know more?

Hack 4: Comment History System

A frequent request from Sales is to have a history of a Lead’s comments from web form comment boxes. This can be tricky because the usual CRM “Description” field is connected to Marketo’s “Person Notes” field. Placing this on a Form can instantly show any lead what the Salesperson has been saying about them privately.

To avoid that, I use a Comment History system with entirely separate fields for the “History” (display to Sales) and the “Most Recent Comment” (displayed to the Lead).

Step 1: Create two new fields

Comments (or you can use Person Notes/Description)—This field can be in Marketo only if you want.

Lead Comments History—this field should be created in your CRM first.

Step 2: Create Smart Campaigns to manage the history and timestamping

Comment History

Step 3: Create Smart List Triggers

Trigger: “Lead is Created”

Trigger: Data Value Changes= “Comments”, New Value IS NOT EMPTY

Filter: Comments IS NOT EMPTY


Step 4: Workflow to Concatenate the Old and New Comments

The first step time stamps the lead if the history is empty and places Comments in the history.

Change Data Value: Choice 1 IF Lead Comments History IS EMPTY, then Lead Comments History = {{system.dateTime}} {{lead.Comments}}

The second step says if History is already being used, then just append the Comments. This works every time.

Otherwise: Lead Comments History = {{system.dateTime}} {{lead.Comments}} {{lead.Lead Comments History}}

Change Data Value: Comments IS NULL

This final step is important so you can reuse this field again and again on a Form. Otherwise it shows prefill data to the Lead, and we do not want that!

change data value

Naturally this campaign is set to run every time. You can do something similar with just about any Text or String field.

Remember to disable Prefill on the Comments field on the Form as well.

Hack 5: List Import Aliases

Deep within the system in Field Management is a cool little feature called List Import Alias. Each field has this option. You should go in here and find the top 10 or 20 fields that usually get imported via list and give them clear names.

Often a database field will get a weird developer-given name or a non-plain-English name. When a marketer adds this field to a spreadsheet and then uploads it, Marketo has a hard time finding it automatically.

To change the List Import Alias, go to Admin > Field Management > List Import Alias

Record type id

Instead, make life smoother by telling Marketo to expect one or two common names that your team might use. Make sure these are unique and ideally only one name per field. Add this new field name to your spreadsheet Import Template and tell people about it. When they go to import a list, their screen will look like this:

Import list

Here is what to avoid as a List Import Alias:

Field Name List Import Alias    
Record Type ID Marketo_ID

Not sure why you would do this, but mistakes happen.

If you did the above, and someone uploads a spreadsheet with a column name of “Marketo ID” the system will auto-map that name in the Import Wizard. No one will notice and Marketo will overwrite the values in Record Type ID.

Always give a clear List Import Alias name for each field and do not give it one that could be confused for a different field.

Now that you have seen a few of my secret hacks, go and give them a try! But be careful as you test and learn how these tricks work—they are powerful in the right hands, and destructive in the wrong hands.

Learn more Marketo hacks in our Marketo Hacks webinar—watch it now.

Follow Us

Subscribe to our Newsletter

Get our latest blogs direct to your inbox


Subscribe to receive more sales insights, analysis, and perspectives from Sales For Life.