10 · Platform & settings

Message templates

Edit the email / SMS / WhatsApp message sent for each lifecycle event (order shipped, invoice generated, etc.), preview with sample data, and reset to the built-in default.

5 min read · updated 28/05/2026

Overview

Neev sends a message every time something happens in an order's life — order confirmed, order shipped, invoice generated, payment received, low stock. By default each one uses a built-in message. This page lets you rewrite those messages in your own words, in the channel you want — email, SMS, or WhatsApp — so the note your customer reads sounds like your shop, not a robot.

Where to find it

Settings → Templates, at /settings/templates. Web only. Settings is an Owner-only area, so in practice the Owner is the one who opens and edits this page.

Key concepts

  • A template is the message text for one trigger + channel pair. The same trigger (say Order shipped) can have a different message on WhatsApp than on email.
  • Triggers are the lifecycle events that fire a message: Order created, confirmed, packed, shipped, delivered, cancelled; Invoice generated and finalized; Payment received; Low stock alert; Customer created.
  • Channels are email, SMS, and WhatsApp. Email templates have a Subject line; SMS and WhatsApp are body-only.
  • Variables are placeholders written in {{double_braces}} — for example {{customerName}} or {{orderId}}. Neev fills them in with the real values before sending. Each trigger exposes its own fixed set: Order shipped gives you customerName, orderId, trackingNumber; Invoice generated gives you customerName, invoiceNumber, totalAmount, downloadUrl.
  • A Custom tag (shown as a warning chip) means you have overridden the built-in message for that trigger + channel. No tag means the system default is still in use. There is no blank state — it is always either your custom text or the built-in default.

Common workflows

1
Edit a message

Open Settings → Templates. Find the trigger row (e.g. Order shipped), pick the channel chip — email, SMS, or WhatsApp — and hit the pencil. The editor opens with the current text.

2
Drop in a variable

In the editor, the Available variables strip shows every variable that trigger supports. Click one (like {{trackingNumber}}) and it is inserted into the body. The editor highlights every {{variable}} so you can see them at a glance. For email, fill the Subject field too.

3
Preview with sample data

Hit Preview before saving. Neev renders the message with stand-in values like [customerName] and [orderId] so you can read exactly how it will look. Money runs through Indian formatting (Rs 2,50,000.00) and dates as DD/MM/YYYY.

4
Save it

Hit Save template. The trigger now shows the Custom tag and every future message for that trigger + channel uses your version.

5
Reset to the built-in default

On a custom template a reset (circular arrow) button appears next to the channel chip. Click it, confirm in the dialog, and that trigger + channel drops your version and goes back to the built-in message.

Role notes

This page lives under Settings, which is Owner-only.

The Owner holds the full set of template powers — edit and save (notifications.template.upsert), preview (notifications.template.preview), and reset to default (notifications.template.delete) — and can open the Settings area.

The Manager runs day-to-day operations but is deliberately kept out of template editing and tenant settings. A Manager's role does not include notifications.template.upsert or notifications.template.delete, and does not include settings.* access. So a Manager cannot create, edit, save, or reset a template on this page — that stays with the Owner.

Tips & time-savers

Tip
Click variables from the Available variables strip instead of typing the braces by hand. One tap drops {{customerName}} in exactly right — no typos, and you can only insert the variables that trigger actually supports.

Always Preview before you save. The preview uses sample values, so you catch a missing comma or a wrong line break before a single real customer sees it.

Gotchas

Warning
Reset is a clean wipe. Resetting a custom template throws away your edited text and brings back the built-in default — there is no undo, so copy your wording out first if you might want it back.

Variables are fixed per trigger. A {{variable}} only fills in if it belongs to that trigger's set — type {{trackingNumber}} into a Customer created message and it will not resolve, because that trigger only carries customerName and phone.

Related