Marketo email templates your whole team can edit.
Marketo's classic editor only opens the parts of a template marked with its syntax, and the new Email Designer rebuilds imported HTML in its own components. Modular Mail turns your template into content fields your team fills in, then exports HTML you bring into Marketo.
Book a demo and we'll rebuild one of your Marketo emails before the call.
The autumn edit is here
Waxed jackets, wool layers and trail boots for the wet months.
Marketo email template syntax, explained
Marketo's email template syntax is a set of classes and attributes, all starting with mkto, that you add to a template's HTML so the classic editor knows which parts a marketer can change. There are four kinds: elements, variables, modules and containers.
Elements: the regions a marketer can edit
An element is a region that opens for editing in the classic editor. It needs the class, an id and a mktoName, which is the label marketers see. Whatever sits inside the tag is the default content.
mktoTextis a rich text region, and the recommended way to mark text. The oldermktEditableclass still works, using the id as its label unless you add amktoName.mktoImgis an image. On a<div>around the image the marketer can also set a link; on the<img>tag itself they can't.mktoSnippetis a region that takes one of your approved snippets.mktoDefaultSnippetIdpicks the one shown by default, and the region can't be switched to rich text.mktoVideois a region where the marketer pastes a YouTube or Vimeo URL, shown as a thumbnail with a play button.
<div class="mktoText" id="headline" mktoName="Headline">
The autumn edit is here
</div>
<div class="mktoImg" id="heroImage" mktoName="Hero image"
mktoImgLink="https://northwind.co.uk/autumn">
<a><img src="autumn-edit-jacket.jpg" alt=""></a>
</div>
Variables: one value, used across the template
A variable is declared once with a <meta> tag in the<head> and used anywhere in the template as${id}. Marketers change the value, so a variable is how a template offers a choice, such as a button colour or a font size, without opening the code. Inside a module, mktoModuleScope decides whether each copy of the module gets its own value or every copy shares one.
mktoString: text.allowHTMLlets it carry markup.mktoList: a dropdown of the comma-separatedvalues, with the first as the default.mktoNumber: a number, withmin,max,stepandunits.mktoColor: a colour, with a six-digit hexdefault.mktoBoolean: an on-or-off choice, with the value to write for each state.mktoHTML: a block of HTML, such as a tracking pixel.mktoImg: an image URL. The same class as the image element, but declared with<meta>.
<head>
<meta class="mktoColor" id="buttonColour"
mktoName="Button colour" default="#2f5d3a">
<meta class="mktoList" id="buttonAlign"
mktoName="Button alignment" values="left,center">
</head>
…
<td bgcolor="${buttonColour}" align="${buttonAlign}">
Modules and containers: the sections a marketer can add
A module is a pre-built section, such as a hero or a product row, that a marketer inserts, duplicates or removes from an email. Modules live inside a container, and a template can have only one. In a <table>,<tbody>, <thead> or<tfoot> container a module is a<tr class="mktoModule">; in a <td>container it's a <table class="mktoModule">. Both need anid and a mktoName. mktoActive="false"keeps a module out of the list marketers can add from, andmktoAddByDefault puts it on the canvas of every new email.
<table class="mktoContainer" id="main">
<tbody>
<tr class="mktoModule" id="hero" mktoName="Hero"
mktoAddByDefault="true">
<td>…</td>
</tr>
<tr class="mktoModule" id="products"
mktoName="Product row">
<td>…</td>
</tr>
</tbody>
</table>
Rules worth knowing
- Class values such as
mktoTextare case sensitive. Attribute names such asmktoNamearen't. - Every
idmust be unique, with only letters, numbers, dashes and underscores. - A container can hold only modules. Anything else inside it makes the template invalid.
- The syntax works in templates and emails, not inside snippets or rich text tokens.
- Changing a module in the template doesn't update emails already made from it.
- Marketo Support doesn't help with a template's HTML or CSS.
The Email Designer and the classic editor
Adobe's Email Designer is the newer, visual editor for Marketo Engage. It needs your subscription moved to Adobe's identity system, and Adobe says the classic editor will eventually be deprecated, with several months' notice and no date set. The two editors don't share templates. A template made in the Email Designer can only make Email Designer emails, and a classic template has to be imported before the Designer can use it.
Importing changes things. Imported HTML opens in Compatibility mode, where you can personalise text, add links and add assets, and nothing else until the HTML converter has turned it into the Designer's components. Classic variables aren't available at the email level, snippets aren't supported, nested blocks can't be selected, and the preview doesn't support custom HTML, so Adobe recommends testing with Send proof. Brand themes, which apply fonts, colours and logos across templates, are a Designer feature.
Sources: Adobe Experience League, Email Template Syntax, Email Designer overview, Email templates in the Email Designer, Template import, Email Editor v2.0 Overview.
The same headline, marked two ways
Marketo's syntaxA class, an id and a display name on the element, in Marketo's format.
<div class="mktoText" id="headline"
mktoName="Headline">
The autumn edit is here
</div>
Modular MailOne attribute on your HTML. The label, limits and options are set in the form builder.
<h1 data-mm="headline">
The autumn edit is here
</h1>
Two editors, and a developer behind both
Marketo gives you two ways to build an email, and each one keeps a custom template in a developer's hands.
Sources: Marketo documentation, Email Template Syntax, Email templates in the Email Designer, Template import.
We used to wait three to five days for dev to update our email templates. Now my team builds campaigns in an afternoon. Same custom designs, zero technical dependency.
How it works with Marketo
Custom templates in Marketo, before and with Modular Mail
| Task | Marketo's editors | Modular Mail with Marketo |
|---|---|---|
| Editing content | Regions marked with Marketo syntax, or Compatibility mode in the Email Designer | Anyone on the team, in content fields |
| Editing layout | Open to anyone in the Email Designer, so it drifts | Locked in the template |
| Adding a new section | A developer adds a module to the template | Pick a module from your library |
| Brand rules | Brand themes in the Email Designer; whoever is editing in the classic editor | Built into every field |
| Sending, tokens and programs | Marketo | Marketo, unchanged |
Questions Marketo teams ask
Can we keep using tokens?
Yes. Type a token such as {{lead.First Name}} or one of your my.tokens into any text field and it exports as written, so Marketo fills it in at send time.
Which Marketo editor does this work with?
Either. The export is plain HTML, so you can import it into the Email Designer or bring it into a classic template in Design Studio.
Do we still need Marketo's template syntax?
Not for the emails your team builds here. The parts that change are marked with data-mm and edited in Modular Mail. If you keep some templates in Marketo, the guide above covers the syntax.
What happens when Adobe retires the classic editor?
Your templates are plain HTML in Modular Mail, so what changes is where you upload: the Email Designer instead of a classic template.
Does Modular Mail replace Marketo?
No. Marketo still sends, scores, nurtures and reports. Modular Mail is where the email itself is built and signed off.
See your own email in Modular Mail.
Send us a recent campaign. We'll rebuild it before the call, so you can see exactly how your team would work.