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
In groundcover, go to Integrations → Connectors and open the Org Connectors tab.

Select Slack. The setup form opens directly for the first Slack App
If you already have one or more Slack Apps connected, click Add Slack Connector to add another one (see Connecting Multiple Slack Workspaces).
Click Create App — this opens Slack's app creation page with a pre-filled manifest containing all the required permissions and configuration.

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
Click Download Icon in the groundcover setup wizard to save the groundcover app icon (PNG).

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

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.
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:
In your Slack App settings, go to Basic Information → App-Level Tokens.

Click Generate Token and Scopes.
Enter a name (e.g.,
groundcover).Click Add Scope and select
connections:write.
Click Generate.
Copy the token — it starts with
xapp-.
The App-Level Token must start with xapp-. groundcover validates it against Slack's API during setup. If the token is invalid or missing the connections:write scope, the setup will fail with an error.
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-appis 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:
Create a separate Slack App in each workspace (each workspace will need its own Client ID, Client Secret, and App-Level Token).
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).After OAuth, each connector is bound to its workspace and creates its own
slack-appDestination.
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.
Go to Monitors → Notification Routes.
Click Create Notification Route (or edit an existing one).
In Step 3 (Rules), click the destination dropdown.
Select your Slack App — it is marked with an App tag. A second panel appears listing the available channels in your workspace.

Search for and select the target channel.


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:
Open the monitor wizard (create or edit a monitor).
In the Notifications section, select Directly to destinations.
Click Set rule.
Choose an issue status filter (Firing, Resolved, or both).
In the Send to dropdown, select your Slack App.

Pick a target channel from the drilldown panel.
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:
Go to Integrations → Connectors and open the Org Connectors tab.
Select Slack and open your Slack connector.
Enter the new Client Secret and/or App-Level Token. Leave a field blank to keep its current value.
Click Save Changes.
If the App-Level Token becomes invalid or is revoked in Slack, the connector will stop receiving events from Slack and move to an invalid token state. Update the token to restore functionality.
Deleting the Connector
Go to Integrations → Connectors and open the Org Connectors tab.
Select Slack and click the delete action on the Slack connector.
Confirm deletion.
A Slack connector that is used by notification routes or monitors cannot be deleted. Remove it from all routes and monitors first.
Troubleshooting
The App-Level Token is rejected during setup
Verify that:
The token starts with
xapp-.The token was generated with the
connections:writescope.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
Verify the connector status is active in Integrations → Connectors → Org Connectors.
Check that the target channel is selected in your notification route or monitor.
Verify the notification route's scope query matches the monitor's labels.
Use the Test button in the monitor to send a test notification.
Filter traces by
workload:dispatch-centerin 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 → Integrations → Add 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
