← All Skills
S

Messaging

Slack

Read messages and post to channels.

Slack is a channel-based messaging platform. With Slack, people can work together more effectively, connect all their software tools and services, and find the information they need to do their best work — all within a secure, enterprise-grade environment.

Triggers8

Things that can wake up your Slack coworker.

  • New Channel Created Trigger

    Triggered when a new channel is created in Slack.

    SLACK_CHANNEL_CREATED
  • Channel Message Received

    Triggered when a message is posted in a Slack channel (public, private, or multi-party IM). Does NOT match direct messages.

    SLACK_CHANNEL_MESSAGE_RECEIVED
  • Direct Message Received

    Triggered when a new direct message (DM) is sent to a user in Slack. Catches all DMs across all DM channels.

    SLACK_DIRECT_MESSAGE_RECEIVED
  • Message Reaction Added

    Triggered when a reaction is added to a message in Slack. Supports optional filtering by channel and emoji name.

    SLACK_MESSAGE_REACTION_ADDED
  • Reaction Added Trigger

    DEPRECATED: use `SLACK_MESSAGE_REACTION_ADDED` instead. Triggered when a reaction is added to a message in Slack.

    SLACK_REACTION_ADDED
  • Reaction Removed Trigger

    DEPRECATED. Triggered when a reaction is removed from a message.

    SLACK_REACTION_REMOVED
  • New Bot Message Received Trigger

    DEPRECATED: use `SLACK_CHANNEL_MESSAGE_RECEIVED` with `is_bot_message=true` instead. Triggered when a new bot message is posted to a Slack channel.

    SLACK_RECEIVE_BOT_MESSAGE
  • New Message Received Trigger

    DEPRECATED: use `SLACK_CHANNEL_MESSAGE_RECEIVED` instead. Triggered when a new message is posted to a Slack channel.

    SLACK_RECEIVE_MESSAGE

Actions20

