Get started with On-call

Use this guide to take an organization from an enabled On-call entitlement to a verified first page. The normal setup path is:

  1. Confirm the On-call and native incident capabilities available to the organization.
  2. Install Slack if the team will respond or communicate there.
  3. Create a schedule with at least one rotation layer.
  4. Create an escalation policy and choose its notification steps.
  5. Add an Alert Route that points matching alerts at the policy.
  6. Send a test alert and inspect the route, group, paging, and incident outcomes separately.

The Schedules & coverage, Routing & escalation, and Paging & reliability guides explain each decision in depth.

Slack installation

Slack must be installed and healthy before Moneat can deliver incident cards, provision incident channels, or accept interactive responder actions.

  1. Open Settings → Connectors → Slack → Manage and choose the capabilities your workspace needs. The Slack integration guide contains the complete setup and self-hosting checklist.
  2. Authorize the installation in Slack. Reauthorize when the health check reports missing scopes, a revoked token, a workspace mismatch, or a disabled installation.
  3. Link each responder's Slack identity to their Moneat account. A linked identity is required for declarations and responder actions.
  4. Select a default workspace channel, run the connection test, and verify the installation health status before enabling incident announcements.

Capabilities request only the scopes required for the selected behavior:

CapabilitySlack scopes
Alert deliverychat:write, chat:write.public, channels:read, channels:join, groups:read
Incident commandscommands, app_mentions:read, chat:write
Incident channelschannels:read, channels:manage, channels:join, groups:read, groups:write, chat:write
Incident contextbookmarks:read, bookmarks:write, pins:read, pins:write, reactions:read, reactions:write, files:read, files:write
Incident historychannels:history, groups:history, im:history, mpim:history
Identity matchingusers:read, users:read.email
On-call user groupsusergroups:read, usergroups:write, users:read
Optional assistantassistant:write, im:history, im:write, chat:write
Optional privileged accessUser scopes channels:write, groups:write, usergroups:write, admin.conversations:write

Self-hosted callback and verification requirements

Set the Slack OAuth redirect URI to the public HTTPS URL for:

/v1/integrations/slack/oauth/callback

Configure Slack's request URLs at the same public host:

/v1/integrations/slack/commands
/v1/integrations/slack/events
/v1/integrations/slack/shortcuts
/v1/integrations/slack/mentions
/v1/integrations/slack/interactions

The callback and request URLs must be reachable by Slack; SLACK_REDIRECT_URI must match the configured OAuth redirect exactly, and SLACK_SIGNING_SECRET must be set so Moneat can verify Slack signatures. The Events URL must allow Slack's URL-verification challenge through. Keep these endpoints behind HTTPS and expose no private network address.

Verify the first page

Before relying on the setup during a real incident:

  • Confirm the schedule's current responder and the next handoff in Schedules.
  • Confirm the escalation policy's order and wait times in Escalation.
  • Run a test alert whose conditions match exactly one enabled Alert Route.
  • Review the matched route revision, grouping result, paging attempts, and any incident result.
  • Acknowledge the page from the dashboard, mobile app, or Slack, then verify that escalation stops.

If a test alert succeeds but no person is paged, start with Troubleshooting. A successful alert request does not by itself prove that a route matched or that notification delivery succeeded.