home / skills / openclaw / openclaw / slack

slack skill

/skills/slack

This skill lets you control Slack from OpenClaw to react, message, pin, and fetch info in channels and DMs.

This is most likely a fork of the slack skill from insight68
npx playbooks add skill openclaw/openclaw --skill slack

Review the files below or copy the command above to add this skill to your agents.

Files (1)
SKILL.md
2.4 KB
---
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.

Overview

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.

How this skill works

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.

When to use it

  • Mark task completion or acknowledge a message by adding a reaction.
  • Post or update automated notifications, reminders, or status updates to channels or DMs.
  • Pin important messages like decisions, specs, or weekly reports for easy discovery.
  • Audit or retrieve recent conversation history for context before replying.
  • Look up member details or available custom emoji for richer messages.

Best practices

  • Always include channelId and messageId for operations that target a specific message to avoid unintended edits or deletions.
  • Use explicit target syntax (channel:<id> or user:<id>) when sending messages to ensure correct delivery.
  • Prefer reactions for low-noise acknowledgements instead of sending short textual replies.
  • Rate-limit automated sends and pins to avoid spamming channels; bundle updates where possible.
  • Confirm bot permissions (reactions, pins, chat:write, channels:history, users:read) before attempting actions.

Example use cases

  • Add a ✅ reaction to mark a task message complete and leave the thread untouched.
  • Pin the weekly status post in a team channel so new members can quickly find it.
  • Send a reminder DM to a user: sendMessage to user:<id> with the reminder text.
  • Fetch the last 20 messages from a channel to summarize discussion before posting decisions.
  • List custom emoji to include consistent branding or reactions in automated messages.

FAQ

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.