Help · Content

The email editor

Opening a template puts the controls on the left and a live preview of the email on the right. Three tabs run across the top — Email, Content and Versions — and your work saves itself a second after you stop typing.

Three tabs run across the top, and Email is the one it opens on.

The From name is who the email comes from, and it is the third thing an inbox shows before anybody opens anything. Leave it empty and the email sends under your store’s own From name, which you set once in Settings → Store; fill it in and this email alone comes from what you typed. It does not have to be your store's name: “Rosa @ Fennimore & Vale” names a person at a store, and a name with an @ in it is perfectly fine. An actual email address is not — “rosa@fennimoreandvale.com” is refused, and the box says why as you type.

Talaria can suggest the subject line. Press Suggest beside it and Talaria reads the email you have written and offers up to three subject lines, each with the preview text that goes under it. Nothing changes until you pick one; picking fills both fields at once, and you can edit either afterwards. Press Suggest again for a fresh set.

Every panel is a stack of named cards. Pick a block and its controls arrive grouped under a word each, in the same order every time: what the block shows first (Words, Image, Products, Code), then how it reads (Text, or Button text), then its box — one card called Block. A control always sits in the card for the thing it changes, so a color is never several controls away from what it colors, and a card that names its owner — Button padding above the Block card's Padding — is telling you there are two of them on this panel.

The Block card is five lines: Background, Border, Corners, Padding and Margin. Each line says what it is set to before you open it — None or Color · #f4e1dc, None or 1 px solid · #222222, None or 8 px or 12 · 12 · 0 · 0, 0 on all sides or 16 top and bottom, 24 left and right — so you can read a block's whole box at a glance. Click a line to open its controls in place, and click it again to close it; open as many as you like.

The same lines are everywhere a box is set. A button's own Button card (Button background, Button border, Button corners, Shadow and Button padding), a section (Section background, Section border, Section padding), each column, and an image's Image corners all work the same way, and so does the style pane in the forms editor.

A card's own control sits on the same line as its name. Where a card asks which KIND of thing it is, that choice is on the heading row — a divider's Line with Color · Gradient beside it — and only what you chose appears underneath. Where a card holds a single control, the control is on that line too: Placement is the three alignment marks, and a space block is a card called Height with the number on it.

A sentence you only need once sits behind the ⓘ beside a card's name. What the padding is, what a discount's terms line is for, what Outlook does with a shadow. What is on the panel in plain sight is what changes right now: a warning, a choice that is not available and why, or something still loading.

A new section arrives looking like the one above it. It takes that section's padding and its background, because after five minutes spent getting one section right, the next one you add is almost always meant to match. The first section of an email has nothing above it, so it keeps the starting defaults. Either way it is only a copy made at that moment — changing one section afterwards never changes the other.

Blocks are added from a grid of tiles, grouped by kind: Content, Spacing and From your Library. A tile you cannot use right now is grayed rather than hidden, with the reason written on it — the column is already as full as a column can be, say, or your Library is empty. The vocabulary is the same size every time you look at it.

A tile can be clicked, or carried. Click one and the block is added where the outline said. Drag one onto the email on the right and the places it can go open up between the blocks — let go on the one you want, and that is where it lands. The email is drawn with nothing between the blocks until you pick a tile up, so what you see on the right is what will arrive.

A whole Library element is placed from the top of the outline instead. A header or a footer is a section, not a block, so beside Add a section there is Add from your Library: choose the element and it arrives as a section of its own, carrying the element's own name in the outline rather than a number. The most recently published elements are listed first, and you can type part of a name to find one. That door is grayed with its reason when there is nothing published to place, or when the email already holds as many sections as one email can. The tile inside a column is still there for placing a saved section among other blocks.

It saves itself. A second after you stop typing, your working copy is written, and the mark beside the template's name tells you when. There is no Save button, and leaving the page loses nothing. Nothing is emailed to anyone until you send a campaign built from this template.

Undo and redo are for the email, not the browser. They walk back through the changes you made here. Cmd-Z (Ctrl-Z on Windows) undoes too, and Shift-Cmd-Z or Ctrl-Y redoes; while you are typing in a box, those keys undo your typing in that box instead.

If someone else edits the same template while you have it open, saving stops and the screen says so. That is deliberate: carrying on would mean overwriting work you have never seen. Load the template again and you will have theirs.

A template in the archive can be read but not changed. Take it out of the archive to work on it again.

A block can go in any column of the email. Drag it by its handle onto the line you want it to sit beside — in the same column, in the column next to it, or in a different section entirely. The bar shows where it will land: above the line when you are over the top half of it, below when you are over the bottom.

