PagerDuty
Connect PagerDuty to On-Call Optimizer.
- Export assignments to your PagerDuty schedules.
- Import a PagerDuty schedule’s configuration and history.
- Swaps in On-Call Optimizer are written back to PagerDuty.
How it works
- When you create an On-Call Optimizer schedule by copying a PagerDuty schedule, its name, time zone, shifts and members are copied once, and its shift history is imported. After that the schedule’s settings are managed in On-Call Optimizer; later changes in PagerDuty (such as new members) aren’t copied across.
- On-Call Optimizer writes override entries on one or more PagerDuty schedules so they match the assignments and swaps managed here.
- See Destinations for how PagerDuty is kept up to date.
Requirements
- Connecting PagerDuty to On-Call Optimizer requires a PagerDuty API Key with read-write permissions to the PagerDuty schedule(s) you wish to connect.
Support
If you need help, email support@oncall-optimizer.com. The Support page (? menu → Support) also lists the address for urgent issues.
Integration walkthrough
In PagerDuty
- From the Integrations menu, select API Access Keys from the Developer Tools column.
- Click Create New API Key.
- Enter a description for the key (e.g. “On-Call Optimizer”) and click the Create Key button.
- The Read-only API Key checkbox must remain unchecked.
Keep the generated key in a safe place for later use. You can now proceed to the In On-Call Optimizer section below.
In On-Call Optimizer
- Click your organization’s name in the top navigation bar and open the On-call products tab.
- Click Add an on-call product.
- In the Select on-call product dialog, choose PagerDuty and click Begin connection.
- Enter the API key obtained in the previous section into the API key field and click Save at the top right of the page.
On-Call Optimizer tests the key and fetches your PagerDuty schedules. When it is done, the connection page lists them in the Schedule status table. To create an On-Call Optimizer schedule from one of them, go to Schedules → Create new schedule → Copy a schedule from your on-call product, and follow the Integrate an existing schedule getting started guide.
How to uninstall
To remove a PagerDuty connection, it must not be in use by any schedule in On-Call Optimizer. The connection’s card on the On-call products tab shows how many schedules reference it.
- Remove every destination that uses the PagerDuty connection: on each schedule’s Integrations tab, click the Delete destination (trash) icon for it and confirm in the dialog. The schedules themselves can stay; they just stop exporting to PagerDuty.
- Remove any cross-schedule availability sources that use a PagerDuty schedule (shown as “PagerDuty: schedule” on a schedule’s Configuration tab).
Once the connection is no longer in use by any On-Call Optimizer schedule:
- Click your organization’s name in the top navigation bar and open the On-call products tab.
- Click the Disconnect icon (a circled cross) on the PagerDuty connection card, or open the connection and click Disconnect at the top of the page.
- Click Disconnect in the Disconnect PagerDuty dialog to confirm.
Additional details
Permissions and data access reference
On-Call Optimizer requires a read-write PagerDuty API key to link to a PagerDuty schedule and export shifts to it as a destination.
Data accessed
On-Call Optimizer uses only the Schedule and User endpoints of the PagerDuty API. It does not need any other API object types.
On-Call Optimizer reads the name, members and shift configuration of available PagerDuty schedules, so it can list them in the app.
For a PagerDuty schedule that an On-Call Optimizer schedule was copied from or exports to, it also reads assigned shifts and overrides, on an ongoing basis, to keep the two in sync and to check that sync.
For a PagerDuty schedule configured as a destination, On-Call Optimizer creates and deletes override entries so the PagerDuty schedule matches the shifts in On-Call Optimizer.
While doing that, On-Call Optimizer reads the users in the PagerDuty account, to map a PagerDuty user ID to the email address and full name it needs. It does not read or store other user fields, such as phone numbers or contact methods.