An on-call handoff template is what you fill in when your rotation ends and the next engineer takes the pager. The classic version is a Slack message that says "all quiet, see you next week," which fails the moment something was actually warm — an incident that was open but waiting on a vendor, a noisy alert that everyone has been ignoring, a recent deploy that has not finished bake-in. Those are the cases where the handoff has to be load-bearing, and they are exactly the cases where the Slack-message handoff fails.
The template below is what reliable handoffs look like in practice. It is short on purpose. An on-call engineer who has been carrying the pager for a week does not have the patience for a long handoff. Five fields, filled in honestly, are worth more than fifteen fields half-completed.
When to use it
- Every on-call rotation change, weekly or otherwise.
- Any mid-rotation handoff (illness, emergency, swap).
- Geographic handoffs in follow-the-sun on-call models.
- Any time the outgoing on-call cannot reach the incoming on-call live.
The template structure
This is the structure of the template. Copy it into a Notion page, a Linear doc, or a markdown file in your repo — it works in any of them.
ON-CALL HANDOFF — [team] rotation
Outgoing: [name] Rotation: [start] – [end]
Incoming: [name] Rotation: [start] – [end]
OVERALL FEEL
One line. Examples:
- "Quiet week. Two minor alerts, both resolved."
- "Noisy. One Sev-2 still open, two flaky alerts."
- "Bumpy. Recent deploy is still baking; watch it."
OPEN INCIDENTS
(or: "None.")
- [INC-NNN]: [one line]
Status: [open / mitigated / monitoring]
Owner: [name]
Last update: [time]
Next step: [concrete step]
WATCH ITEMS
Things not yet incidents but worth keeping an eye on:
- [system / signal] — [what to watch] — [where the dashboard is]
- [system / signal] — [what to watch] — [where the dashboard is]
RECENT CHANGES (last 7 days)
- [deploy] — [system] — [date] — bake-in until [date]
- [config change] — [system] — [date]
- [vendor change] — [...]
NOISY ALERTS
Alerts that fired but were not real incidents this week:
- [alert] — fired [N] times — root cause: [...]
- [alert] — fired [N] times — root cause: [...]
Action: [silenced / tuned / escalated to owner]
VENDOR / EXTERNAL THREADS
Any open back-and-forth with vendors or providers:
- [vendor] — ticket [N] — waiting on: [them/us]
PEOPLE
Who is OOO this rotation that you should know about:
- [name] (off [dates]) — usual owner of [system]
ANYTHING ELSE
Free-text. Things that don't fit above but the next engineer
should know.
Governance, not a status channel
StandIn is async governance infrastructure. Engineers declare working state before they go offline. Representatives answer from the record, cite the source, and refuse when the answer is not there.
Request access →How to use it well
- "Overall feel" is one line, not a paragraph. The incoming on-call needs the headline. The detail lives in the rest of the document. Long opening paragraphs are usually a sign the outgoing engineer is venting; that belongs in a retro, not a handoff.
- Open incidents must have a concrete next step. "Monitoring" is not a next step. "Check dashboard X at 09:00 UTC, if error rate > 0.1% page vendor" is. The next step is what makes the handoff actionable.
- Watch items are the highest-leverage section. Watch items are the failures that have not yet happened. Engineers who consistently surface watch items on handoff prevent the most production incidents per unit of effort.
- Noisy alerts get acted on, not just mentioned. A noisy alert that is mentioned in three consecutive handoffs is a process failure. Tune it, silence it, or escalate it to the owner — but do not let the mention become a substitute for fixing.
- Free-text "anything else" is a feature. Real on-call experience does not always fit a schema. The free-text section catches the things that would otherwise be lost.
What to skip
Skip filling in sections that have no content. "None." or "—" is the right value. Pretending there are watch items when there are not is noise; the next engineer learns to skim past your handoffs if they always look full.
Skip the urge to do the handoff live unless you both happen to be online. Most on-call rotations cross time zones; live handoff is rarely possible. Written + a five-minute call within 24 hours if anything is unclear is the working pattern.
Frequently asked questions
Is this template free?
Yes. Drop the structure above into PagerDuty notes, an Opsgenie post-rotation report, or a pinned Slack message — wherever your team already looks at the start of a shift.
Can I edit it?
Yes. Teams without vendors drop that section; teams running follow-the-sun add a geographic timezone line at the top.
Do I need to give my email?
Not for the template. The download is the formatted version; the email is for our newsletter only.
Get async handoff insights in your inbox
One email per week. No spam. Unsubscribe anytime.
Ready to eliminate your daily standup?
Distributed teams use StandIn to start every shift with full context — no standup required. Engineers post a 60-second wrap. The next shift wakes up knowing exactly what to work on.