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
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
ackto 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
/dashboardor in the bell-icon notification list
Acknowledging stops further escalation steps from firing. Resolving the incident (separate action) closes it out.
Common configurations
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
| What | Where |
|---|---|
| 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) |