We are working on rebuilding our top-of-funnel lead nurture engagement programs as we move to a new instance of Marketo. In the process, we are trying to think through the best way to be scaleable, versatile and strategic.

The idea we had, to accomplish this, is that emails should be able to live in one default program located outside of any engagement program, and then dragged into the relevant engagement programs' streams for send. This way, the same email could be used across multiple streams without having to create multiple versions of the same email, or risk a lead receiving the same email multiple times throughout their journey (based on email ID).

For those emails that are used in multiple streams, a lead may interact with that content at different times in their journey (for example, they may receive it first as an inbound lead, rather than receiving it as someone who comes into the system already marketing qualified). We figured the best way to track these touchpoints is by using inbound link tagging. In order to be able to use the same email across streams, though, we needed to tokenize "Campaign Name", so that we could track which engagement program sent the email that was clicked on.

We populated the value for our token - {{my.em-campaign_name}} - at the engagement program level, and set a placeholder (just in case) in the default program where the email creative was housed. Our assumption was that the token value for the {{my.em-campaign_name}} would adopt from the engagement program level, allowing us to use the same email across streams. However, when we deployed, the value was actually taken from the program where the email creative was housed, which will not work for our strategy.

We also tried putting the emails in the Design Studio, in the hopes that the email would default to adopting tokens from the engagement program. It didn't work either.

Have any of you dealt with the same issue? If so, how did you resolve it? Or, do any of you have insight on why the value populated wouldn't be the one that's offered in the program sending the email?

I think the behavior you are seeing makes sense, because the actual program that is sending the email is the child program that houses the email. That child program is "requested" by the engagement program stream. So the token set at the child program level will be the one that takes priority in the email.

Even if there were no token at the child program level, it seems that the engagement program tokens cannot be inherited by the child program unfortunately. You can see and vote on this idea, which outlines your exact use case:

You could create a custom field on the lead in Marketo called "Last Nurture Campaign Name" and include a change data value flow step in the campaign that adds leads to an engagement program to stamp that field with the name of the engagement program.

Then in your emails, reference the token for that lead field, rather than a program token. This will achieve your intended goal - the email will include the name of whichever nurture sent it, as this name becomes a lead property set upon entry to the nurture. It is a bit noisier and you will need to be careful if a lead is going between multiple nurtures (although theoretically, a lead should only be in one nurture at a time so you should be fine).

I know that when a program's smart campaign is dragged into the engagement stream, we have to use "campaign is requested" to trigger the email send. Does dragging the email itself into the engagement stream have the same effect? I just want to clarify, because the idea is that we don't have nested default campaigns within the engagement program itself.

Also, I'm curious to know what you / your team thinks or knows about the Design Studio element of this question? It seems illogical that it wouldn't adopt token values from the engagement program when the email is housed in the design studio, as you literally can't set token values in the Design Studio.

Regarding the design studio part - I am actually a bit surprised this doesn't work, as with default programs you can send an email that lives in design studio and it will inherit the local program tokens as long as it is sent by a smart campaign within that program.

(This is a great feature to have universal emails, like alerts and auto-responders, that live in design studio but still get personalized at the program level.)

I tried to replicate your results and confirmed that design studio emails do not inherit EP tokens. I created this EP and tested both a nested and design studio email that were identical:

Result for nested program: successfully inherit token

Result for design studio email: does not inherit token

I can only conclude that engagement program streams just function differently than local smart campaigns in this regard. Sadly for us all!

So if you don't want to nest your programs within the EP (and I think you have a good reason not to, because you want to re-use these child programs in multiple EPs) then you will need to do a data value change when a lead enters the program as I had suggested or find another work-around.

Also just to clarify a small point - the smart campaign that is part of the child program being included in the engagement program stream should have a "Member of Engagement Program" filter, not a literal campaign is requested trigger. I meant "requested" in the more general sense that the EP activates the sending of the email through the child program.

Tokens only work at the program level and can not be inherited from (engagement) programs above it. There's an idea out there that was marked as "Maybe some day". If you think it's worth it, give it a vote