Skip to content
Guides

OpenClaw on Slack

The manifest, Socket Mode, and why a channel stays silent

5 min read

Slack on OpenClaw is a Slack app you create from a manifest the docs provide, connected over Socket Mode by default, with HTTP request URLs as the alternative. DMs, channels and group DMs all work, and the app can also run in Slack’s Agent View. Most of the setup is on Slack’s side; most of the silence people report is on the access-control side. This guide covers both, in that order.

Setup

  • Install the Slack plugin. It does nothing until the app and the channel settings exist.
  • Create a new Slack app from a manifest: the docs ship one with the bot user, App Home, Agent View, a slash command and every scope it needs. Paste it, pick the workspace, create.
  • Socket Mode is the default transport and needs no public URL. HTTP request URLs are supported when you would rather receive events over HTTP, and a relay mode exists for managed deployments with a trusted router.
  • Give OpenClaw the bot token and the app-level token, start the Gateway, and approve the first DM pairing.

The scopes are the part worth reading before you paste: channel and group history, chat write, files read and write, reactions, pins, user groups and users read. That list is what lets the assistant read a channel it is in and act there, and it is also the list a workspace admin will ask you about.

Who may reach it

DMs follow the same policy model as every OpenClaw channel: pairing by default, an allowlist, open with an explicit wildcard, or disabled. Group DMs are off until you enable them. Channels are allowlisted by ID rather than by name, and a channel can carry its own user allowlist and its own mention rule. Policy edits apply to new messages without reconnecting; changing tokens or accounts restarts the Slack monitor while the Gateway keeps running.

Keys must be channel IDs or workspace-qualified channel targets, not names.

Why a channel stays silent

  • Group policy or the channel allowlist: keys are channel IDs such as C12345678, or workspace-qualified targets, never names.
  • Mention gating, and the per-channel user allowlist.
  • Ambient mode: if unmentioned chatter is configured as room events, the assistant reads it as context and stays silent unless it decides to speak with the message tool.
  • DMs ignored: DMs disabled, a policy that still needs the wildcard, a pairing never approved, or a group DM with group DMs off.

The status probe, the logs and doctor are the ladder, and a rejected inbound event is logged with its reason. One reported complaint the docs do not settle with a switch: thread blindness, where the agent sees the latest message but not the thread it sits in. OpenClaw not responding has the cross-channel version of the ladder.

On Diali

On Diali the Slack app is created the same way, from the dashboard’s guided setup, and the tokens go to the vault rather than a config file; Socket Mode means nothing has to be exposed. Channel allowlists, mention rules and DM policy stay yours. Slack on Diali is the channel page and Hosted OpenClaw on Diali the assistant.

  • A manifest, two tokens, Socket Mode.
  • Channels are allowlisted by ID; DMs by policy.
  • Silence is almost always policy, and the logs say which.
Get started

Stop reading about it, build one

Set up an agent, pick a channel, and have it working inside the app you already keep open.