4. Designing emails
Contents
- Templates vs. campaign content
- The Template Designer
- The editor toolbar
- Starting from a template
- Generating a design with AI
- Personalization tags
- The tags that bite
- Advanced: text that changes when a field is missing
- Subject line and preview text
- What NX adds to every email for you
- Design rules for restaurant email
- Copying designs between venues
Templates vs. campaign content
Both use the same drag-and-drop editor. The difference is what they're for.
| Template | Campaign | |
|---|---|---|
| Lives in | Template Designer | The campaign itself |
| Purpose | A reusable starting point | One specific send |
| Has a subject | Yes — a default | Yes — the real one |
| Has recipients | No | Yes |
| Can be sent | No | Yes |
The important rule: a template is a starting point, not a live link.
When you load a template into a campaign, NX copies the design into that campaign. From then on the campaign owns its content. Editing the template afterwards has no effect on any campaign already built from it — including drafts and scheduled sends.
That's usually what you want (nobody wants last month's promo rewritten under them), but it means fixing a typo in your template does not fix it in the campaigns already made from it. Fix those individually, or rebuild them from the corrected template.
The Template Designer
Marketing → Template Designer. A table of your own saved templates with Name, Subject and Last Updated, and three buttons on each row:
| Button | Does |
|---|---|
| ✏️ Edit | Opens the design |
| 📄 Copy | Makes <name> (Copy) — the safe way to try a variation |
| 🗑️ Delete | Removes the template. Campaigns built from it are unaffected |
Add / New starts a blank one. Give it a name (internal) and optionally a subject (a default that gets suggested when you use the template), design it, Save.
Templates belong to whatever you have selected — a template saved against one venue isn't visible from another. See Copying designs between venues.
NX also ships marketing starter templates. They don't appear in this table (it lists what you own), but they show up in the template picker when you build a campaign or a Quick Send.
The editor toolbar
Same set of buttons in the Template Designer, the campaign editor and Quick Send:
| Icon | Name | What it does |
|---|---|---|
| ⚙️ | Settings | Name, subject, and (in a campaign) sender and recipients |
| ✨ | AI Generate | Describe an email, get a design |
| 🖼️ | Load Template | Replace the canvas with a saved or starter template |
| ⬇️ | Import Design JSON | Paste a design exported from elsewhere |
| ⬆️ | Export Design JSON | Copy this design to your clipboard |
| Cancel / Save | Discard, or save |
Notes:
- Save is disabled until the editor has finished loading. Give it a couple of seconds.
- When a design loads (template, AI or import) you'll see a "Loading design…" overlay for about two seconds. That's expected — don't click through it.
- Loading a template or importing JSON replaces everything on the canvas. There's no merge and no undo across that boundary. Save first if you're unsure.
- Images you drop into the editor are uploaded and hosted for you; you don't need your own image URLs.
Starting from a template
In a campaign or Quick Send, click 🖼️ Load Template. You get one grid containing:
- NX marketing starters — professionally built layouts, listed first
- Your own saved templates
Click one and it loads. It also fills in the subject line — but only if your subject is still empty, so it never overwrites something you typed.
Start Blank Instead (bottom-left) clears the canvas to an empty design.
Generating a design with AI
Click ✨ and describe the email in a sentence or two. Be specific about the offer, the tone and what you want the guest to do:
A warm email from a neighbourhood Italian restaurant to guests who haven't visited in two months. Mention the new spring menu, offer 15% off a dinner for two, and include a "Reserve a table" button. Friendly, not salesy.
You'll see progress messages while it works, then the design lands on the canvas and you can edit every part of it. ⌘/Ctrl + Enter submits; Cancel stops a generation in progress.
Treat the output as a first draft. Always:
- Replace any invented details — hours, prices, dish names, addresses.
- Check the offer wording is one you'll honour, and add an expiry date.
- Check personalization tags are the real ones (see below).
- Send it to your
Team testlist and look at it on a phone.
The AI can't see your menu, your brand colours or your guest data, so specifics are worth spelling out in the prompt.
Personalization tags
Tags are placeholders that get replaced per recipient at send time. The editor's merge tags panel offers these:
Recipient
| Tag | Renders |
|---|---|
{{firstName}} |
The recipient's first name |
{{lastName}} |
Last name |
{{email}} |
Their email address |
Location
| Tag | Renders |
|---|---|
{{venueName}} |
The venue the campaign was sent from |
{{enterpriseName}} |
Your Enterprise / brand name |
Customer (POS only)
| Tag | Renders |
|---|---|
{{visitCount}} |
Lifetime visits |
{{revenueTotal}} |
Lifetime spend — in cents |
{{isVIP}} |
true / false
|
Your own fields
Any merge field on a contact is available by its key. Store favoriteDish on the contact and {{favoriteDish}} works — it just won't be listed in the panel, so type it yourself.
Tags work in the body and in the subject line. Thanks for visiting, {{firstName}} is a perfectly good subject.
The tags that bite
Five things that produce embarrassing email if you don't know them:
1. A missing value renders as nothing at all. Hi {{firstName}}, becomes Hi , for anyone without a first name. Either write copy that survives it (Thanks for visiting!) or use the conditional trick below.
2. {{revenueTotal}} is raw cents with no formatting. A guest who has spent $125.00 renders as 12500. Don't put it in guest-facing copy. Use it to decide who gets the email (via a Customer Query filter, where you type dollars), not to display.
3. {{isVIP}} renders the words true or false. Never show it to a guest. Make a VIP-only list instead and write the copy accordingly.
4. The Customer tags only work for customer-sourced recipients. {{visitCount}}, {{revenueTotal}} and {{isVIP}} come from POS guest records. Send the same template to a contact list and they render blank. That's why the panel labels them POS only. The reverse is also true: your own merge fields render blank for customer-sourced recipients.
5. {{venueName}} is blank on Enterprise campaigns. It only fills in when the campaign belongs to a specific venue. Enterprise-level campaigns should use {{enterpriseName}}, or just type your restaurant's name.
Always test with a real recipient of the type you're going to send to. A campaign to a Customer Query list should be test-sent... which you can't do directly — so instead, check the tags you used against the table above, and use Quick Send to email one real POS customer (pick yourself if you've ordered online) before the blast.
Advanced: text that changes when a field is missing
If you want a clean greeting either way, type this into a text block:
{{#if firstName}}Hi {{firstName}}, {{else}}Hi there, {{/if}}
Contacts with a first name get Hi Alex,; everyone else gets Hi there,.
This is real functionality, not a documented feature of the editor — you're typing it into the text, and NX processes it at send time. Test it on your Team test list before using it on a blast, and keep it simple: one {{#if}}…{{else}}…{{/if}} per block, no nesting.
Subject line and preview text
Both live in Settings, and both are worth more attention than the design.
Subject line (required)
- 30–50 characters. Phone inboxes cut off around there.
- Say the actual thing: "$10 off your next dinner — this week only" beats "News from Tony's".
- Personalization works:
We miss you, {{firstName}}. - No ALL CAPS, no
!!!, don't lead withFree. Spam filters have opinions.
Preview text (optional, but always fill it in)
The grey line inboxes show after the subject. If you leave it empty, mail apps grab whatever text happens to be at the top of your email — often "View in browser" or nothing.
Use it to extend the subject rather than repeat it:
Subject:
We miss you, Alex→ Preview:Here's 15% off your next visit — good through Sunday.
What NX adds to every email for you
Every campaign email is sent with a compliance footer appended automatically:
-
Who it's from —
Sent by Tony's Trattoria, orSent by Tony's Trattoria via NXif you haven't verified your own domain (§7) - Your venue's postal address, from the venue's business address on file
- An Unsubscribe link
NX also adds the header that produces the native Unsubscribe button at the top of the message in Gmail, Apple Mail, Yahoo and Outlook.
Two things follow from this:
-
You don't need to build an unsubscribe link. If you want one somewhere specific in your design, put
{{unsubscribeUrl}}behind a link — NX then skips its own footer and uses yours, so make sure yours is genuinely clickable and obvious. - Enterprise-level campaigns get no postal address line (there's no single venue address to use). Postal address is a legal requirement in most jurisdictions, so type your address into the footer of the design for Enterprise campaigns. §8 covers why.
Design rules for restaurant email
The things that actually move results, roughly in order:
- One message, one button. Decide the single action — reserve, order, view the menu — and make it a real button, above the halfway point of the email.
- Design for a phone. Most guests read on a phone at arm's length. Single column, body text no smaller than 14px, buttons at least 44px tall.
- Food photography beats graphic design. One good, well-lit photo of a dish outperforms a carefully composed layout. Keep images under ~200 KB each so it loads on café wifi.
- Assume images are blocked. Some clients don't load them by default. Your offer must be readable as text; never put the discount only inside an image.
- Say the offer twice — once at the top, once next to the button.
- Put an expiry on every offer. "This week only" is the thing that makes people act.
- Include the practical details — hours, address, phone, a link to the menu. Guests often open a restaurant email specifically to find these.
- Test dark mode. Send to yourself and look at it with your phone in dark mode. Logos on transparent backgrounds are the usual casualty; a white or colored background block fixes it.
- Keep it short. Sixty to a hundred words of body copy is plenty.
Copying designs between venues
Templates don't cross between venues or between a venue and the Enterprise. To move one:
- Open the template, click ⬆️ Export Design JSON — the design is copied to your clipboard.
- Switch to the other venue or Enterprise.
- Template Designer → New, click ⬇️ Import Design JSON, paste, Import.
- Name it and Save.
The same trick backs up a design you're about to experiment on: export, paste into a note, and you can always get back.
Next: §5 Campaigns