Skip to main content
The alertChannels section of devhelm.yml defines where incident notifications are sent. Each channel has a type and type-specific configuration.

Common fields

FieldTypeRequiredDescription
namestringYesUnique channel name (used to reference from monitors and policies)
typestringYesChannel type (see below)
configobjectYesType-specific configuration

Channel types

Slack

alertChannels:
  - name: Slack Alerts
    type: slack
    config:
      webhookUrl: ${SLACK_WEBHOOK_URL}
      mentionText: "@channel"
Config fieldRequiredDescription
webhookUrlYesSlack incoming webhook URL
mentionTextText to mention (e.g., @channel, @here, <@U123>)

PagerDuty

alertChannels:
  - name: PagerDuty On-Call
    type: pagerduty
    config:
      routingKey: ${PAGERDUTY_ROUTING_KEY}
      severityOverride: critical
Config fieldRequiredDescription
routingKeyYesPagerDuty Events API v2 routing key
severityOverrideOverride severity sent to PagerDuty

OpsGenie

alertChannels:
  - name: OpsGenie
    type: opsgenie
    config:
      apiKey: ${OPSGENIE_API_KEY}
      region: us
Config fieldRequiredDescription
apiKeyYesOpsGenie API integration key
regionOpsGenie region: us or eu

Discord

alertChannels:
  - name: Discord Alerts
    type: discord
    config:
      webhookUrl: ${DISCORD_WEBHOOK_URL}
      mentionRoleId: "123456789"
Config fieldRequiredDescription
webhookUrlYesDiscord webhook URL
mentionRoleIdDiscord role ID to mention

Microsoft Teams

alertChannels:
  - name: Teams Channel
    type: teams
    config:
      webhookUrl: ${TEAMS_WEBHOOK_URL}
Config fieldRequiredDescription
webhookUrlYesTeams incoming webhook URL

Email

alertChannels:
  - name: Ops Email
    type: email
    config:
      recipients:
        - ops@example.com
        - oncall@example.com
Config fieldRequiredDescription
recipientsYesList of email addresses (non-empty)

Webhook

alertChannels:
  - name: Custom Webhook
    type: webhook
    config:
      url: https://hooks.example.com/devhelm
      signingSecret: ${WEBHOOK_SECRET}
      customHeaders:
        X-Source: devhelm
Config fieldRequiredDescription
urlYesHTTP endpoint URL
signingSecretHMAC signing secret for payload verification
customHeadersCustom headers sent with each request

Referencing channels

Monitors and notification policies reference channels by name:
monitors:
  - name: API Health
    type: HTTP
    config:
      url: https://api.example.com/health
    alertChannels: [Slack Alerts, PagerDuty On-Call]

notificationPolicies:
  - name: Critical Alerts
    escalation:
      steps:
        - channels: [Slack Alerts]
        - channels: [PagerDuty On-Call]
          delayMinutes: 5

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.