# Create Incident — PagerDuty

> Trigger a new incident on a PagerDuty service. Use List Services to find a service ID and List Escalation Policies to find a policy ID. Use List Priorities to find priority IDs. Set incidentKey to a stable value derived from the alert…

- Key: `pagerduty-create-incident`
- Type: Action (Write)
- Version: 0.0.2
- App: PagerDuty (`pagerduty`) — https://pipedream.com/apps/pagerduty.md
- This page (HTML): https://pipedream.com/apps/pagerduty/actions/create-incident
- Hints: open-world
- Source: https://github.com/PipedreamHQ/pipedream/blob/master/components/pagerduty/actions/create-incident/create-incident.mjs

## Description

Trigger a new incident on a PagerDuty service. Use **List Services** to find a service ID and **List Escalation Policies** to find a policy ID. Use **List Priorities** to find priority IDs. Set `incidentKey` to a stable value derived from the alert source (e.g. a hash of title + service ID) to prevent duplicate incidents on retry — PagerDuty deduplicates open incidents with the same key on the same service. [See the documentation](https://developer.pagerduty.com/api-reference/b3A6Mjc0ODE0MA-create-an-incident)

## Props

| Prop | Type | Required | Description |
|---|---|---|---|
| `title` | `string` | Yes | A succinct description of the nature, symptoms, cause, or effect of the incident. |
| `serviceId` | `string` | Yes | The ID of the service. See the docs here Options are loaded from the connected account. |
| `urgency` | `string` | No | The urgency of the incident. Allowed values: high and low |
| `incidentKey` | `string` | No | A string which identifies the incident. Sending subsequent requests referencing the same service and with the same Incident Key will result in those requests being rejected if an open incident matches that Incident Key. |
| `bodyDetails` | `string` | No | Additional incident details. |
| `escalationPolicyId` | `string` | No | The ID of the escalation policy Options are loaded from the connected account. |
| `priorityId` | `string` | No | The ID of the priority level. Use List Priorities to discover valid IDs. |

## Run it

**MCP**

```ts
import { Client } from "@modelcontextprotocol/sdk/client/index.js"
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js"
import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const accessToken = await pd.rawAccessToken

const transport = new StreamableHTTPClientTransport(
  new URL("https://remote.mcp.pipedream.net/v3"),
  {
    requestInit: {
      headers: {
        Authorization: `Bearer ${accessToken}`,
        "x-pd-project-id": process.env.PIPEDREAM_PROJECT_ID!,
        "x-pd-environment": "production",
        "x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
        "x-pd-app-slug": "pagerduty",
      },
    },
  },
)

const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)

const { tools } = await mcp.listTools()

// listTools() hands your model this tool's input schema, so it can
// fill the arguments itself:
const result = await mcp.callTool({
  name: "pagerduty-create-incident",
  arguments: {
    title: "Incident Title",
    serviceId: "Service ID",
  },
})
```

**TypeScript**

```ts
import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const result = await pd.actions.run({
  id: "pagerduty-create-incident",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    pagerduty: { authProvisionId: "apn_xxxxxxx" },
    title: "Incident Title",
    serviceId: "Service ID",
  },
})

console.log(result)
```

**cURL**

```bash
curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
  -H "Content-Type: application/json" \
  -H "X-PD-Environment: production" \
  -H "Authorization: Bearer {access_token}" \
  -d '{
    "external_user_id": "{external_user_id}",
    "id": "pagerduty-create-incident",
    "configured_props": {
      "pagerduty": { "authProvisionId": "apn_xxxxxxx" },
      "title": "Incident Title",
      "serviceId": "Service ID"
    }
  }'
```

---

- App: https://pipedream.com/apps/pagerduty.md · All apps: https://pipedream.com/apps
