Browse docs (19)

On-Call User Guide

1,017 words ยท 5 min read ยท 8 sections

Overview

MicroGemLabs ships one on-call engine that is shared across every product on the platform โ€” PulseGuardPlus, CronKeeper, LogVault, CertGuard, CronRunner, and HookRelay. Configure it once and any incident (monitor down, cron missed, log spike, cert expiring, scheduled job failing, webhook endpoint flapping) routes through the same schedules, policies, and contact channels.

How to add an on-call user

Adding someone to your on-call rotation is a three-step process. They first have to exist as a member of your team, then they get added to a schedule, then the escalation policy decides when they get paged.

1. Invite the user to your team

Go to Team โ†’ Members (/team). Click Invite Member, type the user's email, and click Invite. They receive an email with a link; clicking it (and signing in with magic link if they don't already have an account) lands them on your team as a member.

Only team owners and admins can invite. The team owner can promote a member to admin from the same page.

2. Add them to an on-call schedule

Go to Ops โ†’ On-Call โ†’ Schedules (/oncall/schedules). If you don't have a schedule yet, click New Schedule to create one. A schedule has:

  • Name โ€” e.g. "Primary On-Call", "Weekend Coverage"
  • Rotation type โ€” single user (always-on), round-robin (rotates through participants), or follow-the-sun (time-zone-based handoff)
  • Participants โ€” the team members in the rotation. Add your invited user here. Each participant has a rotation order.
  • Active flag โ€” schedules can be disabled without deleting them

A team can have multiple schedules running in parallel โ€” for example, a "Primary" schedule covering everyone and a "Database Specialists" schedule that only the DB-savvy members rotate through. The escalation policy picks which schedule to use for each step.

3. Wire the schedule into an escalation policy

Go to Ops โ†’ On-Call โ†’ Policies (/oncall/policies). Click New Policy (or edit the default one).

An escalation policy is an ordered list of levels. Each level fires after a configurable delay (e.g. 0 min, 5 min, 15 min) and points at one of:

  • A specific user (always pages this person)
  • An on-call schedule (pages whoever is currently on duty)
  • An external webhook (forwards to PagerDuty, Opsgenie, etc.)

Typical setup: Level 0 โ†’ Primary schedule, Level 1 โ†’ Secondary schedule after 5 min if unacknowledged, Level 2 โ†’ Team-channel Slack DM after 15 min. Acknowledging the alert (via SMS reply, web link, or messaging-bot button) stops escalation.

Each product (PulseGuardPlus, CronKeeper, etc.) has a setting for which policy applies to its incidents. By default it's the team's only policy; if you've created multiple, pick the right one from the product's settings page.

4. Configure how the user receives alerts

Each user controls their own contact channels at Account โ†’ On-Call Contact Preferences (/account). The available channels are:

  • Email โ€” always enabled, uses the email they signed up with
  • SMS โ€” needs a phone number, requires Twilio creds on the platform
  • Voice call โ€” same Twilio path as SMS, used for high-severity alerts when SMS hasn't been acknowledged
  • Slack DM โ€” needs the platform Slack bot connected (Settings โ†’ Integrations) and the user's Slack ID linked
  • Telegram DM โ€” paste your Telegram Chat ID into the Account page; the platform's Telegram bot then DMs you directly

Tell the user to set their contact preferences before they start being paged. Without contact prefs the platform falls back to email-only.

On-call rotation patterns

Single user โ€” one person is always on call. Useful for solo teams or as a staging rotation. Round-robin โ€” participants rotate on a fixed cadence (daily, weekly, biweekly). The "current on-call" pointer advances at the configured interval starting from the schedule's start time. Follow-the-sun โ€” participants are tagged with a time-zone band; the platform picks whoever's in working hours when an alert fires. Use this for distributed teams that want to avoid 3 AM pages.

Overrides

If someone needs to swap an on-call shift (sick day, vacation, conference), use Ops โ†’ On-Call โ†’ Schedules โ†’ [schedule] โ†’ Overrides to assign their slot to a teammate for a specified window. Overrides apply on top of the base rotation; the base resumes automatically after the override window ends.

Acknowledging alerts

When an alert fires, the on-call engineer can acknowledge it via:

  • SMS reply โ€” reply ack to the alert SMS
  • Voice call IVR โ€” press 1 during the call
  • Web link โ€” every alert includes a signed acknowledge link
  • Slack/Telegram button โ€” tap the Acknowledge button in the bot message
  • Dashboard โ€” click Acknowledge on the incident card at /dashboard or in the bell-icon notification list

Acknowledging stops further escalation steps from firing. Resolving the incident (separate action) closes it out.

Common configurations

Small team (1โ€“3 people): one schedule with all members in round-robin, one escalation policy with a single 0 min level. Everyone shares the pager equally. Tiered support: a "Frontline" schedule for L1 responders + a "Backend" schedule for specialists. Policy: Level 0 โ†’ Frontline, Level 1 โ†’ Backend after 10 min. Most alerts get handled at L1; the long-tail escalates. Business hours only: enable maintenance windows during off-hours (Ops โ†’ Maintenance), or use a follow-the-sun schedule with all participants in the same time-zone band so off-hours alerts fall through to a fallback like "email-only level" or "Slack channel broadcast".

On-call across products

The same on-call configuration covers every MicroGemLabs product. You don't set up on-call separately for PulseGuardPlus and CertGuard โ€” both route through the same schedule and policy. This is intentional: an outage rarely respects product boundaries, and one rotation makes accountability simple.

The product-specific settings page (Settings โ†’ Routing on each product) lets you override which policy applies to that product's incidents if you've created more than one.

Quick reference

WhatWhere
Invite team member/team
Create / edit schedule/oncall/schedules
Create / edit policy/oncall/policies
Set your contact channels/account
Override a shift/oncall/schedules/[id] โ†’ Overrides
See who's on call right now/dashboard (top of the unified dashboard)