> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sazabi.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Page your on-call

> Route issues to PagerDuty, incident.io or Rootly with a delivery rule, so your paging tool alerts whoever is on call.

Sazabi does not page anyone itself. It delivers an alert to your paging tool, and that tool's schedules, escalation policies and notification rules decide who is paged, how, and when it escalates. If the tool has no one on call or no rule that notifies them, nobody is paged.

You route issues with a [delivery rule](https://docs.sazabi.com/triage/notifications.md#delivery-rules) that names your paging tool as its destination. Sazabi sends two things:

* **An alert** when a rule matches an issue. If the issue changes (its severity rises, or it is reopened), Sazabi sends the same alert again. Your tool folds it into the open incident, or opens a new one if it was closed.
* **A resolve** when the issue is resolved or ignored. Sazabi closes the alert it opened, even if you edit the rule while the issue is open, so no incident is left open.

Acknowledging, escalating and reassigning happen in your paging tool. Sazabi does not do them.

## Supported tools

| Tool | Destination you pick in a rule | Where the alert goes |
| - | - | - |
| [PagerDuty](https://docs.sazabi.com/catalogs/integrations/pagerduty) | A PagerDuty service you add on the integration page | An Events API v2 alert on that service |
| [incident.io](https://docs.sazabi.com/catalogs/integrations/incident-io) | An HTTP alert source | An alert on that alert source. Your incident.io alert routes decide whether it pages or creates an incident |
| [Rootly](https://docs.sazabi.com/catalogs/integrations/rootly.md) | The default target, a service, a team, or an escalation policy | A Rootly alert for that target |
| [Better Stack](https://docs.sazabi.com/catalogs/integrations/better-stack) | The default escalation, or an escalation policy | A Better Stack incident |

> [!NOTE]
>
> Splunk On-Call can be connected under [**Settings > Integrations**](https://app.sazabi.com/settings/integrations), but it is not a delivery-rule destination, so a rule cannot send issues to it.

## Set up

**Step 1**

### Connect your paging tool

Go to [**Settings > Integrations**](https://app.sazabi.com/settings/integrations) and open your tool:

* **PagerDuty**: paste a full-access REST API key. Then, under **Services**, choose **Add service** for each PagerDuty service you want Sazabi to alert. Sazabi creates its own Events API v2 integration on the service and stores the routing key. One service can be the default.
* **incident.io**: paste an API key. Then select an HTTP alert source under **Alert routing**. If none is listed, create an HTTP alert source in incident.io first.
* **Rootly**: paste a Rootly global API key with the on-call role set to **User**. Sazabi discovers your services, teams and escalation policies.

With the CLI, connect with `sazabi integrations connect` and the tool's credentials (each integration page linked above has the exact command). Alert routing and severity mapping are set in the dashboard, not the CLI.

**Step 2**

### Turn on alert routing and check severity mapping

On the integration's page, make sure **Enable alert routing** is on. Without it, Sazabi drops deliveries to that tool even when a rule matches.

Under **Severity mapping**, choose what each Sazabi severity becomes in your tool, or **No incident** to send nothing for that severity. The defaults are:

| Sazabi severity | PagerDuty and Rootly | incident.io |
| - | - | - |
| Critical | Critical | Critical |
| High | Info | Major |
| Medium | Info | Minor |
| Low | Warning | Minor |

Your tool uses the mapped severity to decide how loudly to alert, so check these against your escalation policies. For example, a High issue arrives in PagerDuty as Info by default.

**Step 3**

### Add a delivery rule

On the project [**Settings > Notifications**](https://app.sazabi.com/settings/project-notifications) page, choose **Delivery rules > Add delivery rule**. Pick **Issue triggered**, add **Issue updated** if you want changes sent too, and choose your paging tool as the destination. Add a severity condition to page only for the severities that warrant it, for example **high** and **critical**.

You do not need a rule for **Issue resolved** or **Issue ignored**. Sazabi sends them to the destinations the alert went to.

From the CLI, list destinations with `sazabi notifications delivery-rules options`, then create the rule:

```bash theme={"system"}
npx -y @sazabi/cli@latest notifications delivery-rules create \
  --notification-type issue_triggered \
  --notification-type issue_updated \
  --destination pagerduty:your-service-id \
  --severity high \
  --severity critical
```

`--destination` takes `channel:key`. Use `pagerduty`, `incident_io`, `rootly` or `better_stack` as the channel, and the key that `options` prints for the destination.

Delivery is positive: with no matching rule, nothing is sent. See [Route notifications](https://docs.sazabi.com/triage/notifications.md) for every rule condition.

## Verify

Open or reopen a test issue whose severity matches your rule. Confirm an alert appears in your paging tool and that it notifies whoever is on call under your policy. Then resolve the issue in Sazabi and confirm the alert closes.

If the alert exists but no one is notified, the cause is in your paging tool's schedule or routing, not in Sazabi.

## Troubleshooting

**No alert in your paging tool**: Confirm the rule names both **Issue triggered** and your tool, that **Enable alert routing** is on, and that the issue's severity is neither set to **No incident** nor excluded by the rule's severity condition.

**PagerDuty is not listed as a destination**: Add a service under **Services** on the PagerDuty integration page. A rule can only target a service Sazabi has added.

**An alert exists but nobody was paged**: Check the severity it arrived with (see the mapping above), then your tool's own routing, schedule and escalation settings.

## Further reading

> [card] [Route notifications](https://docs.sazabi.com/triage/notifications.md)
>
> Delivery rules, conditions and personal preferences.

> [card] [Integrations](https://docs.sazabi.com/catalogs/integrations.md)
>
> Connection details for each paging tool.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.