An empty column takes a block too. Drop it onto the Nothing in this column yet row and that is where it goes.

A section stays among the sections. It carries its columns and everything in them with it, so there is nowhere else for it to go.

Everything a drag does, the menu does. Move up and Move down in a line's ⋮ move it one place — and for a block, one place past the end of its column is the start of the next one, so those two items alone can walk a block anywhere in the email. When there is nowhere left to go, or the column it would move into is already as full as a column can be, the menu item is grayed with the reason on it.

Across a section boundary, by name. Two sections' blocks are never on screen together, so the one move a drag cannot make carries a name instead: Move to section… in the line's ⋮ lists the other sections and sends the block to the one you choose. It is drawn only when there is somewhere else to send it.

The list works from the keyboard. Tab reaches it once — once for the list, not once for every line in it — and from there the up and down arrows walk between the lines. Home and End jump to the first line and the last, Enter opens the line you are on, and Delete takes it out. The arrows only ever walk; they never move a block. Pressing Down to read the next line and finding you have rearranged the email instead is the reason moving is a named act in the ⋮, where it can also say why it cannot.

Clone puts a copy right below the original. Everything comes with it — every setting, every color, every word — so it is the quick way to a second button, or to a second section built like the first. Cloning a section copies its columns and all the blocks in them. A block that follows a Library element clones as a second follower of the same element, which is what keeping its settings means. If the column or the email is already as full as it can be, the menu item says so instead of doing it.

A text block is one writing surface. Pick the block and type the whole thing in one place, the way you would write anywhere else. Select words to style them, color them or make them a link, and use + Insert to drop in a first name, your store's details or a profile property.

A small row of controls sits on top of the writing surface.

To style words, select them first, then press B, I or U — or use Cmd-B, Cmd-I and Cmd-U (Ctrl on Windows). The controls are grayed until something is selected, because there is nothing for them to act on until then. Press the same one again to take the styling back off.

