Rootly On-Call Management
Overview
Rootly's on-call management provides visibility into who is currently on-call, what incidents occurred during a shift, and whether responders are at risk of burnout. For MSPs and SRE teams, the on-call tools help with:
- Shift Handoffs — Generate a structured summary of open incidents and shift history before handing off to the next responder
- Health Monitoring — Detect workload health risks before they cause burnout or missed pages
- Shift Metrics — Analyse incident volume, severity distribution, and response time per user, team, or schedule
- Incident Scoping — Pull only the incidents that occurred during a specific shift period
Anti-triggers
This skill analyses on-call — handoffs, shift load, burnout risk. It
does not author rotations or decide who gets paged.
- Building or editing a rotation — schedule layers, restrictions, and
temporary overrides are
pagerduty-oncall; Rootly reads shift data
rather than authoring it.
- When the SLA clock runs against a customer — business-hours
calendars and coverage windows are a contractual construct, unrelated
to responder shifts; use
freshdesk-sla-business-hours or
halopsa-contracts.
- The incidents themselves — triage, severity, and resolution are
rootly-incidents; this skill only scopes them to a shift window.
- Escalation policy configuration — routing and escalation tiers are
rootly-alerts.
- A rotation kept in BetterStack — BetterStack owns its schedules
next to its monitors and feeds Rootly no shift data; use
betterstack-oncall.
MCP Tools
On-Call Tools
| Tool |
Description |
Key Parameters |
get_oncall_handoff_summary |
Current/next on-call status plus incidents from the current shift |
Schedule or team context |
get_oncall_shift_metrics |
Shift metrics grouped by user, team, or schedule |
group_by, time range |
get_shift_incidents |
Incidents filtered to a specific shift timeframe |
severity, status, tags, time range |
check_oncall_health_risk |
Detects workload health risk in scheduled responders |
Schedule/team context |
Key Concepts
On-Call Shift Structure
A shift is a period assigned to one or more responders in a schedule. Rootly supports:
- Simple rotations — Daily/weekly hand-offs (Engineer A → Engineer B → Engineer C)
- Follow-the-sun — Regional rotations based on business hours
- Layered schedules — Primary + secondary + escalation policy
- Temporary overrides — One-off coverage swaps without changing the base schedule
Health Risk Indicators
check_oncall_health_risk analyses patterns that correlate with burnout:
| Indicator |
Description |
| High incident volume |
Significantly more incidents than the rolling average for this shift |
| Late-night pages |
High proportion of pages during sleep hours |
| Long time-to-resolve |
Incidents taking significantly longer than the team average |
| Repeat pages |
Same alert firing multiple times (suggests a systemic issue, not a one-off) |
| Short time between pages |
Responder has not had recovery time between incidents |
Escalation Policies
When a page is not acknowledged within the configured timeout:
- Tier 1 — Primary on-call responder
- Tier 2 — Secondary responder or team lead
- Tier 3 — Engineering manager or global escalation
- Fallback — Slack channel broadcast, status page alert
Common Workflows
On-Call Handoff (End of Shift)
Before handing off to the incoming responder:
- Call
get_oncall_handoff_summary to get a structured overview:
- Who is currently on-call and when their shift ends
- Who is next on-call and when they take over
- Open/in-triage incidents from the current shift with status and severity
- Review any
in_triage incidents — add a handoff note as an action item on each open incident
- Call
get_shift_incidents to list all incidents during the shift (for the outgoing responder's records)
- Share the handoff summary in the team's Slack channel or incident war room
Reviewing Shift Health (Manager / Team Lead)
- Call
check_oncall_health_risk for the current schedule or team
- Review flagged risks (high volume, late-night pages, repeat alerts)
- If risk is elevated:
- Consider temporarily adding a secondary responder
- Review the repeat alerts for systemic fixes (runbook gaps, noisy alerts)
- Check if open incidents can be deprioritised to reduce cognitive load
- Call
get_oncall_shift_metrics grouped by user to identify individual responder load imbalances
Weekly On-Call Retrospective
- Call
get_oncall_shift_metrics with group_by=schedule for the past 7 days
- Review incident volume per shift and per responder
- Identify the top noisy alerts (high frequency, low severity)
- Identify incidents that escalated beyond Tier 1 (indicates alerting or runbook gaps)
- Create action items in Rootly for the top 3 improvement areas
Pre-Deployment Health Check
Before a major deployment or planned maintenance window:
- Call
check_oncall_health_risk to confirm responders are not already overloaded
- Call
get_oncall_handoff_summary to confirm the on-call team is available during the deployment window
- If health risk is elevated, consider scheduling the deployment during a lighter shift
Shift Incident Review
After a shift ends, review its full incident history:
- Call
get_shift_incidents scoped to the shift time range
- Filter by
severity=critical or severity=high to focus on the most impactful events
- For each critical incident, call
find_related_incidents to check if it is part of a pattern
- Flag recurring incidents for postmortem action items
Field Reference
Handoff Summary Fields
| Field |
Description |
current_oncall |
Name and contact of the current on-call responder |
next_oncall |
Name, contact, and handoff time of the next responder |
shift_start |
When the current shift started |
shift_end |
When the current shift ends |
open_incidents |
List of in-progress incidents: ID, title, severity, status |
resolved_incidents |
Incidents resolved during this shift |
Shift Metrics Fields
| Field |
Description |
group |
User, team, or schedule name |
incident_count |
Total incidents during the period |
mttr |
Mean time to resolve (seconds) |
mtta |
Mean time to acknowledge (seconds) |
escalations |
Number of incidents that escalated beyond Tier 1 |
severity_breakdown |
Incident count by severity level |
Error Handling
| Error |
Cause |
Resolution |
| No schedule found |
Team or schedule not configured |
Verify schedule exists in Rootly Settings > On-Call |
| Empty handoff summary |
No incidents in current shift |
This is expected for quiet shifts — healthy outcome |
| Health risk unavailable |
Insufficient historical data |
Need at least 2-3 past shifts to baseline |
| 401 Unauthorized |
Invalid API token |
Regenerate at Account > Manage API Keys |
Best Practices
- Run handoff summary before every shift transition — Prevents dropped context between responders
- Act on health risk signals early — Don't wait for burnout; rotate responders proactively
- Review shift metrics weekly — Trending upward volume is an early warning of systemic issues
- Tag incidents during a shift — Labels like
deployment-related or third-party make shift analysis more useful
- Combine with incident tools — Always pair on-call review with
find_related_incidents for recurring alerts
Related Skills
- Incidents — Incident lifecycle, AI analysis, action items
- API Patterns — Auth, pagination, all available tools
1---2name: rootly-on-call3description: Rootly on-call visibility built on the get_oncall_handoff_summary, get_oncall_shift_metrics, get_shift_incidents, and check_oncall_health_risk tools: schedule and rotation coverage, structured shift handoffs, per-shift incident scoping, shift metric fields, and the burnout risk signals.4---56# Rootly On-Call Management78## Overview910Rootly's on-call management provides visibility into who is currently on-call, what incidents occurred during a shift, and whether responders are at risk of burnout. For MSPs and SRE teams, the on-call tools help with:1112- **Shift Handoffs** — Generate a structured summary of open incidents and shift history before handing off to the next responder13- **Health Monitoring** — Detect workload health risks before they cause burnout or missed pages14- **Shift Metrics** — Analyse incident volume, severity distribution, and response time per user, team, or schedule15- **Incident Scoping** — Pull only the incidents that occurred during a specific shift period1617## Anti-triggers1819This skill *analyses* on-call — handoffs, shift load, burnout risk. It20does not author rotations or decide who gets paged.2122- **Building or editing a rotation** — schedule layers, restrictions, and23 temporary overrides are `pagerduty-oncall`; Rootly reads shift data24 rather than authoring it.25- **When the SLA clock runs against a customer** — business-hours26 calendars and coverage windows are a contractual construct, unrelated27 to responder shifts; use `freshdesk-sla-business-hours` or28 `halopsa-contracts`.29- **The incidents themselves** — triage, severity, and resolution are30 `rootly-incidents`; this skill only scopes them to a shift window.31- **Escalation policy configuration** — routing and escalation tiers are32 `rootly-alerts`.33- **A rotation kept in BetterStack** — BetterStack owns its schedules34 next to its monitors and feeds Rootly no shift data; use35 `betterstack-oncall`.3637## MCP Tools3839### On-Call Tools4041| Tool | Description | Key Parameters |42|------|-------------|----------------|43| `get_oncall_handoff_summary` | Current/next on-call status plus incidents from the current shift | Schedule or team context |44| `get_oncall_shift_metrics` | Shift metrics grouped by user, team, or schedule | `group_by`, time range |45| `get_shift_incidents` | Incidents filtered to a specific shift timeframe | `severity`, `status`, `tags`, time range |46| `check_oncall_health_risk` | Detects workload health risk in scheduled responders | Schedule/team context |4748## Key Concepts4950### On-Call Shift Structure5152A **shift** is a period assigned to one or more responders in a schedule. Rootly supports:5354- **Simple rotations** — Daily/weekly hand-offs (Engineer A → Engineer B → Engineer C)55- **Follow-the-sun** — Regional rotations based on business hours56- **Layered schedules** — Primary + secondary + escalation policy57- **Temporary overrides** — One-off coverage swaps without changing the base schedule5859### Health Risk Indicators6061`check_oncall_health_risk` analyses patterns that correlate with burnout:6263| Indicator | Description |64|-----------|-------------|65| High incident volume | Significantly more incidents than the rolling average for this shift |66| Late-night pages | High proportion of pages during sleep hours |67| Long time-to-resolve | Incidents taking significantly longer than the team average |68| Repeat pages | Same alert firing multiple times (suggests a systemic issue, not a one-off) |69| Short time between pages | Responder has not had recovery time between incidents |7071### Escalation Policies7273When a page is not acknowledged within the configured timeout:74751. **Tier 1** — Primary on-call responder762. **Tier 2** — Secondary responder or team lead773. **Tier 3** — Engineering manager or global escalation784. **Fallback** — Slack channel broadcast, status page alert7980## Common Workflows8182### On-Call Handoff (End of Shift)8384Before handing off to the incoming responder:85861. Call `get_oncall_handoff_summary` to get a structured overview:87 - Who is currently on-call and when their shift ends88 - Who is next on-call and when they take over89 - Open/in-triage incidents from the current shift with status and severity902. Review any `in_triage` incidents — add a handoff note as an action item on each open incident913. Call `get_shift_incidents` to list all incidents during the shift (for the outgoing responder's records)924. Share the handoff summary in the team's Slack channel or incident war room9394### Reviewing Shift Health (Manager / Team Lead)95961. Call `check_oncall_health_risk` for the current schedule or team972. Review flagged risks (high volume, late-night pages, repeat alerts)983. If risk is elevated:99 - Consider temporarily adding a secondary responder100 - Review the repeat alerts for systemic fixes (runbook gaps, noisy alerts)101 - Check if open incidents can be deprioritised to reduce cognitive load1024. Call `get_oncall_shift_metrics` grouped by `user` to identify individual responder load imbalances103104### Weekly On-Call Retrospective1051061. Call `get_oncall_shift_metrics` with `group_by=schedule` for the past 7 days1072. Review incident volume per shift and per responder1083. Identify the top noisy alerts (high frequency, low severity)1094. Identify incidents that escalated beyond Tier 1 (indicates alerting or runbook gaps)1105. Create action items in Rootly for the top 3 improvement areas111112### Pre-Deployment Health Check113114Before a major deployment or planned maintenance window:1151161. Call `check_oncall_health_risk` to confirm responders are not already overloaded1172. Call `get_oncall_handoff_summary` to confirm the on-call team is available during the deployment window1183. If health risk is elevated, consider scheduling the deployment during a lighter shift119120### Shift Incident Review121122After a shift ends, review its full incident history:1231241. Call `get_shift_incidents` scoped to the shift time range1252. Filter by `severity=critical` or `severity=high` to focus on the most impactful events1263. For each critical incident, call `find_related_incidents` to check if it is part of a pattern1274. Flag recurring incidents for postmortem action items128129## Field Reference130131### Handoff Summary Fields132133| Field | Description |134|-------|-------------|135| `current_oncall` | Name and contact of the current on-call responder |136| `next_oncall` | Name, contact, and handoff time of the next responder |137| `shift_start` | When the current shift started |138| `shift_end` | When the current shift ends |139| `open_incidents` | List of in-progress incidents: ID, title, severity, status |140| `resolved_incidents` | Incidents resolved during this shift |141142### Shift Metrics Fields143144| Field | Description |145|-------|-------------|146| `group` | User, team, or schedule name |147| `incident_count` | Total incidents during the period |148| `mttr` | Mean time to resolve (seconds) |149| `mtta` | Mean time to acknowledge (seconds) |150| `escalations` | Number of incidents that escalated beyond Tier 1 |151| `severity_breakdown` | Incident count by severity level |152153## Error Handling154155| Error | Cause | Resolution |156|-------|-------|------------|157| No schedule found | Team or schedule not configured | Verify schedule exists in Rootly Settings > On-Call |158| Empty handoff summary | No incidents in current shift | This is expected for quiet shifts — healthy outcome |159| Health risk unavailable | Insufficient historical data | Need at least 2-3 past shifts to baseline |160| 401 Unauthorized | Invalid API token | Regenerate at Account > Manage API Keys |161162## Best Practices1631641. **Run handoff summary before every shift transition** — Prevents dropped context between responders1652. **Act on health risk signals early** — Don't wait for burnout; rotate responders proactively1663. **Review shift metrics weekly** — Trending upward volume is an early warning of systemic issues1674. **Tag incidents during a shift** — Labels like `deployment-related` or `third-party` make shift analysis more useful1685. **Combine with incident tools** — Always pair on-call review with `find_related_incidents` for recurring alerts169170## Related Skills171172- [Incidents](../incidents/SKILL.md) — Incident lifecycle, AI analysis, action items173- [API Patterns](../api-patterns/SKILL.md) — Auth, pagination, all available tools