home / skills / openclaw / openclaw / slack
This skill helps you control Slack from OpenClaw by reacting, pinning, and messaging 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 OpenClaw slack tool to react to messages, manage pins, and send, edit, or delete messages. It uses the bot token configured for OpenClaw and supports message-level operations, member lookups, and custom emoji listings. Designed for programmatic Slack workflows from your personal assistant.
Provide channelId and messageId (Slack timestamp) when acting on messages. Actions include reacting, listing reactions, sending/editing/deleting messages, reading recent messages, pinning/unpinning, listing pins, fetching member info, and listing custom emoji. Inputs like emoji, target (channel:<id> or user:<id>), and content are accepted depending on the action.
What format should messageId use?
Use Slack's message timestamp format, e.g., 1712023032.1234.
How do I target a user versus a channel when sending?
Set the to field to channel:<id> for channels or user:<id> for direct messages.