Skip to content

Slackbot

Slackbot

Slackbot gives agents workspace-wide read access to a Slack workspace on behalf of the installing user — allowing them to search messages and files, browse channel and thread history, and look up users by email. While reading as the user, it continues posting and reacting as the bot, and also supports direct messages (DMs).

This tool uses OAuth 2.0 (OAUTH2) to connect.

You will need to authorize access to your Slack account during the connection flow hosted by Composio.

FieldRequiredDescription
OAuth 2.0YesAuthorization via Slack account on the Composio secure page.
  1. Go to Tools in the side menu (/admin/tools).
  2. Open the Available tab and search for Slackbot.
  3. Click the card to open the details modal and hit Connect.
  4. You’re taken to the secure connection page hosted by Composio, where you authorize access (OAuth) to your Slack account.
  5. Once done, you’re sent back to SquadOS with the account connected and the tool available for your agents. (Connection-flow details in Organization Tools.)

SLACKBOT_SEND_MESSAGE

Posts a message to a Slack channel, DM, or private group. Provide exactly one visible content mode: markdown_text for normal Markdown content, or blocks for raw Slack Block Kit layouts.

NameTypeRequiredDescription
channelstringYesID or name of the channel, private group, or IM to send the message to. Do not include the ’#’ prefix. For DMs, use the channel ID returned by SLACKBOT_OPEN_DM.
markdown_textstringNoUse for normal LLM-written message content. Supports Markdown: headings, bold, italic, links, lists, code, quotes, dividers, tables.
blocksarrayNoUse instead of markdown_text only when you need Slack Block Kit capabilities (buttons, menus, checkboxes, etc.).
thread_tsstringNoTimestamp of an existing message to make this a threaded reply.
fallback_textstringNoOnly when using blocks. Fallback text for notifications and accessibility.
unfurl_linksbooleanNoEnable unfurling of text-based URLs.
unfurl_mediabooleanNoEnable media previews from URLs.
reply_broadcastbooleanNoIf true for a threaded reply, also posts to the main channel.
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful or not

SLACKBOT_FETCH_CONVERSATION_HISTORY

Fetches a chronological list of messages and events from a specified Slack conversation, with options for pagination and time range filtering. Note: only returns messages from the main channel timeline; threaded replies require SLACKBOT_FETCH_MESSAGE_THREAD_FROM_A_CONVERSATION.

NameTypeRequiredDescription
channelstringYesID of the public channel, private channel, DM, or multi-person DM to fetch history from.
limitintegerNoMaximum number of messages to request in this single API call (1–1000). Defaults to 100.
cursorstringNoPagination cursor from response_metadata.next_cursor of a previous response.
oldeststringNoStart of the time range. Accepts Unix or Slack timestamp.
lateststringNoEnd of the time range. Accepts Unix or Slack timestamp.
inclusivebooleanNoWhen true, includes messages at the exact oldest or latest boundary timestamps.
include_all_metadatabooleanNoReturn all metadata associated with messages.
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful or not

SLACKBOT_FETCH_MESSAGE_THREAD_FROM_A_CONVERSATION

Retrieves replies to a specific parent message in a Slack conversation, using the channel ID and the parent message’s timestamp. If the returned messages array contains fewer replies than reply_count indicates, check pagination or permissions.

NameTypeRequiredDescription
channelstringNoID of the conversation to fetch the thread from. Must be a channel ID, not a channel name.
tsstringNoTimestamp of the parent message in the thread. Must be the exact full timestamp string of the root/parent message.
limitintegerNoMaximum number of messages to return.
cursorstringNoPagination cursor from response_metadata.next_cursor.
oldeststringNoOldest message timestamp in the time range.
lateststringNoLatest message timestamp in the time range.
inclusivebooleanNoInclude messages with latest or oldest timestamps in results.
include_all_metadatabooleanNoReturn all metadata associated with messages in the thread.
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful or not

SLACKBOT_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.

NameTypeRequiredDescription
querystringYesSearch query to find channels. Searches across channel name, topic, purpose, and description (case-insensitive partial matching).
limitintegerNoMaximum number of channels to return (1 to 999). Defaults to 50.
typesstringNoComma-separated list of channel types: public_channel, private_channel, mpim, im.
team_idstringNoWorkspace ID when using an org-level token.
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful or not

