> ## Documentation Index
> Fetch the complete documentation index at: https://docs.rootly.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Superplane

> Connect Rootly with Superplane to trigger automated workflows from incident events, manage incidents programmatically, and orchestrate response automation.

## Introduction

The Superplane integration connects Rootly incidents to Superplane's workflow automation platform. You can trigger Superplane workflows when incidents or timeline events occur in Rootly, and take actions on Rootly incidents — creating, retrieving, updating, and annotating them — from within Superplane's workflow builder.

All configuration fields support dynamic expressions, enabling flexible automations that pull in live incident data and external inputs.

<Callout icon="circle-info" color="#DBEAFE">
  This integration is configured entirely from the Superplane side. Superplane automatically manages the Rootly webhook endpoints — no manual webhook setup is required in Rootly.
</Callout>

## Before You Begin

* A Rootly account with permission to manage integrations
* A Superplane account with permission to create and configure components

Visit [Superplane's Rootly component documentation](https://docs.superplane.com/components/rootly/) to connect Rootly and get started.

## Triggers

### On Incident

Starts a Superplane workflow when a Rootly incident event occurs. Superplane automatically creates and manages the webhook endpoint.

**Configuration**

Select which incident events to listen for:

* `incident.created`
* `incident.updated`
* `incident.mitigated`
* `incident.resolved`
* `incident.cancelled`
* `incident.deleted`

**Event data**

Each trigger payload includes:

| Field      | Description                                                                  |
| ---------- | ---------------------------------------------------------------------------- |
| `event`    | Event type (e.g. `incident.created`)                                         |
| `incident` | Complete incident object — title, summary, severity, status, timestamps, URL |

**Example payload**

```json theme={null}
{
  "data": {
    "event": "incident.created",
    "incident": {
      "id": "abc123-def456",
      "mitigated_at": null,
      "resolved_at": null,
      "severity": "sev2",
      "started_at": "2026-01-19T12:00:00Z",
      "status": "started",
      "summary": "The API response times have increased significantly across all endpoints.",
      "title": "API latency spike detected",
      "url": "https://app.rootly.com/incidents/abc123-def456"
    }
  },
  "timestamp": "2026-01-19T12:00:00Z",
  "type": "rootly.onIncident"
}
```

***

### On Incident Timeline Event

Starts a Superplane workflow when a timeline event is created or updated on a Rootly incident. Only events with `kind: "event"` are emitted.

**Configuration**

All filters are optional:

| Filter          | Description                                           |
| --------------- | ----------------------------------------------------- |
| Incident Status | Filter by incident status (open, resolved, etc.)      |
| Severity        | Filter by incident severity                           |
| Service         | Filter by service name                                |
| Team            | Filter by team name                                   |
| Event Source    | Filter by event source (`web`, `api`, `system`)       |
| Visibility      | Filter by event visibility (`internal` or `external`) |

**Event data**

| Field         | Description                                                     |
| ------------- | --------------------------------------------------------------- |
| `id`          | Event ID                                                        |
| `event`       | Event content                                                   |
| `event_raw`   | Raw event content                                               |
| `event_id`    | Webhook event ID                                                |
| `event_type`  | `incident_event.created` or `incident_event.updated`            |
| `kind`        | Event kind                                                      |
| `source`      | Event source                                                    |
| `visibility`  | `internal` or `external`                                        |
| `occurred_at` | When the event occurred                                         |
| `created_at`  | When the event was created                                      |
| `updated_at`  | When the event was last updated                                 |
| `issued_at`   | When the webhook was issued                                     |
| `incident_id` | Parent incident ID                                              |
| `incident`    | Incident summary (id, title, severity, status, services, teams) |

**Example payload**

```json theme={null}
{
  "data": {
    "created_at": "2026-02-22T09:46:23.868-08:00",
    "event": "Investigation started, will update accordingly",
    "event_id": "b3065ca8-69a6-4781-b6b4-94d6f0317ccf",
    "event_raw": "Investigation started, will update accordingly",
    "event_type": "incident_event.created",
    "id": "56f7b488-e3c5-4091-9bb4-cf132007f98c",
    "incident": {
      "id": "64c39fde-1626-4f78-874e-9db91c0639d3",
      "services": ["UI - User Profile Block"],
      "severity": "sev2",
      "status": "mitigated",
      "teams": ["Customer Relations"],
      "title": "new remake from main"
    },
    "incident_id": "64c39fde-1626-4f78-874e-9db91c0639d3",
    "issued_at": "2026-02-22T09:46:24.018-08:00",
    "kind": "event",
    "occurred_at": "2026-02-22T09:46:23.868-08:00",
    "source": "web",
    "updated_at": "2026-02-22T09:46:23.868-08:00",
    "visibility": "internal"
  },
  "timestamp": "2026-02-22T17:46:40.603539728Z",
  "type": "rootly.onIncidentTimelineEvent"
}
```

## Actions

### Create Event

Adds a timeline annotation or note to an existing Rootly incident.

**Configuration**

| Field       | Description                                                      | Required |
| ----------- | ---------------------------------------------------------------- | -------- |
| Incident ID | Rootly incident UUID to add the event to                         | Yes      |
| Event       | Note or annotation text — supports expressions                   | Yes      |
| Visibility  | `internal` (responders only) or `external` (public status pages) | No       |

**Output**

```json theme={null}
{
  "data": {
    "created_at": "2026-02-10T07:34:35.902-8:00",
    "event": "Investigation update: database connections stabilized.",
    "id": "a2d32bb7-0417-4d0d-8483-a583c3-7853",
    "occurred_at": "2026-02-10T07:34:35.902-8:00",
    "visibility": "internal"
  },
  "timestamp": "2026-02-10T15:34:36.09877478Z",
  "type": "rootly.incident.event"
}
```

***

### Create Incident

Creates a new incident in Rootly from a Superplane workflow.

**Configuration**

| Field    | Description                                                   | Required |
| -------- | ------------------------------------------------------------- | -------- |
| Title    | A succinct description of the incident — supports expressions | Yes      |
| Summary  | Additional details about the incident — supports expressions  | No       |
| Severity | Incident severity level — supports expressions                | No       |

**Output**

```json theme={null}
{
  "data": {
    "id": "abc123-def456",
    "severity": "sev1",
    "started_at": "2026-01-19T12:00:00Z",
    "status": "started",
    "summary": "Users are experiencing slow database queries and connection timeouts.",
    "title": "Database connection issues",
    "url": "https://app.rootly.com/incidents/abc123-def456"
  },
  "timestamp": "2026-01-19T12:00:00Z",
  "type": "rootly.incident"
}
```

***

### Get Incident

Retrieves full details for a Rootly incident by ID, including associated services, groups, timeline events, and action items.

**Configuration**

| Field       | Description                                               | Required |
| ----------- | --------------------------------------------------------- | -------- |
| Incident ID | The ID of the incident to retrieve — supports expressions | Yes      |

**Output**

Returns the full incident object including `id`, `sequential_id`, `title`, `slug`, `status`, `summary`, `severity`, `url`, `started_at`, `mitigated_at`, `resolved_at`, `user`, `started_by`, `services`, `groups`, `events`, and `action_items`.

```json theme={null}
{
  "data": {
    "action_items": [
      { "id": "ai-001", "status": "open", "summary": "Investigate root cause of latency increase" }
    ],
    "events": [
      { "created_at": "2026-01-19T12:00:00Z", "id": "evt-001", "kind": "incident_created", "visibility": "internal" }
    ],
    "groups": [
      { "id": "grp-001", "name": "Backend Team", "slug": "backend-team" }
    ],
    "id": "abc123-def456",
    "mitigated_at": "2026-01-19T12:30:00Z",
    "resolved_at": null,
    "sequential_id": 42,
    "services": [
      { "id": "svc-001", "name": "Production API", "slug": "production-api" }
    ],
    "severity": "sev1",
    "slug": "api-latency-spike-detected",
    "started_at": "2026-01-19T12:00:00Z",
    "started_by": { "email": "john@example.com", "full_name": "John Doe", "id": "user-002" },
    "status": "mitigated",
    "summary": "The API response times have increased significantly across all endpoints.",
    "title": "API latency spike detected",
    "url": "https://app.rootly.com/incidents/abc123-def456",
    "user": { "email": "jane@example.com", "full_name": "Jane Smith", "id": "user-001" }
  },
  "timestamp": "2026-01-19T12:05:00Z",
  "type": "rootly.incident"
}
```

***

### Update Incident

Modifies an existing Rootly incident. All fields except Incident ID are optional.

**Configuration**

| Field       | Description                                                                | Required |
| ----------- | -------------------------------------------------------------------------- | -------- |
| Incident ID | UUID of the incident to update — supports expressions                      | Yes      |
| Title       | Updated incident title — supports expressions                              | No       |
| Summary     | Updated incident summary — supports expressions                            | No       |
| Status      | Updated incident status                                                    | No       |
| Sub-Status  | Updated sub-status — required by some Rootly accounts when changing status | No       |
| Severity    | Updated severity level                                                     | No       |
| Services    | Services to attach to the incident                                         | No       |
| Teams       | Teams to attach to the incident                                            | No       |
| Labels      | Key-value labels for the incident                                          | No       |

**Output**

Returns `id`, `sequential_id`, `title`, `slug`, `status`, and `updated_at`.

```json theme={null}
{
  "data": {
    "id": "abc123-def456",
    "mitigated_at": "2026-01-19T13:30:00Z",
    "sequential_id": 42,
    "severity": "sev1",
    "slug": "database-connection-issues",
    "started_at": "2026-01-19T12:00:00Z",
    "status": "mitigated",
    "summary": "Root cause identified. Connection pool exhausted.",
    "title": "Database connection issues - Updated",
    "updated_at": "2026-01-19T13:30:00Z",
    "url": "https://app.rootly.com/incidents/abc123-def456"
  },
  "timestamp": "2026-01-19T13:30:00Z",
  "type": "rootly.incident"
}
```

## Troubleshooting

<AccordionGroup>
  <Accordion title="The On Incident trigger is not firing" icon="bolt">
    Confirm the Rootly component is connected in Superplane and the webhook is active. Superplane manages the webhook endpoint automatically — check the Superplane component settings to verify the connection status and that the correct incident events are selected.
  </Accordion>

  <Accordion title="The On Incident Timeline Event trigger is not firing" icon="bolt">
    Only timeline events with `kind: "event"` emit a trigger. System-generated events may use a different kind value. Also confirm any optional filters (severity, service, team, visibility) are not excluding the events you expect.
  </Accordion>

  <Accordion title="Actions are failing with authentication errors" icon="lock">
    The integration uses your Rootly API credentials configured in Superplane. Confirm the credentials have not been revoked in Rootly. See the [Superplane Rootly component docs](https://docs.superplane.com/components/rootly/) for credential configuration steps.
  </Accordion>

  <Accordion title="Update Incident fails when changing status" icon="triangle-exclamation">
    Some Rootly accounts require a Sub-Status value when updating the incident status. If your update fails after a status change, set the Sub-Status field in the Update Incident action.
  </Accordion>

  <Accordion title="Dynamic expressions are not resolving correctly" icon="code">
    All configuration fields support Superplane's dynamic expression syntax. Check that expressions reference valid incident fields from the trigger payload and that the syntax is correct. Test with a real incident event to inspect the available data shape.
  </Accordion>
</AccordionGroup>

## Related Pages

<CardGroup cols={3}>
  <Card title="Incident Workflows" icon="bolt" href="/workflows/incident-workflows">
    Build native Rootly workflows alongside your Superplane automations.
  </Card>

  <Card title="Rootly API" icon="code" href="/api-reference/overview">
    The Rootly API reference — the same endpoints Superplane uses to take actions on incidents.
  </Card>

  <Card title="Superplane Docs" icon="arrow-up-right-from-square" href="https://docs.superplane.com/components/rootly/">
    Full setup and configuration guide on the Superplane side.
  </Card>
</CardGroup>
