Skip to main content
Alert channels define the destinations for incident notifications. Each channel type has its own delivery behavior, configuration, and plan requirements.
Define this in code. Manage alert channels as part of your monitoring-as-code workflow: YAML format · Terraform · CI/CD patterns

Channel types

All 20 channel types are available on every plan, and you can create an unlimited number of channels on any plan — there is no per-plan channel count limit.

Lifecycle behavior

Channels fall into two notification models:

Fire-and-forget

Email, Slack, Discord, Teams, Webhook Each message is self-contained. The channel sends a notification when an incident is created and a separate notification when it’s resolved. There is no state maintained in the external system.

Trigger-resolve

PagerDuty, OpsGenie, Splunk On-Call, Incident.io, Rootly, GitLab The channel opens an alert in the external system when an incident is created and explicitly resolves it when the incident resolves. The external system maintains its own state (acknowledgment, escalation, on-call routing) tied to the DevHelm incident. This distinction matters for escalation chain behavior — stateful integrations always close their external alerts on resolution, even when onResolve is set to silent.

Creating a channel

For a generic webhook channel, pass the full --config JSON because the webhook variant uses url (not webhookUrl):
Replace the webhook.site UUID with a fresh URL from webhook.site to inspect deliveries.

Configuration by type

See Slack integration for setup instructions.
See Discord integration for setup instructions.
See Webhooks integration for payload format and verification.
See PagerDuty integration for setup instructions.
See OpsGenie integration for setup instructions.
See Teams integration for setup instructions.

Testing a channel

Verify your configuration before using it in a notification policy:
The CLI tests an existing channel by ID. The REST endpoint at /api/v1/alert-channels/test accepts an inline config and verifies it without persisting — useful for pre-flight validation before a create. The test endpoint sends a sample notification and reports whether delivery succeeded.

Delivery history

Track delivery attempts and failures for a channel:
Each delivery record includes the timestamp, target incident, HTTP status, and any error message.

Channel fields

Channel configurations are write-only for security. After creation, the API returns displayConfig (non-sensitive metadata) and configHash but never the full secret values.

Next steps

Notification policies

Route incidents to the right channels based on rules.

Integrations

Step-by-step setup for each integration.

Alerting guide

End-to-end guide for setting up alerting.