Notification destinations
Route Maple alerts to Slack, PagerDuty, Discord, or any HTTP endpoint. How to add a destination, send a test, and get the right credentials for each provider.
A notification destination is where Maple delivers an alert when one of your rules fires. Add destinations once, then attach them to any number of alert rules — when a rule trips, Maple sends a trigger; when it recovers, a resolve.
Destinations live under Alerts in the Maple dashboard. Open the Destinations section, click Add destination, pick a provider, and paste its credentials. Credentials are encrypted at rest and never returned to the browser after they’re saved.
Sending a test
Every destination has a Send test button. It delivers a sample alert through the real provider path — the same code that delivers production alerts — so it’s the fastest way to confirm your credentials are valid before you wire the destination to a rule.
If a test fails, Maple surfaces the provider’s own rejection reason in the toast (and on the destination card as the last test error). For example, a bad PagerDuty key reports PagerDuty delivery failed with 400: Invalid routing key — read that message; it tells you exactly what the provider rejected.
Slack
Post alerts to a Slack channel via an incoming webhook.
- Create a Slack app (or use an existing one) and enable Incoming Webhooks.
- Add a webhook to the channel you want alerts in.
- Copy the
https://hooks.slack.com/services/...URL into the Slack webhook URL field.
PagerDuty
Trigger PagerDuty incidents through the Events API v2. The single most common setup mistake is pasting the wrong key — PagerDuty has several, and only one works here.
Use an Events API v2 integration key (also called a routing key) — a 32-character string. A PagerDuty REST API token (from User Settings or API Access Keys) will not work and produces
PagerDuty delivery failed with 400: Invalid routing keyon test send. The REST API is for managing PagerDuty itself; the Events API is what Maple posts alerts to, and it’s scoped to a specific service.
To get the right key:
- In PagerDuty, go to Services → Service Directory and open (or create) the service that should receive these alerts.
- Open the Integrations tab.
- Click Add integration and choose Events API v2.
- Copy that integration’s Integration Key (32 characters).
- Paste it into Maple’s Integration key field and click Send test.
See PagerDuty’s own services and integrations guide for screenshots.
| Field | Notes |
|---|---|
| Integration key | The 32-character Events API v2 routing key from the steps above. |
When an alert fires, Maple sends an Events API v2 trigger with a stable dedup_key, and a matching resolve when the rule recovers — so PagerDuty groups the lifecycle into one incident.
Discord
Post alerts to a Discord channel via an incoming webhook.
- In Discord: Channel settings → Integrations → Webhooks → New Webhook.
- Copy the webhook URL (
https://discord.com/api/webhooks/...) into the Discord webhook URL field.
Webhook
POST a signed JSON payload to any HTTP endpoint you control — useful for custom routing, on-call tools without a native integration, or your own automation.
- Maple sends a JSON body describing the rule, the observed value, and links back into the dashboard.
- Set an optional signing secret to receive an
x-maple-signatureHMAC-SHA256 header so your endpoint can verify the payload came from Maple. - Your endpoint should respond with a
2xxstatus; any other status is treated as a delivery failure and surfaced on the destination.
Hazel
Connect Hazel via OAuth and pick a workspace channel to route alerts into, or paste a Hazel-issued webhook URL directly. See Hazel’s Maple integration guide.