Notification destinations
Every alert channel — Slack, Microsoft Teams, Discord, Telegram, PagerDuty, Opsgenie, incident.io, Rootly, email and signed webhooks — with the events each can receive and the webhook payload.
A destination is an organization-level place notifications go. Create them under Alerts → Notification destinations (owner or admin), then attach any number to a monitor. Each destination records its last success and last failure, so a revoked webhook is visible before you need it.
Types
| `type` | Setup | Behaviour |
|---|---|---|
slack_channel | Install the PulseTrace Slack app and pick a channel. | Posts to the channel through the app. Re-authorise if the app is removed. |
slack_webhook | Paste an incoming-webhook URL. | Posts a message to the webhook's channel. |
teams_webhook | Paste a Teams incoming-webhook URL. | Posts a message. |
discord_webhook | Paste a Discord webhook URL. | Posts a message. |
telegram | Bot token and chat id. | Sends a message to the chat. |
pagerduty | Events API v2 integration key. | Triggers an alert with a per-monitor dedup key; resolves it on recovery; reminders update the same alert. |
opsgenie | API key. | Creates an alert; closes it on recovery. |
incident_io | API key and severity id. | Creates an incident on down. Does not auto-resolve. |
rootly | API key. | Creates an incident on down. Does not auto-resolve. |
email | An address. | Sends the alert email to that address, independent of the organization-wide email channel. |
generic_webhook | Any HTTPS URL. | POSTs a signed JSON payload (below). The signing secret is shown once at creation. |
SMS and voice calls are not built in; route phone paging through PagerDuty or Opsgenie.
Events
Each destination has an events list. down and recovered are the defaults; the full set is:
down,recovered— monitor status flips.cert_expiring— a TLS monitor's certificate is within its alert window.security_grade_downgraded,security_grade_recovered— an SSL/TLS Security or Domain Security grade moved.significant_change— External Intelligence recorded a material change (DNS, TLS, headers, content, infrastructure).performance_anomaly,performance_recovered— thealert_latency_msthreshold.anomaly_alert,anomaly_recovered,anomaly_flapping— Intelligence baselines.incident_opened— any incident, whatever the source.scheduled_report— a scheduled report delivery.
Generic webhook payload and signature
The body is JSON with a stable top-level shape; message carries the human-readable text and destination identifies which destination fired so one endpoint can serve several.
{
"event": "down",
"product": "pulsetrace",
"organization": { "id": "…", "name": "Acme" },
"destination": { "id": "…", "name": "ops-hook" },
"message": "Checkout API is DOWN — HTTP 503 (assertion status == 200 failed)"
}Every request is signed with the destination's secret: HMAC-SHA256 over the raw body, sent as X-PulseTrace-Signature: sha256=<hex>. Verify it before trusting the payload, and rotate the secret by recreating the destination.
Testing a destination
Use Test on a destination (POST /api/v1/auth/organization/webhooks/{id}/test) to deliver a synthetic event. The last-success timestamp updates when the target accepted it.