Skip to main content
Send alerts out and receive them in
Integrations are the destinations Sentivel sends alerts to, and the sources it can receive alerts from. Set them up under Integrations, then use them as targets in an escalation policy.

Outbound destinations

You can name each destination, send it a test, and mute it without deleting it. Webhook URLs are checked the same way monitor targets are, so an integration can’t point at an internal address. To receive incidents in an app you build on Sentivel, use webhook subscriptions instead.

Webhook payloads

A Webhook destination receives a POST with Content-Type: application/json. The dashboard shows the same reference when you add or edit one. Slack, Discord, and Teams receive a body shaped for each provider, so build your own handlers against the Webhook type. Sentivel sends three events. Branch on the event field.
incident.opened
incident.resolved
incident.escalated fires on each escalation step while the incident is unacknowledged. It carries the open fields plus step and cycle.
incident.escalated
ackUrl is present only while an incident is open and the Acknowledge button is enabled for that destination. There is no signature header yet, so keep the secret in the URL path and treat the endpoint as unlisted. To drive a banner on your own site, switch it on for incident.opened and clear it on incident.resolved, keyed off component.

Inbound sources

An inbound source turns an alert from another tool into a Sentivel incident. There are two kinds. An incoming webhook is a signed URL per integration. POST to it and Sentivel opens an incident, mapping the payload to a title and metadata. Email to incident gives each integration a unique address. The subject and body of each email become the incident.

What to send us

Create an inbound source and you get a private receive URL. POST JSON to it. No Bearer token: the unguessable URL is the credential, and you can add a signing secret for HMAC on top.
Open an incident
The receiver reads the common field names, so Prometheus, Grafana, Datadog, and Sentry payloads map without reshaping. The smallest useful call is a title and a severity. Every field is optional. Resolve an incident by sending the same fingerprint again with a resolved status.
Resolve it
With a signing secret set, sign the raw body and send X-Signature: sha256=<HMAC-SHA256>. A successful call returns { "ok": true, "action": "opened", "incidentId": "..." }.

People versus channels

A channel is a shared destination that broadcasts to everyone in it. A person is a teammate, paged through an escalation policy on their own contact methods until someone acknowledges.