Email template
An email template is reusable email structure and design — the layout, sections, and visual style you want to reuse across many emails, rather than the wording of any one message. Create a template when you want a consistent look for a recurring type of send, like a monthly newsletter or a standard promotional format. When you're ready to write the actual message that goes out, see Email — an email is one specific piece of copy, usually built from a template.
How to create one
Start a session and describe the layout and design you have in mind. Pulse's "New report" works well if you're starting from scratch and just have a general idea. If the template is for a specific campaign's recurring emails, that campaign's chat is a good place to start instead, since the assistant will already have relevant context about the campaign.
Describe the sections you want, roughly how they should be arranged, and any style preferences — colors, header/footer content, number of content blocks. See Using AI sessions for general tips on writing a good prompt.
Importing a template from somewhere else
If you already have an email template built in another tool, you can bring it
in instead of describing it from scratch. Go to Artifacts, choose
Upload → Email template…, and either drop in the exported .html file or
paste the HTML. Doing it from a campaign's Library tab files the template into
that campaign; doing it from the main Artifacts page leaves it unfiled.
Before importing, give it a name (required — it's pre-filled from the filename when you pick a file, so you'll usually just confirm it) and, optionally, a subject, preview text, and a purpose. Purpose uses the same vocabulary as a template you ask the assistant to create — welcome, newsletter, promotional, follow-up, or transactional. Whichever you pick, the template gets an unsubscribe link, as described below.
Once imported it behaves like any other template: it shows up in the Library,
you can @-mention it in a session, clone it into a campaign, edit it with the
pencil, ask the assistant to change it, and use it for a send.
What the import changes. Templates from other tools use their own conventions, so a few things are rewritten on the way in, and the import tells you exactly what it did:
- Merge fields. Other tools write personalisation differently —
*|FNAME|*,%%first_name%%,{{ contact.firstname }}, Marketo's{{lead.First Name:default=there}}, ClickDimensions'${Recipient.contact.firstname[0]!"Valued Customer"}and{{to.firstname}}. Anything that matches one of your contact fields is converted to this platform's form ({{ contact.first_name }}). Where the original carried a default — thethereorValued Customerabove — it is kept as a conditional (see When a field might be empty), so a contact with no first name still reads "Dear Valued Customer". Conditionals already written as{{#if contact.company}}…{{else}}…{{/if}}are kept as they are. Anything that doesn't match becomes a[[ PLACEHOLDER ]]— see Merge fields vs. placeholders below. Nothing fills a placeholder in for you, so treat the list you're shown as a to-do. A merge field that formatting breaks up — half of it bold, say, or part of a link — can't be converted safely, so it is left as it is and listed for you to fix by hand. - The unsubscribe link. Your old tool's unsubscribe and "manage preferences" links stop working once you leave it, so the import repoints them at your unsubscribe-and-preferences page, keeping the footer design you already have. If the template has no such link at all, a plain Unsubscribe or manage preferences link is added at the bottom. This applies to every purpose, transactional included.
- Anything that can't run in an inbox. Scripts, forms and tracking widgets are removed — mail clients block them anyway. Your layout, styles, images and Outlook-specific markup are kept exactly as they were.
- A page title that was never closed. Some exports leave the
<title>tag open, which would make the whole email display as code. The import closes it and says so.
What the import refuses. Two kinds of file are turned away, with a message that says what to do instead:
- A file that isn't HTML — a PDF, a Word document, a spreadsheet or plain text,
even when it has been renamed to
.html. - HTML code that has been turned into text. If a template's code is copied into
Word, Pages, Outlook or a similar editor and that is saved, the file shows the code
instead of being the email. Export or save the original
.htmlfile from your email designer and import that. If you really do want the file exactly as it is — say, a template whose purpose is to show code — choose Import anyway under the message. The template is created as it is, the email shows the code as text, and the import summary says so.
Images. By default the template keeps loading images from wherever they are hosted today. Tick Re-host images in this template to copy them into your own image library instead, so they keep working after you close your old account. It makes the import slower, and any image that can't be fetched is reported and left pointing at the original.
Asking the assistant to redesign one. Small changes — a link, a date, some wording — are edited in place and nothing else is touched. But if you ask for a redesign or a regeneration, the assistant rebuilds the template from scratch: the design you imported is replaced. Keep the original file if you might want it again.
Editing an imported template. Imported templates are edited as HTML — the pencil edits the whole document rather than the section-by-section editing you get on templates the assistant designed here. Everything else, including asking the assistant to make changes, works the same way.
What to include in your request
Four things change the result more than anything else, so say them if you have a preference — otherwise the assistant will pick or ask:
- Layout — how many columns, and whether images are welcome. "One column, no images" is a very different template from the default.
- Purpose — welcome, newsletter, promotional, follow-up, or transactional. (You can say something else and it's kept as you wrote it, but these are the ones the assistant recognises. transactional is for genuine service mail like a receipt or a password reset. It still gets the Unsubscribe or manage preferences link every email carries.)
- Tone — friendly, warm, professional, enthusiastic.
- Call to action — the button text and where it points.
Two more worth knowing: ask for plain text if you don't want an HTML
design at all, and name any merge fields you want the template to leave
room for, like {{ contact.first_name }} or {{ contact.company }}.
Merge fields vs. placeholders
These look similar and behave completely differently, so it's worth knowing which one you're looking at.
Merge fields — {{ contact.first_name }} — are filled in automatically,
per recipient, when the email goes out. They only work for values stored on
the contact record, so the list of what's available is exactly your contact
fields (the ones you see on a contact, plus any custom fields you've added).
Placeholders — [[ PROMO_CODE ]], in double square brackets and
capitals — are not filled in by anything. They're a marker the assistant
leaves when you ask to personalise something that isn't a contact field: a
promo code, an event date, a registration link. Nothing replaces them at
send time, and there's no file or list you can upload to supply the values.
Whatever is still in the template goes out exactly as written — every
recipient would read the literal text [[ PROMO_CODE ]], in the body, the
subject line and the preview line that shows in the inbox.
So treat a placeholder as a to-do. Open the template, click the pencil icon
in the preview panel, and replace each one with the real value before you
use the template for a send — or ask the assistant to do it ("replace
[[ PROMO_CODE ]] with SPRING25"). If you need a genuinely different value
for each recipient, it has to live on the contact record: add it as a custom
field (see Custom fields), and then it can be
a {{ }} merge field instead.
When a field might be empty
A merge field that nobody filled in comes out as nothing, which can leave a sentence reading oddly: "follow up with and help you get set up". If the wording only works when the field is there, use a conditional: wording that appears only when a contact has a value in a field, with a fallback for when they don't.
follow up with {{#if contact.company}}{{ contact.company }}{{else}}you{{/if}}
A contact with a company reads "follow up with Acme". One without reads
"follow up with you". What comes before {{else}} shows when the field has a
value, and what comes after it shows when it doesn't.
To show a whole sentence or block only when a field is set, leave out the
{{else}} part:
{{#if contact.custom.tier}}Your {{ contact.custom.tier }} plan includes priority support.{{/if}}
Here tier is a custom field you added yourself (see
Custom fields).
A few things worth knowing:
- It asks one question: does this field have a value? The condition is a single field. It can't compare ("if tier is gold") or combine fields ("if company and tier").
- What counts as empty. A blank field, a field the contact doesn't have, a
Yes/No field set to No, and a number field set to 0 all show the
{{else}}wording. Text always counts as filled in, even if it says "none", "N/A" or "0", so only a field with nothing in it counts as empty. - It works in the subject line too. For example,
{{#if contact.company}}{{ contact.company }}{{else}}Your{{/if}} access requestreads "Acme access request" for a contact with a company and "Your access request" for one without. - Emails only. A text message (SMS) takes plain merge fields like
{{ contact.first_name }}and nothing else. Texts are priced and split into messages by their length, and wording that changes from person to person would make that count wrong, so the assistant won't save a conditional in a text, and an automation that sends a text can't be published with one. - Only this spelling works. A conditional written for another tool, such as
{% if contact.company %}…{% endif %}, isn't supported: those tags would reach your recipients as plain text, so the assistant won't save a template that has one. - The assistant writes these for you. Describe what you want, for example
"say the company name if we have it, otherwise keep it general". If you edit
one by hand, copy the spelling exactly: there is no space after the opening
braces, and
{{#if …}},{{else}}and{{/if}}always come as a set. - The editor checks this too. If you edit a template, or a draft email, with the pencil and type a conditional another way, name something that isn't a contact field, or name a contact field this workspace doesn't have, the change isn't saved. The editor shows Save failed and, once you stop typing, a message naming the tag it couldn't accept and the wording to use instead. It waits until you pause on purpose: a conditional isn't valid until you've typed its closing brace, so the message would otherwise appear and vanish mid-word. The message stays while you correct the tag and clears when the change saves.
- Nothing saves until the tag is fixed — including unrelated edits. A refused change isn't stored, but it stays in the editor, so the next save sends it again and is refused again. That's true even if your next edit is somewhere else entirely and is perfectly fine. The message says so, and offers Discard unsaved changes, which returns the document to its last saved version. Use it when you'd rather start over than hunt for the tag — it drops every unsaved change, not just the bad one.
- You can't leave the editor with a change that wasn't saved. While a tag is still being refused, Done keeps you in the editor and shows the reason rather than closing, so a correction you made is never quietly dropped. Fix the tag, discard the changes, and Done closes as usual.
Example prompts
@[Name] below stands for an @-mention: type @ in the composer and pick
the real template or saved file. See
Pointing at your own data.
Quick
- "create email template, plain text"
Fully specified
- "Create a welcome email template for new subscribers. Tone: friendly. Layout: one-column. Purpose: marketing. Include a single CTA button: 'Get started'."
- "create a new email template named 'Form auto-responder' that will be used to respond to a prospect who submitted a web form. The template layout should be 1 column and the CTA should call the prospect to contact our sales team."
- "create an email template announcing that we're attending a conference next month. Layout: 1 column. CTA: register to attend, linking to our event page."
- "Design a monthly newsletter template with a header, three content blocks, and a footer. One column, no images. Include the merge fields {{ contact.first_name }} and {{ contact.company }}."
Built on something you already have
- "read these two blog posts [url] and [url] and create a new email template, 2-column layout, with a short summary of each article in its own box and a 'Read more' link for each. No images needed."
- "create an email template that includes the information from @[Saved research file]. This is a newsletter with a 1-column layout."
- "Take @[Template name] and build a new template for this campaign — keep the structure, but refresh the copy, audience and links." (To copy a template unchanged instead, use the Clone button in your Library — see Artifacts.)
What happens after you ask
If your request leaves something open — like which brand colors to use, or how many content sections you want — the assistant may ask a quick clarifying question first. Otherwise, it produces a full draft of the template's layout and design.
The template is never applied to a live send automatically. It lands in your Library as a draft, where you can review the design, ask for changes (different colors, a different number of sections, a different header style), or edit it yourself. Once you're happy with it, it's ready to reuse whenever you or the assistant draft an email — just mention the template you want, and the new email is built on that structure.
In the preview panel
Open the template to see its preview panel. Refresh re-renders the preview if you've made changes elsewhere in the session and want to see them reflected. Click the pencil icon to edit the layout and content directly — changes save automatically. Undo, Redo and History sit next to the pencil: they take back or put back a change, and list every earlier version of the template (see Version history). Download HTML exports the template's markup, and Close exits the panel.
Above the preview itself are three view modes: Web (how it looks on a desktop screen), Mobile (a narrow-screen preview — worth checking, since most lists read mostly on phones), and Text (the plain-text version recipients see when their client won't render HTML).
Templates are built to render correctly on both desktop and mobile and across the common mail clients — including Outlook on Windows (which uses its own, much stricter rendering engine), Gmail (web and mobile apps), and Apple Mail. The design scales down to a phone screen without a horizontal scroll, images resize with the screen, and the layout doesn't depend on styling that a stricter client would strip. One visible difference you may notice: Outlook on Windows shows buttons with square corners instead of rounded ones — that's a known Outlook limitation, not a broken template.
FAQ
Q: What's the difference between a template and an email? A: A template is reusable structure and design — the shape an email takes. An email is one specific message with its own subject line and copy, often built from a template. See Email for more.
Q: Can I reuse the same template for multiple emails? A: Yes — that's the point. Once a template is saved in your Library, you can reuse it any time you ask for a new email that should follow that design.
Q: Can I change a template after I've already used it for an email? A: Yes. Editing a template doesn't change emails you've already sent — it only affects new emails you build from it going forward.
Q: Can I undo a change to a template? A: Yes. Click Undo in the preview panel (and Redo to put the change back), open History to go back to any earlier version, or ask the assistant. The old Revert to original link is now the Original entry at the bottom of History, which restores the template's first saved version. See Version history.
Q: Why did the assistant refuse a small edit I asked for? A: Most likely the edit would have removed the unsubscribe link. Every email has to carry a working one, so the assistant won't save a change that deletes it — it will say so and offer a narrower edit instead. This comes up most often when you ask to swap a URL and the assistant's find-and-replace would have caught the unsubscribe link too.
Editing a designer-made template
- Enter adds a line break in a designer-made template. Templates the designer builds are saved as MJML, and their editor saves text changes rather than whole paragraphs — so pressing Enter inserts a line break inside the current paragraph instead of starting a new one. The break is saved like any other change, including after you type on the new line. To add a genuinely new paragraph or section, ask the designer to add it.