slack-automation
Automate Slack workspace operations including messaging, search, channel management, and reaction workflows through Composio's Slack toolkit.
- License 许可
- MIT
- 最近更新
- 2026-11-11
- Stars
- ★ 1
- Forks
- 0
01 前言 Front Matter
- name
- slack-automation
- risk
- critical
- source
- community
- date_added
- 2026-02-27
- description
- Automate Slack workspace operations including messaging, search, channel management, and reaction workflows through Composio's Slack toolkit.
03 SKILL.md 正文
Slack Automation via Rube MCP
Automate Slack workspace operations including messaging, search, channel management, and reaction workflows through Composio's Slack toolkit.
Prerequisites
- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)
- Active Slack connection via
RUBE_MANAGE_CONNECTIONSwith toolkitslack - Always call
RUBE_SEARCH_TOOLSfirst to get current tool schemas
Setup
Get Rube MCP: Add https://rube.app/mcp as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.
- Verify Rube MCP is available by confirming
RUBE_SEARCH_TOOLSresponds - Call
RUBE_MANAGE_CONNECTIONSwith toolkitslack - If connection is not ACTIVE, follow the returned auth link to complete Slack OAuth
- Confirm connection status shows ACTIVE before running any workflows
Core Workflows
1. Send Messages to Channels
When to use: User wants to post a message to a Slack channel or DM
Tool sequence:
SLACK_FIND_CHANNELS- Resolve channel name to channel ID [Prerequisite]SLACK_LIST_ALL_CHANNELS- Fallback if FIND_CHANNELS returns empty/ambiguous results [Fallback]SLACK_FIND_USERS- Resolve user for DMs or @mentions [Optional]SLACK_OPEN_DM- Open/reuse a DM channel if messaging a user directly [Optional]SLACK_SEND_MESSAGE- Post the message with resolved channel ID [Required]SLACK_UPDATES_A_SLACK_MESSAGE- Edit the posted message if corrections needed [Optional]
Key parameters:
channel: Channel ID or name (without '#' prefix)markdown_text: Preferred field for formatted messages (supports headers, bold, italic, code blocks)text: Raw text fallback (deprecated in favor of markdown_text)thread_ts: Timestamp of parent message to reply in a threadblocks: Block Kit layout blocks (deprecated, use markdown_text)
Pitfalls:
SLACK_FIND_CHANNELSrequiresqueryparam; missing it errors with "Invalid request data provided"SLACK_SEND_MESSAGErequires valid channel plus one of markdown_text/text/blocks/attachments- Invalid block payloads return error=invalid_blocks (max 50 blocks)
- Replies become top-level posts if
thread_tsis omitted - Persist
response.data.channelandresponse.data.message.tsfrom SEND_MESSAGE for edit/thread operations
2. Search Messages and Conversations
When to use: User wants to find specific messages across the workspace
Tool sequence:
SLACK_FIND_CHANNELS- Resolve channel for scoped search within:#channel[Optional]SLACK_FIND_USERS- Resolve user for author filter withfrom:@user[Optional]SLACK_SEARCH_MESSAGES- Run keyword search across accessible conversations [Required]SLACK_FETCH_MESSAGE_THREAD_FROM_A_CONVERSATION- Expand threads for relevant hits [Required]
Key parameters:
query: Search string supporting modifiers (in:#channel,from:@user,before:YYYY-MM-DD,after:YYYY-MM-DD,has:link,has:file)count: Results per page (max 100), or total with auto_paginate=truesort: 'score' (relevance) or 'timestamp' (chronological)sort_dir: 'asc' or 'desc'
Pitfalls:
- Validation fails if
queryis missing/empty ok=truecan still mean no hits (response.data.messages.total=0)- Matches are under
response.data.messages.matches(sometimes alsoresponse.data_preview.messages.matches) match.textmay be empty/truncated; key info can appear inmatches[].attachments[]- Thread expansion via FETCH_MESSAGE_THREAD can truncate when
response.data.has_more=true; paginate viaresponse_metadata.next_cursor
3. Manage Channels and Users
When to use: User wants to list channels, users, or workspace info
Tool sequence:
SLACK_FETCH_TEAM_INFO- Validate connectivity and get workspace identity [Required]SLACK_LIST_ALL_CHANNELS- Enumerate public channels [Required]SLACK_LIST_CONVERSATIONS- Include private channels and DMs [Optional]SLACK_LIST_ALL_USERS- List workspace members [Required]SLACK_RETRIEVE_CONVERSATION_INFORMATION- Get detailed channel metadata [Optional]SLACK_LIST_USER_GROUPS_FOR_TEAM_WITH_OPTIONS- List user groups [Optional]
Key parameters:
cursor: Pagination cursor fromresponse_metadata.next_cursorlimit: Results per page (default varies; set explicitly for large workspaces)types: Channel types filter ('public_channel', 'private_channel', 'im', 'mpim')
Pitfalls:
- Workspace metadata is nested under
response.data.team, not top-level SLACK_LIST_ALL_CHANNELSreturns public channels only; useSLACK_LIST_CONVERSATIONSfor private/IM coverageSLACK_LIST_ALL_USERScan hit HTTP 429 rate limits; honor Retry-After header- Always paginate via
response_metadata.next_cursoruntil empty; de-duplicate byid
4. React to and Thread Messages
When to use: User wants to add reactions or manage threaded conversations
Tool sequence:
SLACK_SEARCH_MESSAGESorSLACK_FETCH_CONVERSATION_HISTORY- Find the target message [Prerequisite]SLACK_ADD_REACTION_TO_AN_ITEM- Add an emoji reaction [Required]SLACK_FETCH_ITEM_REACTIONS- List reactions on a message [Optional]SLACK_REMOVE_REACTION_FROM_ITEM- Remove a reaction [Optional]SLACK_SEND_MESSAGE- Reply in thread usingthread_ts[Optional]SLACK_FETCH_MESSAGE_THREAD_FROM_A_CONVERSATION- Read full thread [Optional]
Key parameters:
channel: Channel ID where the message livestimestamp/ts: Message timestamp (unique identifier like '1234567890.123456')name: Emoji name without colons (e.g., 'thumbsup', 'wave::skin-tone-3')thread_ts: Parent message timestamp for threaded replies
Pitfalls:
- Reactions require exact channel ID + message timestamp pair
- Emoji names use Slack's naming convention without colons
SLACK_FETCH_CONVERSATION_HISTORYonly returns main channel timeline, NOT threaded replies- Use
SLACK_FETCH_MESSAGE_THREAD_FROM_A_CONVERSATIONwith parent'sthread_tsto get thread replies
5. Schedule Messages
When to use: User wants to schedule a message for future delivery
Tool sequence:
SLACK_FIND_CHANNELS- Resolve channel ID [Prerequisite]SLACK_SCHEDULE_MESSAGE- Schedule the message withpost_attimestamp [Required]
Key parameters:
channel: Resolved channel IDpost_at: Unix timestamp for delivery (up to 120 days in advance)text/blocks: Message content
Pitfalls:
- Scheduling is limited to 120 days in advance
post_atmust be a Unix timestamp, not ISO 8601
Common Patterns
ID Resolution
Always resolve display names to IDs before operations:
- Channel name -> Channel ID:
SLACK_FIND_CHANNELSwithqueryparam - User name -> User ID:
SLACK_FIND_USERSwithsearch_queryoremail - DM channel:
SLACK_OPEN_DMwith resolved user IDs
Pagination
Most list endpoints use cursor-based pagination:
- Follow
response_metadata.next_cursoruntil empty - Set explicit
limitvalues (e.g., 100-200) for reliable paging - De-duplicate results by
idacross pages
Message Formatting
- Prefer
markdown_textovertextorblocksfor formatted messages - Use
<@USER_ID>format to mention users (not @username) - Use
\nfor line breaks in markdown_text
Known Pitfalls
- Channel resolution:
SLACK_FIND_CHANNELScan return empty results if channel is private and bot hasn't been invited - Rate limits:
SLACK_LIST_ALL_USERSand other list endpoints can hit HTTP 429; honor Retry-After header - Nested responses: Results may be nested under
response.data.results[0].response.datain wrapped executions - Thread vs channel:
SLACK_FETCH_CONVERSATION_HISTORYreturns main timeline only; useSLACK_FETCH_MESSAGE_THREAD_FROM_A_CONVERSATIONfor thread replies - Message editing: Requires both
channeland original messagets; persist these from SEND_MESSAGE response - Search delays: Recently posted messages may not appear in search results immediately
- Scope limitations: Missing OAuth scopes can cause 403 errors; check with
SLACK_GET_APP_PERMISSION_SCOPES
Quick Reference
| Task | Tool Slug | Key Params |
|---|---|---|
| Find channels | SLACK_FIND_CHANNELS |
query |
| List all channels | SLACK_LIST_ALL_CHANNELS |
limit, cursor, types |
| Send message | SLACK_SEND_MESSAGE |
channel, markdown_text |
| Edit message | SLACK_UPDATES_A_SLACK_MESSAGE |
channel, ts, markdown_text |
| Search messages | SLACK_SEARCH_MESSAGES |
query, count, sort |
| Get thread | SLACK_FETCH_MESSAGE_THREAD_FROM_A_CONVERSATION |
channel, ts |
| Add reaction | SLACK_ADD_REACTION_TO_AN_ITEM |
channel, name, timestamp |
| Find users | SLACK_FIND_USERS |
search_query or email |
| List users | SLACK_LIST_ALL_USERS |
limit, cursor |
| Open DM | SLACK_OPEN_DM |
user IDs |
| Schedule message | SLACK_SCHEDULE_MESSAGE |
channel, post_at, text |
| Get channel info | SLACK_RETRIEVE_CONVERSATION_INFORMATION |
channel ID |
| Channel history | SLACK_FETCH_CONVERSATION_HISTORY |
channel, oldest, latest |
| Workspace info | SLACK_FETCH_TEAM_INFO |
(none) |
When to Use
This skill is applicable to execute the workflow or actions described in the overview.
04 同仓库更多 Skills
web-artifacts-builder
Suite of tools for creating elaborate, multi-component claude.ai HTML artifacts using modern frontend web technologies (React, Tailwind CSS, shadcn/ui). Use for complex artifacts requiring state management, routing, or shadcn/ui components - not for simple single-file HTML/JSX artifacts.
webapp-testing
Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.
think-tank
Run a Virtual Think Tank — a structured multi-persona debate — before planning or making architectural/design/strategic decisions. Use this skill whenever the user is about to plan a system, make a technology choice, evaluate trade-offs, decide on an approach, or faces any decision where multiple perspectives would sharpen the outcome. Also trigger when the user says "think tank", "debate this", "perspectives on", "trade-offs", "should I use X or Y", "help me decide", "before we plan", or asks for pros/cons of competing approaches. This skill should run BEFORE any implementation planning begins — it produces a structured analysis that feeds into better plans.
skill-creator
Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.
ship-learn-next
Transform learning content (like YouTube transcripts, articles, tutorials) into actionable implementation plans using the Ship-Learn-Next framework. Use when user wants to turn advice, lessons, or educational content into concrete action steps, reps, or a learning quest.
slack-gif-creator
Knowledge and utilities for creating animated GIFs optimized for Slack. Provides constraints, validation tools, and animation concepts. Use when users request animated GIFs for Slack like "make me a GIF of X doing Y for Slack."