Marketo’s Engagement Programs can do some extremely useful things for the marketer. What was once a series of complicated user journeys can now be distilled into an email drip campaign (called “casts”) based on a cadence you specify.
However, the built-in functionality has one flaw for how we run things at G Adventures:
If you use sub-programs, and a person doesn’t get sent the email via a smart campaign when the cast goes out, the system will stop there and won’t check the next program.
Effectively, when a person enters a sub-program within an engagement program, and triggers a smart campaign, regardless of whether they qualify or not, Marketo will stop. It won't check the next one. Great behaviour in some cases, but not for what we are trying to do at our business.
Let’s illustrate this with an example. Let’s say we have the following structure in an engagement program.
You can see that we have three streams — based on the time zone of the sends — that are otherwise identical. Within the streams, we have a series of 8 emails.
This structure is designed to give a person in this program one email a week on a Tuesday. It’s a group of our most engaged leads, so we are trying to send them the most appropriate content in order to get them to make that last step and book a tour. Each of these emails has an additional set of criteria beyond simply being a member of the engagement program (we don’t want to send our Active tour content to those who habitually book our polar expeditions, for example). So whenever the engagement program “casts” out a send, the default behaviour is:
So that’s great if the user has already received the first email (defined in Marketo-speak as “is a member of the first program”). But if they haven’t, and they don’t qualify for the send, then…and this is the important bit…Marketo won’t check whether they qualify for the next program immediately, but will instead do nothing for that cast and will wait until the next occurrence. So in our situations of 8 programs above, top to bottom, each with narrowly defined criteria, then with a weekly cadence of sends:
This clearly isn’t great for what we are trying to do here. We are trying to motivate this highly interested group of people to book, so for them to go several weeks without receiving what would be a highly effective piece of communication is very sub-optimal.
So how can we get around this? One way would be to use emails instead of sub-programs in the engagement program above — but you can’t have additional criteria on an email cast. The email would go out to everyone. That’s not going to work given how targeted these communications are. Not an option. The solution is to use how Marketo defines membership to “skip” non-qualifying emails. (A shout out to Roxanne McGlumphy at Marketo first off for showing us this little-known hack. It’s been incredibly useful for us).You might have noticed from the explanation above that Marketo first checks for “membership” of a sub-program before it even looks into the criteria for sending. If a person is already a “member”, Marketo decides that it must have already received that send, and moves on to the next one — immediately! So if you set membership of a program for those that you DON’T want to receive it, Marketo will skip them through to the next program, and so on until it finds something they are not a member of, or until we run out of content.
To build this in practice, here’s what we did and the thought process behind it:
Extrapolating upon this, let’s say our criteria for the first sub-program, “Non Inca Trail Peru”, is something like this. You will receive it if:
So if we want to ensure that those that shouldn’t receive it will be “skipped”, and could potentially receive the next email immediately, then we need a smart campaign to run each Monday night with the following criteria:
For anyone who qualifies for that smart campaign, you want to use this flow step: By changing their Program Status of the sub-program to be “Sent” you are making them a member of that program, and ensuring they will be skipped in the next cast. Marketo thinks they have already received it.That program should run weekly, just before your cast goes out. If your casts only occur monthly, then you would only run that smart campaign monthly (you get the idea). Now the second element: for those who didn’t receive the email, change their status back to not be a member of that program. It’s entirely possible that after you changed them to be a member they became interested in Peru, became an email subscriber, or both! So they should qualify for that send next time. This smart campaign will run after all your casts have completed (in our case, after 6pm Tuesday EST), and will have the criteria: Pretty straightforward. Since an email could live in multiple engagement programs, we use “contains” instead of the absolute match of “is” (Marketo believes that an email in a different program is a different email). And the flow step: So each week, here is what is happening:
The power of this should be apparent. You no longer have to settle for one of two options:
This method allows you to build a dynamic queue of content that will be different for each user. And don’t forget, within Marketo engagement streams you can also:
It’s a bit daunting at first, but once you see the power of engagement programs used in this manner, it’s going to be hard to argue with the results. Happy casting!
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.