I'm testing and experimenting with Email 2.0 and am using the Iceberg template as a starter. My problem is as follows:
My issue is that when I go back to the in the Event Template in the Design Studio and make changes to the HTML (due to fixes needed from testing) and approve it, the changes are not reflected in my email assets above (even after I approve the new draft). To see the changes I have to create a brand new email asset to see the new HTML. Is this a bug or am I doing something wrong?
At first look the email assets are not updating themselves with the new template HTML and are keeping the original old HTML (even after approvals). The bigger problem is that generally we have 1000's of emails that uses the one template, so I don't want to deploy Email 2.0 if we can not go in and do general template updates as and when we need them and mass approve without it updating all current assets with the full new HTML, this is a standard feature of Email 1.0, a quick example of when we need to do this is if we are updating our T&C's, etc... in the scenario above, all my email assets that use the Email 2.0 template won't get the updated.
Solved! Go to Solution.
I can't reproduce your issue.
But, I probably know why you are seeing this. This is how it works:
#1 - same behavior in Email 2.0
#2 - different behavior. The content of any Marketo element or variable will NEVER be overriden when an email is drafted due to template changes. In other words, if someone changes colors, sizing, rich-text contents etc. the email will remain as they set it in Email Editor 2.0. It will also remain as-is even if they didn't modify it. This is actually important since now in Email 2.0 we have so many more element types and variables. Minor changes to variables can make significant changes to an email structure. The key difference between templates in Email 1.0 and Email 2.0 is that in Email 1.0 the template is basically the exact skeleton/structure of your email. In Email 2.0, someone can create an email from a template that looks completely different from the template itself...they could change tons of spacing options, sizing, colors, duplicate tons of modules, etc.. so if template changes were to propagate it could be quite destructive.
#3 - same behavior in Email 2.0. Try it out, add something OUTSIDE a Marketo element/variable. You'll see it show up.
Hi Frank,
I have observed the same behavior, but not sure it's always happening. We have to do some testing.
Justin Cooperman, any insight ?
-Greg
I can't reproduce your issue.
But, I probably know why you are seeing this. This is how it works:
#1 - same behavior in Email 2.0
#2 - different behavior. The content of any Marketo element or variable will NEVER be overriden when an email is drafted due to template changes. In other words, if someone changes colors, sizing, rich-text contents etc. the email will remain as they set it in Email Editor 2.0. It will also remain as-is even if they didn't modify it. This is actually important since now in Email 2.0 we have so many more element types and variables. Minor changes to variables can make significant changes to an email structure. The key difference between templates in Email 1.0 and Email 2.0 is that in Email 1.0 the template is basically the exact skeleton/structure of your email. In Email 2.0, someone can create an email from a template that looks completely different from the template itself...they could change tons of spacing options, sizing, colors, duplicate tons of modules, etc.. so if template changes were to propagate it could be quite destructive.
#3 - same behavior in Email 2.0. Try it out, add something OUTSIDE a Marketo element/variable. You'll see it show up.
Firstly thank you for writing such a detailed description, it’s a lot to take in but I think I understand where I’m going wrong; the template I’ve created is working exactly how you have described above. I’m trying to do fixes to Modules, which if I’m following correctly is what you are describing in #2, I wanted to change heights and add in more variables but my original email asset was staying the same, as Email Editor 2.0 is counting everything after mktoModule as custom and how I wanted it.
It takes a bit of thinking when it come to developing, as I’m finding that some modules need extra variables which I didn’t consider on first creation (pushing them to all live assets just covered myself when people clone). Now I know how it exactly works, it will make me develop slightly differently as previously everything up to the mktEditable was changeable at template level but now I can only consider everything up to mktoModule if that is declared (as anything within that is counted as unique to that asset).
Example
Email 1.0
<html code>
<html code>
<div id=”uniqueID” class=”mktEditable”>Text</div>
<html code>
<html code>
Email 2.0
<html code>
<html code>
<table id=”moduleID” class=”mktoModule”>
<tbody>
<tr>
<td><div id=”uniqueID” class=”mktEditable”>Text</div></td>
</tr>
<tbody>
</table>
<html code>
<html code>
Previously I could go down to mktEditable but now mktoModule is declared anything within that will only change in new assets, all previous assets will store current customisations. Put simply when I declare an element/module, customisations within them done at template level won’t flow down to my current assets.
Thanks again for explaining Justin Cooperman.
Hi Frank and Justin Cooperman,
Just ran a test and indeed, some changes that relate to case 2 above won't work as expected.
Thsi part of the module does not use editable element, only variables.
Here is the initial code:
<td class="whitelink" style="font-family: Helvetica, Helvetica, Helvetica, sans-serif; font-size:14px; line-height:15px; color:${CTATextColor}; text-align:center; font-weight:bold; text-transform:uppercase;">
<a class="mj-content" href="${CTALink}" target="_blank" style="margin:0 20px; color:${CTATextColor};text-decoration:none !important;">${CTAText}</a>
</td>
Here is the modified one (the uppercase is removed, the rest is unchanged):
<td class="whitelink" style="font-family: Helvetica, Helvetica, Helvetica, sans-serif; font-size:14px; line-height:15px; color:${CTATextColor}; text-align:center; font-weight:bold;">
<a class="mj-content" href="${CTALink}" target="_blank" style="margin:0 20px; color:${CTATextColor};text-decoration:none !important;">${CTAText}</a>
</td>
Once my template has been approved, the module CTA was still in upercase. But if I drag and drop the same module a second time in the template, this second one reflects the change:
-Greg
For #2, modules count as a "marketo-specific element" so existing modules in an individual email also do NOT take on template changes. This is both expected and desirable. The idea is once you insert a templatized module into your email, that module now lives on its own in the email. This is why you can actually tweak/modify the underlying HTML of any module in the email without breaking the email from its template. The modules in the email can be manipulated in any way (including adding/removing any editable elements that are included in the module).
Greg - this is super important now that we have "local variables" in modules. A user could change the spacing, structure, etc. of a module within the email itself, and you don't want template updates to overwrite every individual module that is in every email. They will all have different values and you want them to live on their own.
Hope this makes sense. Key takeaway: in email 2.0, only template code changes outside of Marketo regions will impact existing email's content. Everything else just changes the template value (if you create a new email, add a new module, etc. you would see those changes).
Hi Justin,
OK, I had not gathered that a module was a Marketo element Mostly because in the doc, there are 3 chapters:
Now that we are aligned on the definition, it makes sense. And you are right, it's much safer that way.
-Greg
Hey everyone — Justin said:
…they could change tons of spacing options, sizing, colors, duplicate tons of modules, etc.. so if template changes were to propagate it could be quite destructive.
Understood — but I actually want to be able to (carefully) do this, otherwise the modules aren't as useful to me as they could be.
For example, if I create a CTA module as in Grégoire's case and want to change a color or type style that is extant across dozens of emails, I'd have to recreate that CTA module across dozens of emails… instead of making one change in the template.
Is there the potential for a "Update module to latest definition"? Justin Cooperman
Sure, we can consider some advanced features like that. In your case, however, you may just want to use a program token (my.token) to control the color of your emails instead of declaring it as a "variable". In this way, you would be able to edit it on-demand for all of your existing emails whenever you wanted to. A variation of this could be you leave it as a "variable" but make the value for the variable a program token and instruct your users not to change it...
The other option, of course, is to make your CTA section live in the template and NOT be a marketo "module". Meaning, every email would require that section to be present outside of the marketo "container" where modules live. This may not work for you if the CTA is in the middle of your email body. But, we have customers doing this for things like the header and footer of their emails.
Justin
Hello Justin,
While I understand that we may break things if we change values inside a template - surely that's the whole point of having a template?
I've been looking at this issue with modules not updating from an update on the template and it seems like an odd decision. Surely there should be an option to be able to add this functionality?