alertChannels section of devhelm.yml defines where incident notifications are sent. Each channel has a name and a config block whose channelType discriminator selects the integration.
Common fields
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Unique channel name (used to reference from monitors and policies) |
config | object | Yes | Type-specific configuration. Must include channelType. |
.strict() — any extra top-level keys (like a bare type:) are
rejected at validate / plan / deploy. Always nest the integration kind inside
config.channelType.
Channel types
Slack
| Config field | Required | Description |
|---|---|---|
channelType | Yes | Always slack |
webhookUrl | Yes | Slack incoming webhook URL |
mentionText | — | Text to mention (e.g., @channel, @here, <@U123>) |
PagerDuty
| Config field | Required | Description |
|---|---|---|
channelType | Yes | Always pagerduty |
routingKey | Yes | PagerDuty Events API v2 routing key |
severityOverride | — | Override severity sent to PagerDuty |
OpsGenie
| Config field | Required | Description |
|---|---|---|
channelType | Yes | Always opsgenie |
apiKey | Yes | OpsGenie API integration key |
region | — | OpsGenie region: us or eu |
Discord
| Config field | Required | Description |
|---|---|---|
channelType | Yes | Always discord |
webhookUrl | Yes | Discord webhook URL |
mentionRoleId | — | Discord role ID to mention |
Microsoft Teams
| Config field | Required | Description |
|---|---|---|
channelType | Yes | Always teams |
webhookUrl | Yes | Teams incoming webhook URL |
| Config field | Required | Description |
|---|---|---|
channelType | Yes | Always email |
recipients | Yes | List of email addresses (non-empty) |
Webhook
| Config field | Required | Description |
|---|---|---|
channelType | Yes | Always webhook |
url | Yes | HTTP endpoint URL |
signingSecret | — | HMAC signing secret for payload verification |
customHeaders | — | Custom headers sent with each request |
Other channel types
AdditionalchannelType values are accepted: telegram, google_chat, pushover, mattermost, splunk_oncall, pushbullet, linear, incident_io, rootly, zapier, datadog, jira, and gitlab. Their config fields mirror the dashboard form for each integration — see Integrations for the required fields per channel.
Referencing channels
Monitors and notification policies reference channels by name:Using environment variables
Store sensitive values (webhook URLs, API keys, routing keys) as environment variables and reference them with${VAR} syntax. Set them in your shell or CI secrets — they’re resolved at deploy time.
Next steps
Notification policies
Route incidents through escalation chains.
Integrations
Setup guides for each channel type.