Email & templates

Connecting a mail server, editing the fourteen messages the platform sends, and reading the log when one does not arrive.

Admin → Settings → Email · Email templates · Email log

  1. Enable SMTP.
  2. Host, port and encryption from your mail provider.
  3. Username and password.
  4. From name and address.
  5. Send a test email before you rely on it.
The Email delivery tab
The Email delivery tab. Click to enlarge.

Every message the platform sends. Edit the wording; the placeholders stay.

The email templates list
The email templates list. Click to enlarge.

Do this before anything else

Almost every complaint that reaches you — "I never got my order confirmation", "my password reset never came", "the restaurant was not told about my order" — is one broken thing: mail is not being delivered. It is worth getting right on day one rather than diagnosing it later under pressure.

Connecting a mail server

Settings → Email holds four things:

FieldNotes
From nameWho the message appears to be from. Your platform's name.
From addressThe address it is sent from. Use one at your own domain.
Use SMTPSwitch this on. Without it the server's own mail function is used, which most hosts either disable or send straight to spam.
Host, port, encryption, username, passwordFrom your mail provider. They publish these; you do not invent them.
Send from a domain you control, and set up its mail records. A message claiming to be from a large free provider but sent through your server is the single most reliable way to land in spam. Your mail provider will tell you which SPF and DKIM records to add; adding them is the difference between mail arriving and mail vanishing.

The fourteen templates

The set is fixed — you cannot add or delete templates, because each one is sent by a specific event in the product. You can rewrite every word of all of them, and switch any of them off.

TemplateSent when
WelcomeSomebody registers.
Password resetSomebody asks to reset a password.
Order confirmationA customer places an order.
Order statusAn order changes state.
Reservation confirmationA table booking is accepted.
Restaurant applicationA restaurant applies to join.
Restaurant approvedYou approve one.
Staff inviteA restaurant adds a team member.
New order (restaurant)An order arrives, told to the restaurant.
New enquiry (restaurant)A catering or quote enquiry arrives.
Contact messageSomebody uses your contact form.
Abandoned cartOnce, about an order left unpaid.
Drip: we miss you / Drip: come backSteps in a re-engagement sequence — see Automated drips.

Editing one

Each template opens on its own screen: subject, preheader and body on the left, a live branded preview on the right that updates as you type. The body has two tabs — Visual for rich text, and HTML for the raw source when you want control.

The preheader is the grey line an inbox shows after the subject. Leave it blank and one is generated from the message.

Merge fields

Tokens in double braces are replaced when the message is sent. The editor lists only the tokens that template actually resolves — a token borrowed from another template would go out as literal text in a real message, so the list is the safe set rather than a catalogue.

Five are available in every template whatever the event: site name, primary colour, logo, site address and the current year. They come from your branding, so a template picks up a rebrand without being re-edited.

Switching one off

Each row has a switch. Switching a template off stops that message being sent at all — reasonable for the abandoned-cart email, unwise for password reset.

Restore previous saves you from a bad edit. Each template keeps its previous version, and Restore puts it back — the way out of a broken HTML paste that does not involve a database restore. It keeps one version back, so restore before you save over it again. Every restore is written to the audit log.

Test send

Send any template to yourself with sample values filled in. The button tells you when mail is not configured rather than failing on click — if it says so, finish Settings → Email first.

Mail is queued, not sent inline

This is the mechanism worth understanding, because it explains the most common support case.

Order confirmations, status updates and the restaurant's new-order alert are written into an outbox rather than sent while the customer waits. That is deliberate: sending inline made checkout hang on the mail server, and a slow mail server should never be able to stall a payment.

The outbox is drained by the Email retry scheduled task, which ships on — it is the delivery path, not an optional extra. It sends up to 25 messages per run, retries a failure after 2, 4, 8 then 16 minutes, and gives up after five attempts, marking the message failed with the provider's own words.

No cron means no email. With SMTP set up perfectly but the scheduler not running, every message sits in the outbox for ever and nothing tells you. If mail is not arriving, check Scheduled tasks before you touch your SMTP settings.

The email log

Every message the platform has tried to send, with three states:

StatusMeaningWhat to do
SentHanded to your mail server successfully.Nothing. Delivery beyond that is your provider's business.
PendingIn the outbox, waiting for the next run.Nothing — unless it has been pending for hours, which means the task is not running.
FailedFive attempts, all refused.Open it and read the error. It is the mail server's own words.

Filter by status, search by recipient or subject, and open any row to see the full message and its error. Resend tries one again immediately. Prune deletes old sent entries — failures and pending messages are never pruned, because those are the ones you need.

When it doesn't work

Nothing is being delivered and the log is full of Pending

The Email retry task is not running — the single most common cause on the platform. Go to Admin → System → Scheduled tasks, find Email retry and switch it on. The queue drains on the next run; nothing in it was lost.

Everything is Failed with an authentication error

Username or password is wrong. Many providers require an app-specific password rather than the one you sign in with.

Mail is sent but lands in spam

The from address and the SPF/DKIM records above. A "Sent" status means your server accepted it, not that an inbox did.

One kind of message never arrives, others do

That template is switched off. Go to Admin → Email templates and turn the switch on in that template’s row.

A template shows {{tokens}} in the real email

A token was used that the template does not resolve. Use only the fields the editor lists for that template.