Auth model
Slack app scopes + bot token + Socket Mode / Events API
Permission-heavy, team-native, and ideal for structured internal workflows.
Slack Bot setup for OpenClaw: scopes, Socket Mode or Events API behavior, thread policy, workspace rollout, and troubleshooting for silent bots.
Auth model
Slack app scopes + bot token + Socket Mode / Events API
Safety stance
Minimize scopes and verify thread semantics before broad workspace deployment.
Verification ritual
Test DM, channel mention, and thread reply separately because each path fails for a different reason.
Rollout mode
35–50 min setup
Slack App
Slack is production-ready for DMs and channels, defaults to Socket Mode, and keeps channel traffic mention-gated unless you change policy.
Watch app wiring
Mis-scoped OAuth permissions and event-subscription gaps cause most “connected but silent” failures.
Slack is where OpenClaw stops feeling like a personal bot and starts feeling like a workspace system. That is exactly why the setup is more demanding than Telegram: you are not just connecting a bot, you are defining how a workspace should expose messages, threads, app events, and trust boundaries to an agent.
Slack is a strong lane when OpenClaw needs to live inside an internal operating environment instead of acting as a lightweight personal messenger.
It is especially good for:
Slack is not the fastest first channel. It is one of the best team channels once the policy and app model are set correctly.
Most Slack failures come from collapsing two different systems into one.
Slack decides whether your OpenClaw app:
If this layer is wrong, OpenClaw may look healthy locally but never see the events you expect.
Once Slack does deliver events, OpenClaw still decides:
That is why “the bot is installed” and “the bot is allowed to answer here” are not the same thing.
For most teams, a good first Slack rollout is:
{
channels: {
slack: {
enabled: true,
mode: 'socket',
appToken: 'xapp-...',
botToken: 'xoxb-...',
dmPolicy: 'pairing',
},
},
}
Why start here:
In Slack app settings, create or prepare an app for the exact workspace you intend to support.
For Socket Mode:
xapp-...) with connections:write,xoxb-...).For HTTP mode:
Upstream OpenClaw supports both:
For most CoClaw readers, Socket Mode is the safer first move because it reduces ingress, reverse-proxy, and signing-secret complexity.
Use HTTP mode when you already know why your environment needs it.
{
channels: {
slack: {
enabled: true,
mode: 'http',
botToken: 'xoxb-...',
signingSecret: 'your-signing-secret',
webhookPath: '/slack/events',
},
},
}
Slack often fails in ways that look like routing bugs but are really scope / event subscription problems; treat the checklist in /guides/openclaw-configuration as your source of truth so you do not drift into partial installs.
A practical first checklist:
This is the channel where a bot can be “present” but functionally deaf. Apply the same deployment guardrails as the ones featured in /guides/openclaw-deployment-troubleshooting when you roll out new scopes or change how events arrive.
Slack DMs default to pairing semantics upstream, and that is usually a good first posture.
Use pairing when:
If the set of allowed DM users is already known, keep it in config instead of relying on approval history, and use the decision flow in /troubleshooting/solutions/control-ui-pairing-required to document approvals for auditors.
That makes the access model durable and inspectable.
Slack channels should not be treated as a flat on/off surface.
Important decisions:
A conservative first pattern is:
That gives you enough signal without letting the bot become noisy or surprising.
Do not stop after the first DM succeeds.
DM test
Public channel mention
Private channel test
Thread test
Restart test
If Slack only works in one surface, you do not yet have a workspace-grade rollout.
This is the classic Slack first-week failure.
Common causes:
Start here:
Usually one of these:
xapp / xoxb token mismatch,Start here:
Slack is particularly vulnerable to “we changed something small in the app config and now channels feel broken.”
When scopes, events, or request-mode settings change, verify the app installation and subscriptions again before debugging OpenClaw logic.
It changes what you need to operate:
Choose the mode whose failure model your team can actually support.
If you introduce userToken for directory reads or richer operations, treat it as a deliberate expansion of the trust surface.
Do not quietly add it just because a feature looks convenient.
Slack name and channel resolution can look friendly during setup but become fragile later.
Where possible, think in IDs and resolved workspace entities rather than display names.
If you want a low-surprise first production Slack deployment:
| Surface | Recommendation | Why |
|---|---|---|
| Transport | Socket Mode first | Less ingress complexity |
| DMs | pairing or explicit allowlist | Clear owner trust model |
| Channels | narrow initial allowlist | Prevents accidental workspace sprawl |
| Replies | mention-gated at first | Better for noisy team spaces |
| Verification | DM + public + private + thread + restart | Catches the real workspace failure modes |
Slack is often best as one of these roles:
Use it when OpenClaw is meant to be embedded in a company or project workspace.
Slack is a good place for incident triage, support handling, and project-context replies where thread structure matters, so keep the operational validation steps from /guides/openclaw-operability-and-observability alongside your channel rollout to prove every failure mode is covered.
Teams often benefit from Slack as the shared lane and Telegram or WebChat as the low-friction operator lane when Slack app policy becomes the blocker.
Verification & references
References