
Slack
Send messages, manage channels, and automate team communication
Available Tools (63)
SLACK CUSTOM GATHER CONTEXT
Get Slack workspace context: messages, @mentions, and unread count. Zero required parameters. Returns current workspace state for situational awareness.
SLACK ADD EMOJI
Adds a custom emoji to a Slack workspace given a unique name and an image URL; subject to workspace emoji limits.
SLACK 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.
SLACK 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 CANVAS
Creates a new Slack Canvas with the specified title and optional content.
SLACK CREATE CHANNEL
Initiates a public or private channel-based conversation in a Slack workspace. Immediately creates the channel; invoke only after explicit user confirmation.
SLACK CREATE 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).
SLACK DELETE CANVAS
Deletes a Slack Canvas permanently and irreversibly. Always confirm with the user before calling this tool.
SLACK DELETES 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.
SLACK 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.
SLACK EDIT CANVAS
Edits a Slack Canvas with granular control over content placement. Supports replace, insert (before/after/start/end) operations for flexible content management.
SLACK ENABLE PUBLIC SHARING OF A FILE
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 confidential files.
SLACK END SNOOZE
Ends the current user's snooze mode immediately.
SLACK 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 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`) causes errors. If the response omits the `reactions` field, the item has zero reactions.
SLACK 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 (`ts`). Note: The parent message in the response contains metadata (reply_count, reply_users, latest_reply) that indicates expected thread activity. If the returned messages array contains fewer replies than reply_count indicates, check: (1) has_more=true means pagination is needed, (2) recently posted replies may have timing delays, (3) some replies may be filtered by permissions or deleted. The composio_execution_message field will warn about any detected mismatches.
SLACK FETCH TEAM INFO
Fetches comprehensive metadata about the current Slack team, or a specified team if the provided ID is accessible.
SLACK 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 USER BY EMAIL ADDRESS
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 the email is hidden by workspace privacy settings.
SLACK 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 GET CANVAS
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 CHANNEL CONVERSATION PREFERENCES
Retrieves conversation preferences (e.g., who can post, who can thread) for a specified channel, primarily for use within Slack Enterprise Grid environments.
SLACK GET REMOTE FILE
Retrieve information about a remote file added to Slack via the files.remote API. Does not work for standard Slack-hosted file uploads.
SLACK INVITE USERS TO A SLACK 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.
SLACK JOIN AN EXISTING CONVERSATION
Joins an existing Slack conversation (public channel, private channel, or multi-person direct message) by its ID, if the authenticated user has permission. Joining an already-joined channel returns a non-fatal no-op response. Private or restricted channel joins may fail with a permission error.
SLACK LEAVE A CONVERSATION
(DEPRECATED: use `SLACK_LEAVE_CONVERSATION`) Leaves a Slack conversation given its channel ID; fails if leaving as the last member of a private channel or if used on a Slack Connect channel.
SLACK 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 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 AUTH TEAMS
Obtains a paginated list of workspaces your org-wide app has been approved for. Use when you need to discover all workspaces within an organization where the app is installed.
SLACK LIST CANVASES
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 CONVERSATIONS
List conversations (channels/DMs) accessible to a specified user (or the authenticated user if no user ID is provided), respecting shared membership for non-public channels. Returns conversation IDs (C* for channels, G* for group DMs), not display names. Absence of private channels, DMs, or MPIMs from results indicates token scope or membership limits, not that the conversation is nonexistent.
SLACK LIST FILES WITH FILTERS IN SLACK
Lists files and their metadata within a Slack workspace, filterable by user, channel, timestamp, or type; returns metadata only, not file content. Results are limited to files visible to the authenticated user — files in private channels or restricted to certain members require appropriate membership and permissions. For large workspaces, check `paging.pages` in the response to determine total pages when paginating.
SLACK LIST REMINDERS
Lists all reminders with their details for the authenticated Slack user; returns an empty array if no reminders exist (valid state, not an error). Reminder text is not unique—perform client-side matching on returned objects before extracting a reminder ID for use with SLACK_DELETE_A_SLACK_REMINDER.
SLACK LIST REMOTE FILES
Retrieve information about a team's remote files.
SLACK LIST SCHEDULED MESSAGES
Retrieves a list of pending (not yet delivered) messages scheduled in a specific Slack channel, or across all accessible channels if no channel ID is provided, optionally filtered by time and paginated.
SLACK LIST STARRED ITEMS
Lists items starred by a user. Returns classic starred items only — does not reflect Slack's 'saved for later' feature. Use SLACK_SEARCH_MESSAGES or SLACK_SEARCH_ALL for broader saved-content queries.
SLACK LIST USER REACTIONS
Lists all reactions added by a specific user to messages, files, or file comments in Slack, useful for engagement analysis when the item content itself is not required. Results are paginated; check `response_metadata.next_cursor` and iterate with the `cursor` parameter to retrieve complete reaction history.
SLACK 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 MANUALLY SET USER PRESENCE
(DEPRECATED: use `SLACK_SET_USER_PRESENCE`) Manually sets a user's Slack presence, overriding automatic detection; this setting persists across connections but can be overridden by user actions or Slack's auto-away (e.g., after 10 mins of inactivity).
SLACK 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 exists — treat as success and reuse the returned `channel.id` (starts with 'D') for subsequent SLACK_SEND_MESSAGE calls; passing a username, email, or user ID directly to SLACK_SEND_MESSAGE causes `channel_not_found`. Avoid redundant calls when an existing DM channel ID is available.
SLACK REMOVE REACTION FROM ITEM
Removes an emoji reaction from a message, file, or file comment in Slack. Provide exactly one targeting method: channel+timestamp together, file, or file_comment. Mixing methods or omitting all returns invalid_arguments.
SLACK REMOVE USER FROM WORKSPACE
Tool to remove a user from a Slack workspace. Use when you need to revoke a user's access to a workspace.
SLACK RETRIEVE CONVERSATION INFORMATION
Retrieves metadata for a Slack conversation by ID (e.g., name, purpose, creation date, with options for member count/locale), excluding message content. The `channel` parameter is effectively required. Private channels, DMs, or channels where the app lacks membership may return restricted data; check `is_archived` and `is_member` fields in the response to diagnose access issues. Bulk lookups may trigger HTTP 429 rate limiting; honor the `Retry-After` response header.
SLACK RETRIEVE CONVERSATION MEMBERS LIST
Retrieves a paginated list of active member IDs (not names, emails, or presence) for a specified Slack public channel, private channel, DM, or MPIM. Returns only user IDs; use a user-lookup tool to enrich member data.
SLACK RETRIEVE CURRENT USER DND STATUS
Retrieves a Slack user's current Do Not Disturb (DND) status to determine their availability before interaction; any specified user ID must be a valid Slack user ID.
SLACK RETRIEVE DETAILED INFORMATION ABOUT A FILE
Retrieves detailed metadata and paginated comments for a specific Slack file ID; does not download file content.
SLACK 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 and may be silently omitted based on workspace privacy policies.
SLACK RETRIEVE MESSAGE PERMALINK URL
Retrieves a permalink URL for a specific message in a Slack channel or conversation; the permalink respects Slack's privacy settings.
SLACK RETRIEVE USER PROFILE INFORMATION
Retrieves profile information for a specified Slack user (defaults to the authenticated user if `user` ID is omitted); a provided `user` ID must be valid. Sensitive fields like email and phone may be silently omitted if required scopes (e.g., `users:read.email`) are not granted or workspace privacy policies restrict access.
SLACK 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.
SLACK SEARCH ALL
Tool to search all messages and files. Use when you need unified content search across channels and files in one call. Results are scoped to content visible to the authenticated token; missing hits in private or restricted channels reflect permission/membership gaps. Response separates messages and files into distinct sections — explicitly read the files section for document results. Results are index-based and may lag several minutes behind real-time; use SLACK_FETCH_CONVERSATION_HISTORY for near-real-time per-channel coverage. Paginated searches exceeding ~1 req/sec may return HTTP 429 too_many_requests; honor the Retry-After header and resume from the last page.
SLACK 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 (score/timestamp), and pagination.
SLACK 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.
SLACK 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. Use `fallback_text` only with `blocks`; it maps to Slack's top-level `text` fallback. Fails with `not_in_channel`, `channel_not_found`, or `channel_is_archived` if the bot lacks access. Rate-limited at ~1 req/sec (HTTP 429, honor `Retry-After`). Not idempotent — duplicate calls post duplicate messages.
SLACK SET DND DURATION
Turns on Do Not Disturb mode for the current user, or changes its duration.
SLACK SET PROFILE PHOTO
This method allows the user to set their profile image.
SLACK SET STATUS
(DEPRECATED: use `SLACK_SET_USER_PROFILE`) Updates a Slack user's profile, setting either individual fields or multiple fields via a JSON object.
SLACK SET THE TOPIC OF A CONVERSATION
Sets or updates the topic for a specified Slack conversation.
SLACK TEST AUTH
Checks authentication and tells you who you are. Use to verify Slack API authentication is functional and to retrieve identity information about the authenticated user or bot.
SLACK UNARCHIVE CHANNEL
Reverses conversation archival.
SLACK UPDATES A SLACK 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. Use `fallback_text` only with `blocks`; it maps to Slack's top-level `text` fallback.
SLACK UPDATE USER GROUP MEMBERS
Replaces all members of an existing Slack User Group with a new list of valid user IDs.
SLACK 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. Can share files publicly in channels or as thread replies with optional comments. Large files may fail with `upload_too_large`; use SLACK_ADD_A_REMOTE_FILE_FROM_A_SERVICE for large uploads. If the API returns `ok=false` with `method_deprecated`, fall back to SLACK_ADD_A_REMOTE_FILE_FROM_A_SERVICE or SLACK_SEND_MESSAGE with a URL.
What you can do with GAIA + Slack
GAIA connects to Slack via MCP (Model Context Protocol) and exposes every action as a natural-language command. Tell GAIA what you want — it handles the rest, automatically.
- Use GAIA to slack custom gather context in Slack with a plain-English instruction
- Use GAIA to slack add emoji in Slack with a plain-English instruction
- Use GAIA to slack add reaction to an item in Slack with a plain-English instruction
- Use GAIA to slack create a reminder in Slack with a plain-English instruction
- Use GAIA to slack create canvas in Slack with a plain-English instruction
How it works
Set up your Slack automation in three simple steps — no code required.
- 1
Connect Slack to GAIA
Open the GAIA Marketplace, find the Slack integration, and click "Add to your GAIA". Authorise access in under two minutes — no code, no configuration files.
- 2
Tell GAIA what to automate in plain English
Describe the task in your own words: "summarise my Slack activity every morning" or "notify me on Slack when a new communication event happens". GAIA understands context and intent.
- 3
GAIA handles it automatically, 24/7
GAIA runs your Slack automations in the background around the clock. No manual triggers, no scripts to maintain — just results delivered to you.
Frequently asked questions
Everything you need to know about the GAIA Slack integration.
GAIA connects Slack with your entire stack
Slack is just one piece of the puzzle. GAIA integrates with 50+ tools across communication, communication, productivity, and more — letting you build cross-tool automations in plain English without writing a single line of code.
Browse all integrations