Skip to main content
Version: 1.2

Notification rules

Route: /notifications/rules (default tab when opening Management → Notifications)

A rule defines when a notification is sent, under which conditions, with which method, and to whom. Rules are the last piece in the chain described in the overview: after methods, groups, and templates exist, rules tie them together and connect alerts to outbound notifications.

See also: Overview · Groups · Templates

Create a rule​

  1. Open Notifications → Rules.
  2. Click Create rules.
  3. Complete the three side-panel tabs: General, Conditions, Actions.
  4. Save.

Notification rules list — Create rules and Rules tab

How a rule is evaluated​

When an event occurs (or a recurring schedule runs), ToBeAlert checks rules in priority order — lower numbers are evaluated first. For each rule, all of the following must pass before a notification is sent:

  1. Status — the rule is active and its linked method is enabled.
  2. Time window — the current time falls inside All Day or the configured Time Range.
  3. Trigger — the event matches the selected trigger (new alert, status change, user action, or scheduled run).
  4. Alert filters — if you configured conditions, the alert must match them.

If any step fails, that rule is skipped and the next rule in priority order is checked. An active rule outside its time window appears as Pending in the table.

Empty filters

If you leave the condition builder empty, no attribute filtering applies — the rule only depends on the trigger and time window (plus any implicit constraints of the trigger itself).

General tab​

Rule drawer — General

FieldDescription
NameRule name
DescriptionDescription
PriorityEvaluation order (lower number = higher priority; starts at 0)
Statusactive / inactive. An active rule may still show as pending outside its time window

When Status is active but the rule is outside its configured time range, the form shows Notification still disabled due to time range.

Computed status in the table​

UI statusMeaning
ActiveRule active, method enabled, within time window
PendingActive but outside time range (when not “All Day”)
InactiveRule disabled
Inactive (Method disabled)Rule active but the linked method is disabled

Conditions tab​

Rule drawer — Conditions

The Conditions tab has three layers: alert filters, time window, and trigger. Together they define which alerts qualify and when the rule may fire.

Alert filters​

The visual condition builder works the same way as in policies and workflows. You combine alert fields with operators and group them with AND / OR logic.

Builder controls​

ControlDescription
Group RootTop-level group that holds all conditions
Add FilterAdd a condition on an alert field
Add GroupAdd a nested sub-group for complex logic
AND / ORLogical operator between conditions in the same group (shown when the group has two or more items)
Delete GroupRemove a nested group
Maximum depth reachedShown when nesting reaches five levels — add breadth, not more depth

You can drag conditions by the grip handle to reorder them within a group.

AND / OR and nested groups​

Each group (root or nested) uses a single operator — AND or OR — to combine its direct children. For mixed logic, nest groups instead of mixing operators at the same level.

Example: notify when severity is critical or major and environment is Production:

Group Root [AND]
├─ Group [OR]
│ ├─ severity Is in critical, major
│ └─ (other OR branches…)
└─ environment Equals production
Ambiguous conditions

If you mix AND and OR at the same level without nesting, save fails with: "Ambiguous condition: mixing AND/OR in the same group. Please add groups to disambiguate." Wrap one branch in Add Group to make the logic explicit.

Filterable alert fields​

The field dropdown uses camelCase names (the same names used in templates as %fieldName%). Common fields:

FieldWhat it matches
severityCurrent severity (critical, major, minor, warning, …)
statusAlert status (open, ack, closed, shelved, …)
environmentDeployment environment (Production, Staging, …)
resourceAffected system or component
eventEvent type that triggered the alert
serviceService or application (list field)
groupLogical grouping or category on the alert
tagsLabels attached to the alert
attributesCustom metadata — see below
originSource system that generated the alert
typeAlert classification type
textAlert description text
createTime / updateTime / lastReceiveTimeTimestamps
previousSeveritySeverity before the last change
userUser who last modified the alert

Additional fields are available for less common cases (correlate, duplicateCount, repeat, rawData, sourceId, value, timeout, and others).

Custom attributes​

Choose attributes, then enter the attribute key (for example datacenter or owner). Pick an operator and value as for any other field. This is the usual way to route notifications based on metadata your integrations send with the alert.

Operators​

Available operators depend on the field type:

OperatorTypical use
Equals / Not equalsExact match on text, numbers, enums, booleans
Is in / Is not inMatch any of several values (severity, status, environment, …)
Contains / Does not containSubstring match on text, or membership in list fields like service and tags
Greater than / Less than (and or equal)Numeric and date comparisons
Regular expression / Not regular expressionPattern match (case-sensitive or insensitive variants)

For Is in / Is not in, fields such as severity, status, environment, service, and tags offer suggestions from known values; you can also type new ones.

Extra fields by trigger​

Some fields only appear when a specific trigger is selected:

TriggerExtra filter fields
Status changeprev_status — previous alert status before the change
Take actionaction — type of action performed on the alert

Use prev_status together with status to target specific transitions (for example, from open to ack).

Time window​

OptionDescription
All DayRule applies at any time of day
Time RangeOnly between start and end time on the same calendar day

The time window applies to every trigger, including Recurring notification. Outside the range, an otherwise active rule shows Pending and does not send.

Trigger​

Rule drawer — Trigger dropdown open

TriggerWhen it fires
Post receiveA new alert is received or processed
Status changeAn alert’s status changes
Take actionA user performs an action on an alert
Recurring notificationOn a fixed schedule while matching alerts exist

