# Migrate from Opsgenie

Atlassian ended new Opsgenie sales on June 4, 2025, and Opsgenie reaches end of support on April 5, 2027. EvoHub On-Call has a built-in importer that reads your Opsgenie account and creates the matching schedules, escalation policies and integrations. This page explains how to run it, what it maps and what you finish by hand.

## How Opsgenie concepts map to EvoHub

| Opsgenie | EvoHub | Notes |
| --- | --- | --- |
| Users | Organization members | Matched by email. Invite everyone — EvoHub has no per-seat fee. |
| Teams | Teams | Not created by the importer. |
| Schedules and rotations | Schedules and layers | Imported. |
| Schedule overrides | Overrides | Not imported; recreate upcoming ones. |
| Escalations | Escalation policies | Imported. |
| Integrations (Prometheus, Datadog, CloudWatch, email, API…) | Integrations | Imported, each with a new URL to paste into the tool. |
| Heartbeats | Uptime heartbeat monitors | Not imported. See [Heartbeat monitors](https://docs-dev.evohub.io/heartbeat-monitors.md). |
| Notification rules | Notification settings and notification schedule | Not imported; each person sets their own. |
| SMS notifications | Push or voice call | EvoHub does not currently send SMS. |
| Mobile app | EvoHub iOS and Android apps | See [Mobile app](https://docs-dev.evohub.io/mobile-app.md). |

## Before you import

- **Invite your people first.** The importer matches Opsgenie users to EvoHub members by email address. Anyone who is not a member yet is left out of rotations and escalation steps. The preview lists them and, if you are allowed to invite, offers an **Invite N people** button.
- **Make sure they can respond to alerts.** People who are members but whose role cannot respond to alerts are also left out, with a warning naming them.
- **Create an Opsgenie API key with read access.** In Opsgenie: **Settings → API key management → Add new API key**, give it read access and copy it.

You need the On-Call settings permission to import (Owners, Admins and Members have it by default).

## Run the importer

:::steps
### Open the importer
Go to **On-Call → Import from Opsgenie** (also linked from the **Moving from Opsgenie?** banner on the Integrations page).
### Enter the key and region
Paste the **Opsgenie API key** and choose the **Region**: **US** (api.opsgenie.com) or **EU** (api.eu.opsgenie.com). Click **Preview**. The key is used for this import only; EvoHub does not store it.
### Review the preview
Nothing is created yet. The preview shows **People** (who matched), **Schedules** with their layers, **Escalation policies** with their steps and delays, **Integrations** with the EvoHub type each maps to, and every warning. Untick anything you do not want.
### Import
Click **Import N items**. The result lists what was created (with links), what was **Skipped** and why, and the warnings.
### Point your tools at EvoHub
For each imported integration, the result shows its new webhook URL with "Paste this into … in place of the Opsgenie URL". Update each monitoring tool. Alerts reach EvoHub only after you do this.
:::

You can run the importer again at any time. Items that were already imported are marked and skipped, so a re-run never creates duplicates. Only one import runs at a time per organization.

## What is imported, and how

### Schedules

Each Opsgenie schedule becomes an EvoHub schedule in the same timezone, and each rotation becomes a layer:

- **Daily** and **weekly** rotations carry over. A rotation of several days or weeks becomes a custom rotation of that many days.
- **Hourly** rotations are rounded to whole days, with a warning. For shifts shorter than a day, give each shift its own layer with a shift window after importing.
- **Time restrictions** become shift windows when EvoHub can express them: a daily window, or the same window on selected weekdays (such as Mon–Fri 09:00–17:00). Restrictions that span days (Friday 18:00 to Monday 09:00) are not imported; the layer covers the whole day and a warning tells you to set a shift window.
- Rotations that have already ended are skipped. Rotations with a future end date are imported without it (EvoHub layers have no end date), with a warning to remove the layer then.
- Rotation participants are kept in order, each person once. Teams, escalations and empty ("no one") slots in a rotation are left out with a warning.
- A disabled Opsgenie schedule is imported as inactive.

### Escalation policies

Each Opsgenie escalation becomes an escalation policy, and each rule a step:

- Steps can target a **user** or a **schedule**. Rules that notify a team or another escalation are skipped with a warning.
- Opsgenie counts every rule's delay from when the alert was created; EvoHub counts each step's delay from the step before, using 1, 2, 3, 5, 10, 15, 30 or 60 minutes. The importer converts the delays so each step lands as close as possible to its Opsgenie time and warns about any difference.
- A rule that notifies the "next" or "previous" on-call of a schedule notifies whoever is on call now in EvoHub.
- Opsgenie rules that escalate "if not closed" become steps that escalate until someone acknowledges.
- Repeat settings carry over, up to EvoHub's maximum of 5 repeats.
- Steps use each person's own notification preferences.

### Integrations

- Integrations that send alerts *into* Opsgenie are imported as the matching EvoHub integration type (Prometheus/Alertmanager, Grafana, Datadog, New Relic, CloudWatch, Azure Monitor, Dynatrace, Sentry, Google Cloud, Zabbix, UptimeRobot, Pingdom, Site24x7, StatusCake, Nagios, PRTG, email and API).
- A type EvoHub has no equivalent for is imported as a generic **API** integration, with a warning to check the payload it sends.
- Integrations that only send *out* of Opsgenie — Slack, Microsoft Teams, Jira, ServiceNow, Zendesk, outgoing webhooks, Statuspage — are not imported.
- Disabled Opsgenie integrations are not imported.
- Each integration is attached to the first (by name) escalation policy of its Opsgenie team that is imported. If none is, it is created without a policy — choose one on the Integrations page.

## What you recreate by hand

The preview lists these under **Not imported yet**:

- Heartbeats — use [heartbeat monitors](https://docs-dev.evohub.io/heartbeat-monitors.md).
- Alert policies and routing rules.
- Notification rules — each person sets [their own notifications](https://docs-dev.evohub.io/notifications.md).
- Maintenance windows — schedule them in **On-Call → Maintenance**.
- Team members — Opsgenie teams are not created. Everything is created in your current EvoHub team; team names are shown for reference.

Also recreate:

- **Schedule overrides** that are still upcoming.
- **People who joined after the import.** A re-run skips items that were already imported, so add newcomers to those schedules and policies by hand (or delete the imported item and import it again).

## Run both in parallel, then cut over

:::steps
### Add EvoHub next to Opsgenie
Where a tool supports several destinations (Alertmanager receivers, Datadog webhooks, CloudWatch SNS subscriptions, email recipients), keep Opsgenie and add the EvoHub URL, so both receive the same alerts for a week or two.
### Test paging end to end
Fire a test alert through each integration. Confirm the right person is paged, can acknowledge from the mobile app, and that recovery resolves the alert where the source supports it.
### Compare
During the parallel run, compare what EvoHub paged with what Opsgenie paged.
### Cut over
Remove the Opsgenie destinations from your tools and replace heartbeats and API calls. Leave time for a quiet week with EvoHub as the only pager before Opsgenie's end of support.
:::

The import itself is free. Alerts and notifications in EvoHub are billed by usage — see [How billing works](https://docs-dev.evohub.io/how-billing-works.md). For help planning a migration, contact info@evosync.io.

## Related

- [Integrations overview](https://docs-dev.evohub.io/integrations-overview.md)
- [Schedules and rotations](https://docs-dev.evohub.io/schedules-and-rotations.md)
- [Escalation policies](https://docs-dev.evohub.io/escalation-policies.md)
