Skip to main content

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.
This integration is configured entirely from the Superplane side. Superplane automatically manages the Rootly webhook endpoints — no manual webhook setup is required in Rootly.

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 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:
FieldDescription
eventEvent type (e.g. incident.created)
incidentComplete incident object — title, summary, severity, status, timestamps, URL
Example payload
{
  "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:
FilterDescription
Incident StatusFilter by incident status (open, resolved, etc.)
SeverityFilter by incident severity
ServiceFilter by service name
TeamFilter by team name
Event SourceFilter by event source (web, api, system)
VisibilityFilter by event visibility (internal or external)
Event data
FieldDescription
idEvent ID
eventEvent content
event_rawRaw event content
event_idWebhook event ID
event_typeincident_event.created or incident_event.updated
kindEvent kind
sourceEvent source
visibilityinternal or external
occurred_atWhen the event occurred
created_atWhen the event was created
updated_atWhen the event was last updated
issued_atWhen the webhook was issued
incident_idParent incident ID
incidentIncident summary (id, title, severity, status, services, teams)
Example payload
{
  "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
FieldDescriptionRequired
Incident IDRootly incident UUID to add the event toYes
EventNote or annotation text — supports expressionsYes
Visibilityinternal (responders only) or external (public status pages)No
Output
{
  "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
FieldDescriptionRequired
TitleA succinct description of the incident — supports expressionsYes
SummaryAdditional details about the incident — supports expressionsNo
SeverityIncident severity level — supports expressionsNo
Output
{
  "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
FieldDescriptionRequired
Incident IDThe ID of the incident to retrieve — supports expressionsYes
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.
{
  "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
FieldDescriptionRequired
Incident IDUUID of the incident to update — supports expressionsYes
TitleUpdated incident title — supports expressionsNo
SummaryUpdated incident summary — supports expressionsNo
StatusUpdated incident statusNo
Sub-StatusUpdated sub-status — required by some Rootly accounts when changing statusNo
SeverityUpdated severity levelNo
ServicesServices to attach to the incidentNo
TeamsTeams to attach to the incidentNo
LabelsKey-value labels for the incidentNo
Output Returns id, sequential_id, title, slug, status, and updated_at.
{
  "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

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.
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.
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 for credential configuration steps.
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.
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.

Incident Workflows

Build native Rootly workflows alongside your Superplane automations.

Rootly API

The Rootly API reference — the same endpoints Superplane uses to take actions on incidents.

Superplane Docs

Full setup and configuration guide on the Superplane side.