Notification Templates
Notification templates define the emails Yeti sends when an Account crosses one of its balance thresholds. Each template is an email subject and an HTML body rendered with Liquid against the account and threshold data, then delivered to the account's balance notification contacts.
Templates are edited directly in the web interface and stored in the database. Whenever a balance event fires, the matching template is merged with the event data and the result is the email that is sent — there is no other source for the message.
There is one template per balance event:
| Event | Sent when |
|---|---|
AccountLowThesholdReached | account balance drops below its Balance low threshold |
AccountHighThesholdReached | account balance rises above its Balance high threshold |
AccountLowThesholdCleared | balance returns to normal after being below the low threshold |
AccountHighThesholdCleared | balance returns to normal after being above the high threshold |
The thresholds and recipients are configured per account under Balance notification settings. Each crossing is also recorded in the Balance notifications log.
WARNING
The four templates are created automatically and always exist. You can edit them, but you cannot create new ones or delete them. Emails are only sent for an event if the account has the relevant threshold and at least one balance notification contact configured.
Notification Template attributes
- Id
- Unique notification template id.
- Event
- The balance event this template renders. Fixed — it cannot be changed.
- Subject
- The email subject line. Also a Liquid template, so it can embed variables.
- Body
- The HTML email body.
Available variables
A template can reference only the variables below. Nothing else about the account is available.
| Variable | Example | Description |
|---|---|---|
{{ account.id }} | 123 | Account id |
{{ account.name }} | ACME Telecom | Account name |
{{ account.balance }} | 42.00 | Current balance, a 2‑decimal string |
{{ account.currency }} | EUR | Account currency |
{{ threshold.low }} | 100.00 | Low threshold, a 2‑decimal string (empty if not set) |
{{ threshold.high }} | 10000.00 | High threshold, a 2‑decimal string (empty if not set) |
{{ event.type }} | AccountLowThesholdReached | The event name |
{{ event.time }} | 2026-07-24 12:00:00 UTC | When the event fired |
WARNING
account.balance, threshold.low and threshold.high are strings, and a threshold that is not configured is empty. Guard optional rows with a presence check — {% if threshold.low %} — before printing them.
Template syntax
Templates use Liquid: {{ variable }} to output a value, {% if %} / {% for %} for control flow, and | filter to format values. Liquid runs sandboxed, so a template can only touch the variables above — it cannot execute arbitrary code.
A body is a self-contained HTML fragment:
<table width="100%" cellpadding="0" cellspacing="0" border="0"
style="font-family:Arial,Helvetica,sans-serif;">
<tr>
<td style="background-color:#c0392b;padding:16px 24px;color:#ffffff;font-size:18px;">
Low balance warning
</td>
</tr>
<tr>
<td style="padding:24px;color:#333333;font-size:14px;">
<p>The balance of account <strong>{{ account.name }}</strong> has dropped
below the configured low threshold.</p>
<p>Current balance: <strong>{{ account.balance }} {{ account.currency }}</strong></p>
{% if threshold.low %}
<p>Low threshold: {{ threshold.low }} {{ account.currency }}</p>
{% endif %}
<p>Time: {{ event.time }}</p>
</td>
</tr>
</table>A matching subject template:
Low balance warning: {{ account.name }} ({{ account.balance }} {{ account.currency }})Email HTML, not web HTML
The body is rendered by mail clients, not browsers. Use inline styles and a table-based layout — <style> blocks, external stylesheets, flexbox and grid are unreliable across clients. Keep the alert legible with images disabled: convey status with background colour and text, never with an image alone. Scripts never run: the body is delivered as email and is shown in the admin inside a sandboxed frame.
Preview
Open a template and click Preview to render it against sample account data in a new tab, exactly as the delivered email would look. Use it to check the layout before saving.