OpsGenie (Atlassian) supports outbound webhook integrations that POST alert events to any URL. This lets you mirror OpsGenie alerts into Alert24 for unified incident tracking — useful when some teams use OpsGenie for on-call routing but you want all incidents in one place.
Before you start
You'll need:
- An Alert24 API key with
writeorincidentsscope (Settings → API Keys) - OpsGenie account with integration access
Create a webhook integration
- In OpsGenie, go to Settings → Integrations → Add integration
- Search for Webhook and click Add
- Set Name to
Alert24 Incidents - Set Webhook URL to
https://app.alert24.net/api/v1/incidents - Under Add Header, add:
Authorization:Bearer ak_live_YOUR_KEYContent-Type:application/json
- Check Enabled and set the trigger to Create Alert (and optionally Close Alert for resolution)
- Click Save integration
Map the payload with a middleware step
OpsGenie's webhook payload schema doesn't directly match Alert24's. The cleanest approach is a small transform layer. Here's a Cloudflare Worker that does the mapping:
export default {
async fetch(request) {
const body = await request.json();
const alert = body.alert || {};
const severityMap = { P1: 'critical', P2: 'high', P3: 'medium', P4: 'low', P5: 'info' };
const payload = {
title: alert.message || 'OpsGenie Alert',
description: alert.description || '',
severity: severityMap[alert.priority] || 'medium',
alias: `opsgenie-${alert.alertId}`,
source: 'opsgenie',
tags: alert.tags || [],
};
const response = await fetch('https://app.alert24.net/api/v1/incidents', {
method: 'POST',
headers: {
'Authorization': 'Bearer ak_live_YOUR_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify(payload),
});
return new Response(await response.text(), { status: response.status });
},
};
Deploy this Worker and point OpsGenie's webhook URL at it instead of Alert24 directly.
OpsGenie payload fields
| OpsGenie field | Alert24 field |
|---|---|
alert.message |
title |
alert.description |
description |
alert.priority (P1–P5) |
severity (critical/high/medium/low/info) |
alert.alertId |
alias (for dedup) |
alert.tags |
tags |
Deduplication
Using alert.alertId as the Alert24 alias ensures that if OpsGenie sends multiple notifications for the same alert (e.g., escalation events), only one Alert24 incident is created and occurrence counts are incremented.
Tips
- Bidirectional sync: Alert24 also has its own on-call and escalation system. If you're migrating from OpsGenie to Alert24, this integration works as a bridge during the transition period.
- Close events: OpsGenie can send a webhook on alert close. Use the same alias to look up and resolve the Alert24 incident via
PUT /api/v1/incidents/{id}. - Team routing: OpsGenie's integration can be scoped to a specific team's alerts via OpsGenie's team-level integration settings.