Skip to content

Webhook Channel Plugin

The Webhook channel plugin is an alert_deliver plugin that sends Core-rendered alert payloads over HTTP webhooks. It supports multiple template profiles, from generic JSON to Slack, Mattermost, PagerDuty, Teams, Discord, Opsgenie, Grafana OnCall, Google Chat, and CloudEvents.

Highlights

  • Treats HTTP method, headers, auth, timeout, retry, and idempotency key as transport settings.
  • Supports Slack blocks/attachments/text, Mattermost, PagerDuty Events v2, Teams MessageCard, Discord embed, Opsgenie alert, Google Chat card/text, and CloudEvents v1 profiles.
  • Blocks private or internal network targets by default unless explicitly allowed for trusted deployments.
  • Separates config validation from optional test delivery in health checks.

Before Registration

  • Prepare webhook URL, authentication mode, template type, timeout, and retry policy.
  • Review required fields and rate limits for each downstream webhook provider.
  • Explicitly review network policy before enabling internal webhook targets.

Operations Tips

  • Custom headers cannot override Core-managed headers such as Authorization, Content-Type, User-Agent, or Idempotency-Key.
  • The generic profile preserves the original message_json, which is useful for downstream automation.
  • Human-readable chat profiles use notification_language and Core-rendered messages for display text.

Operator Views

  • Channel settings manage webhook URL, method, auth, headers, template profile, timeout/retry, and internal-target allowance.
  • Webhook has no standalone channel page. Draft diagnostics appear in the registration/edit form and test-result details.
  • The form assistant previews the redacted request, rendered payload, HMAC signature placeholder, endpoint policy, and retry schedule without sending HTTP traffic.
  • Health checks separate URL/template validation, optional test delivery, and private-target guardrails.
  • Delivery results connect HTTP status, retryability, idempotency key, and selected downstream response evidence to Core delivery sessions.

Template Profiles

  • generic preserves JSON structure so downstream automation can process the original alert context.
  • Slack, Mattermost, Teams, Discord, and Google Chat profiles focus on human-readable chat messages.
  • PagerDuty Events v2, Opsgenie, and Grafana OnCall profiles focus on required fields and routing keys for incident/on-call systems.
  • CloudEvents v1 is useful when event-driven integrations require a standard envelope.

Management Boundary

  • Internal webhook targets are blocked by default because of SSRF risk and should be explicitly enabled only in trusted deployments.
  • Operators must review downstream SaaS rate limits, payload-size limits, and required fields when configuring channels.
  • The webhook channel transports notifications; it does not own authoritative incident lifecycle state in downstream systems.

Example Workflows

  • If webhook delivery fails, review HTTP status, auth headers, required template fields, provider rate limits, and retry history.
  • If the preview looks right but the receiver rejects the request, run the explicit delivery test and compare provider auth, HMAC signature header, required fields, and payload size.
  • If chat messages render poorly, compare notification language, provider-specific template options, and the Core-rendered message.
  • For downstream automation, start with the generic or CloudEvents profile.