# Alerts and Shift

> Where check, monitor and archive alerts go: Shift Events v2 with a routing key, or email to org admins.

Pulse doesn't page people. It sends events to [Shift](https://shift.nightroll.app), Nightroll's on-call and paging app, which decides who to wake: a trigger opens an incident and the matching resolve closes it.

## Set it up

1. In Shift, add an **Events v2** integration to a service and copy its routing key.
2. In Pulse, open **Alerts** (org owners and admins), paste the routing key and save. It's stored encrypted and never shown again.
3. Press **Send test alert** and check that it arrives in Shift.

The endpoint defaults to `https://shift.nightroll.app/v2/enqueue`. Any receiver that speaks the PagerDuty Events v2 format works too: change the endpoint under **Alerts** or with `PUT /api/v1/settings`.

**Without a routing key**, alerts are emailed to the org's owners and admins instead.

## What Pulse sends

| Source | Trigger when | Resolve when | Dedup key |
| --- | --- | --- | --- |
| Check | It goes down | It comes back up | `pulse:check:<id>` |
| Monitor | Its condition holds over the window | It stops holding | `pulse:monitor:<id>` |
| Archive | A day can't be copied to your bucket | No day is left on grace hold | `pulse:archive` |

Each event has a summary, a severity, the component (check or monitor name), details, and an "Open in Pulse" link. The dedup key makes repeats update the same Shift incident.

## Delivery

If the endpoint doesn't answer, Pulse retries with backoff from 1 minute up to 1 hour between tries, and gives up after 24 hours. The **Alerts** page lists the last 500 events Pulse sent (`GET /api/v1/events`).
