Browse guides
Start
All guidesGuides
Uptime Kuma alerts on your iPhoneApprove a GitHub deploy from your iPhoneHome Assistant alerts on your iPhone and Apple WatchMove from Opsgenie to NowlarkForms on your site
Add your Nowlark form to WordPressAdd your Nowlark form to WordPress.comAdd your Nowlark form to WixAdd your Nowlark form to WebflowAdd your Nowlark form to GhostAdd your Nowlark form to Google SitesAdd your Nowlark form to a site you build yourselfReference
API referenceSupportMove from Opsgenie to Nowlark
Keep the tools that send to Opsgenie and change only the address and key. Then bring your schedules and escalation policies over in one import.
What you need#
- A Nowlark team. Everyone who is on call needs the Nowlark app on their iPhone or Mac and needs to be on the team.
- A channel for the alerts. If an alert should go to the next person when nobody takes it, open the channel's Settings and, under When someone opens an alert, choose Shared: the alert then goes to the next step until one person takes it. Escalation policies are imported only onto a Shared channel.
- A sending key for that channel: open the channel, choose Sending keys and click Create key. It starts
nlk_and is shown once, so copy it then. - Opsgenie, still running. Keep it until your test alert arrives in Nowlark.
1. Bring over your schedules and escalation policies#
- In Opsgenie, open Settings, then API key management, and add a key with Read and Configuration access.
- In Nowlark, open your team, choose On call in the team's menu (team admins see it) and click Import from Opsgenie.
- Paste the key, choose US or EU for where your Opsgenie account is, and click Show what comes over. Nothing changes yet.
- Check the rotas and the steps in the list. For each escalation policy, choose the channel its steps go on, or Do not import.
- Click Import.
Each schedule becomes a rota with the same handover time, day and time zone. Each escalation policy becomes a channel's steps; where Opsgenie named a schedule, the step goes to whoever is on call in that rota. Nowlark uses the key for this import only and does not keep it. Afterwards, On call shows each rota and who is on call now.
People are matched by the email address they use in Opsgenie: their company sign‑in on the team, or an address they added and confirmed under Your settings, Alerts, Email addresses. When the list says someone is not on the team, they join and confirm their address, and you import again: each rota already brought over is kept, and the people who joined are added to it.
2. Point your tool at Nowlark#
Wherever your tool keeps Opsgenie's address and key, change two things. The address https://api.opsgenie.com (or https://) becomes https://nowlark.com, and the key becomes your Nowlark sending key. Nowlark takes Opsgenie's two Alert API calls at the same paths and replies in Opsgenie's format:
POST /v2/alertsopens an alert.POST /v2/closes it.alerts/ {alias}/ close ?identifierType=alias
In Prometheus Alertmanager, for example:
receivers:
- name: on-call
opsgenie_configs:
- api_url: https://nowlark.com/
api_key: nlk_…
When the alert resolves, Alertmanager closes it by its alias, and every phone shows the alert as Closed.
3. Send a test alert#
key="GenieKey nlk_…"
type="Content-Type: application/json"
curl https://nowlark.com/v2/alerts \
-H "Authorization: $key" \
-H "$type" \
-d @- <<'EOF'
{
"message": "Checkout is down",
"alias": "checkout-down",
"priority": "P1",
"entity": "checkout-api",
"description": "Errors over 5%"
}
EOF
Within seconds the alert is on the phones of the people on the channel, and in the channel. Nowlark replies as Opsgenie does, so your tool reads it the same way:
HTTP/1.1 202 Accepted
{
"result": "Request will be processed",
"took": 0.012,
"requestId": "…"
}
In the same shell, close it with the alias it was opened with:
base=https://nowlark.com/v2/alerts
q=identifierType=alias
curl "$base/checkout-down/close?$q" \
-H "Authorization: $key" \
-H "$type" \
-d '{"note": "Rolled back"}'
A wrong key gets a 401. A request Nowlark cannot take gets a 422 with a message that says why, such as a missing message field. Any other Alert API call, such as acknowledging or adding a note, gets a 422 that names the two calls Nowlark takes.
4. What each field becomes#
| Opsgenie field | In Nowlark |
|---|---|
message |
The alert's title, up to 130 characters |
entity |
The first line of the alert |
description |
The rest of the alert, its first 4,000 characters |
alias |
Names the alert, so a later close finds it. Sending the same alias again while it is open replaces that alert on every phone |
priority |
P1 is urgent, P2 high, P3 normal, P4 low, P5 very low. P3 when it is left out |
source |
The sender, after your team's name. Opsgenie when it is left out |
user, note |
On a close, who closed it and why |
Nowlark accepts responders, visibleTo, actions, tags and details so your tool keeps working, and ignores them. Who gets the alert is set by the channel's people and its escalation steps.
What does not come over#
- Hourly rotations: Nowlark rotas hand over daily or weekly.
- Longer turns: a rotation of several days becomes a daily rota, and one of several weeks a weekly rota, so each person's turn is one day or one week.
- Rotations limited to certain hours: Nowlark rotas run around the clock, so the limit is dropped.
- A step that notifies an Opsgenie team notifies everyone on the channel. A step that hands off to another escalation policy is left out, and so is a team or an escalation taking a turn in a rotation.
- Steps after the fifth, and repeats after the third.
Before anything is imported, the list in step 1 names each schedule and policy this applies to.
No team yet? Start one.