Monitoring

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`SetupBehaviour
slack_channelInstall the PulseTrace Slack app and pick a channel.Posts to the channel through the app. Re-authorise if the app is removed.
slack_webhookPaste an incoming-webhook URL.Posts a message to the webhook's channel.
teams_webhookPaste a Teams incoming-webhook URL.Posts a message.
discord_webhookPaste a Discord webhook URL.Posts a message.
telegramBot token and chat id.Sends a message to the chat.
pagerdutyEvents API v2 integration key.Triggers an alert with a per-monitor dedup key; resolves it on recovery; reminders update the same alert.
opsgenieAPI key.Creates an alert; closes it on recovery.
incident_ioAPI key and severity id.Creates an incident on down. Does not auto-resolve.
rootlyAPI key.Creates an incident on down. Does not auto-resolve.
emailAn address.Sends the alert email to that address, independent of the organization-wide email channel.
generic_webhookAny 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 — the alert_latency_ms threshold.
  • 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.

webhook-payload.jsonjson
{
  "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.

Try it on your own endpoints.

Ten monitors, one region and a status page are free — no card.

Start free