What comes across
Members, schedules with their layers, restrictions and overrides, escalation policies, services, and heartbeats with their name, interval, message and priority.
Migrate from Opsgenie
Atlassian ends Opsgenie support on 5 April 2027: access shuts off and data that was not migrated is deleted. Transmit imports your account, checks the result against Opsgenie itself, and keeps Opsgenie’s API, so your integrations change one URL and one key.
Dates from Atlassian’s announcement of 3 March 2025, checked 4 October 2026.
The importer
Most migrations find out a rotation was wrong when someone is not paged. Transmit asks Opsgenie who is on call on every schedule right now and puts its own answer beside it.
On-call check · now
| Schedule | Opsgenie | Transmit |
|---|---|---|
| Checkout primary | Dana Reyes | Dana Reyes |
| Payments | Priya Shah | Priya Shah |
| Platform nights | Sam Ortiz | Lee Park |
A mismatch means a rotation did not map exactly; the warnings say which part. Example data.
Members, schedules with their layers, restrictions and overrides, escalation policies, services, and heartbeats with their name, interval, message and priority.
It never writes to Opsgenie and never stores your Opsgenie key. It slows down whenever Opsgenie says the account is near its rate limit, so a large account takes a few minutes.
The Opsgenie-compatible API
Transmit answers on Opsgenie’s alert paths, so alert aliases, deduplication, closing on resolve and message updates work as before. For tools that cannot change their Opsgenie URL, each service also has a generic webhook and an Alertmanager webhook.
# Alertmanager
receivers:
- name: transmit
opsgenie_configs:
- api_url: https://oncall-api.transmit.dev/
api_key: tik_... # the service's new keyHeartbeats
An imported heartbeat starts watching at its first ping to Transmit, so none can page before its sender is repointed. Until then Opsgenie keeps watching it.
curl -f, a wrong ping fails the job.The runbook
How a migration usually goes. In early access, we can do it with you.
Day 1
Create an Opsgenie API integration with read and configuration access, and start an import. Transmit only reads from Opsgenie and writes nothing yet. You get the plan: every member, schedule, policy, service and heartbeat it would create.
Day 1
For every schedule, who Opsgenie says is on call right now, next to who the imported schedule computes. They should match. Warnings list everything that does not carry over exactly.
Day 1
Everything is written in one transaction. Each service gets a new Opsgenie-compatible key, shown for an hour and never again. Re-import any time; it updates what it made.
Days 2–5
Change the URL and key in Alertmanager, Grafana and your scripts, and repoint heartbeat pings. Opsgenie keeps watching anything you have not moved yet.
Days 2–5
Send alerts to both systems and compare what each one pages. Send a test alert from each service to check every policy reaches a person.
Cut-over
When every sender is repointed and you trust what you see, stop sending to Opsgenie. Well before 5 April 2027.
Before you rely on it
Texts and calls are not switched on yet, and an email at 3am rarely wakes anyone. Before you depend on Transmit, have everyone who is on call:
alerts@alerts.transmit.dev to their contacts.If you need a phone to ring tonight, keep Opsgenie paging for that until Transmit switches on SMS and calls. Phone numbers come across in the import already, and are used once each person verifies theirs.
Transmit is in early access. Tell us about your on-call setup, and we will help you import it and check it against Opsgenie before you switch.