Chrome Legacy Window 3142016 14404 PM.bmp.jpg

Length Matters: Engagement Programs that Don't Finish Too Quickly...

Marketo Employee
Marketo Employee

Nurture Marketing.  Marketo calls it Engagement Programs. Whatever the case, these are the emails designed to keep us informed while we're evaluating our options or waiting to pull the trigger.

In layman's term, spam.  Gmail calls them "Promotions". We call them "Unrequested Marketing Emails." Whatever you want to call them, they do serve a purpose and I have had truly hearfelt feelgood stories about the impact of Nurture Marketing. I've seen them convince people to get medical care instead of sitting around pretending nothing's wrong. I've seen them convince people to buy.  I've bought several times from good nurturing programs.

The problem with creating a Nurture Program is simple: How do you avoid wasting content?

In marketing terms, length matters. Someone who wants to buy your product in July but won't have budget until January needs to feel special and loved.

You can't finish too early.... You can't run out of emails in September and just hope they remembered you.

With that in mind, this blog will show you, step by step, how to create an Engagement Program that conserves content. If they didn't open your email then maybe your subject lines suck. Try it again with a better subject line that hopefully sucks a lot less.  If you've tried twice and they still didn't open, move on and try your next piece of content.

With this, you're potentially DOUBLING the amount of content you have. You're trying to put a prettier bow on the present in hopes they'll open it.

This document will show you how to create conditional sends in an engagement stream.

As you may know, an Engagement Program will allow you to use programs in the streams. The programs are nice because they allow you to use conditions - IF THEN, etc. The problem is that a lead can only be a member of a program in an engagement stream once, so making conditions that allow a lead to skip a step can be difficult. This guide will show you some steps around that problem in a very scalable way.

This example will use the following situation. You can adapt this to your own needs:

Cast 1: Send Email 1

Cast 2: If Opened Email 1, Send Email 2. If Not, Send Email 1b

Cast 3: If Opened Email 2, Send Email 3. If Sent Email 2, Send Email 2b. If Not Sent Email 2, Send Email 2.

One could create a program like this, continuously building upon the complexity. The first time I built my nurture program, this is what I did. When I was asked to shuffle emails around it was an absolute nightmare.

This is not what we will do. We will create an Engagement Program that is far more scalable, easy to understand and easy to manage.

I am not going to go into philosophy behind Nurture Programs. That is another blog I am working on. This will be purely technical as to how to allow emails to be skipped if a person is not eligible to receive it. In this case, every email has an alternate with a different subject line. If they open the main email they are not eligible to receive the alternate.


I like to keep everything very structured and tidy in my Engagement Programs. To follow my example, build out an EP with the following:


1. Assets

2. Workflows

2a. Add to Nurture

2b. Remove From Nurture

2c. Casts

Create this PROGRAM in Workflows

2d. Master Nurture Program

And these folders:

Assign Emails

Email Tracking

Send Email Logic

Chrome Legacy Window 3142016 14404 PM.bmp.jpg

This blog will not get into Add To Nurture, Remove From Nurture, Emails or Landing Pages in detail.

In the email folder, I have all of my email assets: Email 1, Email 1b. Email 2, Email 2b, Email 3, Email 3b, Email 4, Email 4b, etc.

The first step is to create workflows to Assign Emails. This is very basic and simple.

Smart List: Campaign Is Requested

Flow: Send Email (name of email that corresponds to Smart Campaign name).

Chrome Legacy Window 3142016 14724 PM.bmp.jpg

Why we do this step: A lead can only go through a program once and this is logic we'll want to re-use. Also, an Engagement Program will only send an Email once IF if's defined in the stream or the program in the stream. We're tricking Marketo to not realize it's doing that.

Step 2: Define Success Criteria

For this step, we're going to create a smart list that provides what success looks like. These are the reasons why it would make a lead ineligible for an email.

In this example, we're creating a list of reasons why they would be done with the first group of emails - Email 1 and Email 1b and eligible for Email 2.

If they visited the landing page, or...

