OperatorGet started
← All integrations
Slack logo

Connect Slack to OpenClaw on Operator.io

Slack is a channel-based messaging platform for teams and organizations. It helps people collaborate in real time, share files, and connect all their tools in one place.

Automate Slack with AI

Your OpenClaw agent lives on Operator and treats Slack as one more service it can drive. Send it an outcome in a Telegram or Discord message and it works out which of the 145 Slack actions to run, then runs them.

Your agent reaches Slack directly or through connectors like Composio MCP and Pipedream MCP, which handle the sign in and token refresh for you, so there is nothing to wire up and no API keys to paste.

What your agent can do with Slack

Your agent can call any of these Slack actions by name as part of a larger task. Ask for the outcome you want and it picks the right ones.

Add call participants

Registers new participants added to a Slack call.

Add emoji

Adds a custom emoji to a Slack workspace given a unique name and an image URL; subject to workspace emoji limits.

Add an emoji alias

Adds an alias for an existing custom emoji in a Slack Enterprise Grid organization.

Add Enterprise user to workspace

Adds an Enterprise user to a workspace. Use when you need to assign an existing Enterprise Grid user to a specific workspace with optional guest restrictions.

Add reaction to message

Adds a specified emoji reaction to an existing message in a Slack channel, identified by its timestamp; does not remove or retrieve reactions.

Add a remote file

Adds a reference to an external file (e.g., Google Drive, Dropbox) to Slack for discovery and sharing, requiring a unique `external_id` and an `external_url` accessible by Slack.

Add a star to an item

Stars a channel, file, file comment, or a specific message in Slack.

Search for channels in Enterprise organization

Tool to search for public or private channels in an Enterprise organization. Use when you need to find channels by name, type, or other criteria within an Enterprise Grid workspace.

Test Slack API connection

Tool to check API calling code by testing connectivity and authentication to the Slack API. Use when you need to verify that API credentials are valid and the connection is working properly.

Archive a Slack conversation

