# Notification Rule

When an event happens on a record type, tell an audience through a channel.

A Notification Rule says: when an event of one kind happens on one record type, send a message through one channel to one audience, using a template. It says who is told, never who may read the record.

Today the base has one rule, **Reading due today**, Active, through the Slack DM channel, produced by the KPIs & OKRs Daily Digest. The rule documents that flow; it does not drive it. The digest builds its blocks in workflow code, does not render Template and does not read Active as an on/off switch. See [Integration records](/systems/kpis-okrs/integrations).

[![Notification Rule Grid view: the rule that documents the Daily Digest.](/systems/communication/screens/comm-rule-grid.png)](/systems/communication/screens/comm-rule-grid.png)

## Fields

### What fires and what is said

| Field | Storage | Meaning |
| --- | --- | --- |
| Name | Text | The event and the audience in one sentence. Primary field. |
| Trigger | Text | Record type and event, matched verbatim by the automation that reads it |
| Record Type | Linked records | [Classification Term (mirror)](/systems/communication/entity-classification-term); the record type the event happens on |
| Template | Long text | Message text with placeholders in curly braces; sent messages keep their own text |
| Active | Checkbox | Ticked means the rule should fire; blank means off |
| Tags | Linked records | [Tags (mirror)](/systems/communication/entity-tags); optional labels |

### Where and to whom

| Field | Storage | Meaning |
| --- | --- | --- |
| Channel | Linked records | [Channel](/systems/communication/entity-channel); link exactly one Active channel |
| Channel (Name) | Lookup | Name of the linked channel, via Channel |
| Audience (Team) | Linked records | [Team (mirror)](/systems/communication/entity-team) |
| Audience (Department) | Linked records | [Department (mirror)](/systems/communication/entity-department) |
| Audience (Membership) | Linked records | [Membership (mirror)](/systems/communication/entity-membership); blank when the audience comes from the record itself |
| Audience (Membership Name) | Lookup | Invalid configuration: the lookup has no target field and shows nothing |

### What it produced

| Field | Storage | Meaning |
| --- | --- | --- |
| Messages | Linked records | Inverse of Message → Rule |
| Messages Sent | Rollup | Sum of Is Sent among linked Messages |
| Last Sent | Rollup | Latest Sent At among linked Messages |

## Calculated rules

Messages Sent sums the Message formula Is Sent, so it counts every row whose Status is Sent, including dry runs. On 2026-10-28 the rule showed 155, of which 76 were dry-run rows. Read [Review deliveries](/systems/communication/review-deliveries) before quoting it as a delivery count.

Audience (Membership Name) is broken: its description expects Member (Name) through Audience (Membership), but no target field is configured. It is listed under [known gaps](/systems/communication/known-gaps).

## Lifecycle and checks

Untick Active to pause a rule without deleting it. A rule should name one event kind; a second event is a second rule. No formula checks that the channel is Active, that the audience has a current binding, or that every placeholder exists on the record type.

## Example

Fictitious: Name `Task overdue → accountable membership`, Trigger `Task overdue`, Record Type Task, Template `{Name} was due on {Due Date} and is still open.`, Active ticked, Channel ops-alerts, audience left blank because it comes from the task's accountable membership.

## Next steps

[Register channels and rules](/systems/communication/register-channels#describe-the-rule) · [All entities](/systems/communication/entities)