Bring your Opsgenie teams, schedules and escalation policies into WHAWIT with an API key — what comes across, what does not, and what to check afterwards
Atlassian is retiring Opsgenie. Sales ended on 4 June 2025, support ends on
5 April 2027, and Atlassian deletes unmigrated data on that date. There is no
official portable export, so the REST API is the only supported way to get your
configuration out — and it keeps working right up until support ends.WHAWIT reads it for you. In On-Call Configuration, choose Import from
Opsgenie: paste an API key, review exactly what will be created, apply.
The import only ever reads from Opsgenie. Nothing in your Opsgenie account
is modified or deleted, and your existing rotations keep paging while you
evaluate the result.
In Opsgenie, go to Settings → API key management → Add new API key and
grant it Read and Configuration Access.Use an API-key-management key, not an integration key. A key that belongs to
a single team only sees that team’s data, so the import would silently come
back with a fraction of your account.
A second key, only if you also want incident sync
Opsgenie splits its API in two, and one key cannot do both halves. The
API-key-management key above reads your configuration; creating,
acknowledging and closing alerts is blocked for that kind of key. If you
want WHAWIT incidents to keep flowing into Opsgenie while you cut over, add
an API integration key from Settings → Integrations → API in the
API Integration Key field — on the Opsgenie card under Integrations, or
on the connect step of the wizard when you save the connection.Skip it if you are migrating off Opsgenie and do not need alerts to keep
arriving there. The import does not use it.
Your Opsgenie region
Accounts live on either api.opsgenie.com (US) or api.eu.opsgenie.com
(EU). A key is only valid on its own region — if the connect step reports
that the key was rejected and you are certain it is correct, try the other
region.
Permission to configure on-call in WHAWIT
You need the on-call configure capability, the same one that lets you
create a schedule by hand. Owners and admins have it.
Somewhere to put it
The import creates entities in the organization and project you currently
have selected. Switch to the right one before you start.
Paste the API key and pick the region. Optionally tick save this
connection as an Opsgenie integration — useful if you also want incident
sync while you run both systems in parallel.If you leave it unticked, the key is used for this read and then discarded.
It is never written to the database, and it never appears in a log line.
When you do save it, it goes to Google Secret Manager like every other
credential.
2
Preview
WHAWIT reads your users, teams, schedules and escalation policies, maps them,
and shows you the result before anything is written. Nothing has been
created at this point — not an entity, not an invitation, not a secret.Untick anything you do not want. The counts at the top follow your
selection, so you can see exactly what a partial import would produce.
3
Import
People are invited first, then teams, then schedules, then escalation
policies — in that order, because a rotation cannot reference someone who is
not yet a member of your organization.The final screen reports what was created, any invitations that failed, and
everything that could not be migrated automatically.
Matched by email. Opsgenie usernames are email addresses, so there is no identity mapping to maintain.
Team
Escalation team
Members and their roles are preserved.
Schedule
Schedule
The timezone carries over unchanged — both sides use IANA names.
Rotation
Layer
One layer per rotation, in order, with the participants as the rotation roster.
Rotation type
Rotation
Daily and weekly rotations of length 1 stay daily and weekly. Everything else becomes a custom rotation with an explicit shift length: hourly × N → N hours, daily × N → 24N hours, weekly × N → 168N hours.
Rotation start
Anchor and handoff
The start date becomes the layer anchor, and its time of day — read in the schedule’s own timezone — becomes the handoff time.
Time restriction
Restriction
Days of week plus a start and end time. Overnight windows are kept as one restriction that crosses midnight.
Override
Override
Kept with its dates, and scoped to a single layer when the Opsgenie override was scoped to one rotation.
Escalation policy
Escalation policy
An ordered chain of levels.
Escalation rule
Escalation level
Rules are ordered by delay, and rules that share a delay merge into one level that pages all of them at once.
Rule delay
Level timeout
Opsgenie delays are absolute (“at 10 minutes”); WHAWIT timeouts are per level (“wait 10 minutes, then escalate”). Each level gets the gap to the next one. The last level gets 15 minutes.
Rule recipient
Level target
A user becomes an email target, a schedule or team becomes a target pointing at the imported schedule or escalation team.
Repeat if no ack
Repeat
The repeat count carries over.
Every imported escalation level notifies by email. Opsgenie’s per-user
notification rules do not have a WHAWIT equivalent, so nothing decides for you
that a level should also send SMS or WhatsApp. Add the channels you need per
level after importing — and fill in phone numbers first, because a user
without one is skipped for those channels.
The import is strictly additive. If an incoming team, schedule or policy has the
same name as one you already have, WHAWIT creates it as Name (OpsGenie) rather
than overwriting yours, and tells you it did. No pre-existing entity is ever
modified or deleted.
Every import ends with a report naming these explicitly, so nothing disappears
quietly:
Alert-source integrations
Your Datadog, Sentry, CloudWatch and similar integrations are listed but not
recreated. Reconnect each source natively in WHAWIT — connecting the
source directly is what gives you the investigation, which an alert
forwarded from Opsgenie cannot.
Team routing rules
Listed with their criteria so you can see what you had. Route with
escalation policies and per-agent defaults instead.
Notification rules and alert policies
Per-user notification rules, alert policies and notification policies have
no direct equivalent. See the warning above about channels.
Heartbeats
Not migrated. WHAWIT covers this ground with its on-call agents.
Alert history
Not migrated. This is deliberate, and every tool in this space does the
same: history belongs to the system that produced it. Keep Opsgenie
reachable until you no longer need to look back.
Run through this before you turn Opsgenie off. The first two are where
migrations actually go wrong.
Preview every imported policy
Preview resolves a policy as if an incident had just fired and shows who
would really be paged at each level, with the imported rotations and
overrides applied. It is the cheapest way to find a coverage gap, and it
takes seconds per policy.
Look at a full week of shifts
Open each imported schedule and look at the shifts it produces across a
whole week. Restrictions that do not quite meet leave a window where the
schedule resolves to nobody — visible instantly here, invisible until 3am
otherwise.
Check who was invited
Opsgenie users who were not already members are invited by email. They
appear in the directory as invited, and paging works once they accept. Any
invitation that failed is named on the final screen — those people are left
out of the imported rosters rather than silently referenced.
Add channels and phone numbers
Imported levels notify by email only. Add SMS, WhatsApp, Slack or Teams per
level where you need them, and make sure the people on those levels have a
phone number on their profile.
Mark an organization default policy
One policy should be the organization default. It catches any incident
raised by something you have not explicitly configured.
The key exists but does not have what the import needs. Recreate it under
Settings → API key management with Read and Configuration
Access. If the key is definitely right, check the region — an EU key fails
against the US endpoint and vice versa.
Fewer teams or schedules than expected
You are almost certainly using a team-scoped integration key, which can only
see its own team. Use an account-level API-key-management key.
A schedule imported with no rotations
Its rotations had no participants WHAWIT could resolve — usually because
they pointed at an Opsgenie escalation rather than at users or a team. The
preview names each one. Add the roster by hand after importing.
“This level will page nobody”
You excluded a schedule or team that an included policy escalates to.
Include it, or fix that level after importing — the preview flags it before
you commit, precisely so it is not discovered during an incident.
The import is slow on a large account
Opsgenie rate-limits configuration endpoints, and WHAWIT backs off and
retries rather than failing your import. A big account takes a little
longer; it does not need babysitting.
You do not have to cut over on import day. WHAWIT can ingest Opsgenie alerts
while your Opsgenie rotations stay authoritative, which lets you compare
WHAWIT’s investigation against what your team found on real incidents. Import
the rotations whenever you are ready, verify them with Preview, then turn off
the old escalation.
Migrating a large account and want a second pair of eyes on it? Email
[email protected]. If something is not resolving the
way you expect after importing, [email protected].