Skip to content

OpsGenie

OpsGenie (and JSM Ops) Outgoing Webhook integrations POST alert lifecycle events to Exhale. Each tenant gets a unique HTTPS URL token. Exhale scrubs the payload, upserts a Pulse (source=opsgenie), and runs triage on Create.

See Incoming integrations for how OpsGenie fits alongside PagerDuty and Manual webhook.

Alert notes: OAuth connect posts triage notes via the JSM Ops REST API when enabled. GenieKey alert-note write-back for the manual webhook path is not available yet.

OpenAPI: POST /webhooks/opsgenie (header token) and POST /webhooks/opsgenie/{token}.


Endpoint

After Connect in Connections → IntegrationsOn-call & pagingOpsGenie:

Preferred (keeps tokens out of proxy access logs):

POST https://exhale.kolstromsystems.com/webhooks/opsgenie

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

Path form (also supported):

POST https://exhale.kolstromsystems.com/webhooks/opsgenie/{token}

Design partners may substitute https://exhale-staging.kolstromsystems.com as the host.

  • token — opaque URL segment; this token authenticates the delivery (OpsGenie has no platform HMAC like PagerDuty).
  • 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 adminConnections → IntegrationsOpsGenie.
  2. Click Connect OpsGenie and copy the webhook URL.
  3. In OpsGenie / JSM Ops, create an Outgoing Webhook integration and paste the Exhale URL.
  4. Enable create, acknowledge, and close (or equivalent) alert actions.
  5. Send test alert creates a synthetic pulse and marks the integration configured.

Rotate webhook token invalidates the previous URL immediately — update OpsGenie after rotating.

OpsGenie (OAuth) — one-click Atlassian connect for Jira Service Management Operations. Prefer the OAuth card when you want Exhale to register the Outgoing Webhook; use the webhook card above for standalone OpsGenie or explicit URL control.


Payload shape

FieldRequiredNotes
alert.alertIdYesStable id for dedupe (source=opsgenie)
alert.messageNoPulse title
actionNoCreate, Acknowledge, Close

Lifecycle mapping

OpsGenie actionPulse status
CreateReceived → triage
AcknowledgeAcknowledged
CloseResolved

Example

bash
TOKEN="your-url-token"
curl -i -X POST "https://exhale.kolstromsystems.com/webhooks/opsgenie/${TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{"action":"Create","alert":{"alertId":"og-1","message":"CPU high"}}'

Auth API

MethodPathNotes
GET /auth/integrations/opsgenieStatus + webhook path
POST /auth/integrations/opsgenie/connectAdmin + CSRF — issue token
POST /auth/integrations/opsgenie/rotate-tokenAdmin + CSRF
POST /auth/integrations/opsgenie/test-alertAdmin + CSRF

See API reference for /auth/integrations/opsgenie/*.


Exhale by Kolstrom Systems LLC