Skip to Content

Slack

Connect Cardinal to Slack to send AI-generated notifications and alerts to channels, and to let the AI agent resolve users and channels and post messages on demand.

Overview

With the Slack integration, the AI agent can:

  • Send notifications to specified Slack channels
  • Deliver alerts when triggered by monitoring rules or workflows
  • Post summaries of incidents, reports, or query results
  • Find a user by name, real name, display name, or email
  • Find a channel by name (public, private, DMs, multi-party DMs)
  • Send a message to a resolved user or channel

The same bot token powers all of the above — Slack’s permission model attaches scopes to the bot, not to individual API calls. Add the scopes you intend to use; leave out the ones you don’t.

Capabilities

CapabilityEnabled
NotifyAlways
AgentWhen the bot has the discovery + send scopes (see below)

Configuration

Credentials

FieldRequiredDescription
Bot TokenYesSlack bot OAuth token (format: xoxb-...)

Prerequisites

  • A Slack workspace where you have permission to install apps
  • A Slack app with a Bot User OAuth Token
  • The bot must be invited to any channel you want it to post in

Required Slack scopes

The minimum is chat:write (notify-only). Each additional scope unlocks an agent capability:

ScopeWhat it enables
chat:writeSending messages to channels (notify + agent send_message)
chat:write.publicSending to public channels the bot hasn’t been invited to (optional)
users:readfind_user — listing workspace users
users:read.emailLetting find_user match against and return user emails
channels:readfind_channel — listing public channels
groups:readfind_channel — listing private channels
im:readfind_channel — listing direct-message channels
mpim:readfind_channel — listing multi-party DM channels

If a scope is missing, the matching agent tool returns a clean error telling the planner to fall back. The notify path keeps working with chat:write alone.

Creating a Slack App

  1. Go to api.slack.com/apps .
  2. Click Create New App > From scratch.
  3. Name the app (e.g., “Cardinal Bot”) and select your workspace.
  4. Navigate to OAuth & Permissions.
  5. Under Bot Token Scopes, add the scopes from the table above that match the capabilities you want.
  6. Click Install to Workspace and authorize the app.
  7. Copy the Bot User OAuth Token (starts with xoxb-).

If you change the scope list after install, you must reinstall the app for the new scopes to take effect.

Setup

  1. Navigate to Settings → Integrations and click Add Integration.
  2. Select Slack.
  3. Paste the Bot Token (xoxb-...).
  4. Click Test Connection to verify the token is valid.
  5. Click Save.
  6. Invite the bot to the desired channels using /invite @Cardinal Bot in Slack.

For private channels, the bot must be a member before find_channel will return them. chat:write.public covers public-channel sends without invites; for any other case you need to invite the bot.

What This Enables

Once configured, the AI agent and automated workflows can:

  • Send alert notifications when anomalies are detected
  • Post incident summaries to on-call channels
  • Deliver scheduled report digests
  • Resolve a name or email to a Slack user (find_user) and 1:1 message them (send_message)
  • Resolve a channel name to its id (find_channel) and post to it (send_message)

Reach out to support@cardinalhq.io for support or to ask questions not answered in our documentation.

Last updated on