> ## Documentation Index
> Fetch the complete documentation index at: https://docs.scaling.cloud/llms.txt
> Use this file to discover all available pages before exploring further.

# Slack

> Receive incident pages in Slack and acknowledge or resolve them without leaving the workspace.

The Slack integration lets your team get paged in Slack — as DMs and channel notifications — and lets on-call responders **acknowledge** and **resolve** incidents from Slack with a single click.

<Frame caption="Incident alert with Acknowledge, Resolve, and View Incident buttons in Slack">
  <img src="https://mintcdn.com/scalingcloud/5-FlXcH6ySIwHzG0/images/placeholder.svg?fit=max&auto=format&n=5-FlXcH6ySIwHzG0&q=85&s=18ab9c45531fe92b117df1f9652cb357" alt="Slack incident alert" width="1200" height="675" data-path="images/placeholder.svg" />
</Frame>

## What you get

* **DM pages** — when you are on call and a layer fires, you receive a Slack DM with the incident title, severity, escalation layer, and three buttons: **Acknowledge** (primary), **Resolve** (danger), **View Incident**.
* **Channel notifications** — incident-created notifications post to your configured alerts channel(s) with the same three buttons.
* **Incident channels** — when an incident is created, scaling.cloud can open a dedicated channel named `inc-<sequentialId>-<slug>` (e.g., `inc-42-db-pool-exhausted`) and invite the on-call responder.
* **One-click actions** — clicking **Acknowledge** stops escalation; clicking **Resolve** transitions the incident through the lifecycle to `resolved`. The message updates in place with a footer showing who took the action and when.

## How identity is resolved

When you click a Slack button, scaling.cloud matches your Slack account to your scaling.cloud account by **email address**. Both must be:

* In the same scaling.cloud organization.
* Using the same email on both sides.

Guests and external Slack users are rejected with an ephemeral "you aren't a member" message.

<Note>
  If your Slack email differs from your scaling.cloud email (work vs. personal account, an alias), the match fails. Update one to match the other, or contact your admin to align identities.
</Note>

## Installation

Slack is connected per organization. Only org admins can install or remove the integration.

<Steps>
  <Step title="Open Integrations">
    In the scaling.cloud dashboard, go to **Settings → Integrations** and click the **Slack** card.
  </Step>

  <Step title="Authorize the scaling.cloud app">
    Click **Connect Slack**. You'll be taken to Slack to approve the workspace permissions the app needs (chat:write, im:write, channels:manage, users:read.email).
  </Step>

  <Step title="Choose your alerts channel">
    Pick the channel where incident-created notifications should post. You can change this later.
  </Step>

  <Step title="Done">
    The integration is live. The next incident created in your org will produce DMs to the on-call responder and a notification in the alerts channel.
  </Step>
</Steps>

<Frame caption="Slack integration settings">
  <img src="https://mintcdn.com/scalingcloud/5-FlXcH6ySIwHzG0/images/placeholder.svg?fit=max&auto=format&n=5-FlXcH6ySIwHzG0&q=85&s=18ab9c45531fe92b117df1f9652cb357" alt="Slack settings" width="1200" height="675" data-path="images/placeholder.svg" />
</Frame>

## Slash commands

The scaling.cloud Slack app exposes one slash command — `/scaling` — with several subcommands. Type `/scaling help` in any channel to see the full list.

| Subcommand                          | What it does                                                                                                 |
| ----------------------------------- | ------------------------------------------------------------------------------------------------------------ |
| `/scaling who-is-oncall [schedule]` | Show who is currently on call. Optional filter by schedule name.                                             |
| `/scaling incidents`                | List the currently open incidents in your org.                                                               |
| `/scaling create-incident`          | Opens a modal to file a new incident (title, severity, on-call schedule).                                    |
| `/scaling status <id> <status>`     | Advance an incident through its lifecycle (`investigating` → `identified` → `monitoring` → `resolved`).      |
| `/scaling publish <id>`             | Opens a modal to post a **public** [incident update](/concepts/incidents#incident-updates) on a status page. |
| `/scaling help`                     | Show this list.                                                                                              |

### Publishing public updates from Slack

`/scaling publish <id>` is the muscle-memory path for posting a customer-visible update without leaving Slack. It opens a modal containing:

* A multi-line **Update** field — what customers will read.
* An optional **Change status** selector — offers only the next valid lifecycle transition for the incident.
* A read-only **Will appear on** preview — lists the actual Status Page URL(s) the update will land on, computed server-side before the modal opens.

Before the modal opens, scaling.cloud runs the same [publishing gate](/concepts/incidents#publishing-requires-a-covering-status-page) the web form does:

| Rejection                              | Why                                                                                          | What you see                                                                     |
| -------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- |
| `NO_PUBLIC_SURFACE`                    | The incident's affected components don't overlap any published Status Page.                  | Ephemeral message with a link to Status Page settings — the modal does not open. |
| `INCIDENT_RESOLVED_NO_FURTHER_UPDATES` | The incident is already `resolved` — no further updates are accepted (you may still redact). | Ephemeral message — the modal does not open.                                     |

On submit, scaling.cloud posts the update through `PostIncidentUpdateUseCase` exactly as the web form would, then drops a thread reply in the mapped incident channel: **"Published update by @you → \<body excerpt>"** so the rest of the channel knows what went out.

<Note>
  Posting `internal` notes from Slack is not yet exposed as a slash subcommand — use the web app or the [API](/api/incidents/updates-put) for internal updates. The `/scaling publish` flow is dedicated to the customer-visible path so the verb signals the intent.
</Note>

## Limitations

* **No explicit user-linking UI** — identity matching is purely on email. Future work will add a settings page to map Slack and scaling.cloud users manually.
* **Bot must be invited to private channels** — auto-invites only work for channels the scaling.cloud bot can already see. For private channels, invite the bot first.
* **Resolving from Slack does not collect a resolution note** — if you want a public resolution note on the status page, use `/scaling publish <id>` with `statusChange: resolved` before clicking Resolve, or post the resolution via the [Post Incident Update API](/api/incidents/updates-put).

## Removing the integration

To disconnect Slack:

1. Go to **Settings → Integrations** and open the **Slack** card.
2. Click **Disconnect**.
3. The scaling.cloud app stops posting messages to your workspace immediately. Existing alert messages remain in their channels but their buttons stop working.
