Site: Planekeeper Docs — Monitor software versions across your stack. Planekeeper tracks releases, gathers version data, and alerts on drift.
Section: Feature Guides > Notifications > Notification Rules
Source: https://docs.planekeeper.com/guides/notifications/rules/
Title: Notification Rules
Author: Planekeeper
Description: Configure notification routing rules to control which alert events go to which channels based on severity and event type.
Word count: 779
Reading time: 4 min

Contents:
- [How routing works](#how-routing-works)
- [Event types](#event-types)
- [Severity filtering](#severity-filtering)
- [Create a notification rule](#create-a-notification-rule)
- [Priority and ordering](#priority-and-ordering)
- [Channel override vs. default](#channel-override-vs-default)
- [Toggle a rule on or off](#toggle-a-rule-on-or-off)
- [Common routing patterns](#common-routing-patterns)
  - [Escalation-based routing](#escalation-based-routing)
  - [Event-type routing](#event-type-routing)
  - [Catch-all rule](#catch-all-rule)
- [Bulk delete](#bulk-delete)
- [Delete a notification rule](#delete-a-notification-rule)

***

# Notification Rules


Notification rules control the routing of alert events to channels. Each rule specifies which events and severity levels it matches, and optionally overrides the destination channel. Use notification rules to send critical alerts to PagerDuty, moderate alerts to Slack, and resolved notifications to a low-priority channel.

## How routing works

When an alert event occurs (created, escalated, acknowledged, resolved), Planekeeper evaluates all active notification rules for the organization in priority order:

1. Check the rule's **severity filter** against the alert's severity.
2. Check the rule's **event filter** against the event type.
3. If both match, create a delivery record for the rule's channel (or the default channel if no override is set).
4. Deduplicate: if multiple rules route the same event to the same channel, only one delivery is created.

## Event types

| Event | When it fires |
|---|---|
| `alert.created` | A new alert is generated for the first time |
| `alert.escalated` | An existing alert's severity increased (e.g., high to critical) |
| `alert.acknowledged` | Someone acknowledged an active alert |
| `alert.unacknowledged` | An acknowledgment was reset (version changed while acknowledged) |
| `alert.resolved` | The alert was automatically resolved because the gap dropped below thresholds |

## Severity filtering

Each rule can filter by one or more severity levels: **moderate**, **high**, **critical**. Leave the filter empty to match all severities.

**Examples:**

| Severity filter | Matches |
|---|---|
| (empty) | All alerts regardless of severity |
| `critical` | Only critical alerts |
| `high, critical` | High and critical alerts |
| `moderate` | Only moderate alerts |

## Create a notification rule

1. Navigate to **Notification Rules** in the sidebar.
2. Click **Create Rule**.
3. Fill in the form:

    | Field | Description |
    |---|---|
    | **Name** | A descriptive label, e.g., "Critical to PagerDuty" |
    | **Event filter** | Select which event types this rule matches (leave empty for all) |
    | **Severity filter** | Select which severity levels this rule matches (leave empty for all) |
    | **Channel** | Optional. Override the destination channel. Leave blank to use the organization's default channel |
    | **Priority** | Higher numbers are evaluated first |

4. Click **Save**.

> **success:** 
Name rules after what they do: "Critical Alerts to PagerDuty", "All Events to Slack", "Resolved to Archive Channel". This makes the rules list self-documenting.


## Priority and ordering

Rules are evaluated from **highest priority to lowest**. Every matching rule produces a delivery, so multiple rules can match the same event. Planekeeper deduplicates deliveries to the same channel -- an alert event is delivered to each channel at most once, even if multiple rules route to it.

**Example priority setup:**

| Priority | Rule | Channel |
|---|---|---|
| 100 | Critical alerts | PagerDuty |
| 50 | All alerts | Slack |
| 10 | Resolved events | Archive webhook |

In this setup, a critical alert would be delivered to both PagerDuty (priority 100 match) and Slack (priority 50 match). A moderate alert would only go to Slack. A resolved event would go to both Slack and the archive webhook.

## Channel override vs. default

Each rule can either specify a channel or rely on the organization's default channel.

- **With channel override**: Deliveries go to the specified channel regardless of the default.
- **Without channel override**: Deliveries go to whichever channel is set as the organization default.

> **warning:** 
If a rule has no channel override and no default channel is configured for the organization, the delivery is silently skipped. Always set a default channel as a safety net.


## Toggle a rule on or off

Each notification rule has an active/inactive toggle. Click the toggle badge on the rules list to switch the state.

- **Active** rules participate in routing decisions.
- **Inactive** rules are skipped entirely. Events that would have matched are not routed through them.

## Common routing patterns

### Escalation-based routing

Route different severities to different channels:

- **Rule 1** (priority 100): severity = `critical`, channel = PagerDuty
- **Rule 2** (priority 50): severity = `high, critical`, channel = Ops Slack
- **Rule 3** (priority 10): severity = (all), channel = General Slack

Critical alerts reach all three channels. High alerts reach Ops Slack and General Slack. Moderate alerts reach only General Slack.

### Event-type routing

Route specific lifecycle events to dedicated channels:

- **Rule 1**: event = `alert.created, alert.escalated`, channel = Ops Slack
- **Rule 2**: event = `alert.resolved`, channel = Changelog webhook
- **Rule 3**: event = `alert.acknowledged`, channel = Audit log webhook

### Catch-all rule

Create a single low-priority rule with no filters to ensure every event reaches at least one channel:

- **Rule**: priority = 1, severity = (all), event = (all), channel = (default)

This acts as a safety net for any events not caught by more specific rules.

## Bulk delete

Select multiple notification rules using the checkboxes on the list page, then click **Delete Selected** to remove them in a single operation. Use the checkbox in the table header to select all visible items.

## Delete a notification rule

1. Navigate to **Notification Rules**.
2. Click the rule you want to remove.
3. Click **Delete**.

Deleting a rule takes effect immediately. Future events that would have matched will no longer be routed through it.


---

## Related

- Next: [Notification Settings](https://docs.planekeeper.com/guides/notifications/settings/page.md) — Configure organization-level notification defaults including the default channel and template overrides.
- Section: [Notifications](https://docs.planekeeper.com/guides/notifications/index.md)
