Set up personal notification rules
Notification rules are how each user tells the platform “for high-urgency pages, reach me this way; for low-urgency, this way.” They’re per-user and decouple personal preference from the team-level routing in notification groups.
The mental model: stack rules at increasing delay_minutes for personal escalation.
Prerequisites
Section titled “Prerequisites”You need contact methods first. Add them under Settings → My profile → Contact methods:
# SMScurl -X POST https://api.siteqwality.com/user/$USER_ID/contact_method \ -H "Authorization: Bearer $SITEQWALITY_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "type": "sms", "details": { "country_code": 1, "phone_number": "5551234567" } }'
# Phone callcurl -X POST https://api.siteqwality.com/user/$USER_ID/contact_method \ -H "Authorization: Bearer $SITEQWALITY_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "type": "phone_call", "details": { "country_code": 1, "phone_number": "5551234567" } }'
# Emailcurl -X POST https://api.siteqwality.com/user/$USER_ID/contact_method \ -H "Authorization: Bearer $SITEQWALITY_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "type": "email", "details": { "email_address": "alice@example.com" } }'type is one of email, sms, phone_call, slack_dm.
Recommended high-urgency stack
Section titled “Recommended high-urgency stack”Three rules, increasing delays:
# 0 min — SMS mecurl -X POST https://api.siteqwality.com/user/$USER_ID/notification_rule \ -H "Authorization: Bearer $SITEQWALITY_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "urgency": "high", "contact_method_id": "<sms-id>", "delay_minutes": 0, "position": 0 }'
# 5 min — call mecurl -X POST https://api.siteqwality.com/user/$USER_ID/notification_rule \ -H "Authorization: Bearer $SITEQWALITY_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "urgency": "high", "contact_method_id": "<call-id>", "delay_minutes": 5, "position": 1 }'
# 15 min — email mecurl -X POST https://api.siteqwality.com/user/$USER_ID/notification_rule \ -H "Authorization: Bearer $SITEQWALITY_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "urgency": "high", "contact_method_id": "<email-id>", "delay_minutes": 15, "position": 2 }'position is sort order within the urgency. Useful for the dashboard — the firing logic just walks rules by their delay_minutes.
Recommended low-urgency stack
Section titled “Recommended low-urgency stack”For low-urgency, send a single delivery to your low-impact channel:
curl -X POST https://api.siteqwality.com/user/$USER_ID/notification_rule \ -H "Authorization: Bearer $SITEQWALITY_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "urgency": "low", "contact_method_id": "<email-id>", "delay_minutes": 0, "position": 0 }'Or skip the rule entirely — without a low-urgency rule the user is silently skipped from low-urgency pages.
How the stack interacts with escalation
Section titled “How the stack interacts with escalation”Escalation policy timeouts and personal-rule delays are independent timers. If your escalation policy fires a level at minute 0 and you have rules at 0/5/15 min:
| Time | Event |
|---|---|
| 0 min | Escalation level fires you. Your rule at 0 min fires (SMS). |
| 5 min | Your rule at 5 min fires (call). Still no ack. |
| 5 min | Escalation policy advances to level 2 — pages the next person. |
| 15 min | Your rule at 15 min fires (email). |
You’ll keep getting your full personal stack even after escalation has moved on. Acknowledging the incident at any point stops everything.
- Don’t put SMS at high delay. SMS is the fastest signal; reserve it for
delay_minutes: 0. - Phone calls work as a deduplicator. If the SMS already woke you, you’ll silence the call. If it didn’t, the ringing definitely will.
- Email is the catcher’s mitt. A 15-minute email rule means “if I missed everything, at least the message is in my inbox.”