Things your coworker can do in Slack.

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

    SLACK_ADD_REACTION_TO_AN_ITEM
  • 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.

    SLACK_ADMIN_CONVERSATIONS_SEARCH
  • 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, ask user to clarify before proceeding (e.g. ask for user email).

    SLACK_ASSISTANT_SEARCH_CONTEXT
  • Send message

    (DEPRECATED: use `SLACK_SEND_MESSAGE`) Posts a message to a Slack channel, DM, or private group; requires at least one content field (`markdown_text`, `text`, `blocks`, or `attachments`) — omitting all causes a `no_text` error. Fails with `not_in_channel`, `channel_not_found`, or `channel_is_archived` if the bot lacks access. Body limit ~4000 characters. Rate-limited at ~1 req/sec (HTTP 429, honor `Retry-After`). Not idempotent — duplicate calls post duplicate messages.

    SLACK_CHAT_POST_MESSAGE
  • 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').

    SLACK_CREATE_A_REMINDER
  • Create Slack Canvas

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

    SLACK_CREATE_CANVAS
  • Delete Slack Canvas

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

    SLACK_DELETE_CANVAS
  • 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.

    SLACK_DOWNLOAD_SLACK_FILE
  • 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.

    SLACK_EDIT_CANVAS
  • 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 messages from the main channel timeline. Threaded replies are NOT returned by this endpoint. To retrieve threaded replies, use the SLACK_FETCH_MESSAGE_THREAD_FROM_A_CONVERSATION action (conversations.replies API) instead. The oldest/latest timestamp filters work reliably for filtering the main channel timeline, but cannot be used to retrieve individual threaded replies - even if you know the exact reply timestamp, setting oldest=latest to that timestamp will return an empty messages array. To get threaded replies: 1. Use this action to get parent messages (which include thread_ts, reply_count, latest_reply fields) 2. Use SLACK_FETCH_MESSAGE_THREAD_FROM_A_CONVERSATION with the parent's thread_ts to fetch all replies in that thread

    SLACK_FETCH_CONVERSATION_HISTORY
  • 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 action searches channels and conversations visible to the authenticated user. Empty results may indicate: - No channels match the search query in name, topic, or purpose - The target private channel or DM is not accessible to the authenticated user because they are not a member - The connection lacks required read scopes (channels:read, groups:read, im:read, mpim:read). If empty, retry with exact_match=false or exclude_archived=false to avoid false negatives. In large workspaces, paginate using next_cursor to avoid missing matches. Check 'composio_execution_message' and 'total_channels_searched' in the response for details.

    SLACK_FIND_CHANNELS
  • 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 absence. Repeated calls may trigger HTTP 429; honor the Retry-After header.

    SLACK_FIND_USERS
  • Get Slack Canvas (Deprecated)

    DEPRECATED: Use SLACK_RETRIEVE_DETAILED_INFORMATION_ABOUT_A_FILE instead. Retrieves a specific Slack Canvas by its ID, including its content and metadata.

    SLACK_GET_CANVAS
  • List all channels

    Lists conversations available to the user with various filters and search options. Always use resolved `channel_id` (not display names) for downstream operations, as names may be non-unique. The `created` field in results is a Unix epoch timestamp (UTC). Pagination across large workspaces may return HTTP 429 with a `Retry-After` header; honor the delay and resume from the last successful cursor.

    SLACK_LIST_ALL_CHANNELS
  • List all users

    Retrieves a paginated list of all users with profile details, status, and team memberships in a Slack workspace; data may not be real-time. Filter response fields `is_bot`, `is_app_user`, and `deleted` to build human-only rosters. Profile fields like `email` and `phone` may be absent depending on OAuth scopes and workspace privacy settings. Guest/restricted accounts may be omitted based on scopes—do not treat results as a complete directory. High-frequency calls risk HTTP 429; honor the `Retry-After` header and throttle to ~1–2 requests/second. Use stable user IDs rather than display names for mapping. Prefer SLACK_FIND_USERS for targeted lookups; cache results to avoid full-workspace fetches.

    SLACK_LIST_ALL_USERS
  • List Slack Canvases (Deprecated)

    DEPRECATED: Use SLACK_LIST_FILES_WITH_FILTERS_IN_SLACK instead (pass types="canvas" for equivalent behavior). Lists Slack Canvases with filtering by channel, user, timestamp, and page-based pagination. Uses Slack's files.list API with types=canvas filter. Only canvases accessible to the authenticated app are returned; missing canvases indicate permissions restrictions, not empty data. Use `paging.pages` in the response to determine total pages; iterate `page` with `count` to retrieve all results. Known limitations: - The 'user' filter may return canvases accessible to the specified user, not just canvases they created. - The 'ts_from' and 'ts_to' timestamp filters may not work reliably for canvas types. Consider client-side filtering on the 'created' field in the response if precise date filtering is required.

    SLACK_LIST_CANVASES
  • List Enterprise teams

    List all teams (workspaces) in a Slack Enterprise Grid organization with pagination support. Use when you need to retrieve team IDs, names, domains, and metadata for all workspaces in an Enterprise. Requires admin.teams:read scope and Enterprise Grid organization.

    SLACK_LIST_ENTERPRISE_TEAMS
  • List Restricted Apps

    Tool to list restricted apps for an org or workspace. Use when you need to view apps that have been restricted from installation. Requires admin.apps:read scope and appropriate admin permissions.

    SLACK_LIST_RESTRICTED_APPS
  • Lookup Canvas Sections

    Looks up section IDs in a Slack Canvas for use with targeted edit operations. Section IDs are needed for insert_after, insert_before, delete, and section-specific replace operations.

    SLACK_LOOKUP_CANVAS_SECTIONS
  • Read Audit Logs

    Read Slack Enterprise Grid Audit Logs (logins, admin changes, app installs, channel/privacy changes, etc.) with server-side filters and pagination. Requires Enterprise Grid organization with auditlogs:read scope and a user token (xoxp-...) from an owner/admin context.

    SLACK_READ_AUDIT_LOGS