For the complete documentation index, see llms.txt. This page is also available as Markdown.

Slack

This capability is only available to BYOC deployments. Check out our pricing page for more information about subscription plans and the available deployment modes.

The Slack connector integrates groundcover with your Slack workspace. Once configured, groundcover can send monitor notifications to specific Slack channels and enable users to interact with groundcover's agent directly from Slack using @groundcover mentions.

Admin permissions are required to create and manage the Slack connector. Any workspace member can connect their personal Slack account once the connector is set up.

Setting Up the Slack App

Setting up the Slack connector is a one-time process that involves creating a Slack App, providing its credentials, and authorizing it in your workspace.

Step 1: Create the Slack App from Manifest

  1. In groundcover, go to Integrations → Connectors and open the Org Connectors tab.

  2. Select Slack. The setup form opens directly for the first Slack App

    1. If you already have one or more Slack Apps connected, click Add Slack Connector to add another one (see Connecting Multiple Slack Workspaces).

  3. Click Create App — this opens Slack's app creation page with a pre-filled manifest containing all the required permissions and configuration.

  4. In Slack, choose the workspace to install the app in, click Next, review the manifest, and click Create.

You can also reach the same setup form from Integrations → Destinations → Slack App, which is convenient when you're configuring Slack alongside other Destinations like PagerDuty.

You can click View Manifest to inspect the full manifest JSON before creating the app. The manifest includes all required OAuth scopes, event subscriptions, and Socket Mode configuration. Do not modify it — groundcover relies on these exact permissions to function.

The manifest requests a broad set of permissions on purpose: some are needed for current features (notifications, agent @mentions, channel-aware AI replies) and some are reserved for features we plan to release. Requesting them upfront means you won't have to reinstall the app — or get users to re-approve it — when those features ship.

For more details on creating apps from manifests, see Slack's manifest guide.

Step 2: Upload the App Icon

  1. Click Download Icon in the groundcover setup wizard to save the groundcover app icon (PNG).

  2. In your Slack App settings, go to Settings → Basic Information → Display Information → App Icon & Preview.

  3. Click Add App Icon and upload the downloaded image.

Step 3: Fill in App Credentials

You need three values from your Slack App. All of them are found in your Slack App's settings page.

Field
Where to find it in Slack

Client ID

Settings → Basic Information → App Credentials → Client ID

Client Secret

Settings → Basic Information → App Credentials → Client Secret

App-Level Token

Settings → Basic Information → App-Level Tokens (see instructions below)

Generating the App-Level Token

The App-Level Token is not created automatically — you need to generate it:

  1. In your Slack App settings, go to Basic Information → App-Level Tokens.

  2. Click Generate Token and Scopes.

  3. Enter a name (e.g., groundcover).

  4. Click Add Scope and select connections:write.

  5. Click Generate.

  6. Copy the token — it starts with xapp-.

Back in the groundcover setup wizard, fill in:

  • Connector Name — A unique label to identify this connector (e.g., groundcover Prod).

  • Client ID — From your Slack App credentials.

  • Client Secret — From your Slack App credentials.

  • App-Level Token — The xapp- token you just generated.

Click Connect to save and proceed to authorization.

Step 4: Authorize the App (OAuth)

After saving the credentials, you are redirected to Slack to authorize the app in your workspace. This grants groundcover's bot the permissions defined in the manifest (sending messages, reading channels, etc.).

Once authorization completes:

  • The connector status changes to active.

  • A Destination of type slack-app is automatically created and bound to your Slack workspace. It appears alongside other Destinations (like Slack Webhook and PagerDuty) in the Notification Routes destination picker and in the monitor wizard. You do not configure this Destination separately — it is managed by the connector.

Connecting Multiple Slack Workspaces

You can connect more than one Slack workspace by repeating the Setting Up the Slack App flow for each workspace:

  1. Create a separate Slack App in each workspace (each workspace will need its own Client ID, Client Secret, and App-Level Token).

  2. Add each one as a separate connector in Integrations → Connectors → Org Connectors → Slack with a distinct Connector Name (e.g., groundcover Prod, groundcover Staging, groundcover Customer-Success).

  3. After OAuth, each connector is bound to its workspace and creates its own slack-app Destination.

