LandfallDocs
Integrations · On-call

Connecting PagerDuty to Landfall

PagerDuty connects in two independent directions, and each is useful on its own:

  • On-call — Landfall reads who is on shift right now, so the war room knows who to involve. One read-only API token.
  • Trigger — a PagerDuty incident opens a Landfall war room the moment it fires. One webhook subscription.
PagerDuty
incident triggers
Landfall
war room opens
PagerDuty
who is on call?

What you'll need

  • A PagerDuty account with permission to create API keys and webhook subscriptions.
  • Your Landfall organization's slug — it appears in your Landfall URL, e.g. /o/acme/….
  • An admin on your Landfall organization.

Both live under PagerDuty's Integrations menu, in the Developer Tools column.

yourcompany.pagerduty.com
PagerDuty's Integrations menu open, showing a Developer Tools column containing App Registration, API Access Keys, API Documentation and Generic Webhooks (v3).
You need two entries here: API Access Keys for the on-call half, and Generic Webhooks (v3) for the trigger half.

1. On-call — who is on shift

Landfall calls exactly one PagerDuty endpoint for this: GET /oncalls. It never creates, modifies, or resolves anything in PagerDuty. Give it a token scoped to match.

  1. Integrations → API Access Keys → Create New API Key

    Name it something you'll recognise later, e.g. landfall-oncall-read, and tick "Read-only API Key". Landfall only reads, so a read/write key grants more than it will ever use.

    yourcompany.pagerduty.com/api_keys
    PagerDuty's Create API Key dialog with a description entered and the Read-only API Key checkbox ticked.
    Read-only is the correct choice here, not a precaution.
  2. Copy the key — it is shown once

    PagerDuty displays the value a single time. If you lose it, delete the key and create another; there is no way to reveal it again.

    yourcompany.pagerduty.com/api_keys
    PagerDuty's API Access Keys list, showing each key's id, masked value, description, API version and access level.
  3. Paste it into Landfall

    Settings → Integrations → PagerDuty, into REST API token. Save, and Landfall verifies it against PagerDuty's /abilities endpoint before storing anything — a token that cannot authenticate is refused rather than saved.

Reading on-call is not paging anyone

Connecting the token lets Landfall resolve the current roster and draft a page. It does not send anything. Real outbound paging is off by default — the shipped adapter is a dry run that records what it would have sent — and turning it on is a separate, admin-only, per-organization decision. Every page is also approval-gated: an agent drafts, a human approves, and only then does it send.

2. Trigger — PagerDuty opens a war room

A PagerDuty webhook v3 subscription posts to Landfall, and every delivery is verified against a signing secret PagerDuty issues when you create the subscription.

  1. Integrations → Generic Webhooks (v3) → New Webhook

    yourcompany.pagerduty.com/integrations/webhooks
    PagerDuty's Your Webhooks page with no subscriptions yet and a New Webhook button.
  2. Fill in the subscription

    Webhook URLhttps://api.landfalls.ai/triggers/pagerduty/<your-org-slug>
    Scope typeAccount for every service, or Service to limit it to one.
    Event subscriptionincident.triggered · incident.escalated · incident.resolved

    Deselect everything else. Landfall understands exactly those three and answers 200 to the rest, so subscribing to all of them costs you delivery volume and buys nothing.

    yourcompany.pagerduty.com/integrations/webhooks/add
    PagerDuty's New Webhook form with the Landfall trigger URL, Account scope type and a description filled in.
    The slug in the URL is not a credential

    It selects which organization's signing secret the delivery is checked against, and nothing more. An unknown slug and a valid slug with a bad signature return the identical refusal, so the endpoint cannot be used to discover which organizations exist.

  3. Copy the signing secret — also shown once

    On save, PagerDuty shows a signing secret. Paste it into Settings → Integrations → PagerDuty → Webhook v3 signing secret in Landfall.

    Until that secret is stored, every delivery for your organization is refused. That is deliberate: it is what turns the endpoint on, so there is no separate switch that could be on while the secret is missing.

  4. Test it with a real incident

    In PagerDuty, New Incident against any service the subscription covers. A Landfall war room should open within seconds.

    yourcompany.pagerduty.com/incidents/create
    PagerDuty's Create New Incident form with a title, impacted service and description filled in.

What each event does

PagerDuty eventIn Landfall
incident.triggeredOpens a war room — or, if that PagerDuty incident already has one, attaches to it rather than opening a second.
incident.escalatedAppends pagerduty.escalated to the existing timeline.
incident.resolvedAppends pagerduty.resolved. It does not close the war room.
Resolving in PagerDuty does not resolve in Landfall

PagerDuty resolving its own incident is a fact about PagerDuty, not a decision about yours. Landfall records it on the timeline and leaves the room open — a human still closes it, after the investigation and postmortem are actually done. If closing the page also closed the room, the record would end at the moment the alarm stopped rather than the moment you understood it.

Troubleshooting

SymptomCause
No war room appearsCheck the subscription is active and that the signing secret is saved in Landfall. PagerDuty retries failures with backoff and eventually disables a subscription that keeps failing.
Deliveries refusedThe secret in Landfall doesn't match the subscription's. Secrets are issued per subscription — recreating the webhook issues a new one.
Wrong organizationThe slug in the webhook URL doesn't match your Landfall organization.
On-call shows nobodyLandfall reports an empty roster honestly rather than inventing a responder. Check the escalation policy actually has someone on call right now.

What Landfall does with the connection

  • Reads only. The on-call token is used for GET /oncalls. Nothing in Landfall writes to PagerDuty.
  • Every delivery is verified. Inbound webhooks are checked against the signing secret before anything is created, and an unverified delivery is refused identically to an unknown one.
  • Per organization. Both credentials belong to your Landfall organization alone and are resolved per request.
  • Revocable from your side. Delete the API key or the webhook subscription in PagerDuty and access ends immediately.