Modular Mail for Marketo

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.

Marketo template syntax

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.

  • mktoText is a rich text region, and the recommended way to mark text. The older mktEditable class still works, using the id as its label unless you add a mktoName.
  • mktoImg is an image. On a <div>around the image the marketer can also set a link; on the<img> tag itself they can't.
  • mktoSnippet is a region that takes one of your approved snippets. mktoDefaultSnippetId picks the one shown by default, and the region can't be switched to rich text.
  • mktoVideo is a region where the marketer pastes a YouTube or Vimeo URL, shown as a thumbnail with a play button.
template.html
<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. allowHTML lets it carry markup.
  • mktoList: a dropdown of the comma-separatedvalues, with the first as the default.
  • mktoNumber: a number, with min,max, step and units.
  • mktoColor: a colour, with a six-digit hex default.
  • 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>.
template.html
<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.

template.html
<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 mktoText are case sensitive. Attribute names such as mktoName aren't.
  • Every id must 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.

marketo-template.html
<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.

modules/hero.html
<h1 data-mm="headline">
  The autumn edit is here
</h1>
The problem

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.

The classic editor

Marketers edit only the regions a developer has marked with Marketo's syntax, so a new module or layout is a template change in Design Studio.

The Email Designer

Imported HTML opens in Compatibility mode, where only text, links and assets can change, and converting it turns your design into the Designer's own components.

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.

Hin ShahHead of CRM, Dr. Barbara Sturm
How it works

How it works with Marketo

  1. 01

    Set up your template

    We, your agency or your developer turn your Marketo template into modules, with data-mm in place of the syntax.

  2. 02

    Build the email

    Your team picks modules, fills in fields and types Marketo tokens where they're needed.

  3. 03

    Export and upload

    Import the HTML into the Email Designer, or bring it into a classic template in Design Studio, then approve and send.

Side by side

Custom templates in Marketo, before and with Modular Mail

Custom templates in Marketo, before and with Modular Mail
TaskMarketo's editorsModular Mail with Marketo
Editing contentRegions marked with Marketo syntax, or Compatibility mode in the Email DesignerAnyone on the team, in content fields
Editing layoutOpen to anyone in the Email Designer, so it driftsLocked in the template
Adding a new sectionA developer adds a module to the templatePick a module from your library
Brand rulesBrand themes in the Email Designer; whoever is editing in the classic editorBuilt into every field
Sending, tokens and programsMarketoMarketo, unchanged
FAQ

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.