Alerts and on-call

Discord

The Spectate Discord app connects one Discord server to your Spectate team. Alerts arrive in Discord with Acknowledge and Resolve buttons, and you can declare, update and resolve incidents with the /spectate command. Each incident can get its own Discord channel, which Spectate keeps in sync with the dashboard. On-call members get pages, shift reminders and cover requests as direct messages from the Spectate bot.

A team can connect Discord and Slack at the same time.

Connect Discord

Owners, managers and admins can connect Discord. You must have the Manage Server permission in the Discord server.

  1. In the dashboard, select Integrations.
  2. Under Discord, select Add to Discord.
  3. In Discord, select the server and select Authorize.

One Discord server connects to one Spectate team. Spectate also links your own Discord account. After you connect, choose the channels: an alert channel for alerts, and the settings for incidents.

Discord does not share email addresses with apps. Each member links their Discord account once, so that Spectate knows who uses a button or a command.

  1. In the dashboard, select Account.
  2. Under Discord, select Connect Discord.
  3. In Discord, select Authorize.

Spectate only gets your Discord username. Members who did not link their account get a Link your account button in Discord, and nothing happens. To remove the link, select Unlink under Account → Discord.

Get alerts in a Discord channel

  1. Select Alerting → New channel.
  2. Under Integration, select Discord.
  3. Enter a Name.
  4. Under Discord channel, select the channel.
  5. Select Create channel.
  6. Add the channel to an escalation path with a Notify channel step.

The list shows the text channels of the server. The Spectate bot must be able to see the channel and send messages in it.

You can also use a Discord webhook URL. Select Use a webhook URL instead (no buttons). Webhook messages have no buttons, and Spectate does not update them.

Alert messages

An alert message has the colour of the severity, the resource and the reason, and a chart when there is data. It has these buttons:

ButtonWhat it does
AcknowledgeAcknowledges the alert. The escalation stops.
Declare incidentOpens the declare form for the alert. If the alert already has an open incident, Spectate links to it instead.
ResolveResolves the alert. Spectate sends the resolved notifications. If the problem is still there, the alert fires again.
View in SpectateOpens the alert in the dashboard.

Spectate updates the message in place when someone acknowledges or resolves the alert, in Discord or anywhere else. The Acknowledge button goes away, and a line such as "Acknowledged by Ada" shows who did it. When the alert resolves, Spectate also posts a reply to the message.

Who is acting in Discord

Everything you do in Discord, Spectate does as your Spectate account, with your role's permissions. You must be a member of the team that connected the server. If you do not have the permission for an action, Spectate tells you, and only you see the message.

Commands

/spectate has one alias: /inc. In an incident channel, the commands act on that incident. In other channels, select the incident in the command's incident option. Discord suggests open incidents as you type.

CommandWhat it does
/spectate helpShows the commands. In an incident channel, also the incident's buttons.
/spectate declareOpens the form to declare an incident. The title and severity options fill in the form.
/spectate updatePosts an update and can change the incident's status.
/spectate status-page publishPublishes the incident to a status page. See status pages from Discord.
/spectate status-page newStarts a status page incident without a Spectate incident.
/spectate status-page updatePosts the next update of an open status page incident, or resolves it.
/spectate ackAcknowledges the incident.
/spectate resolveResolves the incident, with an optional closing message.
/spectate rolesAssigns the commander and the communications lead.
/spectate leadMakes you the commander.
/spectate renameChanges the title.
/spectate summaryChanges the summary.
/spectate sevChanges the severity to critical, high, medium or low.
/spectate listLists the open incidents. Only you see the list.
/spectate oncallShows who is on call now and next for each schedule, and your next shift. The schedule option shows one schedule. Only you see the answer.
/spectate coverAsks the others on an on-call schedule to cover one of your shifts. See cover requests.
/spectate meShows your shifts, cover requests and open incidents. See your overview.

rename, summary and sev with a value change the incident at once. Without a value, they open a form.

Apps menu on a message

Right-click a message, then select Apps. On a phone, touch and hold the message. The menu has two Spectate commands:

  • Declare incident opens the declare form. The message becomes the incident summary, with a link back to the message.
  • Pin to timeline adds the message to the incident timeline. See pin messages to the timeline.

Incident channels

When Create a channel for each incident is on, every new incident gets its own Discord channel. This includes incidents declared in Discord, in the dashboard, with the API, and by an escalation path. In the Discord declare form, you can select No channel for one incident.

The channel name is the prefix, the incident number and the title, for example inc-42-checkout-errors. Spectate creates the channel in the category that you select in the settings. If you do not select a category, Spectate creates an "Incidents" category. The channel gets the permissions of its category, so a private category keeps incidents private. In a private category, Spectate also gives its own bot access to the new channel.

Spectate pins a header message in the channel. The header shows the reference, title, severity, status and commander, with these buttons:

  • Post update
  • Status page
  • Roles
  • Acknowledge, until someone acknowledges the incident
  • Resolve
  • View in Spectate

Spectate posts updates, status and severity changes, role changes and status page updates into the channel, from Discord and from the dashboard. If an incident has no channel, select Create Discord channel on the incident page.

Pin messages to the timeline

To add a message from the incident channel to the timeline, right-click it and select Apps → Pin to timeline. Spectate adds the text, the author and a link to the message. The timeline shows that you pinned it. Spectate adds each message once, and only for members who can update the incident.

