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

# PagerDuty

> Route Squasher incidents to PagerDuty and migrate responder schedules when needed.

Squasher sends incident lifecycle updates to PagerDuty through the Events API v2.
Each Squasher incident keeps one PagerDuty incident through a stable deduplication key.

## Connect a service

1. In PagerDuty, open the target service and add an **Events API V2** integration.
2. Copy its integration key.
3. In Squasher, open **Settings → Notifications**.
4. Add a **PagerDuty** destination, name it, and paste the integration key.
5. Use **Send test** to verify delivery.
6. Create a notification route and attach the destination. Choose the incident
   lifecycle events that should reach PagerDuty.

The integration key is write-only after creation. Squasher displays only a
redacted preview and does not expose the stored key again.

## Incident behavior

* Opened incidents trigger PagerDuty alerts.
* Acknowledged incidents acknowledge the matching PagerDuty alert.
* Resolved incidents resolve it.
* Incident severity maps to PagerDuty's `critical`, `error`, `warning`, or `info` levels.

Use a severity-scoped route when only high-severity incidents should page the
on-call responder. Use a default route when PagerDuty should receive every
incident not matched by a more specific route.

See [Notifications](/features/alerts) for routing and delivery semantics.

## Migrate schedules to Squasher on-call

Use this separate migration path when you want Squasher to own on-call coverage
while preserving the rotations your team already uses.

## Import flow

1. Export or fetch PagerDuty schedules, users, overrides, and escalation policies.
2. Match PagerDuty users to Squasher users.
3. Recreate each PagerDuty rotation as a native Squasher schedule.
4. Verify the current engineer and upcoming shifts before moving alert routing.

```bash theme={null}
squasher on-call create --project <project_id> --name "PagerDuty primary" --timezone America/Los_Angeles --handoff-day 1 --handoff-time 09:00 --member <user_id>
squasher on-call calendar --project <project_id> --schedule <schedule_id> --from <iso_time> --to <iso_time>
```

## Agent guidance

Ask the user to confirm whether PagerDuty remains the source of truth or is a
one-time migration source. Verify `current` and `calendar` before changing
notification routes.

Related: [On-call](/features/on-call), [On-call API](/api-reference/on-call).
