Slack Channel Integration: Setup and Runtime Behavior
Slack integration covers DMs and channels through Slack apps, with Socket Mode as the default transport. It also explains HTTP Request URLs and relay mode for managed deployments.
Read this when
- Setting up Slack or debugging Slack socket, HTTP, or relay mode
Slack integration handles both DMs and channels through Slack apps. Socket Mode serves as the default transport, though HTTP Request URLs work too. For managed deployments where a trusted router controls Slack ingress, relay mode is the option.
-
Pairing, pairing mode is the default for Slack DMs.
-
Slash commands, command catalog plus how native commands behave.
-
Channel troubleshooting, repair playbooks and diagnostics that span channels.
What each page covers
- Slack setup, install the plugin, build the Slack app, and set up tokens.
- Slack transports, a comparison of Socket Mode, HTTP Request URLs, and relay mode.
- Slack Enterprise Grid, installing org-wide throughout a Grid organization.
- Slack manifest and scopes, the base app manifest, OAuth scopes, and settings that are optional.
- Slack access control, DM policy, channel allowlists, mention gating, and action gates.
- Slack threads and sessions, session keys, reply threading, and Agent View DMs.
- Slack message behavior, ack reactions, streaming previews, and slash commands.
- Slack media and attachments, audio clips, inbound files, chunking, and delivery targets.
- Slack charts, tables, and approvals, native charts, tables, modals, and approval buttons.
- Slack events and operations, system events, interactions, and presence polling.
- Slack troubleshooting, silent channels, ignored DMs, and dead transports.
Where each section moved
Each heading from the earlier single-page version retains its anchor in this location, meaning a link like /channels/slack#text-streaming continues to resolve. Every entry directs you to whichever page now contains that content.
- Selecting a transport
- Relay mode
- Enterprise Grid org-wide installs
- Socket Mode
- HTTP Request URLs
- Install
- Quick setup
- User identity (post as a real person)
- Socket Mode transport tuning
- Manifest and scope checklist
- Additional manifest settings
- Token model
- Actions and gates
- Access control and routing
- Group DMs (MPDMs) and bots
- Threading, sessions, and reply tags
- Agent View DMs
- Ack reactions
- Emoji (ackReaction)
- Scope (messages.ackReactionScope)
- Text streaming
- Typing reaction fallback
- Voice input
- Media, chunking, and delivery
- Commands and slash behavior
- Native charts
- Native tables
- Plugin-owned modal submissions
- Native approvals in Slack
- Events and operational behavior
- Presence events
- Troubleshooting
- Attachment media reference
- Supported media types
- Inbound pipeline
- Thread-root attachment inheritance
- Multi-attachment handling
- Size, download, and model limits
- Known limits
- Related documentation
- User identity (post as a real person)
- Group DMs (MPDMs) and bots
- Threading, sessions, and reply tags
- Emoji (ackReaction)
- Scope (messages.ackReactionScope)
- Media, chunking, and delivery
- Size, download, and model limits
- Socket Mode (default)
- Create a new Slack app
- Configure OpenClaw
- Start gateway
- HTTP Request URLs
- Create a new Slack app
- Configure OpenClaw
- Start gateway
- Optional native slash commands
- Socket Mode (default)
- HTTP Request URLs
- Optional authorship scopes (write operations)
- Optional user-token scopes (read operations)
- DM policy
- Channel policy
- Mentions and channel users
- Inbound attachments
- Outbound text and files
- Delivery targets
- No replies in channels
- DM messages ignored
- Agent View DMs share one session
- Socket mode not connecting
- HTTP mode not receiving events
- Native/slash commands not firing
Configuration reference
For the main reference, see Configuration reference - Slack.
High-signal Slack fields
- mode/auth:
postAs,mode,botToken,appToken,userToken,signingSecret,webhookPath,accounts.* - DM access:
dm.enabled,dmPolicy,allowFrom(legacy:dm.policy,dm.allowFrom),dm.groupEnabled,dm.groupChannels - compatibility toggle:
dangerouslyAllowNameMatching(break-glass, keep off unless needed) - channel access:
groupPolicy,channels.*,channels.*.users,channels.*.requireMention,implicitMentions.* - group introductions:
joinIntro,accounts.*.joinIntro(default:true) - threading/history:
replyToMode,replyToModeByChatType,thread.*,historyLimit,dmHistoryLimit,dms.*.historyLimit - presence wakes:
presenceEvents.mode,presenceEvents.prompt,channels.*.presenceEvents.*(off|auto|on, defaultoff) - delivery:
textChunkLimit,streaming.chunkMode,mediaMaxMb,streaming,streaming.nativeTransport,streaming.preview.toolProgress - unfurls:
unfurlLinks(default:false),unfurlMediaforchat.postMessagelink/media preview control. SetunfurlLinks: trueto opt back into link previews - ops/features:
configWrites,commands.native,slashCommand.*,actions.*,userToken,userTokenReadOnly
Related
-
Pairing, Attach a Slack user to the gateway.
-
Reactions, How emoji reactions behave for the
messagetool. -
Groups, Behavior for channels and group DMs.
-
Channel routing, Send inbound messages on to agents.
-
Security, Hardening guidance and the threat model.
-
Configuration, How config is laid out and which precedence applies.
-
Slash commands: Full list of available commands plus how they behave.