Archives a Slack conversation by its ID, rendering it read-only and hidden while retaining history, ideal for cleaning up inactive channels; be aware that some channels (like #general or certain DMs) cannot be archived and this may impac...

Real-time search

Search Slack messages, files, channels, and users via Real-time Search API. For queries referencing entities by name (users/channels/files), first resolve with content_types (users/channels/files) to get exact ID. If multiple matches, as...

Check search capabilities

Check if semantic (AI-powered) search is available on the Slack workspace. Returns whether natural language queries will trigger semantic search in assistant.search.context calls.

Close conversation channel

Closes a Slack direct message (DM) or multi-person direct message (MPDM) channel, removing it from the user's sidebar without deleting history; this action affects only the calling user's view.

Convert public channel to private

Convert a public Slack channel to private using the Admin API. This is an Enterprise Grid only feature and requires an org-installed user token with admin.conversations:write scope.

Create a reminder

Creates a Slack reminder with specified text and time; time accepts Unix timestamps, seconds from now, or natural language (e.g., 'in 15 minutes', 'every Thursday at 2pm').

Create Slack Canvas

Creates a new Slack Canvas with the specified title and optional content.

Create channel

Initiates a public or private channel-based conversation in a Slack workspace. Immediately creates the channel; invoke only after explicit user confirmation.

Create a channel-based conversation

Creates a new public or private Slack channel with a unique name; the channel can be org-wide, or team-specific if `team_id` is given (required if `org_wide` is false or not provided).

Create Enterprise team

Tool to create an Enterprise team in Slack. Use when you need to create a new team (workspace) within an Enterprise Grid organization. Requires admin.teams:write scope.

Create a Slack user group

Creates a new User Group (often referred to as a subteam) in a Slack workspace.

Customize URL unfurl

Customizes URL previews (unfurling) in a specific Slack message using a URL-encoded JSON in `unfurls` to define custom content or remove existing previews.

Delete Slack Canvas

Deletes a Slack Canvas permanently and irreversibly. Always confirm with the user before calling this tool.

Delete a public or private channel

Permanently and irreversibly deletes a specified public or private channel, including all its messages and files, within a Slack Enterprise Grid organization.

Delete a file by ID

Permanently deletes an existing file from a Slack workspace using its unique file ID; this action is irreversible and also removes any associated comments or shares.

Delete file comment

Deletes a specific comment from a file in Slack; this action is irreversible.

Delete a Slack reminder

Deletes an existing Slack reminder, typically when it is no longer relevant or a task is completed; this operation is irreversible.

Delete a message from a chat

Deletes a message, identified by its channel ID and timestamp, from a Slack channel, private group, or direct message conversation; the authenticated user or bot must be the original poster.

Delete scheduled chat message

Deletes a pending, unsent scheduled message from the specified Slack channel, identified by its `scheduled_message_id`.

Delete user profile photo

Deletes the Slack profile photo for the user identified by the token, reverting them to the default avatar; this action is irreversible and succeeds even if no custom photo was set.

Disable a Slack user group

Disables a specified, currently enabled Slack User Group by its unique ID, effectively archiving it by setting its 'date_delete' timestamp; the group is not permanently deleted and can be re-enabled.

Download Slack file

Tool to download Slack file content and convert it to a publicly accessible URL. Use when you need to retrieve and download files that have been shared in Slack channels or conversations.

Edit Slack Canvas

Edits a Slack Canvas with granular control over content placement. Supports replace, insert (before/after/start/end) operations for flexible content management.

Share file public url

Enables public sharing for an existing Slack file by generating a publicly accessible URL; this action does not create new files. Once enabled, the file is accessible to anyone with the URL — verify intent before sharing sensitive or con...

Enable a user group

Enables a disabled User Group in Slack using its ID, reactivating it for mentions and permissions; this action only changes the enabled status and cannot create new groups or modify other properties.

End a call

Ends an ongoing Slack call, identified by its ID (obtained from `calls.add`), optionally specifying the call's duration.

End DND session

Ends the authenticated user's current Do Not Disturb (DND) session in Slack, affecting only DND status and making them available; if DND is not active, Slack acknowledges the request without changing status.

End snooze

Ends the current user's snooze mode immediately.

Fetch conversation history

Fetches a chronological list of messages and events from a specified Slack conversation, accessible by the authenticated user/bot, with options for pagination and time range filtering. IMPORTANT LIMITATION: This action only returns messa...

Fetch item reactions

Fetches reactions for a Slack message, file, or file comment. Exactly one identifier path must be provided: `channel`+`timestamp`, `file`, or `file_comment`. Mixing identifiers (e.g., providing both `channel`+`timestamp` and `file`) caus...

Retrieve conversation replies

Retrieves replies to a specific parent message in a Slack conversation, using the channel ID and the parent message's timestamp (`ts`). Note: The parent message in the response contains metadata (reply_count, reply_users, latest_reply) t...

Fetch team info

Fetches comprehensive metadata about the current Slack team, or a specified team if the provided ID is accessible.

Find channels

Find channels in a Slack workspace by any criteria - name, topic, purpose, or description. Returns channel IDs (C*/G* prefixed) required by most Slack tools — always resolve names to IDs here before passing to other tools. NOTE: This act...

Lookup users by email

Retrieves the Slack user object for an active user by their registered email address; requires the users:read.email OAuth scope. Fails with 'users_not_found' if the email is unregistered, the user is inactive, the account is a guest, or...

Find users

Find users in a Slack workspace by any criteria - email, name, display name, or other text. Includes optimized email lookup for exact email matches. Zero results may reflect email visibility restrictions or workspace policies, not global...

Get Audit Action Types

Tool to retrieve information about action types available in the Slack Audit Logs API. Use when you need to know which action types can be used to filter audit logs or understand the categories of auditable actions in Slack.

Get Audit Schemas

Tool to retrieve object schema information from the Slack Audit Logs API. Use when you need to understand the types of objects returned by audit log endpoints. Returns a list of all object types with descriptions.

Fetch bot user information

Fetches information for a specified, existing Slack bot user; will not work for regular user accounts or other integration types.

Retrieve call information

Retrieves a point-in-time snapshot of a specific Slack call's information.

Plus 97 more Slack actions your agent can call.

How to connect Slack

You authorize Slack once from your dashboard. Operator holds the connection and refreshes the access tokens on its own, so your agent keeps working with Slack without you signing in again. The same setup unlocks every other app your agent can reach, so you only do it once.

When you are ready, the get started guide walks through standing up your OpenClaw agent.

Common questions about Slack

How do I connect Slack to Operator?
You authorize Slack for your workspace once from the Operator dashboard. Operator holds the connection and refreshes it, so the agent can read and post in the channels you allow without you reauthorizing each time.
Can my agent post and reply in Slack for me?
Yes. It can post messages, reply in threads, react, send direct messages, and read channel history. People have it run a daily standup post, summarize a busy channel on request, or drop an alert into a channel when something changes in another app they have connected.
Can it watch a channel and act on what it sees?
It can read recent messages, pull out what matters, and either summarize them back to you or trigger an action somewhere else, like filing a flagged message as a task or pinging you when a keyword shows up. You tell it what to watch for and what to do.
Do I need to build a Slack bot or paste a token?
No. You authorize Slack through its normal app install flow and Operator manages the connection, so there is no bot to code, no token to paste, and nothing to host.

Slack integrations

Pick an app to see what your agent does across Slack and it, or browse all integrations.

Put your agent on Slack

Sign in, connect Slack, and hand your agent the work. Your first week is free.

Get started