Appearance
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/sentrySend 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, andmessage.
Unknown tokens return 404. Disabled or expired-trial tenants return 403.
Customer setup
- Sign in as admin → Connections → Sources → Sentry.
- Click Connect Sentry and copy the webhook URL.
- In Sentry, add an alert rule or internal integration webhook and paste the
Exhale URL.
- Send issue created/resolved (or alert) events that include an issue id.
- 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
| Field | Required | Notes |
|---|---|---|
Issue id | Yes | Stable id for dedupe (source=sentry); nested under data.issue or flat |
action / status | No | created, resolved, triggered, … |
title | No | Pulse title |
Lifecycle mapping
| Sentry action / status | Pulse status |
|---|---|
| Created, triggered, open, unresolved | Received → triage |
| Resolved, archived, closed | Resolved |
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"}}}'Related
See Errors & authentication for structured errors, 413 size limits, Redis delivery dedupe, and token rotation.