Skip to content

Sentry ​

Sentry issue / alert webhooks POST JSON to Exhale. Each tenant gets a unique HTTPS URL token. Exhale scrubs the payload, upserts a Pulse (source=sentry), and runs triage when the issue action maps to created / triggered / similar.

This is ingest (creates Pulses). For issue and error enrichment at triage time, see Sentry context.

See Sources for how Sentry fits with the other incoming webhooks.

On the hosted app, use the URL Connections copies. It starts with https://exhaleoncall.com/webhooks/. The customer host does not publish /v1/webhooks/....


Endpoint ​

After Connect in Connections → Sources → Observability & alerts → Sentry:

Preferred (keeps tokens out of proxy access logs):

POST https://exhaleoncall.com/webhooks/sentry

Send header X-Exhale-Webhook-Token: {token}.

Path form (also supported):

POST https://exhaleoncall.com/webhooks/sentry/{token}
  • token — opaque URL segment; this token authenticates the delivery.
  • Response: 202 Accepted with pulse_id, status, created, and message.

Unknown tokens return 404. Disabled or expired-trial tenants return 403.


Customer setup ​

  1. Sign in as admin → Connections → Sources → Sentry.
  2. Click Connect Sentry and copy the webhook URL.
  3. In Sentry, add an alert rule or internal integration webhook and paste the Exhale URL.
  4. Send issue created/resolved (or alert) events that include an issue id.
  5. Send test alert creates a synthetic pulse and marks the integration configured.

See Sentry's official guide: Integration Platform.

Rotate webhook token replaces the previous URL right away. Update Sentry after rotating.


Payload shape ​

FieldRequiredNotes
Issue idYesStable id for dedupe (source=sentry); nested under data.issue or flat
action / statusNocreated, resolved, triggered, …
titleNoPulse title

Lifecycle mapping ​

Sentry action / statusPulse status
Created, triggered, open, unresolvedReceived → triage
Resolved, archived, closedResolved

Example ​

bash
TOKEN="your-url-token"
curl -i -X POST "https://exhaleoncall.com/webhooks/sentry/${TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{"action":"created","data":{"issue":{"id":"12345","title":"TypeError"}}}'

See Errors & authentication for structured errors, 413 size limits, Redis delivery dedupe, and token rotation.

Exhale by Kolstrom Systems LLC