Pick the trigger that matches the event you care about, not only the alert shape. For example, use Status change for ack/close notifications even if you also filter on severity and environment.

Trigger column in the table

The rules table Trigger column shows internal values (post_receive, status_change, …), not the friendly labels from the dropdown.

Recurring schedule​

When trigger is Recurring notification, choose Schedule type:

Rule drawer — Schedule type dropdown open

TypeParameters
Every x minutesEvery (minutes) — minimum 1
Daily at fixed timeTime (24-hour HH:mm)
Weekly at fixed timeDay of week (Monday … Sunday) and Time
Monthly at a fixed timeDay of the month (1–31 or Last Day of Month) and Time

On each run, ToBeAlert evaluates the same alert filters against current alerts. Matching alerts are included in that scheduled notification. With no filters, every alert qualifies (still subject to the time window and schedule).

Typical use: a daily digest of open alerts, or a periodic reminder while critical alerts remain unacknowledged.

Actions tab​

Select a notification method to reveal channel-specific options (email recipients, Telegram message settings, etc.).

Email method​

Rule drawer — Actions with Email method

Telegram method​

Rule drawer — Actions with Telegram method

FieldDescription
MethodNotification method to use (must exist and be enabled)

Recipients and notification groups​

For email methods, choose how to address the message:

ModeDescription
Use notification groupSend to one or more notification groups. Each group expands to its member users.
Use app/custom usersPick individual ToBeAlert users (with email configured) or type custom email addresses (shown as Custom).

Use notification group is the recommended default: define teams once under Notifications → Groups, then reference them from many rules. The rules table Groups column lists the groups attached to each rule; if none are set, it shows No groups set.

Groups are resolved to user email addresses at send time. Users without an email on their profile cannot receive email notifications — keep group membership aligned with Access Control and verify emails before enabling critical rules.

CC and BCC with groups​

In the advanced email section you can enable CC and/or BCC:

  • Use notification group — pick a group; the Email field is disabled while a group is selected.
  • Or enter a fixed Email address directly.

The same group can be used for primary recipients on one rule and CC/BCC on another (for example, on-call in To and managers in CC).

Telegram

Telegram rules do not offer a group/user picker. Recipients come from the method’s default Chat ID; you can Override Chat ID and configure the message on the rule.

Email options​

By default, sender details and templates come from the selected method. Override them on the rule only when needed; blank fields fall back to method defaults.

OptionDescription
From / Display nameCustom sender
CC / BCCFixed email or notification group
Subjecte.g. Alert: %resource% - %event% (same %field% syntax as templates)
Show severity graphInclude severity graph in message
HTML Body → Use templateTemplate from the list
HTML Body → Use custom HTMLInline HTML on this rule

Telegram options​

OptionDescription
Override Chat IDOverride method default
Message configurationMessage Format: HTML or Markdown
Use template / Custom MessageSame pattern as email

When Message Format is HTML, the body must use Telegram HTML markup (bold, italic, links, and so on) — not full HTML tables or <div> layout. See also Notification methods — Telegram.

Rule drawer — Telegram HTML custom message

Also notify when alert is closed​

Only for trigger Post receive:

  • Also notify when alert is closed
  • Separate notification settings for the close event (same email/Telegram options as above)

Help text: "Configure the notification to send when the alert is closed or resolved." Use this when the initial alert and its resolution should go to different groups or use different templates.

Example scenarios​

Critical production alerts to on-call​

TabSetting
GeneralPriority 0, active
Conditionsseverity Is in → critical, major · AND environment Equals → Production · All Day · Post receive
ActionsEmail method · Use notification group → on-call-production · template critical-alert

Notify when an alert is acknowledged​

TabSetting
ConditionsStatus change · prev_status Equals → open · AND status Equals → ack
ActionsUse notification group → noc-team

Billing service — open and close to different audiences​

TabSetting
Conditionsservice Contains → billing · Post receive
ActionsInitial email → group billing-ops · Also notify when alert is closed → group billing-managers

Daily digest of open alerts​

TabSetting
ConditionsRecurring notification · Daily at fixed time → 09:00 · status Is in → open, ack · Time Range 08:00–18:00
ActionsUse notification group → daily-digest

Route by custom attribute​

TabSetting
Conditionsattributes key datacenter Equals → eu-west-1 · AND severity Is in → critical
ActionsUse notification group → eu-on-call

Table and bulk actions​

Columns: Name, Description, Status, Priority, Method, Trigger, Recurrent, Notification groups, Active time range, Create time.

Bulk actions: edit, duplicate, enable/disable, delete. Built-in rules cannot be deleted. Force is disabled in the current UI. For row selection, the bulk bar, and context menu behavior, see List tables and bulk actions.

Best practices​

  • Lower priority number for more specific rules; higher numbers for catch-all rules.
  • Match trigger to the event you care about (e.g. Status change for ack/close, Post receive for new alerts).
  • Use nested groups for OR-then-AND logic; avoid mixing operators at the same level.
  • Start with a few high-value filters (severity, environment, service, tags, attributes) before adding narrow rules per field.
  • Tie recipients to groups instead of hard-coding users on every rule; use CC/BCC groups for escalation tiers.
  • For recurring digests, combine status filters with a Time Range so overnight alerts do not notify outside business hours.
  • Use templates for HTML; use rule-level overrides only when needed.
  • Watch for Pending status — often a misconfigured Time Range or an inactive method.