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, orIdempotency-Key. - The generic profile preserves the original
message_json, which is useful for downstream automation. - Human-readable chat profiles use
notification_languageand 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
genericpreserves 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.