Skip to main content
Connect DevHelm to Rootly to spin up an incident automatically when an alert fires. DevHelm calls the Rootly REST API (POST /v1/incidents, JSON:API format); Rootly then runs the rest of the incident lifecycle — Slack channel creation, role assignments, timeline, and post-mortems.

Setup

1

Generate a Rootly API token

  1. In Rootly, open the Organization dropdown → Organization SettingsAPI Keys
  2. Click Generate New API Key and choose a scope (Global, Team, or Personal) that can create incidents
  3. Set a name and expiration, then Create — copy the token immediately, as it’s only shown once
  4. (Optional) Decide which severity slug new incidents should use (e.g. sev0, sev1), matching the severities configured in your Rootly instance
2

Create the alert channel in DevHelm

devhelm alert-channels create \
  --name "Rootly" \
  --type rootly \
  --config '{"channelType":"rootly","apiKey":"rootly_xxxxxxxx","severity":"sev1"}'
3

Test the channel

devhelm alert-channels test <channel-id>

Configuration

FieldDescriptionRequired
apiKeyRootly API token with incident creation permission (sent as a Bearer token)Yes
severitySeverity slug override, e.g. sev0, sev1; omit to let DevHelm map its own severityNo

Lifecycle behavior

DevHelm creates a Rootly incident when an alert fires. Rootly then owns the incident lifecycle from that point — Slack channel creation, role assignments, the incident timeline, and post-mortems all run inside Rootly. If you omit severity, DevHelm maps its own incident severity to Rootly’s default; set the slug explicitly to force every DevHelm-created incident to a specific Rootly severity.

Troubleshooting

The token lacks the incident creation scope, or it’s expired/revoked. Generate a new key under Organization Settings → API Keys with a scope that can create incidents.
The severity slug must match a severity configured in Rootly. Check Settings → Severities for the exact slugs (e.g. sev1), or omit the field to let DevHelm map severity automatically.