Skip to content

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.

  1. Create a new connector and give it a clear name. Optionally, add a description.
  2. Configure the common fields:

  3. URL: https://api.opsgenie.com/v2/alerts

  4. Method: POST
  5. Additional headers:

    {
        "Authorization": "GenieKey <your-opsgenie-api-key>",
        "Content-Type": "application/json"
    }
    
  6. 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.

  1. Create a new connector and give it a clear name. Optionally, add a description.
  2. Configure the common fields:

  3. URL: https://api.atlassian.com/jsm/ops/integration/v2/alerts

  4. Method: POST
  5. Additional headers:

    {
        "Authorization": "Bearer <your-jsm-api-key>",
        "Content-Type": "application/json"
    }
    
  6. 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

ConfigurationOpsGenieJSM
Base URLhttps://api.opsgenie.com/v2/alertshttps://api.atlassian.com/jsm/ops/integration/v2/alerts
Close URL.../alerts/{alias}/close?identifierType=alias.../alerts/{alias}/close?identifierType=alias
AuthenticationGenieKey <api-key>Bearer <api-key>
API referenceOpsGenie Alert APIJSM 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].