OpsGenie and JSM configuration via HTTPS
Configure the Generic HTTPS destination type to send alert notifications to OpsGenie or Jira Service Management (JSM). This guide covers connector setup, message configuration, and alert-specific overrides for both platforms.
Warning
Atlassian is deprecating OpsGenie and recommending migration to Jira Service Management (JSM). If you have already migrated, use the JSM configuration below. If you have not migrated, the OpsGenie configuration remains valid. For migration details, see OpsGenie to JSM migration overview.
Choose your platform
Connector configuration
The Generic HTTPS Connector sends notifications to the OpsGenie Alerts API. OpsGenie requires different endpoints for creating and closing alerts, so the connector uses entity overrides to handle both.
- Create a new connector and give it a clear name. Optionally, add a description.
Configure the common fields:
URL:
https://api.opsgenie.com/v2/alerts- Method:
POST Additional headers:
Leave Additional body fields empty.
Alert-specific overrides
Since the behavior for creating and resolving alerts differs, use entity overrides to adjust the connector configuration dynamically.
- Leave Additional Headers unchanged (they inherit from the connector).
- Override the URL and Additional Body Fields:
URL override:
{% if alert.status == 'Triggered' %}
https://api.opsgenie.com/v2/alerts
{% else %}
https://api.opsgenie.com/v2/alerts/{{alert.groupingKey}}/close?identifierType=alias
{% endif %}
Message configuration
Create alert preset
This preset defines the payload for creating alerts, based on the OpsGenie Create Alert API.
{
"alias": "{{alert.groupingKey}}",
"message": {% filter json_encode %}[ {{alert.highestPriority}} ]{{alertDef.name}} - Triggered{% endfilter %},
"description": {{alertDef.description | json_encode }},
"responders": [
{"type": "team", "name": "test"}
],
"visibleTo": [
{"type": "user", "username": "[email protected]"}
],
"details": {
"timestamp": "{{alert.timestamp | date(format = "%Y-%M-%D %d:%m:%s")}}"
},
"entity": "An example entity",
"priority": "{{alert.highestPriority | default(value = alertDef.priority)}}",
"source": "Coralogix"
}
Note
The alias field is required. It allows actions like acknowledgment, snoozing, or closing to work correctly by referencing the alert via the alias.
Resolved alert preset
For resolved alerts, no special body is required. The URL override already contains the necessary alias to close the alert, so you can leave the body empty.
Complete conditional preset
This preset handles both alert creation and resolution based on alert status:
{% if alert.status == 'Triggered' %}
{
"alias": "{{alert.groupingKey}}",
"message": {% filter json_encode %}[ {{alert.highestPriority}} ]{{alertDef.name}} - Triggered{% endfilter %},
"description": {{alertDef.description | json_encode }},
"responders": [
{"type": "team", "name": "test"}
],
"visibleTo": [
{"type": "user", "username": "[email protected]"}
],
"details": {
"timestamp": "{{alert.timestamp | date(format = "%Y-%M-%D %d:%m:%s")}}"
},
"entity": "An example entity",
"priority": "{{alert.highestPriority | default(value = alertDef.priority)}}",
"source": "Coralogix"
}
{% else %}
{}
{% endif %}
Connector configuration
After migrating from OpsGenie to JSM, configure the connector to use the Atlassian JSM Ops API endpoints instead.
- Create a new connector and give it a clear name. Optionally, add a description.
Configure the common fields:
URL:
https://api.atlassian.com/jsm/ops/integration/v2/alerts- Method:
POST Additional headers:
Leave Additional body fields empty.
Alert-specific overrides
Use entity overrides to route triggered and resolved alerts to the correct JSM endpoint.
- Leave Additional Headers unchanged (they inherit from the connector).
- Override the URL:
URL override:
{% if alert.status == 'Triggered' %}
https://api.atlassian.com/jsm/ops/integration/v2/alerts
{% else %}
https://api.atlassian.com/jsm/ops/integration/v2/alerts/{{alert.groupingKey}}/close?identifierType=alias
{% endif %}
Message configuration
Create alert preset
This preset defines the payload for creating alerts using the JSM Ops Alerts REST API.
{
"alias": "{{alert.groupingKey}}",
"message": {% filter json_encode %}[ {{alert.highestPriority}} ]{{alertDef.name}} - Triggered{% endfilter %},
"description": {{alertDef.description | json_encode }},
"responders": [
{"type": "team", "name": "test"}
],
"details": {
"timestamp": "{{alert.timestamp | date(format = "%Y-%M-%D %d:%m:%s")}}"
},
"priority": "{{alert.highestPriority | default(value = alertDef.priority)}}",
"source": "Coralogix"
}
Note
The alias field is required. It allows actions like acknowledgment, snoozing, or closing to work correctly by referencing the alert via the alias.
Resolved alert preset
For resolved alerts, no special body is required. The URL override already contains the necessary alias to close the alert.
Complete conditional preset
This preset handles both alert creation and resolution based on alert status:
{% if alert.status == 'Triggered' %}
{
"alias": "{{alert.groupingKey}}",
"message": {% filter json_encode %}[ {{alert.highestPriority}} ]{{alertDef.name}} - Triggered{% endfilter %},
"description": {{alertDef.description | json_encode }},
"responders": [
{"type": "team", "name": "test"}
],
"details": {
"timestamp": "{{alert.timestamp | date(format = "%Y-%M-%D %d:%m:%s")}}"
},
"priority": "{{alert.highestPriority | default(value = alertDef.priority)}}",
"source": "Coralogix"
}
{% else %}
{}
{% endif %}
Key differences between OpsGenie and JSM
| Configuration | OpsGenie | JSM |
|---|---|---|
| Base URL | https://api.opsgenie.com/v2/alerts | https://api.atlassian.com/jsm/ops/integration/v2/alerts |
| Close URL | .../alerts/{alias}/close?identifierType=alias | .../alerts/{alias}/close?identifierType=alias |
| Authentication | GenieKey <api-key> | Bearer <api-key> |
| API reference | OpsGenie Alert API | JSM Ops Alerts API |
Migration resources
If you are migrating from OpsGenie to JSM, review these Atlassian resources:
Support
Reach our customer success team 24/7 via the in-app chat or by email at [email protected].