Set Up Escalation Rules¶
Ensure critical issues are never missed by configuring automatic escalation chains that notify progressively senior team members when issues go unacknowledged.
How Escalation Works¶
SerOps uses a two-level escalation hierarchy based on role:
graph TD
I[Critical Issue Created] -->|Wait Level 1 delay| L1{Acknowledged?}
L1 -->|Yes| S[Escalation Stopped]
L1 -->|No| N1[Level 1: Notify project admins]
N1 -->|Wait Level 2 delay| L2{Acknowledged?}
L2 -->|Yes| S
L2 -->|No| N2[Level 2: Notify ALL org admins]
| Level | Default Delay | Who Gets Notified | Purpose |
|---|---|---|---|
| Level 1 | 15 minutes | Project admins (users with admin role) |
First responders |
| Level 2 | 45 minutes | All organisation admins | Final escalation for unresolved issues |
Key behaviors:
- Escalation timers start when the issue is created
- Acknowledging the issue at any point stops the escalation chain
- Rules can target specific projects or apply to all projects in the organisation
- Rules can be set for
CRITICALorWARNINGseverity levels
Where to manage them¶
Escalation rules have no settings screen yet: create and change them with the API below. Delivery channels and routing rules, which decide where notifications go, are managed in Alerts & routing.
| Field | Required | Description |
|---|---|---|
project |
No | Project ID, or null for all projects |
severity |
Yes | CRITICAL or WARNING |
level_1_delay_minutes |
Yes | Minutes before notifying project admins (default 15) |
level_2_delay_minutes |
Yes | Minutes before notifying all org admins (default 45) |
is_active |
Yes | Whether the rule is enabled |
Warning
Level 2 delay must be greater than Level 1 delay. The system validates this and will reject invalid configurations.
Create an Escalation Rule via the API¶
Create a Rule¶
curl -X POST https://api.yourdomain.com/api/notification/escalation-rules/ \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"project": 1,
"severity": "CRITICAL",
"level_1_delay_minutes": 15,
"level_2_delay_minutes": 45,
"is_active": true
}'
Response:
{
"id": 1,
"project": 1,
"project_name": "Payment Service",
"severity": "CRITICAL",
"level_1_delay_minutes": 15,
"level_2_delay_minutes": 45,
"is_active": true,
"created_at": "2026-02-17T10:00:00Z",
"updated_at": "2026-02-17T10:00:00Z"
}
Create an Organisation-Wide Rule¶
Omit the project field to apply the rule to all projects:
curl -X POST https://api.yourdomain.com/api/notification/escalation-rules/ \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"severity": "CRITICAL",
"level_1_delay_minutes": 10,
"level_2_delay_minutes": 30,
"is_active": true
}'
List All Rules¶
curl https://api.yourdomain.com/api/notification/escalation-rules/ \
-H "Authorization: Bearer YOUR_TOKEN"
Update a Rule¶
curl -X PUT https://api.yourdomain.com/api/notification/escalation-rules/1/ \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"level_1_delay_minutes": 10,
"level_2_delay_minutes": 30
}'
Delete a Rule¶
curl -X DELETE https://api.yourdomain.com/api/notification/escalation-rules/1/ \
-H "Authorization: Bearer YOUR_TOKEN"
Stopping Escalation with Acknowledgment¶
Any user can acknowledge an issue to stop its escalation chain:
Info
Acknowledgment means "someone is looking at this." It does not resolve the issue -- it just stops the escalation from notifying additional people.
Recommended Configurations¶
Aggressive (SRE / On-Call Teams)¶
For teams that require rapid incident response:
| Setting | Value |
|---|---|
| Severity | CRITICAL |
| Level 1 Delay | 5 minutes |
| Level 2 Delay | 15 minutes |
| Scope | All projects |
Standard (Development Teams)¶
For typical development workflows:
| Setting | Value |
|---|---|
| Severity | CRITICAL |
| Level 1 Delay | 15 minutes |
| Level 2 Delay | 45 minutes |
| Scope | Per project |
Relaxed (Non-Critical Services)¶
For staging or low-priority environments:
| Setting | Value |
|---|---|
| Severity | CRITICAL |
| Level 1 Delay | 60 minutes |
| Level 2 Delay | 180 minutes |
| Scope | Specific project |
Uniqueness Constraint¶
Each combination of organisation + project + severity must be unique. You cannot create two CRITICAL escalation rules for the same project. To change timing, update the existing rule.
If you attempt to create a duplicate rule, the API returns:
Combining with Quiet Hours¶
Escalation rules and quiet hours interact as follows:
- If a user's quiet hours are active, Level 1 and Level 2 notifications to that specific user are suppressed and queued
- However, escalation still proceeds to the next level on schedule -- other admins whose quiet hours are not active will receive the notification
- This ensures critical issues reach someone even when individual team members are unavailable
Next Steps¶
- Configure Quiet Hours -- set up per-user quiet hours
- Tune Issue Deduplication -- reduce noise before it reaches escalation
- Notifications -- full notification system overview