To set some words in a color or a size of their own, select them and press the A (the one with a colored bar under it). A small card opens under your writing, headed Selected words, with Text color and Size. Only the words you selected change; the rest of the paragraph keeps the color and size set under Text below. Pick a color, type a hex value, or choose one your email already uses from the row of squares; press × beside the color to give the words the paragraph's color again. For the size, type a number from 10 to 72, or empty the box (or type the paragraph's own size) to match the rest again. The words of an unsubscribe link keep the link's own color so it is always easy to see; only their size changes. Press Done when you are finished. This is how you write "Step 1:" in your brand color in front of plain words, or make "$10 GIFT CARD" larger than the sentence around it. In a dark inbox that follows your email's dark colors, words in their own color keep it if it is still easy to read on the dark background; if it is not, they turn the same light color as the words around them (or, in a link, the link's color), so nothing ends up dark on dark.

To make words a link, select them and press Link. A row appears under the surface asking Where it goes. One field answers it: type a web address, a phone number or an email address and the link goes there (a number is called when it is tapped, an address gets a new email), or type anything else and it searches your store — your products, your collections, your pages, and the two places every store has, the Home page and All products. Words inside a sentence can also point at The unsubscribe link, which is the one place that choice belongs. Put your caret anywhere in a link later and the same row comes back, so you can change where it points or remove the link and keep the words. The Where a link goes page has the whole of it.

+ Insert opens a menu of things filled in when the email is built: First name, Last name, Store name, Store address, Current year — this year, in your store's time zone, worked out when the email is sent, so a copyright line never goes stale — and Store phone number: the words you saved for your phone number in Settings, or the number itself. Choosing one drops it in where your caret is, straight away, and opens its settings under your writing. If your caret is on a variable you clicked, the new one goes in after it; it never replaces it.

To put one of your own profile properties in, choose Find a property… at the foot of the same menu. A search box opens under your writing with every property your profiles carry, the ones the most profiles have first. Type part of a name and the list narrows: credit finds every property with that word in it. Choose one and it lands in your sentence at once, and a box opens under it:

Type the fallback — what anyone who does not have that property gets — and press Enter or click away, or leave it empty. If the property holds numbers, the box takes a number; if it holds yes and no (or true and false), you choose Yes or No.

Under the box, two lines tell you what that means: what the person you are Showing as will see, and how many of your profiles have no value — 15 of 43 profiles have no Store Credit Balance — they will see your fallback. Only profiles with a verified identity are counted — the same people a segment counts — so a profile still waiting to be confirmed is excluded from both numbers. If your profiles could not be counted in time, it says so rather than showing a number.

A fallback is never forced. Nothing stops an email for lacking one: it saves, a version is kept, and it can be tested, sent, and go out in a campaign or an automation. With no fallback, somebody without the value gets nothing there, and the email tidies up after it:

That last one is why a fallback is still worth setting where a detail sits inside a sentence. When a detail has words before or after it on the same line and no fallback, its box says so, quietly — a suggestion, never a refusal:

A detail on a line of its own gets no suggestion: nothing there is the right answer. The preview shows a detail with no fallback as its name in gray brackets — [VIP Member] — for anyone without a value, so you can see where it stands; no email ever goes out that way.

If the property you want is not in the list, type its full name and choose Use “…” at the foot of the list.

In an automation that starts with an event, there is a third group: From the start event. An automation that starts when someone places an order knows which order it was, and this is how you put its details in the email — the order number, the total, whatever that event carries. Choose Find a detail of Placed Order… (named for your automation's own start event) and a search box lists the details your store's events of that kind actually carry. On the order, shipment and checkout events they are grouped — Ship to, Shipment, Order and a folded More from Shopify — with one plain name per fact and Shopify's own name in small gray type beside each; the Steps in an automation help page has the full table under Details from the start event. Only details that hold a single value are listed; a list, like the items in an order, is not. Choose one and it lands in your sentence as its name with a small lightning mark — the same mark the automation's start wears — and a box for its fallback:

It may be left empty, and then nothing is printed — the right choice for a second address line, which most orders do not have. It follows the same rule as a profile property above: the line goes when everything on it is empty, and a detail inside a sentence with no fallback gets the same quiet suggestion.

Each person gets the value from their own start event, as it was when it happened — waiting a few days before the email goes does not change it. If their event has no value for it, or holds a list rather than one value, they get your fallback. A yes-or-no value also gets your fallback, exactly as a profile property does: an email reading Gift: true is worse than your own words. A detail your events have not carried yet can still be used: type its full name and choose Use “…”.

What an order carries. Placed Order, Fulfilled Order, Partially Fulfilled and Cancelled Order carry the order number (#1042), the shipping method, the ship-to name, first and last name, address lines, city, state or province (and its code), ZIP or postal code and country, and the order's subtotal, shipping, tax, discounts and total, as your store wrote them. Fulfilled Order and Partially Fulfilled add the carrier, the tracking number and the tracking link of the newest shipment. The shipment events — Out for Delivery, Delivered Shipment and the rest — carry the carrier, the tracking number and link, the shipment's status and its ship-to (the shipment's own destination), and the order number when we already have the order. After those, under More from Shopify, the list offers everything else Shopify sends about the order (on every order event but Placed Order, which carries the details above) that those details do not already say, named step by step — Order → Customer locale. The items in an order are not in this list; they belong to a product block. Only the details your store's own orders send are listed — history you imported is not an event that starts anything. We never keep the billing address, payment details, or the shopper's browser or device.

What a checkout and a refund carry. Checkout Started carries the discount code the shopper entered (and every code, if there was more than one), the number of items, the shipping method, and the checkout's subtotal, shipping, tax, discounts and total, and after those everything else Shopify sends about the checkout — Checkout → Customer locale, Checkout → Shipping address → City. These are the checkout's details as they were the moment the checkout first had an email address: a code the shopper adds or removes after that is not reflected. The link back to the checkout is not one of these details: use Return to checkout, which the Where a link goes page explains. Refunded Order carries how much went back, the note you wrote on the refund, the number of items and the order number when we already have the order, and then everything else Shopify sends about the refund — never the payment it went back to. Cancelled Order adds why the order was canceled, in Shopify's own word (customer, inventory, fraud, declined or other), and how much was refunded.

The return events carry the return's status, its reasons (wrong item, size too small and so on, in Shopify's own words), the items and how many of each with their names from the order, the order number when we already have the order, any return shipping fee, and, for Return Declined, the reason and note you gave. After those comes everything else Shopify sends about the return, including the note the shopper wrote when they asked for it.

To show a block only to some people by one of these details — a different block for each carrier — or to send a button to the tracking link, see the Show a block to some people and Where a link goes pages. A tracking-link detail already in your sentence becomes a link when you click it and press Link.

The group is there when the email belongs to an automation that starts with an event — and in a template on its own while you preview it with an event (see Previewing with one of their events, in the chapter Before an email goes out), so a shipping email can be built in Templates before any automation uses it. A campaign, a template on its own, and an automation that starts when someone joins a list or submits a form have no start event. A form's answers are saved to the person's profile, so in an automation that starts with a form you insert them from From your profiles instead. Where there is no start event, so there is nothing to fill these in from: if an email carrying one ends up in one of them, the Checks card says so, and it cannot be sent there. In the preview, choose a profile under Showing as and the details come from that person's most recent event of that kind — or from the one you pick under Event; with the sample values or No profile information, you see the fallbacks.

A template filled in from an event you chose to preview with is still a template on its own: the Checks card keeps saying its start-event details can only be sent from an automation that starts with an event, until one uses it.

A variable reads as part of your sentence, in the same type as everything around it, marked only lightly so you can tell it apart. Hey First name! is what you write, and what each person receives is Hey Dana! — or your fallback word, if you have not got their name. It behaves as one thing: a single press of backspace takes all of it, never half.

Click a First name variable to set what it writes when you do not know the name. "there" turns Hey First name! into Hey there! for anyone whose first name you have not got. Store name, Store address and Current year never need one; the first two come from your own store record, and the year from the calendar. Store phone number takes one too: it is what the email shows if your store has no phone number saved.

A first or last name is capitalized when the email goes out. A name your store has in all lowercase or all capitals — jane, JANE SMITH — prints as Jane, Jane Smith. A name typed with capitals of its own — McDonald, DeShawn, van der Berg — prints exactly as it is, and so does your fallback word. Nothing about the person's profile changes; only what the email prints. Click the name and untick Capitalize to print it exactly as your store has it. The preview and a test send show it the way it will go out. A name we cannot capitalize safely — written in an alphabet other than Latin, Greek, Cyrillic or Armenian — is sent exactly as typed. A name on the order — the ship-to name in a shipping email, say — follows the same rule, with the same Capitalize box on that detail; a city or a street prints exactly as the order has it. For one person who wants their name left alone, tick Print this name exactly as typed on their profile: it wins over every email's Capitalize box, for them.

Your own profile properties are variables too — a skin type, a size, a pet's name — and they follow the same rule: a fallback is yours to set or leave empty. Most people on your list will not have every property filled in, so a sentence written around one usually wants a word to fall back to. The Profile properties page explains why, and what prints when the value is a list rather than a word.

Enter starts a new line inside the same block.

Pasted text arrives as words. Fonts, colors and styling from wherever you copied it are dropped — this block is for writing, and the email will use the type and colors you set here. If you genuinely need somebody else's markup, that is what the pasted HTML block is for.

One unbroken stretch of writing can be 2,000 characters. If a change would go over, it is not made and a line says so, so nothing you typed is ever quietly cut off the end. Break the paragraph up, or carry on in a second text block.

A heading is its own block, added from the same grid, sitting beside Text in the Content group. It is written and styled exactly the way a paragraph is — size, line spacing, alignment, color, typeface, a background and a border — so there is nothing new to learn about it.

What makes it a heading is two things you do not have to set. It arrives at a heading's size, in your store's heading typeface, and already bold. And it goes out marked up as a heading, which is what lets a screen reader announce it as one and lets a reader skimming your email see the shape of it before they read a word.

There are no heading levels. No H1, H2, H3 ladder to keep straight — a heading is a heading, and if you want a smaller one you change its size, the same way you would on any other block.

Its typeface starts as your store's heading typeface and you can change it on any single heading, exactly as you can on a paragraph. The menu puts your store's heading face at the top of the list so you can always see which one is yours. You set that face once in Settings → Email.

The preview is the real email, rendered the way it will be sent, not a sketch of it. It updates a moment after each change is saved.

Two widths — on desktop and on mobile. Both show the same email; the mobile one is what a narrow screen does with it. Neither re-lays the email out to fit the pane, so what you see is what arrives.

"Designed dark palette (Apple Mail and iOS)" shows the colors you chose for a dark inbox. If this template has no dark palette, the switch says so: the email asks every inbox to keep it light, whatever Settings → Store says, which is a choice you can change under Email:

While Keep emails light in dark inboxes is on in Settings → Store, the switch is grayed out too, because the email arrives light:

The switch is the only thing that darkens the preview — if your own device is set to dark mode, the preview ignores that and keeps showing you the light email until you ask for the other one. It shows your dark colors, not a repainting inbox: the Gmail app and the Outlook apps work out their own colors, and a test sent to your own mobile device is the only way to see them (see the Dark mode page).

Under the preview is the size of the email a mailbox would receive, and what that size means. See Size, in the chapter Before an email goes out.

A template is allowed to be unfinished while you work on it. Nothing here refuses to save. What the editor does instead is tell you: a notice above the outline on the Content tab lists what would stop a campaign built from this template going out, under These stop a send, and anything else worth knowing under Worth knowing.

When there is nothing to say, nothing is shown. A permanent all-clear is a place you learn to skip, and then you skip the real finding with it.

Click a finding and the editor takes you to the block it is about. Some are about the email as a whole — a missing unsubscribe link, for instance — and those have nowhere to take you.

A transactional automation email is checked as a transactional email. When every automation step that sends an email is set to Transactional — in the automation you are building and in the version that is live — the checks do not ask for an unsubscribe link or your store's address — a transactional email is sent without them — and the list says so in one quiet line. A step that is live as Marketing keeps both checks until you publish the switch, because until then every email it sends is still a marketing email. Switch the step back to Marketing and both checks return the next time you open the email. An email a campaign sends, a template, and any email an automation sends as marketing keep both checks.

The same checks run again when you schedule a campaign, and that is what refuses. See What stops an email from going out, in the chapter Before an email goes out.

A Library element is a piece you reuse — a header, a footer, any run of blocks at all — that many emails point at rather than copy. Change it and press Publish, and every email that links it picks up the change, except a campaign already scheduled.

There is one kind of element and you do not classify it. A header and a footer are the same thing to this product: a saved run of blocks that emails link. Nothing places one first or last, and nothing behaves differently because of what it is called. So an element has a name and nothing else, and the name is what tells your pieces apart — "Store footer", "Spring header", "Care instructions".

An email links to an element; it does not hold a copy of it. Change the element and every email that links it picks up the change. That is the point of the Library: fix your address once and it is fixed everywhere.

An element has its own versions, and one of them is the current one — the version every email that links it actually uses. Saving a piece of a template into your Library publishes it right there, so it is ready to link from any template the moment you have saved it. There is no second step. Later, publishing a new version makes that one current, because that is almost always what you meant by publishing: you fixed the footer and you want the fixed footer everywhere.

Three things follow from that, and all three are worth knowing:

An element cannot contain another element. A footer cannot link a header. That keeps "what is in this email" a question with one answer.

Anything you have already built can go into the Library. In the editor's outline, the ⋮ menu on a selected block or section carries Save to Library. Name it, and it is saved. That is the whole dialog — the name is the only thing about an element that anything reads.

And there are two ways back out. At the top of the outline, Add from your Library places an element as a section of its own — which is what you want for a header or a footer. Inside a column, the From your Library tile places one among the blocks already there. Both link the same element; neither copies it.

A section saves the blocks inside it. A Library element is a run of blocks, so a section with two or three columns cannot be saved — the menu says so rather than flattening your columns into something you did not draw. Put the piece you want to reuse in a one-column section first.

Saving it publishes it. You said you wanted this piece in your Library, so there is nothing else to press. The element appears on the Library tab of the Templates screen, reading Published, and the From your Library tile in the block grid is live from that moment — in the template you are in, and in every other one.

Open an element by its name on the Library tab. It opens in the same editor a template does, holding that one piece: the same blocks, the same panels, the same live preview beside them, and the same rule that your work saves itself as you go.

Two things are different, because an element is a different thing from a template.

There is no subject line, no preview text and no colors of its own. An element is a run of blocks. It takes the colors of whichever template it is drawn in, which is what lets one footer sit under a dozen different emails and look like it belongs under each of them.

Publish is the act that matters. Everything you type saves itself, and none of it reaches a template until you press Publish. The line under the element's name says which of the three states you are in:

Every published version is kept, and Versions lists them. Putting an earlier one back is one press: templates linked to this element start using it straight away, what you are working on here is untouched, and campaigns that are already scheduled keep the version they were scheduled against.

A live automation picks up a published element at once, too, with one exception: an element that carries a discount block. The discount in an automation's email is checked when you apply your changes, so a change to an element that gives a discount away reaches a live automation when you next Apply changes to it, just as a change to the discount in the email itself does. That includes adding a discount block to an element a live automation already uses: until you apply your changes to the automation, the people who reach that email wait for it, your owners and managers get an email saying so, and the automation shows Needs attention.

A block that links to a Library element is not edited in place, because it belongs to every template that links it. Pressing Edit this element asks you one question — where you mean the change to land — and there are two answers:

Most of the time the first one is what you want, which is why it is the button the dialog offers first. A change meant for one email belongs in that email. Go to the Library when you mean it everywhere — a header, a footer, a phone number that has changed.