The PagerDuty integration gives Annie two capabilities:
API access — Annie reads your incidents, acknowledges them, and leaves comments via a PagerDuty API token.
Real-time webhook — When an incident.triggered event fires, Annie immediately starts a root cause analysis, cross-references recent infrastructure changes, and can notify Slack based on your project’s webhook investigation notification destinations.
Graph evidence — PagerDuty alerts, response incidents, services, and explicit on-call windows become read-only operational evidence for the Graph API, SDK, and CLI.
The webhook delivers real-time incident lifecycle events to Anyshift. incident.triggered can start an Annie investigation. Triggered, acknowledged, and resolved lifecycle changes also update stored graph evidence without making the Graph API call PagerDuty directly.
In PagerDuty, go to Integrations → Generic Webhooks (V3) → New Webhook.
Paste the Anyshift webhook URL.
Under Scope, select the services or the full account you want Annie to monitor.
Enable the incident lifecycle event types you want Anyshift to retain, including triggered, acknowledged, and resolved.
In the Signature Secret field, paste the secret key you set in Anyshift.
Anyshift verifies every incoming request using HMAC-SHA256 against the secret key. Requests with missing or invalid signatures are rejected before any processing occurs.
When Anyshift receives an incident.triggered event:
Signature verification — the request is validated against the shared secret. Invalid requests are dropped immediately.
Deduplication — repeated deliveries are applied idempotently, preventing duplicate graph state and duplicate RCAs.
Context assembly — Annie retrieves the last 30–60 minutes of Slack messages, recent AWS resource changes, and prior incidents with completed analyses to build a context window.
Routing decision — Annie’s router decides whether to run a full RCA, start a conversational thread, or skip the incident (e.g. for known-noisy alert patterns). Automation rules can override this default.
Analysis delivery — if RCA is triggered, Annie delivers a final summary with a timeline, likely root cause, and recommended remediation steps. Slack notifications for start, complete, and fail follow the destinations configured under Integrations → Slack → Webhook investigation notifications. PagerDuty incidents typically have no attached Slack channel, so turn on Default notify channel and pick a mapped channel if you want Slack updates for these webhooks.
See Root Cause Analysis for a full walkthrough of the analysis pipeline, and Slack for destination settings.
The public Graph surface is provider-neutral, so the same alerting workflows can later include Datadog, New Relic, Grafana, incident.io, and other providers. There is no PagerDuty-specific CLI namespace.
--person accepts an exact display name, canonical person ID, or PagerDuty user ID. --responder accepts an exact display name, canonical person ID or email, or PagerDuty user ID. Display-name matching is case-insensitive and exact, not fuzzy.The Graph API and SDK expose the same normalized alerts, response_incidents, and oncall evidence. Results distinguish canonical Anyshift identities from unresolved PagerDuty users or services instead of guessing a mapping. These read paths do not acknowledge, reassign, or resolve incidents.
Use incident_context when you need one stored incident assembled as grouped hops. It reads the graph only; it never calls PagerDuty live. Require exactly one of id or target. Optional since bounds similar-incident history. LIMIT caps history rows (OFFSET is not supported).Returned hops: incident, alerts, service (AFFECTS / RESOLVES_TO), onCall, responders, and history.History cites reviewed resolution evidence only (confirmed_fix, explicit_reference, or unknown). Temporal proximity alone is never treated as a confirmed fix.annie graph triage <resource> includes optional incident_context hops for the named resource. Empty hops are omitted from triage findings.
annie graph query "SELECT * FROM incident_context WHERE id = Q2Q5QBE019PJM5 LIMIT 10"annie graph query "SELECT * FROM incident_context WHERE target = checkout AND since = 30d LIMIT 10"annie graph triage checkout --since 2h
Map PagerDuty services to canonical graph resources
PAGERDUTY_SERVICE -[:RESOLVES_TO]-> edges are owned mappings. Topology polls never create them from display names. Name a mapping owner per project before creating any link; unowned mappings are out of scope.
Add only standalone directive lines (no prose on the same line):
anyshift.resource_id=<canonical anyshiftID or hashedID>anyshift.qualified_name=<canonical visualIdentifier or anyshiftID>
Save. The next operational graph poll stamps safe properties and enqueues resolution. Unique exact hostnames (when the whole service name or URL is a hostname) may also resolve when unambiguous.
To update, change the directive. To revoke, delete it. Do not hand-edit Neo4j edges.
Fuzzy name matching is never used. Zero or multiple candidates stay unresolved or ambiguous.
Trigger a test incident in PagerDuty. Within a few seconds Annie should start an investigation. The incident also appears in Anyshift under Incidents. If you enabled Slack destinations (especially Default notify channel), you should also see a notification in that channel.
Map the Slack channel you want as the default notify channel to the correct Anyshift project, enable Default notify channel on the Slack integrations page, and register your PagerDuty bot in the Annie On-Call Registry when you also rely on channel bots. See Slack Integration for setup details.
By default Annie decides automatically whether to run RCA or start a chat based on the incident context. You can override this per project using Automation:
Force RCA for all incidents from a specific service.
Suppress noisy or low-signal alert patterns.
Trigger a custom report instead of a standard RCA.
Silence Annie for specific channels or time windows.
{"docsConfig":{"$schema":"https://mintlify.com/docs.json","theme":"mint","name":"Anyshift Docs","colors":{"primary":"#5BB8CA","light":"#5BB8CA","dark":"#1B2B41"},"favicon":"https://mintcdn.com/anyshift/RCJBvqDv7mhp8fhD/favicon.svg?fit=max\u0026auto=format\u0026n=RCJBvqDv7mhp8fhD\u0026q=85\u0026s=0a4d11c4e5f93941398caaf105926115","logo":{"light":"https://mintcdn.com/anyshift/RCJBvqDv7mhp8fhD/logo/light.svg?fit=max\u0026auto=format\u0026n=RCJBvqDv7mhp8fhD\u0026q=85\u0026s=73bc2bb1382fff127299c4a45a175d59","dark":"https://mintcdn.com/anyshift/RCJBvqDv7mhp8fhD/logo/dark.svg?fit=max\u0026auto=format\u0026n=RCJBvqDv7mhp8fhD\u0026q=85\u0026s=2e259a13aa3a86bc692d0997c9f13247","href":"https://anyshift.io"},"background":{"decoration":null,"color":{"light":"#F5F1E8","dark":"#09090B"}},"navbar":{"primary":{"type":"button","label":"Account","href":"https://app.anyshift.io/"}},"footer":{"socials":{"x":"https://x.com/anyshiftio","github":"https://github.com/anyshift-io","linkedin":"https://www.linkedin.com/company/anyshift-io/"}},"integrations":{"posthog":{"apiKey":"phc_q36h8LBpkifPiJCbh8lQmBqm1dXyDBp9URO7eKaoja8"}},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"Website","href":"https://www.anyshift.io/","icon":"globe"},{"anchor":"Socials","href":"https://www.linkedin.com/company/anyshift-io/","icon":"linkedin"},{"anchor":"Blog","href":"https://anyshift.io/blog","icon":"newspaper"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"anyshift","hasAudioNarration":false,"actualSubdomain":"anyshift","customDomains":["docs.anyshift.io"],"gitSource":{"type":"github","owner":"anyshift-io","repo":"website-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae1fe9d494007f255104222","collectionId":"8f38f985-651e-4cc2-8d16-63cc4ed4f102","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae1fe9d494007f255104222"},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6ae1fe9d494007f255104222","clientVersion":"0.0.4005","searchFilterCounts":[{"language":"default","tag":"Documentation","count":72},{"language":"default","tag":"Get Started","count":32},{"language":"default","tag":"Connect","count":28},{"language":"default","tag":"Product","count":26},{"language":"default","tag":"Context","count":21},{"language":"default","tag":"Manage","count":14},{"language":"default","tag":"Use cases","count":8},{"language":"default","tag":"Monitoring \u0026 Incidents","count":8},{"language":"default","tag":"Workspace","count":8},{"language":"default","tag":"Knowledge \u0026 Data","count":7}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"pages/integration/pagerduty","slug":"/pages/integration/pagerduty","pageMetadata":{"title":"PagerDuty Integration","description":"Connect PagerDuty to Anyshift so Annie can read your incidents, post acknowledgements, and automatically run root cause analysis when alerts fire.","href":"/pages/integration/pagerduty"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Connect PagerDuty to Anyshift so Annie can read your incidents, post acknowledgements, and automatically run root cause analysis when alerts fire.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,hr:`hr`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,OptimizedFrame,Tip}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!OptimizedFrame)_missingMdxReference(`OptimizedFrame`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsx(OptimizedFrame,{width:`560`,height:`315`,src:`https://www.youtube.com/embed/XLAeBr7PwPQ`,title:`YouTube video player`,frameborder:`0`,allow:`accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture`,allowfullscreen:true}),`\n`,_jsx(Heading,{level:`2`,id:`overview`,children:`Overview`}),`\n`,_jsx(_components.p,{children:`The PagerDuty integration gives Annie two capabilities:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`API access`}),` — Annie reads your incidents, acknowledges them, and leaves comments via a PagerDuty API token.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Real-time webhook`}),` — When an `,_jsx(_components.code,{children:`incident.triggered`}),` event fires, Annie immediately starts a root cause analysis, cross-references recent infrastructure changes, and can notify Slack based on your project’s `,_jsx(_components.a,{href:`/pages/product/integration/slack#other-settings`,children:`webhook investigation notification destinations`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Graph evidence`}),` — PagerDuty alerts, response incidents, services, and explicit on-call windows become read-only operational evidence for the Graph API, SDK, and CLI.`]}),`\n`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`step-1-add-an-api-token`,children:`Step 1: Add an API Token`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`In PagerDuty, go to `,_jsx(_components.strong,{children:`Integrations → API Access Keys → Create New API Key`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Give it a descriptive name (e.g. `,_jsx(_components.code,{children:`Anyshift-Annie`}),`) and copy the key — it is only shown once.`]}),`\n`,_jsxs(_components.li,{children:[`In Anyshift, go to `,_jsx(_components.strong,{children:`Integrations → PagerDuty → New Token`}),`, paste the key, and save.`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`Annie uses this token to fetch incident metadata, post acknowledgements, and add resolution comments.`}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`step-2-configure-the-webhook`,children:`Step 2: Configure the Webhook`}),`\n`,_jsxs(_components.p,{children:[`The webhook delivers real-time incident lifecycle events to Anyshift. `,_jsx(_components.code,{children:`incident.triggered`}),` can start an Annie investigation. Triggered, acknowledged, and resolved lifecycle changes also update stored graph evidence without making the Graph API call PagerDuty directly.`]}),`\n`,_jsx(Heading,{level:`3`,id:`create-the-webhook-in-anyshift`,children:`Create the webhook in Anyshift`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Go to `,_jsx(_components.strong,{children:`Integrations → PagerDuty → New Webhook`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Enter a name (e.g. `,_jsx(_components.code,{children:`prod-webhook`}),`) and choose a secret key.`]}),`\n`,_jsxs(_components.li,{children:[`Copy the `,_jsx(_components.strong,{children:`Webhook URL`}),` and the `,_jsx(_components.strong,{children:`Secret Key`}),` — you need both in the next step.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`register-it-in-pagerduty`,children:`Register it in PagerDuty`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`In PagerDuty, go to `,_jsx(_components.strong,{children:`Integrations → Generic Webhooks (V3) → New Webhook`}),`.`]}),`\n`,_jsx(_components.li,{children:`Paste the Anyshift webhook URL.`}),`\n`,_jsxs(_components.li,{children:[`Under `,_jsx(_components.strong,{children:`Scope`}),`, select the services or the full account you want Annie to monitor.`]}),`\n`,_jsx(_components.li,{children:`Enable the incident lifecycle event types you want Anyshift to retain, including triggered, acknowledged, and resolved.`}),`\n`,_jsxs(_components.li,{children:[`In the `,_jsx(_components.strong,{children:`Signature Secret`}),` field, paste the secret key you set in Anyshift.`]}),`\n`]}),`\n`,_jsx(Tip,{children:_jsx(_components.p,{children:`Anyshift verifies every incoming request using HMAC-SHA256 against the secret key. Requests with missing or invalid signatures are rejected before any processing occurs.`})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`what-happens-when-an-incident-fires`,children:`What happens when an incident fires`}),`\n`,_jsxs(_components.p,{children:[`When Anyshift receives an `,_jsx(_components.code,{children:`incident.triggered`}),` event:`]}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Signature verification`}),` — the request is validated against the shared secret. Invalid requests are dropped immediately.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Deduplication`}),` — repeated deliveries are applied idempotently, preventing duplicate graph state and duplicate RCAs.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Context assembly`}),` — Annie retrieves the last 30–60 minutes of Slack messages, recent AWS resource changes, and prior incidents with completed analyses to build a context window.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Routing decision`}),` — Annie’s router decides whether to run a full RCA, start a conversational thread, or skip the incident (e.g. for known-noisy alert patterns). `,_jsx(_components.a,{href:`/pages/product/customization/instructions`,children:`Automation`}),` rules can override this default.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Analysis delivery`}),` — if RCA is triggered, Annie delivers a final summary with a timeline, likely root cause, and recommended remediation steps. Slack notifications for start, complete, and fail follow the destinations configured under `,_jsx(_components.strong,{children:`Integrations → Slack → Webhook investigation notifications`}),`. PagerDuty incidents typically have no attached Slack channel, so turn on `,_jsx(_components.strong,{children:`Default notify channel`}),` and pick a mapped channel if you want Slack updates for these webhooks.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`See `,_jsx(_components.a,{href:`/pages/product/root_cause_analysis`,children:`Root Cause Analysis`}),` for a full walkthrough of the analysis pipeline, and `,_jsx(_components.a,{href:`/pages/product/integration/slack#other-settings`,children:`Slack`}),` for destination settings.`]}),`\n`,_jsx(Heading,{level:`2`,id:`query-pagerduty-operational-evidence`,children:`Query PagerDuty operational evidence`}),`\n`,_jsx(_components.p,{children:`The public Graph surface is provider-neutral, so the same alerting workflows can later include Datadog, New Relic, Grafana, incident.io, and other providers. There is no PagerDuty-specific CLI namespace.`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`6`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`6`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`annie`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` graph`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` alerts`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --provider`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` pagerduty`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --status`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` firing`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`annie`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` graph`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` incidents`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --provider`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` pagerduty`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --status`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` active`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`annie`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` graph`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` incidents`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --provider`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` pagerduty`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --responder`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Jane Doe\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`annie`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` graph`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` oncall`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --at`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` now`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`annie`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` graph`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` oncall`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --person`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Jane Doe\"`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --at`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` now`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`annie`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` graph`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` oncall`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --from`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 2026-08-10`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --to`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 2026-08-17`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`--person`}),` accepts an exact display name, canonical person ID, or PagerDuty user ID. `,_jsx(_components.code,{children:`--responder`}),` accepts an exact display name, canonical person ID or email, or PagerDuty user ID. Display-name matching is case-insensitive and exact, not fuzzy.`]}),`\n`,_jsxs(_components.p,{children:[`The Graph API and SDK expose the same normalized `,_jsx(_components.code,{children:`alerts`}),`, `,_jsx(_components.code,{children:`response_incidents`}),`, and `,_jsx(_components.code,{children:`oncall`}),` evidence. Results distinguish canonical Anyshift identities from unresolved PagerDuty users or services instead of guessing a mapping. These read paths do not acknowledge, reassign, or resolve incidents.`]}),`\n`,_jsx(Heading,{level:`3`,id:`grouped-incident-context`,children:`Grouped incident context`}),`\n`,_jsxs(_components.p,{children:[`Use `,_jsx(_components.code,{children:`incident_context`}),` when you need one stored incident assembled as grouped hops. It reads the graph only; it never calls PagerDuty live. Require exactly one of `,_jsx(_components.code,{children:`id`}),` or `,_jsx(_components.code,{children:`target`}),`. Optional `,_jsx(_components.code,{children:`since`}),` bounds similar-incident history. `,_jsx(_components.code,{children:`LIMIT`}),` caps history rows (`,_jsx(_components.code,{children:`OFFSET`}),` is not supported).`]}),`\n`,_jsxs(_components.p,{children:[`Returned hops: `,_jsx(_components.code,{children:`incident`}),`, `,_jsx(_components.code,{children:`alerts`}),`, `,_jsx(_components.code,{children:`service`}),` (`,_jsx(_components.code,{children:`AFFECTS`}),` / `,_jsx(_components.code,{children:`RESOLVES_TO`}),`), `,_jsx(_components.code,{children:`onCall`}),`, `,_jsx(_components.code,{children:`responders`}),`, and `,_jsx(_components.code,{children:`history`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`History cites reviewed resolution evidence only (`,_jsx(_components.code,{children:`confirmed_fix`}),`, `,_jsx(_components.code,{children:`explicit_reference`}),`, or `,_jsx(_components.code,{children:`unknown`}),`). Temporal proximity alone is never treated as a confirmed fix.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`annie graph triage \u003cresource>`}),` includes optional `,_jsx(_components.code,{children:`incident_context`}),` hops for the named resource. Empty hops are omitted from triage findings.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`3`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`annie`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` graph`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` query`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"SELECT * FROM incident_context WHERE id = Q2Q5QBE019PJM5 LIMIT 10\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`annie`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` graph`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` query`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"SELECT * FROM incident_context WHERE target = checkout AND since = 30d LIMIT 10\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`annie`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` graph`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` triage`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` checkout`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --since`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 2h`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`See `,_jsx(_components.a,{href:`/pages/product/integration/graph_query_language#incident-context`,children:_jsx(_components.code,{children:`incident_context`})}),` and the `,_jsx(_components.a,{href:`/pages/product/integration/cli`,children:`Annie CLI`}),` graph commands.`]}),`\n`,_jsx(Heading,{level:`2`,id:`map-pagerduty-services-to-canonical-graph-resources`,children:`Map PagerDuty services to canonical graph resources`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`PAGERDUTY_SERVICE -[:RESOLVES_TO]->`}),` edges are owned mappings. Topology polls never create them from display names. Name a mapping owner per project before creating any link; unowned mappings are out of scope.`]}),`\n`,_jsx(Heading,{level:`3`,id:`create-update-or-revoke`,children:`Create, update, or revoke`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`In PagerDuty, edit the service `,_jsx(_components.strong,{children:`Description`}),`.`]}),`\n`,_jsx(_components.li,{children:`Add only standalone directive lines (no prose on the same line):`}),`\n`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`3`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`anyshift.resource_id=\u003ccanonical anyshiftID or hashedID>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`anyshift.qualified_name=\u003ccanonical visualIdentifier or anyshiftID>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsxs(_components.ol,{start:`3`,children:[`\n`,_jsx(_components.li,{children:`Save. The next operational graph poll stamps safe properties and enqueues resolution. Unique exact hostnames (when the whole service name or URL is a hostname) may also resolve when unambiguous.`}),`\n`,_jsx(_components.li,{children:`To update, change the directive. To revoke, delete it. Do not hand-edit Neo4j edges.`}),`\n`]}),`\n`,_jsx(_components.p,{children:`Fuzzy name matching is never used. Zero or multiple candidates stay unresolved or ambiguous.`}),`\n`,_jsx(Heading,{level:`3`,id:`demo-ownership`,children:`Demo ownership`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Owner: Platform Engineering for project `,_jsx(_components.strong,{children:`Anyshift Demo Environment`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Runbook: this page and `,_jsx(_components.code,{children:`docs/pagerduty-service-resolves-to.md`}),` in `,_jsx(_components.code,{children:`anyshift-backend`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Demo service `,_jsx(_components.code,{children:`PUXIGO8`}),` (`,_jsx(_components.strong,{children:`Anyshift Demo - Kubernetes`}),`) maps via an explicit directive to the checkout workload. `,_jsx(_components.code,{children:`PK9AOSO`}),` (`,_jsx(_components.strong,{children:`Default Service`}),`) stays unmapped.`]}),`\n`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`verify-the-connection`,children:`Verify the connection`}),`\n`,_jsxs(_components.p,{children:[`Trigger a test incident in PagerDuty. Within a few seconds Annie should start an investigation. The incident also appears in Anyshift under `,_jsx(_components.strong,{children:`Incidents`}),`. If you enabled Slack destinations (especially `,_jsx(_components.strong,{children:`Default notify channel`}),`), you should also see a notification in that channel.`]}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`Map the Slack channel you want as the default notify channel to the correct Anyshift project, enable `,_jsx(_components.strong,{children:`Default notify channel`}),` on the Slack integrations page, and register your PagerDuty bot in the `,_jsx(_components.strong,{children:`Annie On-Call Registry`}),` when you also rely on channel bots. See `,_jsx(_components.a,{href:`/pages/product/integration/slack`,children:`Slack Integration`}),` for setup details.`]})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`customize-annie’s-behavior`,children:`Customize Annie’s behavior`}),`\n`,_jsxs(_components.p,{children:[`By default Annie decides automatically whether to run RCA or start a chat based on the incident context. You can override this per project using `,_jsx(_components.a,{href:`/pages/product/customization/instructions`,children:`Automation`}),`:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Force RCA`}),` for all incidents from a specific service.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Suppress`}),` noisy or low-signal alert patterns.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Trigger a custom report`}),` instead of a standard RCA.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Silence`}),` Annie for specific channels or time windows.`]}),`\n`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"PagerDuty Integration","description":"Connect PagerDuty to Anyshift so Annie can read your incidents, post acknowledgements, and automatically run root cause analysis when alerts fire.","href":"/pages/integration/pagerduty"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Overview","slug":"overview","depth":2,"children":[]},{"title":"Step 1: Add an API Token","slug":"step-1-add-an-api-token","depth":2,"children":[]},{"title":"Step 2: Configure the Webhook","slug":"step-2-configure-the-webhook","depth":2,"children":[{"title":"Create the webhook in Anyshift","slug":"create-the-webhook-in-anyshift","depth":3,"children":[]},{"title":"Register it in PagerDuty","slug":"register-it-in-pagerduty","depth":3,"children":[]}]},{"title":"What happens when an incident fires","slug":"what-happens-when-an-incident-fires","depth":2,"children":[]},{"title":"Query PagerDuty operational evidence","slug":"query-pagerduty-operational-evidence","depth":2,"children":[{"title":"Grouped incident context","slug":"grouped-incident-context","depth":3,"children":[]}]},{"title":"Map PagerDuty services to canonical graph resources","slug":"map-pagerduty-services-to-canonical-graph-resources","depth":2,"children":[{"title":"Create, update, or revoke","slug":"create-update-or-revoke","depth":3,"children":[]},{"title":"Demo ownership","slug":"demo-ownership","depth":3,"children":[]}]},{"title":"Verify the connection","slug":"verify-the-connection","depth":2,"children":[]},{"title":"Customize Annie’s behavior","slug":"customize-annie’s-behavior","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"anyshift","siteName":"Anyshift Docs","title":"PagerDuty Integration - Anyshift Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-08-20T12:25:04.244Z","originalFileLocation":"pages/integration/pagerduty.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Connect PagerDuty to Anyshift so Annie can read your incidents, post acknowledgements, and automatically run root cause analysis when alerts fire.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Anyshift Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/anyshift/tjPbV2tsUs_t9Fpq/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/anyshift/tjPbV2tsUs_t9Fpq/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/anyshift/tjPbV2tsUs_t9Fpq/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/anyshift/tjPbV2tsUs_t9Fpq/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/anyshift/tjPbV2tsUs_t9Fpq/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/anyshift/tjPbV2tsUs_t9Fpq/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/anyshift/tjPbV2tsUs_t9Fpq/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/anyshift/tjPbV2tsUs_t9Fpq/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/anyshift/tjPbV2tsUs_t9Fpq/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"PagerDuty Integration - Anyshift Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Connect PagerDuty to Anyshift so Annie can read your incidents, post acknowledgements, and automatically run root cause analysis when alerts fire.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Anyshift Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.anyshift.io/pages/integration/pagerduty\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://anyshift.mintlify.app/_mintlify/api/og/v2?division=Monitoring+%26+Incidents\u0026amp;title=PagerDuty+Integration\u0026amp;description=Connect+PagerDuty+to+Anyshift+so+Annie+can+read+your+incidents%2C+post+acknowledgements%2C+and+automatically+run+root+cause+analysis+when+alerts+fire.\u0026amp;theme=d374458f352bd600dfbe8ad8\u0026amp;signature=478ddaf3ecd7089dc6dd2a81804ecab155cbd75330b77ebb12989a5357b86f4c\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"PagerDuty Integration - Anyshift Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Connect PagerDuty to Anyshift so Annie can read your incidents, post acknowledgements, and automatically run root cause analysis when alerts fire.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://anyshift.mintlify.app/_mintlify/api/og/v2?division=Monitoring+%26+Incidents\u0026amp;title=PagerDuty+Integration\u0026amp;description=Connect+PagerDuty+to+Anyshift+so+Annie+can+read+your+incidents%2C+post+acknowledgements%2C+and+automatically+run+root+cause+analysis+when+alerts+fire.\u0026amp;theme=d374458f352bd600dfbe8ad8\u0026amp;signature=478ddaf3ecd7089dc6dd2a81804ecab155cbd75330b77ebb12989a5357b86f4c\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/anyshift/tjPbV2tsUs_t9Fpq/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Anyshift Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#5BB8CA\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.anyshift.io/pages/integration/pagerduty\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/pages/integration/pagerduty.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.anyshift.io/#organization\",\"name\":\"Anyshift Docs\",\"url\":\"https://docs.anyshift.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/anyshift/RCJBvqDv7mhp8fhD/logo/light.svg?fit=max\u0026auto=format\u0026n=RCJBvqDv7mhp8fhD\u0026q=85\u0026s=73bc2bb1382fff127299c4a45a175d59\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.anyshift.io#website\",\"name\":\"Anyshift Docs\",\"url\":\"https://docs.anyshift.io\",\"publisher\":{\"@id\":\"https://docs.anyshift.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.anyshift.io/pages/integration/pagerduty#webpage\",\"url\":\"https://docs.anyshift.io/pages/integration/pagerduty\",\"name\":\"PagerDuty Integration\",\"description\":\"Connect PagerDuty to Anyshift so Annie can read your incidents, post acknowledgements, and automatically run root cause analysis when alerts fire.\",\"dateModified\":\"2026-08-20T12:25:04.244Z\",\"isPartOf\":{\"@id\":\"https://docs.anyshift.io#website\"},\"breadcrumb\":{\"@id\":\"https://docs.anyshift.io/pages/integration/pagerduty#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.anyshift.io/pages/integration/pagerduty#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Get Started\",\"item\":\"https://docs.anyshift.io/pages/onboarding/quick_start\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Connect\",\"item\":\"https://docs.anyshift.io/pages/onboarding/overview_integrations\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Monitoring \u0026 Incidents\",\"item\":\"https://docs.anyshift.io/pages/integration/datadog\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"PagerDuty Integration\",\"item\":\"https://docs.anyshift.io/pages/integration/pagerduty\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.anyshift.io/pages/integration/pagerduty#article\",\"headline\":\"PagerDuty Integration\",\"name\":\"PagerDuty Integration\",\"description\":\"Connect PagerDuty to Anyshift so Annie can read your incidents, post acknowledgements, and automatically run root cause analysis when alerts fire.\",\"url\":\"https://docs.anyshift.io/pages/integration/pagerduty\",\"mainEntityOfPage\":{\"@id\":\"https://docs.anyshift.io/pages/integration/pagerduty#webpage\"},\"dateModified\":\"2026-08-20T12:25:04.244Z\",\"publisher\":{\"@id\":\"https://docs.anyshift.io/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.anyshift.io#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Anyshift Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Anyshift Docs","nav":{"global":{"anchors":[{"anchor":"Website","href":"https://www.anyshift.io/","icon":"globe"},{"anchor":"Socials","href":"https://www.linkedin.com/company/anyshift-io/","icon":"linkedin"},{"anchor":"Blog","href":"https://anyshift.io/blog","icon":"newspaper"}]},"anchors":[{"anchor":"Documentation","icon":"book-open","groups":[{"group":"Get Started","pages":[{"title":"Quick Start","href":"/pages/onboarding/quick_start"},{"group":"Core concepts","pages":[{"title":"What is Anyshift?","href":"/pages/overview"},{"title":"Production Graph","href":"/pages/overview/knowledge_graph"},{"title":"How investigations work","href":"/pages/overview/memory_agents"}]},{"group":"Connect","pages":[{"title":"Integrations","href":"/pages/onboarding/overview_integrations"},{"group":"Cloud","pages":[{"title":"AWS Integration","href":"/pages/integration/aws"},{"title":"CloudTrail Integration","href":"/pages/integration/aws/cloudtrail"},{"title":"GCP Integration","href":"/pages/integration/gcp"},{"title":"Azure Integration","href":"/pages/integration/azure"},{"title":"Cloudflare Integration","tag":"Beta","icon":"cloudflare","href":"/pages/integration/cloudflare"},{"title":"Read-Only Agentic Live Queries","href":"/pages/integration/cloud_cli"}]},{"group":"Code \u0026 Infrastructure","pages":[{"title":"GitHub Integration","href":"/pages/integration/github"},{"title":"GitLab Integration","href":"/pages/integration/gitlab"},{"title":"Kubernetes Integration","href":"/pages/integration/kubernetes"},{"title":"HCP Integration","href":"/pages/integration/hcp"},{"title":"Terraform","href":"/pages/iac/terraform"},{"title":"Kubernetes (Live)","href":"/pages/iac/kubernetes_live"}]},{"group":"Monitoring \u0026 Incidents","pages":[{"title":"Datadog Integration","href":"/pages/integration/datadog"},{"title":"Grafana Integration","href":"/pages/integration/grafana"},{"title":"Splunk Integration","href":"/pages/integration/splunk"},{"title":"ElasticSearch Integration","href":"/pages/integration/elasticsearch"},{"title":"VictoriaMetrics Integration","description":"Integrate Annie with VictoriaMetrics for unified observability and intelligent investigation.","href":"/pages/integration/victoriametrics"},{"title":"PagerDuty Integration","href":"/pages/integration/pagerduty"},{"title":"Incident.io Integration","description":"Integrate with incident.io to give Annie read access to your incidents, alerts, postmortems, and workflows.","href":"/pages/integration/incident-io"},{"title":"Sentry Integration","href":"/pages/integration/sentry"}]},{"group":"Knowledge \u0026 Data","pages":[{"title":"MotherDuck Integration","href":"/pages/integration/motherduck"},{"title":"PostgreSQL Integration","tag":"Beta","href":"/pages/integration/postgresql"},{"title":"Guru Integration","href":"/pages/integration/guru"},{"title":"Jira Integration","href":"/pages/integration/jira"},{"title":"Confluence Integration","href":"/pages/integration/confluence"},{"title":"Notion Integration","href":"/pages/integration/notion"},{"title":"Linear Integration","href":"/pages/integration/linear"}]}]}]},{"group":"Product","pages":[{"group":"Agents","pages":[{"title":"Agents","sidebarTitle":"Overview","href":"/pages/product/agents"},{"title":"Root Cause Analysis","href":"/pages/product/root_cause_analysis"},{"title":"Deploy Watcher","href":"/pages/product/deploy_watcher"},{"title":"PR Blast Reviewer","href":"/pages/product/pr_blast_reviewer"},{"title":"Proactive","href":"/pages/product/proactive_annie"}]},{"group":"Context","pages":[{"title":"Context","sidebarTitle":"Overview","href":"/pages/product/knowledge_base"},{"group":"Explore","pages":[{"title":"Explore \u0026 Ask","href":"/pages/product/annie_knowledge"},{"title":"Change History","href":"/pages/product/time_travel"},{"title":"Reports","href":"/pages/product/reports"}]},{"group":"Access","pages":[{"title":"Slack","href":"/pages/product/integration/slack"},{"title":"Annie Remote MCP","href":"/pages/product/integration/remote_mcp"},{"title":"CLI","href":"/pages/product/integration/cli"},{"title":"Graph MCP","href":"/pages/product/integration/graph_mcp"},{"title":"Plugin","href":"/pages/product/integration/production_intelligence_agent_plugin"}]},{"group":"API \u0026 SDK","pages":[{"title":"Graph API","icon":"diagram-project","href":"/pages/product/graph-api/overview"},{"title":"Graph Query Language","href":"/pages/product/integration/graph_query_language"},{"title":"Graph SDK","href":"/pages/product/integration/sdk"},{"title":"SDK capabilities","href":"/pages/product/integration/sdk_capabilities"}]},{"group":"Use cases","pages":[{"title":"Cloud-to-code","href":"/pages/iac/overview"},{"title":"Drift Detection","href":"/pages/iac/drift_detection"},{"title":"Backstage","icon":"book-open","href":"/pages/product/graph-api/backstage"},{"title":"Backstage setup","href":"/pages/product/integration/backstage"},{"title":"Alert noise","icon":"bell","href":"/pages/product/graph-api/alert-noise"},{"title":"Configuration churn","icon":"rotate","href":"/pages/product/graph-api/configuration-churn"},{"title":"Origin reachability","icon":"shield-halved","href":"/pages/product/graph-api/origin-reachability"},{"title":"Pull request blast radius","icon":"code-pull-request","href":"/pages/product/graph-api/pull-request-blast-radius"}]}]}]},{"group":"Manage","pages":[{"group":"Workspace","pages":[{"title":"Customization","href":"/pages/product/customization"},{"title":"Annie Automation","href":"/pages/product/customization/instructions"},{"title":"Custom Knowledge","href":"/pages/product/customization/knowledge"},{"title":"Personas","href":"/pages/product/customization/personas"},{"title":"Effort Mode","href":"/pages/product/customization/effort_mode"},{"title":"Projects \u0026 Team Management","href":"/pages/product/project_management/overview"},{"title":"Roles \u0026 Permissions","href":"/pages/product/project_management/roles"},{"title":"Multiple Projects","href":"/pages/product/project_management/multiproject"}]},{"group":"Security","pages":[{"title":"FAQ","href":"/pages/privacy_security/faq"},{"title":"Network Requirements","href":"/pages/privacy_security/network"},{"title":"Compliance \u0026 Certifications","href":"/pages/privacy_security/compliance"},{"title":"External Providers","href":"/pages/privacy_security/external_providers"},{"title":"Multi Factor Authentication (MFA)","href":"/pages/privacy_security/mfa"},{"title":"Single Sign-On (SSO)","href":"/pages/privacy_security/sso"}]}]}]}]},"title":"PagerDuty Integration - Anyshift Docs","buildId":"dpl_48qhjNLiu9iJQQSZJz9Fa2ihBbPH","deploymentId":"dpl_48qhjNLiu9iJQQSZJz9Fa2ihBbPH","dynamics":[],"chunks":[]}