Nudges

If an open incident gets no update for 30 minutes, Spectate posts a reminder in its channel. The reminder has Post update and Status page buttons. When someone posts an update or resolves the incident, Spectate removes the reminder. Change the time, or turn nudges off, with Nudge quiet incidents in the settings.

Status pages from Discord

/spectate status-page publish publishes an incident to a status page. In an incident channel, it uses that incident. If the team has more than one status page, select it in the page option.

/spectate status-page new starts a public incident without a Spectate incident. Enter the title option, then fill in the form. /spectate status-page update posts the next update of the status page incident in the public_incident option, or resolves it.

The form has these fields: Status, Affected components, Impact and Public message. One impact applies to all the selected components. Spectate emails the subscribers unless you set the command's notify option to False.

Discord forms have fewer fields than the dashboard:

  • A form can offer 25 components at most. For a status page with more components, publish the update in the dashboard.
  • You cannot backdate an update from Discord. Use the dashboard or Slack for Happened at.

Only owners, managers and admins can publish, and Spectate only offers status pages that you can publish to. See status page incidents.

On-call in Discord

For on-call, Spectate sends direct messages from the Spectate bot. You must link your Discord account first. If you do not accept direct messages from server members, Spectate cannot reach you in Discord. It then uses email.

Pages

An escalation path can page you as the person on call. Spectate then also sends the alert as a direct message, with Acknowledge, Declare incident and Resolve. The message updates when someone acknowledges or resolves the alert. Discord pages do not use credits. To turn them off, clear Also page me in Discord under Your on-call. If the team also connected Slack, the setting is Also page me in Slack and Discord, and it turns off both.

Cover requests

When you cannot do a shift, ask the others on the schedule to cover it.

  1. Enter /spectate cover.
  2. Under Shift, select one of your shifts of the next 4 weeks.
  3. Optional: to ask for part of the shift, enter From and Until, for example 2026-03-04 18:00.
  4. Optional: enter a Note.
  5. Select Submit.

Enter From and Until in the time zone of the schedule. If you leave them empty, the request is for the whole shift.

Spectate asks every other member of the schedule's rotations. Each one gets a direct message with Accept and Can't cover. The first person to accept gets an override for the whole window, and Spectate updates all the messages. You get a message with Send reminder and Cancel request. Spectate replies to it with each answer. Members that Spectate cannot reach in Discord or Slack get an email instead. See cover requests for the full rules.

Shift messages and handovers

Before each of your shifts, Spectate sends a reminder with Request cover and View schedule. It also sends a message when your shift starts and when it ends. To choose the time of the reminder, or to turn the messages off, use Shift messages in Discord under Your on-call. If the team also connected Slack, the setting is Shift messages in Slack and Discord. The default is Also 1 hour before.

A schedule can also announce each handover in a channel. The message mentions who is on call now, until when, and who they take over from. Select the channel under Discord → Handover channel on the schedule page.

On-call roles

Spectate can create a Discord role for a schedule and give it to the right people. Mention the role to reach them.

  1. Open the schedule on the On-call page.
  2. Under Discord, select Keep an on-call role.
  3. Enter the Role name. Spectate proposes the schedule name with -oncall, for example platform-oncall.
  4. Under Give it to, select Whoever is on call or Everyone on the schedule.
  5. Select Save.

Spectate creates the role in Discord. If you change the name later, Spectate renames the role. If you clear Keep an on-call role, Spectate deletes the role in Discord.

Spectate updates the role at each handover and when the rotations change. Only members who linked their Discord account get the role. When nobody is on call, the role has no members.

Discord only lets the Spectate bot manage roles below its own role. In Server Settings → Roles, drag the Spectate role above the on-call role. Until then, the schedule page shows that Discord refused the role.

Your overview

/spectate me shows, only to you:

  • Your on-call: your shifts of the next 2 weeks, each with Request cover.
  • Cover requests: requests that you can answer, and your own open requests.
  • Open incidents: up to 10.

It also has Declare incident, Request cover and Open Spectate.

Settings

Find the settings under Integrations → Discord. Owners, managers and admins can change them.

SettingDefaultWhat it does
Announcements channelNo announcementsSpectate announces each new incident in this channel, and keeps the announcement up to date. The Spectate bot must be able to see the channel and send messages in it.
Create a channel for each incidentOnEach new incident gets its own Discord channel.
Channel prefixincThe start of incident channel names. Lowercase letters, numbers, - and _ only.
Category for incident channelsAn "Incidents" category that Spectate createsThe category that incident channels go in. The Spectate bot must be able to manage channels in it.
Nudge quiet incidentsAfter 30 minutesPosts a reminder in an incident channel when nobody posted an update for this long. Never turns nudges off.

Disconnect Discord

  1. Select Integrations.
  2. Under Discord, select Disconnect.
  3. Select Disconnect to confirm.

The Spectate bot leaves the server. Spectate disables the alert channels that post through the server. If you connect Discord again, they turn on again. Existing incident channels and on-call roles stay in Discord, but Spectate stops updating them. If someone removes the bot in Discord, Spectate shows the server as disconnected when its next request to Discord fails.

  • Incidents: declare and resolve incidents.
  • Updates and roles: what Spectate mirrors into the incident channel.
  • Alerts: acknowledge and resolve alerts.
  • On-call: schedules, overrides and cover requests.
  • Slack: the same features in Slack.