When you select a Slack channel in a notification route or monitor, each Slack App appears separately in the picker labeled by its connector name, so you can route alerts to the correct workspace.

A single Slack connector is bound to one workspace. You cannot point two connectors at the same Slack workspace.

Connecting Your Personal Slack Account

After an admin sets up the Slack connector, individual users can link their personal Slack accounts from Integrations → Connectors → My Connections. This enables features like interacting with groundcover's agent via @groundcover mentions in Slack.

See Connecting Your Personal Slack Account for the full walkthrough.

Selecting Slack Channels in Notification Routes

After the Slack connector is active, you can route monitor notifications to specific Slack channels.

  1. Go to Monitors → Notification Routes.

  2. Click Create Notification Route (or edit an existing one).

  3. In Step 3 (Rules), click the destination dropdown.

  4. Select your Slack App — it is marked with an App tag. A second panel appears listing the available channels in your workspace.

  5. Search for and select the target channel.

  1. Click Add Rule to add more rules with different channels or status filters.

Private channels are marked with a lock icon. The bot can post to any public channel in the workspace, even if it has not been added to it. For private channels, the bot must first be invited to the channel — only private channels the bot has been added to appear in the picker.

You can create multiple rules to route to different channels based on issue status. For example, send Firing alerts to #critical-alerts and Resolved notifications to #alerts-resolved.

For more details on notification routes, see Notification Routes.

Selecting Slack Channels in the Monitor Wizard

When creating or editing a monitor, you can send notifications directly to Slack channels without using notification routes:

  1. Open the monitor wizard (create or edit a monitor).

  2. In the Notifications section, select Directly to destinations.

  3. Click Set rule.

  4. Choose an issue status filter (Firing, Resolved, or both).

  5. In the Send to dropdown, select your Slack App.

  6. Pick a target channel from the drilldown panel.

  7. Click + to add more destinations (additional Slack channels or other Destinations).

Choosing Directly to destinations means this monitor's issues will be skipped by notification routes. If you want notifications to flow through your configured routes instead, select Based on matching notification routes.

The selected channels are persisted in the monitor under notificationSettings.connectedAppParams.<slack-app-id>.channels — see Monitor YAML structure for the full schema.

Updating Credentials

If you need to rotate the Client Secret or App-Level Token after the initial setup:

  1. Go to Integrations → Connectors and open the Org Connectors tab.

  2. Select Slack and open your Slack connector.

  3. Enter the new Client Secret and/or App-Level Token. Leave a field blank to keep its current value.

  4. Click Save Changes.

Deleting the Connector

  1. Go to Integrations → Connectors and open the Org Connectors tab.

  2. Select Slack and click the delete action on the Slack connector.

  3. Confirm deletion.

Troubleshooting

The App-Level Token is rejected during setup

Verify that:

  • The token starts with xapp-.

  • The token was generated with the connections:write scope.

  • The token has not been revoked in Slack.

You can regenerate it in your Slack App under Basic Information → App-Level Tokens.

OAuth authorization fails

  • Ensure you are signing into the correct Slack workspace.

  • Verify the Client ID and Client Secret match your Slack App's credentials (check for extra spaces when pasting).

User sign-in fails with "workspace does not match"

Each Slack connector is bound to a specific workspace. If a user tries to sign in with a different workspace, the connection will fail. Make sure users sign into the same workspace the admin authorized during initial setup.

Notifications are not being sent to Slack

  1. Verify the connector status is active in Integrations → Connectors → Org Connectors.

  2. Check that the target channel is selected in your notification route or monitor.

  3. Verify the notification route's scope query matches the monitor's labels.

  4. Use the Test button in the monitor to send a test notification.

  5. Filter traces by workload:dispatch-center in groundcover to inspect delivery attempts.

A private channel does not appear in the channel picker

The bot can post to all public channels without being added, but it must be invited to a private channel before that channel appears in the picker. Open the channel in Slack and run /invite @groundcover (or use the channel settings → IntegrationsAdd apps), then reopen the picker.

The channel picker is empty

  • If channels were recently created, try closing and reopening the dropdown to refresh the list.

  • Verify the Slack App connector status is active in Integrations → Connectors → Org Connectors.

Last updated