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:
- Confirm the On-call and native incident capabilities available to the organization.
- Install Slack if the team will respond or communicate there.
- Create a schedule with at least one rotation layer.
- Create an escalation policy and choose its notification steps.
- Add an Alert Route that points matching alerts at the policy.
- 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.
- Open Settings → Connectors → Slack → Manage and choose the capabilities your workspace needs. The Slack integration guide contains the complete setup and self-hosting checklist.
- Authorize the installation in Slack. Reauthorize when the health check reports missing scopes, a revoked token, a workspace mismatch, or a disabled installation.
- Link each responder's Slack identity to their Moneat account. A linked identity is required for declarations and responder actions.
- 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:
| Capability | Slack scopes |
|---|---|
| Alert delivery | chat:write, chat:write.public, channels:read, channels:join, groups:read |
| Incident commands | commands, app_mentions:read, chat:write |
| Incident channels | channels:read, channels:manage, channels:join, groups:read, groups:write, chat:write |
| Incident context | bookmarks:read, bookmarks:write, pins:read, pins:write, reactions:read, reactions:write, files:read, files:write |
| Incident history | channels:history, groups:history, im:history, mpim:history |
| Identity matching | users:read, users:read.email |
| On-call user groups | usergroups:read, usergroups:write, users:read |
| Optional assistant | assistant:write, im:history, im:write, chat:write |
| Optional privileged access | User 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/callbackConfigure 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/interactionsThe 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.