Step-by-Step Migration
Create an Integration, Copy the API Key
Request your tenant invite (contact us — registration is invite-only during the pilot; the welcome email includes the mobile setup QR code). Then open Integrations in the dashboard, create an API integration, and copy the key.
# Primary header:
Authorization: OpsPingKey abc123-def456-ghi789
# Also accepted (drop-in OpsGenie compatibility):
X-OpsPing-Key: abc123-def456-ghi789
Authorization: GenieKey abc123-def456-ghi789
Repoint Alertmanager (or Your Grafana Contact Point)
OpsPing's API is a drop-in replacement for the OpsGenie v2 alert API — and Alertmanager's opsgenie_config receiver speaks it natively. Change one line and your alert routing, grouping, and inhibition rules all keep working:
Prefer to keep Grafana Alerting as the contact-point layer? In Alerting → Contact Points, edit your OpsGenie contact point and change the URL to https://api.ops-ping.com. Either way, no payload changes.
Rebuild Schedules and Escalation Chains
OnCall schedules and escalation chains don't have a one-click export we can consume, so this step is honest work: recreate your rotations and escalation policies in the OpsPing dashboard, or script it against the OpsPing API (API reference) — teams typically finish in under an hour per rotation. Migration support is free on every plan if you'd rather we walk through it with you.
Verify with a Test Alert
Send one alert through the repointed receiver and confirm priority, tags, and responder routing land correctly in the dashboard:
curl -X POST https://api.ops-ping.com/v2/alerts \
-H "Authorization: OpsPingKey YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"message": "Test alert from OnCall migration",
"alias": "oncall-migration-test-01",
"priority": "P2"
}'
Install the App — This Is the Part OnCall OSS Lost
The archived OnCall mobile connection means no more push paging from a self-hosted stack. The OpsPing app restores it properly: iOS critical alerts that break through silent mode and Focus, and an Android P1 alarm that plays on the media stream — it fires even in silent/vibrate/DND. Push is free and unlimited on every plan. Keep SMS/voice as a P1-only fallback, billed at provider cost against your included monthly flex credit with a hard cap you set. Details on the pricing page.
What Transfers — and What Doesn't
| Capability | Migrates? | Notes |
|---|---|---|
| Alertmanager routing (groups, inhibition, receivers) | ✓ Yes | opsgenie_config receiver is natively compatible — one-line change |
| Grafana Alerting contact points | ✓ Yes | OpsGenie contact point URL change |
| Phone-call / SMS alerting | ✓ Yes | Via voice/SMS fallback at provider cost; push critical alerts are free |
| Mobile push paging | ✓ Yes | The OpsPing app — iOS critical alerts + Android DND-bypassing P1 alarm |
| Schedules & rotations | ~ Manual | Recreate in dashboard or via API; typically <1 hour per rotation |
| Escalation chains | ~ Manual | Recreate as OpsPing escalation policies |
| Slack notifications | ✓ Yes | Outbound webhooks to Slack/Teams/any endpoint, scoped per team |
| OnCall mobile app | ✗ No | Replaced by the OpsPing app (iOS + Android) |
| IRM incident management / Sift AI | ✗ No | OpsPing is paging-first, not a Grafana Cloud IRM replacement |
Why Not Just Move to Grafana Cloud IRM?
For some teams IRM is the right answer. The teams who come to us usually say one of these:
- You ran OSS OnCall specifically to avoid a per-seat cloud bundle. IRM folds on-call into the Grafana Cloud account; OpsPing is standalone paging at $8/user/month with a free tier for small teams.
- You don't want your paging coupled to your observability vendor. On-call is the last thing that should share a failure domain (or a billing relationship) with the monitoring stack it pages about. OpsPing runs independently — and private single-tenant deployments are available if you want it on your own infrastructure.
- You were burned by a vendor abandoning a product you depended on. Us too — that's why OpsPing exists. Read the OpsPing pledge: no investors, no exit to force, source escrow, full data export, and a published shutdown protocol. In writing.
FAQ
Can I keep running the archived OnCall OSS code?
Technically yes — but the mobile Cloud Connection is dead (no push paging), and there are no more bug fixes or security patches. A paging layer you can't patch and can't page from is a liability, not an asset.
Do I need to keep Grafana at all?
No. OpsPing accepts alerts from anything that sends webhooks — Datadog, CloudWatch, Uptime Kuma, Healthchecks, your own scripts. Grafana/Alertmanager is just the smoothest path because the OpsGenie receiver compatibility is native.
Can I script the migration?
Yes — the OpsPing API is fully scriptable, and because it's OpsGenie-shaped, the OpsGenie Terraform provider works too: set OPSGENIE_API_URL to https://api.ops-ping.com and existing alert-API configuration applies unchanged.
Coming from Opsgenie instead?
See the Opsgenie migration guide — there's a full importer for users, teams, schedules, rotations, escalations, heartbeats, and integrations.
Need Help?
Migration support is free for all plans. Contact us or email migration@ops-ping.com — we'll walk you through it over a call or async.