Phone calls
On the Business plan, every group with members has on-call (planned in the admin app, inside the group): when nobody acknowledges an alert, ZapaPUSH calls the person on call, then moves on to the next person. A phone call gets through when a push is missed: a phone face down, a muted app, a watch that's off.
How escalation works
- A new alert goes as a push to the person holding the current shift. A shift with nobody on it (or someone on vacation) is a gap: then every member gets the push.
- Not acknowledged after their delay (10 minutes unless they change it, 1–59 minutes)? ZapaPUSH calls them.
- Still open after the same delay? The next person (whoever holds the next shifts, then the rest of the group) gets the push, then the call, and so on to the last person.
A call that doesn't reach you moves the alert on at once, without waiting for the delay: busy, no answer within 30 seconds, a failed call (unreachable, not enabled for your country), or voicemail.
Acknowledging or closing the alert anywhere (the app, the admin app, the API or a key on the call) stops the escalation. People on vacation are skipped. Someone without a verified number is not called: the alert moves straight on to the next person.
Keys on the call
The call reads the group and the alert's subject, then the keys, twice:
| Key | What it does |
|---|---|
| 1 | Acknowledge: the escalation stops, you own the alert. |
| 2 | Pass it on: the next person gets it now. |
| 3 | Close the alert. |
You answer but press no key? Nothing changes: after your delay, the escalation moves on by itself.
Add your number
In the admin app, open Account → Phone calls, enter your number with its
country code (+40 712 345 678) and tap Call me with a code. ZapaPUSH calls you and reads a 4-digit code
twice; type it in to finish. This also proves calls reach you (carrier, Do Not Disturb, call blocking).
- A code works for 10 minutes and for 3 tries.
- At most 5 verification calls per day.
- Changing the number means verifying the new one; until then calls go to the old one.
- Remove stops all calls to you.
Verification calls are free and don't count towards your company's included calls.
Call language
Calls speak English (the default), German or French. Pick yours in Account → On-call → call language. The language is per person, so a team can mix them.
Save the ZapaPUSH number
Calls come from +1 608 597 2972. Save it as a contact named "ZapaPUSH" so you know what's calling, and let it ring through Do Not Disturb and Focus modes:
iPhone
- Phone → Contacts → + → name "ZapaPUSH", number
+1 608 597 2972→ Done. - Open the contact → Edit → Ringtone → switch on Emergency Bypass → Done.
Emergency Bypass rings and vibrates even when the phone is on silent or in a Focus.
Android
- Phone or Contacts app → add a contact "ZapaPUSH" with
+1 608 597 2972. - Open the contact and tap the star (favourite).
- Settings → Notifications → Do Not Disturb → Calls (or People → Calls) → allow Starred contacts.
Menu names differ a little between phone makers; search Settings for "Do Not Disturb".
Good to know
- The number is a United States number. Calls go to the countries we have enabled; if the verification call doesn't reach you, email hello@zapapush.com and we'll enable yours.
- Voicemail: ZapaPUSH recognises a voicemail greeting, leaves one sentence ("ZapaPUSH alert for group. Open the app.", without the alert's subject) and hangs up. It counts as not answered: the next person gets the alert at once.
- Personal-plan groups don't call: every member gets the push, as before.
Call limits
So that a flapping check can't ring phones all night, calls have limits. A call over a limit isn't placed:
the escalation goes on with pushes only, and the alert's timeline shows the call as skipped.
- Per alert: each person is called at most once, and an alert makes at most 10 calls.
- Per company: at most 60 calls and 30 SMS an hour. Over that, calls pause until the hour is over, and the company's owner gets one push and one email ("Calls paused for an hour: too many alerts from group"), at most once an hour. Need more? Email hello@zapapush.com.
- Per country: calls go to the EU and EEA, the UK, Switzerland, Moldova, the US and Canada. Numbers with an unusually high price per minute (premium and some satellite or special numbers) aren't called.
What happened to an alert
Every alert keeps a timeline: when it came in, each push (to whom, how many phones), each call and how it went (answered, no answer, busy, failed, voicemail, with its length), keys pressed on a call, and the ack or close. Times are UTC; apps show them in your time zone.
GET https://api.zapapush.com/v1/alerts/<id>/timeline
Authorization: Bearer <session token>
{
"alert_id": 812,
"events": [
{ "at": "2026-10-22T09:01:00.000Z", "type": "created", "user": null },
{ "at": "2026-10-22T09:01:00.214Z", "type": "push", "user": { "id": 7, "name": "Ana" }, "phones": 1 },
{ "at": "2026-10-22T09:11:00.385Z", "type": "call", "user": { "id": 7, "name": "Ana" }, "outcome": "no-answer", "duration_seconds": 0, "ended_at": "2026-10-22T09:11:31.000Z" },
{ "at": "2026-10-22T09:11:31.402Z", "type": "push", "user": { "id": 9, "name": "Bob" }, "phones": 2 },
{ "at": "2026-10-22T09:21:31.120Z", "type": "call", "user": { "id": 9, "name": "Bob" }, "outcome": "answered", "duration_seconds": 23, "ended_at": "2026-10-22T09:21:58.000Z" },
{ "at": "2026-10-22T09:21:50.771Z", "type": "keypress", "user": { "id": 9, "name": "Bob" }, "digit": "1", "action": "ack" },
{ "at": "2026-10-22T09:21:50.000Z", "type": "ack", "user": { "id": 9, "name": "Bob" } }
]
}
Only members of the alert's group can read it. A push to a group without on-call has "user": null
(every member). Call outcome is one of skipped (a call limit stopped it; skipped says which: person,
alert, company, country, price, price_unknown or disabled), placing, ringing, in-progress, answered, voicemail,
no-answer, busy, failed, canceled.