Skip to content

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:

EventSent when
AccountLowThesholdReachedaccount balance drops below its Balance low threshold
AccountHighThesholdReachedaccount balance rises above its Balance high threshold
AccountLowThesholdClearedbalance returns to normal after being below the low threshold
AccountHighThesholdClearedbalance 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.

VariableExampleDescription
{{ account.id }}123Account id
{{ account.name }}ACME TelecomAccount name
{{ account.balance }}42.00Current balance, a 2‑decimal string
{{ account.currency }}EURAccount currency
{{ threshold.low }}100.00Low threshold, a 2‑decimal string (empty if not set)
{{ threshold.high }}10000.00High threshold, a 2‑decimal string (empty if not set)
{{ event.type }}AccountLowThesholdReachedThe event name
{{ event.time }}2026-07-24 12:00:00 UTCWhen 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:

html
<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.