slackbot — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited slackbot (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.

Slack is a team communication platform with channels, direct messages, file sharing, and workflow automation. This integration uses managed OAuth through ClawLink to provide comprehensive Slack workspace automation -- from messaging and channel management to file handling, reactions, reminders, and canvases.
| Step 1: Install | Step 2: Pair Account | Step 3: Connect Slack |
|---|---|---|
![]() | ![]() | App-specific connection GIF coming soon |
| Run the install command in OpenClaw | Sign in and approve the device | Open the dashboard and connect Slack |
┌─────────────────┐ ┌──────────────┐ ┌──────────────────┐
│ OpenClaw │────▶│ ClawLink │────▶│ Slack API │
│ (User Chat) │ │ (OAuth) │ │ │
└─────────────────┘ └──────────────┘ └──────────────────┘openclaw plugins install clawhub:clawlink-plugin
openclaw config set tools.alsoAllow '["clawlink-plugin"]' --strict-json
openclaw gateway restartSend a message to a channel:
clawlink_execute_tool --integration slackbot --tool slackbot_send_message --args '{"channel": "C01234567", "markdown_text": "Deployment complete. All systems operational."}'Search for messages in the workspace:
clawlink_execute_tool --integration slackbot --tool slackbot_search_messages --args '{"query": "quarterly report"}'List all channels in the workspace:
clawlink_execute_tool --integration slackbot --tool slackbot_list_all_channelsSlack uses OAuth 2.0 managed by ClawLink. No API keys are needed. Authorize your Slack workspace through the ClawLink dashboard. The connection is stored securely and refreshed automatically.
Connect at: https://claw-link.dev/dashboard?add=slackbot
List connections:
clawlink_list_integrationsVerify connection:
clawlink_execute_tool --integration slackbot --tool slackbot_fetch_team_infoReconnect: If a connection expires, visit the dashboard URL above and reconnect Slack.
| Tool | Description | Mode |
|---|---|---|
slackbot_send_message | Post a message to a channel, DM, or private group | Write |
slackbot_updates_a_message | Update an existing message by timestamp | Write |
slackbot_deletes_a_message_from_a_chat | Delete a message by channel and timestamp | Write (Destructive) |
slackbot_send_ephemeral_message | Send a message visible only to one user in a channel | Write |
slackbot_send_me_message | Send a /me message displayed as a third-person action | Write |
slackbot_schedule_message | Schedule a message for future delivery (up to 120 days) | Write |
slackbot_delete_scheduled_message | Delete a pending scheduled message | Write (Destructive) |
slackbot_customize_url_unfurl | Customize URL preview content in a message | Write |
| Tool | Description | Mode |
|---|---|---|
slackbot_list_all_channels | List conversations available to the user | Read |
slackbot_find_channels | Find channels by name, topic, purpose, or description | Read |
slackbot_retrieve_conversation_information | Retrieve metadata for a conversation by ID | Read |
slackbot_retrieve_conversation_members_list | Retrieve paginated member IDs for a channel | Read |
slackbot_fetch_conversation_history | Fetch chronological messages from a channel | Read |
slackbot_fetch_message_thread_from_a_conversation | Retrieve replies to a specific parent message | Read |
slackbot_create_channel | Create a public or private channel | Write |
slackbot_join_an_existing_conversation | Join an existing conversation by ID | Write |
slackbot_leave_conversation | Leave a conversation by channel ID | Write |
slackbot_invite_users_to_a_channel | Invite users to a channel by their Slack user IDs | Write |
slackbot_remove_user_from_conversation | Remove a user from a conversation | Write (Destructive) |
slackbot_archive_conversation | Archive a conversation (makes it read-only) | Write |
slackbot_unarchive_channel | Reverse conversation archival | Write |
slackbot_rename_conversation | Rename a Slack channel | Write |
slackbot_set_conversation_purpose | Set the purpose text for a conversation | Write |
slackbot_set_the_topic_of_a_conversation | Set or update the topic for a conversation | Write |
slackbot_set_read_cursor_in_a_conversation | Mark a message as the most recently read | Write |
slackbot_close_conversation | Close a DM or MPDM from the sidebar | Write |
slackbot_open_dm | Open or resume a DM with one or more users | Write |
| Tool | Description | Mode |
|---|---|---|
slackbot_list_all_users | List all users with profile details in the workspace | Read |
slackbot_find_users | Find users by email, name, or display name | Read |
slackbot_find_user_by_email_address | Find a user by their registered email | Read |
slackbot_retrieve_detailed_user_information | Retrieve comprehensive info for a user ID | Read |
slackbot_retrieve_user_profile_information | Retrieve profile information for a user | Read |
slackbot_get_user_presence | Retrieve a user's real-time presence status | Read |
slackbot_set_user_presence | Manually set a user's presence (active/away) | Write |
| Tool | Description | Mode |
|---|---|---|
slackbot_list_files_with_filters_in_slack | List files with filtering by user, channel, or type | Read |
slackbot_retrieve_detailed_information_about_a_file | Retrieve file metadata and comments | Read |
slackbot_download_file | Download file content and get a public URL | Read |
slackbot_upload_or_create_a_file_in_slack | Upload files, images, or documents to channels | Write |
slackbot_delete_file | Permanently delete a file by ID | Write (Destructive) |
slackbot_delete_file_comment | Delete a comment from a file | Write (Destructive) |
slackbot_enable_public_sharing_of_a_file | Generate a public URL for a file | Write |
slackbot_revoke_file_public_sharing | Revoke a file's public URL | Write (Destructive) |
| Tool | Description | Mode |
|---|---|---|
slackbot_list_remote_files | List remote files added to Slack | Read |
slackbot_get_remote_file | Retrieve information about a remote file | Read |
slackbot_add_remote_file | Add a reference to an external file (Google Drive, etc.) | Write |
slackbot_share_remote_file | Share a remote file into channels | Write |
slackbot_update_remote_file | Update metadata for an existing remote file | Write |
slackbot_remove_remote_file | Remove a Slack reference to an external file | Write (Destructive) |
| Tool | Description | Mode |
|---|---|---|
slackbot_fetch_item_reactions | Fetch reactions for a message, file, or file comment | Read |
slackbot_list_user_reactions | List all reactions added by a specific user | Read |
slackbot_add_reaction_to_an_item | Add an emoji reaction to a message | Write |
slackbot_remove_reaction_from_item | Remove an emoji reaction from an item | Write (Destructive) |
| Tool | Description | Mode |
|---|---|---|
slackbot_list_pinned_items | List all pinned messages and files in a channel | Read |
slackbot_pin_item | Pin a message to a channel | Write |
slackbot_unpin_item | Unpin a message from a channel | Write (Destructive) |
| Tool | Description | Mode |
|---|---|---|
slackbot_list_reminders | List all reminders for the authenticated user | Read |
slackbot_get_reminder | Retrieve details of a specific reminder | Read |
slackbot_create_a_reminder | Create a new reminder (supports natural language time) | Write |
slackbot_delete_reminder | Delete an existing reminder | Write (Destructive) |
| Tool | Description | Mode |
|---|---|---|
slackbot_get_call_info | Retrieve a point-in-time snapshot of a call | Read |
slackbot_start_call | Register a new call in Slack | Write |
slackbot_end_call | End an ongoing Slack call | Write (Destructive) |
slackbot_update_call_info | Update call title, join URL, or desktop app URL | Write |
slackbot_add_call_participants | Register participants added to a call | Write |
slackbot_remove_call_participants | Register participants removed from a call | Write |
| Tool | Description | Mode |
|---|---|---|
slackbot_lookup_canvas_sections | Look up section IDs in a Canvas | Read |
slackbot_create_canvas | Create a new Slack Canvas with optional content | Write |
slackbot_edit_canvas | Edit a Canvas with granular content operations | Write |
slackbot_delete_canvas | Delete a Canvas permanently | Write (Destructive) |
| Tool | Description | Mode |
|---|---|---|
slackbot_list_user_groups | List all user groups in the workspace | Read |
slackbot_list_user_group_members | List all user IDs within a user group | Read |
slackbot_create_user_group | Create a new user group (subteam) | Write |
slackbot_update_user_group | Update user group details (name, description, handle) | Write |
slackbot_update_user_group_members | Replace all members of a user group | Write |
slackbot_enable_user_group | Re-enable a disabled user group | Write |
slackbot_disable_user_group | Disable (archive) a user group | Write |
| Tool | Description | Mode |
|---|---|---|
slackbot_search_messages | Search messages with query modifiers and date ranges | Read |
slackbot_search_all | Unified search across messages and files | Read |
| Tool | Description | Mode |
|---|---|---|
slackbot_fetch_team_info | Fetch metadata about the current Slack team | Read |
slackbot_get_team_profile | Retrieve profile field definitions for the team | Read |
slackbot_list_custom_emojis | List all custom emojis for the workspace | Read |
slackbot_get_bot_user | Retrieve information about a specific bot user | Read |
slackbot_list_conversations | List conversations accessible to a user | Read |
| Tool | Description | Mode |
|---|---|---|
slackbot_get_user_dnd_status | Retrieve a user's DND status | Read |
slackbot_retrieve_current_user_dnd_status | Retrieve the current user's DND status | Read |
Send a message to a channel:
{
"tool": "slackbot_send_message",
"args": {
"channel": "C01234567",
"markdown_text": "Build completed successfully. See details at https://ci.example.com/123"
}
}Schedule a message for later:
{
"tool": "slackbot_schedule_message",
"args": {
"channel": "C01234567",
"post_at": 1750000000,
"text": "Standup starts in 10 minutes!"
}
}Search messages with filters:
{
"tool": "slackbot_search_messages",
"args": {
"query": "from:@john in:#engineering after:2026-05-01"
}
}Create a channel and invite users:
{
"tool": "slackbot_create_channel",
"args": {
"name": "project-phoenix",
"is_private": false
}
}Add a reaction to a message:
{
"tool": "slackbot_add_reaction_to_an_item",
"args": {
"channel": "C01234567",
"timestamp": "1234567890.123456",
"name": "thumbsup"
}
}clawlink_list_integrations to confirm slackbot is connected.clawlink_list_tools --integration slackbot to see the live catalog.slackbot_list_all_channels to discover channels (returns channel IDs needed for other tools).slackbot_find_users to locate specific users.Read Flow:
list_all_channels → retrieve_conversation_information → fetch_conversation_history
find_channels → get channel ID → fetch_conversation_history → fetch_message_thread
Write Flow:
find_channels → get channel ID → send_message (confirm)
find_users → open_dm → send_message (confirm)
Search Flow:
search_messages / search_all → retrieve results → act on specific messagesfetch_conversation_history only returns main channel timeline messages. For threaded replies, use fetch_message_thread_from_a_conversation with the parent message's thread_ts.Retry-After headers on 429 responses.ts value, not the thread's ID.open_dm first to get the DM channel ID, then use that ID with send_message.| Status / Error | Meaning |
|---|---|
channel_not_found | Invalid channel ID; use find_channels to resolve names to IDs |
not_in_channel | Bot is not a member of the target channel |
channel_is_archived | Channel is archived; unarchive it first |
users_not_found | Email not registered, user inactive, or privacy settings hide it |
| 429 Too Many Requests | Rate limited; wait for Retry-After seconds before retrying |
Run clawlink_list_tools --integration slackbot to verify the integration is active. If empty, reconnect at https://claw-link.dev/dashboard?add=slackbot.
Use slackbot_find_channels with exact_match=false to locate channels. Channel names are converted to lowercase. Private channels require the bot to be a member.
Verify the bot is a member of the target channel. Use find_channels to confirm the channel ID is correct. Check that markdown_text or blocks content is provided.
Use fetch_message_thread_from_a_conversation with the parent message's thread_ts, not the channel's ts. The parent message's thread_ts is found in fetch_conversation_history results.
Powered by [ClawLink](https://claw-link.dev/?utm_source=clawhub&utm_medium=referral&utm_content=slackbot) -- an integration hub for OpenClaw

~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.