Executable Campaign: What does “Parent Campaign Token Context” mean?

Marketo’s Smart Campaign Flow Step “Execute Campaign” has this switch:

What does that mean? That obviously means that the executed campaign – in this case “Send Executable Email.Send Email” – inherits the Token Context of the Smart Campaign that has this flow step. So a Smart Campaign inherits tokens from a campaign it does not live in. Fine. And that was proven to work fine, if the token is used by the Smart Campaign itself, e.g. in a Change Data Value flow step.

But does this also mean that the executed campaign can hand the token down to an email it sends? Even if that email lives in whatever program and even might have a completely different token context?

Let’s build a test scenario with this minimal setup:

A program, an email and an executable Smart Campaign. Here’s the email in draft mode:

You see it has two tokens on it, none of which exist either in the email’s program (“Send Executable Email”) locally nor on the folder above as inherited token. So if you preview the email, it looks like this:

Nothing to see here. The tokens don’t render, because they don’t exist.

So now let’s execute the campaign in this program from another program (or folder) that has these tokens. (Please forgive the cheesy name – this program is just for demonstration)

And we have a Smart Campaign in this program that executes “Send Email” in my minimal setup program. Again: Outside of this Unicorn program.

The only thing I can do now – I guess – is send that email. There’s no way to preview it with its inherited tokens. So let’s do this.

What will I find in my inbox?

Nothing. This doesn’t work.

I cloned my test email over into the program that has tokens, and there it looks like this:

Alright. Now that we have established that the inherited token only works within the Executable Smart Campaign, what can we do about it? And here my team member Chris had a great idea: How about we put the inherited token into a Program Member Custom Field and print it onto the email using that token?

This is what my Executable Flow Steps look like:

Order matters! First make them a Program Member, then write the PMCF, then send the email.

As shown before, {{my.00_Webinar_Title_Local}} will not render on the email, but {{member.Program Member 1}} will – with the exact same result.

So what is all this good for? Imagine you have one central webinar response and confirmation program, and now you move all your response emails into this central program and have them populated with content – webinar title, webinar speaker, webinar time – from your various webinar programs. Or just more generally speaking: Put stuff in one place that was in various places before. Reduce x emails into one email. That’s always good, isn’t it?