Slack
Control Slack from OpenClaw — react to messages, send/edit/delete, manage pins, and fetch member info.
Tags: slack, messaging, chat, team, productivity
Category: Messaging
Use Cases
- Team AI assistant: @mention for questions, research, and task execution
- Automated status reports: cron-scheduled updates to team channels
- Ticket triage: AI reads messages and files Linear/Jira tickets
- Meeting summaries: AI posts structured notes after discussions
- Cross-tool actions: 'Update the Notion project board' triggered from Slack
- On-call support: AI monitors channels and escalates urgent issues
- Onboarding: AI answers new team member questions from documentation
Tips
- Configure the Slack channel in openclaw.json under channels.slack with your bot token
- Use thread replies for detailed responses to keep channels clean
- React with emoji to acknowledge messages without cluttering the conversation
- Set up the bot's profile picture and name in Slack App settings for a polished appearance
- Use Slack's Block Kit for rich message formatting when plain text isn't enough
- Combine with cron for scheduled Slack updates: daily standups, weekly reports
- Pin important AI-generated summaries for easy reference
- Use the message tool's Slack-specific actions: react, pin, edit, delete
Known Issues & Gotchas
- Requires a Slack App with appropriate OAuth scopes — bot tokens (xoxb-) only, not user tokens
- The bot must be explicitly invited to channels it needs to access — it can't see private channels by default
- Slack rate limits: ~1 message per second per channel, ~50 API calls per minute — avoid tight loops
- Thread replies vs. channel messages are different API calls — the skill handles this but be aware of the distinction
- Emoji reactions require the exact emoji name (e.g., 'thumbsup' not '👍') — custom workspace emojis work too
- Message formatting uses Slack's mrkdwn, not standard Markdown — some syntax differences (e.g., bold is *text* not **text**)
- File uploads have size limits based on your Slack plan
- The bot's display name and avatar are set in the Slack App config, not in OpenClaw
Alternatives
- Discord (channel)
- Telegram (channel)
- Microsoft Teams
- Slack Workflow Builder
- Zapier/Make Slack integrations
Community Feedback
SlackClaw is an AI agent that runs inside Slack. You @mention it in a channel and it can actually take actions across your tools — send emails, file tickets in Linear or Jira, pull data from Notion, triage GitHub PRs.
— Reddit r/Slack
It remembers past conversations, runs on a schedule, and picks up context without you re-explaining everything. You can say 'send the Friday status report at 5pm' once and it just does it every week.
— Reddit r/Slack
Building OpenClaw integrations with Notion and Slack — a custom skill so the agent can create/update deals, move pipeline stages, log activities, and schedule follow-ups.
— LinkedIn
OpenClaw connects to Slack as a channel, letting your AI agent participate in team conversations, react to messages, and automate workflows directly from your workspace.
— KDnuggets
Configuration Examples
Configure Slack channel in openclaw.json
{
"channels": {
"slack": {
"botToken": "xoxb-your-bot-token",
"appToken": "xapp-your-app-token",
"defaultChannel": "#general"
}
}
}Required Slack App OAuth scopes
# Bot Token Scopes needed:
chat:write # Send messages
reactions:write # Add/remove reactions
reactions:read # Read reactions
pins:write # Pin/unpin messages
channels:history # Read public channel messages
groups:history # Read private channel messages
im:history # Read DMs
users:read # Get user info
files:write # Upload filesCommon Slack actions via OpenClaw
# Send a message to a channel
message send --channel slack --target '#engineering' --message 'Deploy complete ✅'
# React to a message
message react --channel slack --emoji 'eyes' --messageId '1234567890.123456'
# Pin a message
message pin --channel slack --messageId '1234567890.123456'Installation
# Configure channels.slack in openclaw.jsonSource: bundled