Skip to content

Slack connection

Connect your organization's Slack workspace so signals + sync alerts post there. Each organization installs the app into its own workspace independently — this is a per-org OAuth flow.

Connect a Slack workspace

  1. In Settings → Slack, click Connect Slack.
  2. You're redirected to Slack's OAuth screen. Sign in to the target workspace if you aren't already. The dropdown at the top-right of Slack's auth page lets you switch workspaces.
  3. Pick the channel where signals should be posted. This becomes your default delivery channel. You can change it later by disconnecting + reconnecting.
  4. Click Allow. Slack redirects you back to the app — the card now shows your team name + selected channel with a green status.

Permissions we request

ScopeWhy we need it
chat:writePost signal messages to your default channel
chat:write.publicPost to public channels we're not explicitly invited to
channels:readList channels so you can pick a default during install
users:readResolve @mentions for the Slack-owners feature
commandsRegister /signal slash command (optional, for inline triage)

We do not store message content. Outbound posts are logged (signal_id + channel + timestamp) so we can show "Sent" badges and dedupe re-sends.

Multi-channel sending

The connected channel is the default. When you click Send on a signal you get a channel picker to override per-message. Picking a non-public channel? Invite our bot to it first (/invite @SalesSignalEngine).

Disconnect

Click Disconnect in the card. We revoke the token + delete the OAuth row from our DB. The Slack app stays installed in your workspace until you remove it from Slack's app management page.

Troubleshooting

SymptomFix
"redirect_uri did not match"The backend's public URL changed (ngrok/host swap). Update OAuth & Permissions → Redirect URLs in the Slack app config to the new /api/slack/oauth/callback URL
Bot not in channelInvite it: /invite @SalesSignalEngine in the target channel
401 on sendToken revoked (workspace admin removed the app). Reconnect from Settings → Slack
Wrong workspace connectedDisconnect, then reconnect — Slack's auth screen has a workspace switcher in the top-right

How it differs from Microsoft Teams

Slack uses OAuth — the user installs the app into the workspace. Teams uses an inbound Power Automate webhook URL that you paste in — no OAuth, no scopes to request. See Microsoft Teams connection docs.

Same content as the in-app docs drawer. Source of truth: frontend/src/docs/sections.ts.