home / skills / openclaw / openclaw / slack
This skill lets you control Slack from OpenClaw to react, message, pin, and fetch info in channels and DMs.
npx playbooks add skill openclaw/openclaw --skill slackReview the files below or copy the command above to add this skill to your agents.
---
name: slack
description: Use when you need to control Slack from OpenClaw via the slack tool, including reacting to messages or pinning/unpinning items in Slack channels or DMs.
metadata: { "openclaw": { "emoji": "💬", "requires": { "config": ["channels.slack"] } } }
---
# Slack Actions
## Overview
Use `slack` to react, manage pins, send/edit/delete messages, and fetch member info. The tool uses the bot token configured for OpenClaw.
## Inputs to collect
- `channelId` and `messageId` (Slack message timestamp, e.g. `1712023032.1234`).
- For reactions, an `emoji` (Unicode or `:name:`).
- For message sends, a `to` target (`channel:<id>` or `user:<id>`) and `content`.
Message context lines include `slack message id` and `channel` fields you can reuse directly.
## Actions
### Action groups
| Action group | Default | Notes |
| ------------ | ------- | ---------------------- |
| reactions | enabled | React + list reactions |
| messages | enabled | Read/send/edit/delete |
| pins | enabled | Pin/unpin/list |
| memberInfo | enabled | Member info |
| emojiList | enabled | Custom emoji list |
### React to a message
```json
{
"action": "react",
"channelId": "C123",
"messageId": "1712023032.1234",
"emoji": "✅"
}
```
### List reactions
```json
{
"action": "reactions",
"channelId": "C123",
"messageId": "1712023032.1234"
}
```
### Send a message
```json
{
"action": "sendMessage",
"to": "channel:C123",
"content": "Hello from OpenClaw"
}
```
### Edit a message
```json
{
"action": "editMessage",
"channelId": "C123",
"messageId": "1712023032.1234",
"content": "Updated text"
}
```
### Delete a message
```json
{
"action": "deleteMessage",
"channelId": "C123",
"messageId": "1712023032.1234"
}
```
### Read recent messages
```json
{
"action": "readMessages",
"channelId": "C123",
"limit": 20
}
```
### Pin a message
```json
{
"action": "pinMessage",
"channelId": "C123",
"messageId": "1712023032.1234"
}
```
### Unpin a message
```json
{
"action": "unpinMessage",
"channelId": "C123",
"messageId": "1712023032.1234"
}
```
### List pinned items
```json
{
"action": "listPins",
"channelId": "C123"
}
```
### Member info
```json
{
"action": "memberInfo",
"userId": "U123"
}
```
### Emoji list
```json
{
"action": "emojiList"
}
```
## Ideas to try
- React with ✅ to mark completed tasks.
- Pin key decisions or weekly status updates.
This skill lets the AI control Slack via the slack tool configured in OpenClaw. It supports reacting to messages, managing pins, sending and editing messages, reading channel history, and retrieving member or emoji information. The tool uses the bot token configured for OpenClaw so actions operate as the bot user.
Provide channelId and messageId (Slack message timestamp) for message-specific actions, or target strings like channel:<id> or user:<id> for sends. Call actions such as react, sendMessage, editMessage, deleteMessage, readMessages, pinMessage, unpinMessage, listPins, memberInfo, and emojiList with the required fields. Reactions accept Unicode or :name: emoji formats and message context lines often include channel and slack message id you can reuse directly.
What formats are valid for the messageId?
Use Slack message timestamps like 1712023032.1234 as the messageId.
How do I target a user versus a channel when sending a message?
Use the to field with the prefix channel:<id> for channels or user:<id> for direct messages.