If they opened Email 1, or...

If they received Email 1b...

They are eligible for Email 2. Until they do one of these three things, they are not eligible.

Chrome Legacy Window 3142016 15307 PM.bmp.jpg

Create criteria for all of your steps. In this case, we're looking to skip over Email 1b if we can. We do that by indicating that they opened Email 1 or visited the associated landing page, or they actually received 1b. Do this for Email 2 and on.

Step 3: Creating Your Email Sending Logic

Now is where we put this all together. This is confusing, so bear with me. You'll need to start at the end point and work your way to the beginning.

Step 1: End Campaign

For all of these steps, Smart List is "Campaign Is Requested". The reason we do everything backwards is that, in each step, the NEXT STEP must by built and activated in order to use it.

I have a stream called "Completed Nurture" which I use to house everyone done with the program. We're just moving them into this stream. Activate the flow.

Chrome Legacy Window 3142016 20356 PM.bmp.jpg

Step 2: Last Touch: "Call 5 or End"

Request Campaign

(You'll have to forgive the screenshots. Marketo prefixes everything with full source name which makes it hard to see.)

Choice 1: If they're a member of the smart list you created to define that they've completed this touch (in this example, they've completed Email 5), Request the End Campaign program we just created.

Choice 2: If they're not a member of the Smart Campaign for Email 5, then request Smart Campaign Email 5.

Default: Send Email 5b

Chrome Legacy Window 3142016 20749 PM.bmp.jpg

Step 3: Call 4

Request Campaign

Choice 1: If they've completed this touch (in this case, an Autodemo) then call "Call 5 or End".

Choice 2: If they're not a member of the Smart Campaign for Email 4, then request Smart Campaign Email 4.

Default: Send Email 4b

Chrome Legacy Window 3142016 21313 PM.bmp.jpg

....Keep doing this until you get to your first touch...

What you just did was define every step along the way of what should happen next. You started at the end because the next step must exist and be active before you can call it.  You can't request Touch 5 until Touch 5 exists, and therefore you can't start at Touch 1 and request Touch 2 because it's yet to exist.  Confusing, I know.

Chrome Legacy Window 3142016 22718 PM.bmp.jpg

OK folks, last things here, I promise....

Now for the easiest part of all.  The cast programs.  These are the programs that will be called for each cast.  This is super simple.

Step 1:

Under your folder 2c. Casts, create a Program called Cast 01.

In the program, create a Smart Campaign called "Call Master Program."

Smart List: Member of Engagement Program (this program).

Flow: Call 1 (this is the last SC you created in the prior step, which send out Email 2, 1, or 1b).

Step 2:

Clone this program for as many total touches as you have. In this case 5 touches * 2 versions of each touch = 10 clones.

Don't change a single thing! Don't change the flow! Don't change the flow! DO NOT CHANGE THE FLOW! Request Call 1 each time.

Chrome Legacy Window 3142016 22546 PM.bmp.jpg

Now, put all of your Casts in your Engagement Program

Chrome Legacy Window 3142016 22833 PM.bmp.jpg

How It Works:

Each week, Call 1 is requested. Call one will see if you've completed this touch and if so, request Call 2.

Call 2 will see if you've completed the touch and if so it'll request Call 3.

Call 3 will see that you haven't completed this touch. You've received Email 3 but didn't click or open the email, so it'll send you Email 3b.

Here's the Activity Log from some tests I ran.  This starts with Email 3 in the chain because Email 2 had a lot of clicks which kill the example. Starting at the bottom, I request Call 1, which was completed as was 2. It send me Call 3.  I opened the email. Now it goes through again and gets to Call 4. I don't open the email. Now it goes through again and sends 4b.

Chrome Legacy Window 3142016 23448 PM.bmp.jpg

So, why does this work? Because we're not sending an email in the Engagement Stream, we're calling Campaigns. And we're not asking it to go through the same program, we're creating a new program that starts at the beginning at goes to the right spot. If you're eligible to skip a communication you do. If you're not eligible, you get it again.