Agent Templates
Incident Response Agent

Incident response agent template that pages on-call and opens the Jira ticket

Open-source Python template. Triggers the PagerDuty page, opens the Jira incident, notifies the on-call Slack channel, and drafts the Confluence postmortem.

Incident Response Agent
Sample Agent for Acme
May 22 · 10:00 AM ·
47s
Page on-call: API latency spike in prod
R
Resolving service and channel
On-call paged
pagerduty_incident_create
Incident ticket opened
jira_issue_create
Channel notified
slackmcp_slack_send_message
PagerDuty #482 - Jira OPS-1183 - postmortem created
Severity high -> PagerDuty urgency high
Paged against the Production API service as the on-call engineer
Postmortem drafted in Confluence with both links pre-filled
Guardrails
Same incident key never pages twice, enforced at PagerDuty and locally
Confluence failure logged as a warning, page and ticket still stand
Message Claude...
Trusted by teams shipping agents to production
Incident Response Agent
Sample Agent for Acme
May 22 · 10:00 AM ·
47s
Page on-call: API latency spike in prod
R
Resolving service and channel
On-call paged
pagerduty_incident_create
Incident ticket opened
jira_issue_create
Channel notified
slackmcp_slack_send_message
PagerDuty #482 - Jira OPS-1183 - postmortem created
Severity high -> PagerDuty urgency high
Paged against the Production API service as the on-call engineer
Postmortem drafted in Confluence with both links pre-filled
Guardrails
Same incident key never pages twice, enforced at PagerDuty and locally
Confluence failure logged as a warning, page and ticket still stand
Message Claude...

How the agent turns one alert into a page, a ticket, a thread, and a postmortem in five steps

A real working agent you can deploy

Every step runs on the on-call engineer's own credential, so the PagerDuty page carries a real from_email and the Jira ticket names a person. Re-running with the same incident key never pages twice: the key is passed to PagerDuty as its own dedup key and recorded in a local ledger.

01
Authorize PagerDuty, Jira, Confluence, and Slack
connectors.py
Every step here depends on its connector being ACTIVE, so Step 0 checks all four and exits before anything is paged. Anyone not yet authorized gets a Scalekit magic link and completes OAuth themselves; tokens stay in the vault.
connectors.py
for provider in ("pagerduty", "jira", "confluence", "slackmcp"):
    account = client.connect.get_or_create_connected_account(
        connection_name=settings.connector[provider],
        identifier=settings.oncall_email,
    )
    if account.status != "ACTIVE":
        link = client.connect.get_magic_link(identifier=settings.oncall_email)
        raise ConnectorUnavailableError(f"{provider} not authorized: {link}")
02
Resolve the service and channel before any write
run_flow.py
03
Trigger the page as the on-call engineer
run_flow.py
04
Open the Jira ticket and cross-link it
run_flow.py
05
Notify the channel, then draft the postmortem
run_flow.py

Agents that page, ticket, and document an incident, without the auth plumbing

Four things you'd otherwise build: PagerDuty OAuth, Jira tokens, Confluence credentials, Slack scopes. Handled.

1
Install
claude plugin marketplace add scalekit-inc/claude-code-authstack && claude plugin install agent-auth@scalekit-auth-stack
terminal
curl -fsSL https://raw.githubusercontent.com/scalekit-inc/codex-authstack/main/install.sh | bash
terminal
copilot plugin marketplace add scalekit-inc/github-copilot-authstack
copilot plugin install agent-auth@scalekit-auth-stack
terminal
curl -fsSL https://raw.githubusercontent.com/scalekit-inc/cursor-authstack/main/install.sh | bash
terminal
npx skills add scalekit-inc/skills --skill integrating-agent-auth
2
Clone github.com/scalekit-developers/workflow-agents-demos/tree/main/incident-response-agent and adapt it for my on-call stack.

I am building for: my engineering org (or: an incident-response product)   <- edit this line
Connectors my users need: PagerDuty, Jira, Confluence, Slack   <- edit this line
Trigger: invoked per alert from my alert source. Deliver: a PagerDuty page, a Jira incident ticket, an on-call Slack notification, and a Confluence postmortem draft.

Steps:
1. Create Scalekit AgentKit connections for pagerduty, jira (the plain JIRA REST connector, not JiraServiceManagement or AtlassianMCP), confluence (plain REST, not AtlassianMCP), and an MCP-variant slack -- copy the exact connection names into PAGERDUTY_CONNECTOR / JIRA_CONNECTOR / CONFLUENCE_CONNECTOR / SLACK_CONNECTOR.
2. Set ONCALL_EMAIL to the engineer each run acts for; PagerDuty requires it on every write, so attribution stays real instead of a shared bot.
3. Resolve PAGERDUTY_SERVICE_NAME and SLACK_CHANNEL at startup and fail before paging if either is ambiguous -- mirror the Step 0.5 checks in run_flow.py.
4. Confirm JIRA_ISSUE_TYPE is valid for JIRA_PROJECT_KEY (run jira_issue_create_meta_issue_types_list) and set CONFLUENCE_SPACE_ID to the numeric space ID, not the space key.
5. Pass a stable --incident-key from my alert source so retries never double-page; keep the state ledger in state.py for partial-failure resume.
6. Run python run_flow.py --title "test incident" --severity low, then describe how to wire it behind my alertmanager or Datadog webhook.
Why choose Scalekit

Delegated identity. Not service accounts.

Credentials never touch agent code or LLM context. The agent acts as the user, not as a shared bot.
Delegated OAuth - Agent reads your calendar, your inbox — scoped to the authorizing identity, not org-wide.
Credentials outside agent runtime  -  Tokens never touch agent code or LLM context. Both failure modes covered.
Token lifecycle automatic  -  Refresh, expiry, rotation across all connectors. One SDK call. Zero management code.
200+ prebuilt connectors  -  Google, Slack, HubSpot, GitHub, Jira, Notion, Salesforce — same auth pattern everywhere.
Try other Agent Templates

Prebuilt agents you can ship today

Each one runs on delegated identity, scoped per user.

ENGINEERING
DevOps assistant agent
Poll GitHub for failing checks and stale pull requests, open Linear issues for the ones that need work, and digest to Slack.
ENGINEERING
Engineering standup agent
Pull commits from GitHub and GitLab, track Jira issue movement, and post a per-engineer standup brief to Slack.
ENGINEERING
Auto-release notes agent
Group merged GitHub PRs into structured release notes, publish the page to Notion, and announce the release in Slack.
ENGINEERING
Slack triage agent
Classify new Slack messages as bugs or support requests, file the GitHub issue or Zendesk ticket, and reply in the thread.
SUPPORT
Support triage agent
Classify new Zendesk tickets, search the Notion knowledge base for an answer, and route what it cannot resolve to Slack.
SUPPORT
Support ticket automation (Google ADK)
Fetch, annotate, and archive Zendesk tickets with Notion context, digesting anything it cannot answer to Slack.

Build your own
multi-connector agent

Add connectors. Change the LLM. Same delegated auth pattern.