---
title: "Low-budget alerts"
description: "Email, digest or in-app notice when an advertiser's total budget is nearly spent — which event fires, when and for whom, the three-step template, and why a digest is usually the better choice."
type: "howto"
audience: [admin]
keywords: [low budget alert, budget running low, advertiser balance, less than $50, budget notification, total budget, budget threshold, digest]
ui_path: "Admin → Notifications → Email notification templates"
---

Fetch the complete documentation index at: https://epom.com/ad-server/docs/llms.txt. Use this file to discover all available pages before exploring further. Append .md to any documentation page URL to get its markdown version.

# Low-budget alerts

## What it is and why

An advertiser with a **Total** budget on its Limits card stops serving the moment the budget is
spent, and nobody is told in advance. The built-in event **Advertiser has less than $50 at the
balance** fires while the money left is at or below a threshold, so the people who manage that
advertiser can top up or re-plan before delivery stops. Nothing is sent until a template listens
to the event.

**Example.** *Summit Ridge Digital* has a total budget of $5,000 and has spent $4,962. The next
time statistics are written for one of its campaigns, the remainder ($38) is under the $50
threshold, the event fires, and every active user the advertiser is shared with receives the mail
you bound to it — and receives it again on the next statistics write while the balance stays low.

## Typical scenarios

| You want | Set | Where |
|---|---|---|
| The advertiser's owner gets one mail the first time the balance drops under $50 — and is fine with repeats | An email template on the event, **To** `${user.email}`, roles unticked | Email notification templates |
| One summary a day instead of a mail per statistics write | A scheduled event *1 per Day*, start *0d 9h 0m*, plus a scheduled notification template on the event with the **roles ticked** | Scheduled events, then Scheduled notification templates |
| Only your own network managers are warned, not the advertiser's users | The same template with only the manager role ticked under **Roles** | Email notification templates |
| A red notice on the dashboard, no mail | A UI notification template on the event, **Display on dashboard** on, type *Alert* | UI notification templates |

## Step by step

1. Give the advertiser a **Total** budget: **Account → Advertisers → advertiser → Limits**,
   *Budget* row, *Total* column — see [Limits](https://epom.com/ad-server/docs/guides/delivery/limits.md). A total budget of 0 means
   unlimited, so there is no balance to run low on and the event never fires.

2. Open **Admin → Notifications → Email notification templates** and click **Add** (or open an
   existing template). Type a **Title** and tick **Active**.

3. Set **To** to `${user.email}`; write the **Subject** and **HTML body**. The event exposes the
   advertiser (`${advertiser.name}`, …) and the recipient (`${user.firstName}`, …) — take the exact
   macros from the **Attributes** links in the *Events* card.

   ![Email template bound to the low-budget event with To and the advertiser macro](https://epom.com/docs-images/ad-server/notifications-and-mail/low-budget-template.webp)

4. In *Events*, type *balance* in **Filter** and tick **Advertiser has less than $50 at the
   balance**. Leave **Roles** clear for everyone the advertiser is shared with, or tick the roles
   that should hear. Click **Save**.

## Caveats and exceptions

- **When it fires.** The check runs each time new statistics for one of the advertiser's
  campaigns are written: total budget minus what has been spent against it is at or below the
  threshold. It is not a once-a-day message — while the remainder stays under the threshold and
  the advertiser keeps delivering, every statistics write raises it again. Campaign and banner
  budgets do not trigger it; only the advertiser's **Total** budget does. A daily or monthly
  advertiser budget does not either.
- **Who gets it.** Every active user the advertiser is shared with as *Is Owner*, *Can Edit* or
  *Can View*, each with their own copy of the mail. Template **Roles** narrow that further, as for
  any event.
- **The threshold is a server-side setting**, 50 by default; the event name shows the current
  value. Ask Epom support or your account manager to change it — there is
  no admin page for it.
- **Because the event repeats**, a **Scheduled notification template** (digest) on the same event
  gives each user one summary per period rather than a mail per check; a **UI notification
  template** gives an in-app notice instead. On a digest, remember to tick **Roles** — no roles
  ticked means nobody.
- **The Target user's macro root is `user`**, not `targetUser`: `${user.email}`, not
  `${targetUser.email}`. A wrong root is mailed as literal text.

## Not working?

| Symptom | Check | Where |
|---|---|---|
| Never fires | The advertiser has a **Total** budget above 0 (daily and monthly budgets do not count); the advertiser is still delivering — the check runs only when statistics are written | **Account → Advertisers → advertiser → Limits**, *Budget* row |
| Fires but no mail | A template is bound to the event and **Active**; on a digest, roles are ticked | **Email / Scheduled notification templates** → **Events**, **Roles** |
| Some users get it, others do not | The user is active and shared on the advertiser; their role is ticked (or none is); their address is not on the unsubscribe list and, for optional mail, their *Receive notifications by email* switch is on | The advertiser's **Shares**; the template's **Roles**; **Email unsubscribe list** |
| Too many mails | Expected on a plain email template; switch to a digest | **Scheduled notification templates** |
| `${targetUser.email}` appears in the mail | Wrong macro root; use `${user.email}` | The template's **To** and body |

Everything else that can keep a mail from arriving is in
[Notifications & outbound mail — Not working?](https://epom.com/ad-server/docs/guides/admin/notifications-and-mail.md#not-working).

## Reference

| Item | Value |
|---|---|
| Event | **Advertiser has less than $50 at the balance** (the amount shows the network's threshold) |
| Attributes | **Affected advertiser** (`${advertiser.…}`), **Target user** (`${user.…}`) |
| Fires when | total budget − spent ≤ threshold, on each statistics write for the advertiser's campaigns |
| Recipients | Active users shared on the advertiser (Is Owner / Can Edit / Can View), narrowed by template Roles |
| Threshold | Server-side setting, default 50 |
| Digestable | Yes — it carries a Target user and names an advertiser |

## Related

- [Notifications & outbound mail](https://epom.com/ad-server/docs/guides/admin/notifications-and-mail.md)
- [Notifications & outbound mail: fields, macros and API](https://epom.com/ad-server/docs/guides/admin/notifications-and-mail-reference.md)
- [Limits](https://epom.com/ad-server/docs/guides/delivery/limits.md)