SLACKBOT_SEARCH_MESSAGES

Workspace-wide Slack message search with date ranges and filters. Use query modifiers (e.g., in:#channel, from:@user, before/after:YYYY-MM-DD), sorting, and pagination.

NameTypeRequiredDescription
querystringYesSearch query supporting various modifiers for precise filtering. E.g., "project update" on:2025-09-25 in:#marketing from:@john.
sortstringNoSort by score (relevance) or timestamp (chronological).
sort_dirstringNoSort direction: asc or desc.
countintegerNoNumber of messages per page (max 100).
cursorstringNoPagination cursor; use * for the first call, then next_cursor from subsequent responses.
pageintegerNoPage number for manual pagination. Cannot be used with auto_paginate.
auto_paginatebooleanNoWhen enabled, count becomes the total messages desired and pagination is automatic.
highlightbooleanNoEnable highlighting of search terms in results.
team_idstringNoWorkspace ID for search. Relevant only with an org-level token.
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful or not

SLACKBOT_SEARCH_ALL

Tool to search all messages and files. Use when you need unified content search across channels and files in one call.

NameTypeRequiredDescription
querystringYesSearch query supporting Slack search modifiers/booleans.
sortstringNoSort by score (relevance) or timestamp (chronological).
sort_dirstringNoSort direction: asc or desc.
countintegerNoNumber of results per page; default is 20; max is 100.
pageintegerNoPage number of results to return; default is 1.
highlightbooleanNoIf true, search terms are wrapped with markers for client-side highlighting.
team_idstringNoEncoded team ID to search in; required when using an org-level token.
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful or not

SLACKBOT_LIST_ALL_CHANNELS

Lists all channels in a Slack workspace accessible to the authenticated token, with support for pagination and type filtering.

NameTypeRequiredDescription
limitintegerNoMaximum number of channels to return per page.
cursorstringNoPagination cursor for fetching specific pages of results.
typesstringNoChannel types to include: public_channel, private_channel, mpim, im.
team_idstringNoWorkspace ID when using an org-level token.
exclude_archivedbooleanNoExclude archived channels from results.
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful or not

SLACKBOT_LIST_ALL_USERS

Lists all users in a Slack workspace. Supports pagination and team filtering.

NameTypeRequiredDescription
limitintegerNoMaximum number of users to return per page.
cursorstringNoPagination cursor from response_metadata.next_cursor.
team_idstringNoWorkspace ID when using an org-level token.
include_localebooleanNoInclude the user’s preferred locale in the response.
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful or not

SLACKBOT_LOOKUP_USERS_BY_EMAIL

Finds a Slack user by email address and returns the ID and profile data.

NameTypeRequiredDescription
emailstringYesEmail address of the user to look up.
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful or not

SLACKBOT_OPEN_DM

Opens or resumes a Slack direct message (DM) or multi-person direct message (MPIM) by providing either user IDs or an existing channel ID. Returns already_open=true when the DM already exists.

NameTypeRequiredDescription
usersstringNoComma-separated string of user IDs (1 for a DM, or 2–8 for an MPIM). Only Slack user IDs (U0123456789), not emails or display names.
channelstringNoID or name of an existing DM or MPIM channel to open/resume.
return_imbooleanNoIf true, returns the full DM channel object.
prevent_creationbooleanNoDo not create a new DM or MPIM; only check if one already exists.
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful or not

SLACKBOT_CREATE_CHANNEL

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

NameTypeRequiredDescription
namestringYesName of the public or private channel to create. Must be lowercase, unique, and contain no spaces or periods; max 80 characters.
is_privatebooleanNoCreate a private channel instead of a public one.
team_idstringNoEncoded team ID to create the channel in, required if org token is used.
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful or not

SLACKBOT_INVITE_USERS_TO_A_CHANNEL

Invites users to an existing Slack channel using their valid Slack User IDs. Response is always HTTP 200; inspect ok, error, and errors fields to confirm users were added.

NameTypeRequiredDescription
channelstringNoID of the public or private Slack channel to invite users to. Bot must already be a member of private channels.
usersstringNoComma-separated string of valid Slack User IDs to invite. Up to 1000 user IDs can be included.
forcebooleanNoWhen set to true and multiple user IDs are provided, continue inviting the valid ones while disregarding invalid IDs.
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful or not

SLACKBOT_ADD_REACTION_TO_AN_ITEM

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

NameTypeRequiredDescription
namestringYesName of the emoji to add as a reaction (e.g., ‘thumbsup’). This is the emoji name without colons. For emojis with skin tone modifiers, append ‘::skin-tone-X’ where X is a number from 2 to 6.
channelstringYesID of the channel where the message to add the reaction to was posted.
timestampstringYesTimestamp of the message to which the reaction will be added. Must be the exact message timestamp.
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful or not

SLACKBOT_SCHEDULE_MESSAGE

Schedules a message to a Slack channel, DM, or private group for a future time (post_at), requiring text, blocks, or attachments for content; scheduling is limited to 120 days in advance.

NameTypeRequiredDescription
channelstringNoChannel, private group, or DM channel ID or name to send the message to. Bot must be a member of the target channel.
post_atstringNoUnix EPOCH timestamp (integer seconds since 1970-01-01 00:00:00 UTC) for the future message send time. Must be strictly greater than current time.
markdown_textstringNoPreferred: write your scheduled message in markdown for nicely formatted display.
textstringNoThis sends raw text only, use markdown_text field for formatting.
thread_tsstringNoTimestamp of the parent message for the scheduled message to be a thread reply.
blocksstringNoDeprecated: use markdown_text instead. JSON array of structured blocks.
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful or not

SLACKBOT_UPDATES_A_MESSAGE

Updates a Slack message by timestamp. Provide exactly one visible content mode: markdown_text for normal Markdown content, or blocks for raw Slack Block Kit layouts.

NameTypeRequiredDescription
tsstringYesTimestamp of the message to update (string, Unix time with microseconds, e.g., '1234567890.123456').
channelstringYesID or name of the channel, private group, or IM channel containing the message to update.
markdown_textstringNoUse for normal LLM-written updated message content. Supports Slack’s native markdown handling.
blocksarrayNoUse instead of markdown_text for Slack Block Kit capabilities.
fallback_textstringNoOnly when using blocks. Fallback text for notifications and accessibility.
as_userbooleanNoPass true to update the message as the authenticated user.
file_idsarrayNoArray of file IDs to attach to the updated message. Files must already be uploaded to Slack.
reply_broadcastbooleanNoIf true and the message is a thread reply, broadcast the updated message to the channel.
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful or not

SLACKBOT_DELETE_A_MESSAGE_FROM_A_CHAT

Deletes a message from a Slack channel, identified by its timestamp.

NameTypeRequiredDescription
tsstringYesTimestamp of the message to delete.
channelstringYesChannel containing the message to delete.
as_userbooleanNoPass true to delete the message as the authed user.
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful or not

SLACKBOT_RETRIEVE_CONVERSATION_INFORMATION

Retrieves metadata for a Slack conversation by ID (e.g., name, purpose, creation date), excluding message content.

NameTypeRequiredDescription
channelstringNoThe ID of the conversation (channel, direct message, or MPIM) to retrieve information for. Effectively required.
include_localebooleanNoIf true, the response will include the locale setting for the conversation.
include_num_membersbooleanNoIf true, the response will include the number of members in the conversation.
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful or not

SLACKBOT_RETRIEVE_CONVERSATION_MEMBERS_LIST

Retrieves a paginated list of active member IDs for a specified Slack public channel, private channel, DM, or MPIM. Returns only user IDs; use a user-lookup tool to enrich member data.

NameTypeRequiredDescription
channelstringNoID of the conversation for which to retrieve the member list. Channel names are NOT accepted — only IDs.
limitintegerNoThe maximum number of members to return per page.
cursorstringNoPagination cursor. Pass next_cursor from previous calls to avoid silently truncating large member lists.
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful or not

SLACKBOT_RETRIEVE_DETAILED_USER_INFORMATION

Retrieves comprehensive information for a valid Slack user ID, excluding message history and channel memberships. Sensitive fields like email and phone require the users:read.email scope.

NameTypeRequiredDescription
userstringNoThe ID of the user to retrieve information for. Must be a Slack user ID (U- or W-prefixed); passing emails, display names, or other non-ID strings returns a user_not_found error.
include_localebooleanNoSet to true to include the user’s locale (e.g., en-US) in the response.
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful or not

SLACKBOT_SEND_EPHEMERAL_MESSAGE

Sends an ephemeral message visible only to the specified user in a channel; other channel members cannot see it. Both the bot and the target user must be members of the specified channel.

NameTypeRequiredDescription
userstringYesUser ID of the user to send the ephemeral message to.
channelstringYesChannel, private group, or DM channel to send message to. Pass the channel ID (e.g., C0ABC12345).
textstringNoThe message text to display. Required unless ‘blocks’ or ‘attachments’ is provided.
markdown_textstringNoPreferred: write your ephemeral message in markdown for nicely formatted display.
blocksstringNoA JSON-based array of structured blocks, presented as a URL-encoded string.
thread_tsstringNoProvide another message’s ts value to make this message a reply.
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful or not

SLACKBOT_PIN_ITEM

Pins a message to a specified Slack channel; the message must not already be pinned.

NameTypeRequiredDescription
channelstringYesThe ID of the channel where the message will be pinned.
timestampstringYesTimestamp of the message to pin, in ‘epoch_time.microseconds’ format (e.g., ‘1624464000.000200’).
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful or not

SLACKBOT_UPLOAD_OR_CREATE_A_FILE_IN_SLACK

Upload files, images, screenshots, documents, or any media to Slack channels or threads. Supports all file types including images (PNG, JPG, JPEG, GIF), documents (PDF, DOCX, TXT), code files, and more.

NameTypeRequiredDescription
channelsstringNoChannel ID where the file will be shared; if omitted, file is private to the uploader. Use channel ID (e.g., C1234567890) not channel name.
contentstringNoText content of the file; use for text-based files. At least one of ‘content’ or ‘file’ must be provided (but not both).
filestringNoFile(s) to upload. At least one of ‘content’ or ‘file’ must be provided (but not both).
filenamestringNoFilename to be displayed in Slack. Required when using ‘content’ parameter.
titlestringNoTitle of the file, displayed in Slack.
thread_tsstringNoTimestamp of a parent message to upload this file as a reply.
initial_commentstringNoOptional message to introduce the file in specified ‘channels’.
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful or not

SLACKBOT_SET_THE_TOPIC_OF_A_CONVERSATION

Sets or updates the topic for a specified Slack conversation.

NameTypeRequiredDescription
channelstringNoThe ID of the conversation for which the topic will be set. Must be a channel ID (C/G/D prefix), not a human-readable name.
topicstringNoThe new topic for the conversation. Max 250 characters. Text formatting and linkification are not supported.
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful or not

SLACKBOT_CREATE_A_REMINDER

Creates a reminder in Slack for the authenticated user or another user.

NameTypeRequiredDescription
textstringYesThe content of the reminder.
timestringYesWhen this reminder should happen. Accepts Unix timestamp or relative time string (e.g., in 5 minutes, at 3pm).
userstringNoThe user who will receive the reminder. Defaults to the authenticated user.
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful or not

SLACKBOT_RENAME_A_CONVERSATION

Renames a Slack channel. The calling user must be a member of the channel.

NameTypeRequiredDescription
namestringYesNew name for the channel. Must be lowercase, without spaces or periods.
channelstringYesID of the channel to rename.
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful or not

SLACKBOT_RETRIEVE_USER_PROFILE_INFORMATION

Retrieves profile information for a specified Slack user (defaults to the authenticated user if user ID is omitted). Sensitive fields like email and phone may be silently omitted based on workspace privacy policies.

NameTypeRequiredDescription
userstringNoUser ID to retrieve profile information for; defaults to the authenticated user.
include_labelsbooleanNoInclude human-readable labels for custom profile fields.
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful or not