> ## 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.

# Integrate Slack

> Install the scaling.cloud Slack app so on-call responders can be paged in Slack and act on incidents without leaving the workspace.

This guide walks you through installing the scaling.cloud Slack app for your organization, choosing an alerts channel, and verifying the end-to-end flow.

For an overview of what the integration does, see [Slack](/integrations/slack).

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

## Prerequisites

* **Admin** role in both your scaling.cloud organization and your Slack workspace.
* Each scaling.cloud user who should be paged in Slack must use the same email in both products.

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

  <Step title="Connect your workspace">
    Click **Connect Slack**. You'll be redirected to Slack to authorize the scaling.cloud app. The scopes requested are:

    * `chat:write` — post alert messages and edit them in place when you Acknowledge/Resolve.
    * `im:write` — send DMs to on-call responders and post-mortem authors/reviewers.
    * `channels:manage`, `groups:write` — create incident channels and invite the on-call user.
    * `users:read.email` — match Slack identity to your scaling.cloud org member by email.
    * `pins:read` — read pinned messages in an incident channel so they appear in the post-mortem timeline as internal status updates.

    Approve and return to scaling.cloud.
  </Step>

  <Step title="Pick an alerts channel">
    Choose the channel where scaling.cloud should post incident-created notifications. We recommend a dedicated channel (e.g., `#incidents`) rather than a busy general channel.

    The scaling.cloud bot is auto-invited to public channels. For private channels, invite the bot manually before selecting.
  </Step>

  <Step title="Verify identity matching">
    Click **Test identity match** to confirm your Slack email maps to a scaling.cloud user in this org. If the match fails, update one side's email so they agree.
  </Step>

  <Step title="Trigger a test page">
    From the scaling.cloud dashboard, create a low-severity test incident with your on-call schedule attached:

    * You should receive a DM with **Acknowledge**, **Resolve**, **View Incident** buttons.
    * The alerts channel should receive a parallel notification with the same buttons.
    * Clicking **Acknowledge** should replace the message with an acknowledged footer that names you and a timestamp.

    Resolve the test incident from Slack (or from the dashboard) to clean up.
  </Step>
</Steps>

## Incident channels

When an incident is created, scaling.cloud can open a dedicated channel named:

```
inc-<sequentialId>-<slug>
```

For example: `inc-42-db-pool-exhausted`. The on-call responder is auto-invited and pinged with a link to the incident.

Incident channels are useful for keeping discussion, troubleshooting, and updates in one searchable place. To enable or disable them, toggle the **Open a dedicated channel per incident** setting on the Slack integration page.

## Slash commands

The scaling.cloud Slack app exposes one slash command — `/scaling` — with several subcommands. Type `/scaling help` for the full list. The two interactive flows are:

### `/scaling create-incident`

Opens a modal where you can fill in the title, severity, and on-call schedule. The created incident is announced back into the originating channel.

### `/scaling publish <incidentId>`

Opens a modal to post a **public** [incident update](/concepts/incidents#incident-updates) — the kind that lands on your customer-facing status page. The modal shows the target Status Page URL(s) before you submit, so you know exactly where the message will appear.

The flow is rejected (and the modal does not open) when:

* The incident has no published Status Page covering its affected components (`NO_PUBLIC_SURFACE`).
* The incident is already `resolved` (`INCIDENT_RESOLVED_NO_FURTHER_UPDATES`).

See [Slack — Slash commands](/integrations/slack#slash-commands) for the full subcommand reference and how publishing maps to the status page render rules.

## Troubleshooting

| Symptom                                 | Fix                                                                                                        |
| --------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
| Buttons return "you aren't a member"    | Your Slack email doesn't match a scaling.cloud org member. Update one side and try again.                  |
| No DM received during a real page       | Confirm the on-call responder is in the Slack workspace and has the same email on both sides.              |
| Channel notifications missing           | The scaling.cloud bot was kicked from the alerts channel — re-invite with `/invite @Scaling`.              |
| Buttons stopped working on old messages | scaling.cloud won't act on messages older than 30 days — create a fresh page if you need a working button. |

## Removing the integration

To disconnect Slack, open **Settings → Integrations → Slack** and click **Disconnect**. The scaling.cloud app stops posting to your workspace immediately. Existing alert messages remain in their channels but their buttons stop responding.
