Docs · static mirror — the interactive version loads with JavaScript.

Slack

Source: https://runstack.engineer/docs/toolkits/slack

Messages, channels, users, files, calls, and admin.

Tools (159):

ToolDescription
slackSendMessagePost a message to a channel, DM, or private group. Provide exactly one of markdownText (normal Markdown) or blocks (raw Block Kit for interactive layouts). For DMs, resolve the user to a channel ID with slackOpenDm first. Not idempotent — duplicate calls post duplicates.
slackUpdateMessageUpdate a message by channel and timestamp. Provide exactly one of markdownText or blocks (raw Block Kit). Only messages posted by the caller can be edited.
slackDeleteMessageDelete a message by channel and timestamp. The authenticated user or bot must be the original poster. Confirm with the user first.
slackScheduleMessageSchedule a message for a future time (Unix epoch seconds, max 120 days ahead). Provide markdownText, text, blocks (JSON string), or attachments (JSON string). Use slackListScheduledMessages to find the scheduled_message_id afterwards.
slackListScheduledMessagesList pending scheduled messages for a channel (or all accessible channels when omitted), optionally filtered by time range. Paginate with cursor.
slackDeleteScheduledMessageDelete a pending scheduled message by channel and scheduled_message_id. Get the ID from slackListScheduledMessages.
slackGetMessagePermalinkGet a permalink URL for a message by channel ID and timestamp. Resolve channel names to IDs with slackFindChannels first.
slackSendMeMessageSend a '/me' action message to a channel, shown in third person (e.g. '*user is preparing for a meeting*'). Plain text only.
slackSendEphemeralMessageSend an ephemeral message visible only to one user in a channel. Both the bot and the target user must be channel members. Provide markdownText, text, blocks (JSON string), or attachments (JSON string).
slackListUnreadChannelMessagesList unread messages in a channel for the authenticated user (main timeline only, not thread replies). Paginate with cursor.
slackGetUnreadMessagesFromUserGet unread DMs from a specific user. Opens the DM, reads the read position, and fetches messages since then. Returns an empty messages array when nothing is unread. DMs only.
slackListAllChannelsList conversations visible to the caller, with type and archive filters. Always use the returned channel IDs (not names) in downstream tools. Loop on response_metadata.next_cursor until empty for full coverage.
slackFindChannelsFind channels by name, topic, purpose, or description (case-insensitive partial match). Always resolve names to IDs here before passing to other tools. Empty results may mean no match or no access — retry with exactMatch=false and excludeArchived=false.
slackListConversationsList conversations accessible to a user (defaults to the caller). Returns IDs, not names. Private channels and DMs appear only with shared membership and proper scopes. Paginate on next_cursor until empty.
slackGetConversationInfoGet metadata for a conversation by ID (name, purpose, dates, member count). No message content. Check is_archived and is_member to diagnose access issues.
slackGetConversationMembersList active member user IDs for a channel, DM, or group DM. Returns IDs only — enrich with user lookup tools. Paginate on next_cursor until empty for large channels.
slackGetConversationHistoryFetch one page of main-timeline messages from a conversation, with time-range filters. Threaded replies are NOT included — use slackGetConversationReplies with a parent ts for those. Paginate with cursor.
slackGetConversationRepliesFetch replies in a thread by channel ID and parent message ts. The first returned message is the parent; use has_more/cursor for large threads.
slackCreateChannelCreate a public or private channel. Names must be lowercase, unique, 80 chars max, no spaces or periods. Confirm with the user first.
slackArchiveChannelArchive a conversation, making it read-only while keeping history. Some channels (#general, DMs) cannot be archived. Confirm with the user first.
slackUnarchiveChannelUnarchive a conversation, making it active again.
slackCloseDmClose a DM or group DM, removing it from the caller sidebar without deleting history. Affects only the calling user view.
slackJoinConversationJoin a conversation by ID. Joining an already-joined channel is a non-fatal no-op. Private channel joins may fail without permission.
slackLeaveConversationLeave a conversation by ID. Fails as the last member of a private channel or on #general / Slack Connect channels.
slackRenameConversationRename a channel (Slack normalizes to lowercase conventions). May affect integrations using the old name.
slackSetConversationTopicSet the topic header for a conversation by ID (max 250 chars, no formatting). The caller must be a member.
slackSetConversationPurposeSet the purpose (short goal description) for a conversation by ID (max 250 chars). The caller must be a member.
slackMarkConversationReadMark a message as the most recently read for the caller in a channel. The caller must be a member and the message must exist.
slackInviteUsersToChannelInvite users to a channel by comma-separated user IDs (up to 1000). The bot must be a member of private channels. Inspect ok/error/errors — HTTP is always 200.
slackRemoveUserFromConversationRemove (kick) a user from a conversation. The caller needs permission and cannot remove themselves with this tool.
slackOpenDmOpen or resume a DM (1 user) or group DM (2-8 users) by user IDs, or reopen an existing channel. Reuse the returned channel.id for messaging — never pass user IDs or emails directly to slackSendMessage.
slackAdminSearchConversationsSearch public or private channels across an Enterprise Grid org by name and type. Enterprise Grid only.
slackAdminCreateConversationCreate a channel via the Admin API (Enterprise Grid). Set orgWide=true for an org-wide channel, otherwise teamId is required. Confirm with the user first.
slackDeleteChannelPermanently delete a public or private channel and all its messages and files (Enterprise Grid admin). Irreversible — confirm with the user first.
slackConvertChannelToPrivateConvert a public channel to private via the Admin API. Enterprise Grid only, irreversible via API. Confirm with the user first.
slackInviteUserToChannelAdminInvite users to a channel via the Admin API (Enterprise Grid). The caller must be a channel member. For regular workspaces use slackInviteUsersToChannel.
slackGetConversationPrefsGet posting/thread/mention/huddle preferences for a channel. Enterprise Grid oriented.
slackSetConversationPrefsSet posting permissions for a channel (who can post/thread, @channel/@here, huddles). Pass prefs as a JSON string, e.g. {"who_can_post":"type:admin"}. Enterprise Grid oriented.
slackGetChannelWorkspacesList workspaces a channel is connected to within an Enterprise Grid org. Paginate with cursor.
slackSetChannelWorkspacesSet which Enterprise Grid workspaces connect to a channel (share a channel with workspaces, or convert to an org channel). Confirm with the user first.
slackListChannelIdpGroupsList IDP groups allowlisted on a private channel (only members of these groups may access it). Enterprise Grid with IDP groups enabled.
slackListUsersList workspace users with profiles, paginated. Filter is_bot/is_app_user/deleted client-side for human-only rosters. Prefer slackFindUsers for targeted lookups; cache results. Throttle to ~1-2 req/sec.
slackFindUsersFind users by email, user ID, or name. Exact emails use the dedicated lookup; user IDs use users.info; other queries filter users.list. Verify a single user ID before passing to messaging tools.
slackFindUserByEmailLook up an active user by registered email address (requires users:read.email). Fails with users_not_found for unknown, inactive, guest, or privacy-hidden emails.
slackGetUserInfoGet comprehensive info for a user ID (profile, status, team flags). Pass IDs only — emails and names return user_not_found. Sensitive fields may be omitted by privacy settings.
slackGetUserProfileGet profile fields for a user (defaults to the caller when omitted). Email/phone may be omitted without users:read.email or by workspace privacy.
slackSetUserProfileUpdate a user profile: a single field via name+value, or many via a profile JSON string (takes precedence). Defaults to the caller; admins on paid teams may target others.
slackGetUserPresenceGet a user's real-time presence (active/away). Omit user for self. No history or status reasons.
slackSetUserPresenceManually set presence to 'auto' (Slack-managed) or 'away'. Persists across connections but user activity or auto-away can override it.
slackEndDndEnd the caller DND session, making them available. Safe no-op when DND is not active.
slackEndSnoozeEnd the caller snooze immediately, exiting do-not-disturb mode.
slackSetDndDurationTurn on DND (snooze) for the caller for a number of minutes from now.
slackGetDndStatusGet DND status for the caller or one user. Check before interacting to respect availability.
slackGetTeamDndStatusGet DND status for multiple users at once via comma-separated IDs.
slackDeleteUserPhotoDelete the caller profile photo, reverting to the default avatar. Irreversible; succeeds even with no custom photo.
slackSetUserPhotoSet the caller profile photo from a publicly reachable image URL (GIF/PNG/JPG). The image is fetched and uploaded with optional square cropping.
slackGetUserIdentityGet the caller identity (user + team). Returned fields depend on granted identity scopes (basic, email, avatar, team).
slackGetBotInfoGet info for a bot user by bot ID (B-prefixed). Does not work for regular users or other integration types.
slackAddEnterpriseUserToWorkspaceAdd an existing Enterprise Grid user to a workspace, with optional channels and guest restrictions. Enterprise Grid only.
slackInviteUserToWorkspaceInvite a person to a workspace by email with channels, a welcome message, and guest options (Enterprise Grid admin). Use resend=true to re-process a pending invite.
slackRemoveUserFromWorkspaceRemove a user from a workspace, revoking access. Confirm with the user first.
slackSetAdminUserPromote an existing workspace member (guest, user, or owner) to admin. Confirm with the user first.
slackSetWorkspaceOwnerPromote a member, guest, or admin to workspace owner. Enterprise Grid only. Confirm with the user first.
slackResetUserSessionsWipe all sessions on all devices for a user, forcing re-authentication. Use for security concerns. Confirm with the user first.
slackListWorkspaceUsersList admin users of a workspace (admin.users.list), paginated. Omit teamId with org-level tokens for org-wide results.
slackGetTeamInfoGet metadata for the current workspace, or a specified accessible team. Omit both filters for the current team.
slackGetTeamProfileGet workspace profile field definitions (custom fields and sections), optionally filtered by visibility.
slackListAuthTeamsList workspaces an org-wide app is approved for. Paginate with cursor.
slackListAvailableWorkspacesList workspaces where both the connection and a target user have access. Match a workspace name to a team_id here, then pass team_id to user tools. Meaningful for org-level installs.
slackCreateEnterpriseTeamCreate a team (workspace) in an Enterprise Grid org. Confirm with the user first.
slackListEnterpriseTeamsList teams in an Enterprise Grid org with IDs, names, and domains. Paginate with cursor. Enterprise Grid only.
slackListWorkspaceAdminsList admin user IDs for a workspace. Enterprise Grid with admin.teams:read. Paginate with cursor.
slackListWorkspaceOwnersList owner user IDs for a workspace. Requires admin.teams:read. Paginate with cursor.
slackGetWorkspaceSettingsGet detailed settings for a workspace (Enterprise Grid admin audit).
slackSetWorkspaceNameSet the display name of a workspace (Enterprise Grid). Confirm with the user first.
slackSetWorkspaceDescriptionSet the description of a workspace. Confirm with the user first.
slackSetWorkspaceIconSet the workspace icon from a publicly reachable image URL (GIF/PNG/JPG/HEIC, ideally 512x512).
slackSetWorkspaceDefaultChannelsSet the default channels new members auto-join. Pass an array or comma-separated string of channel IDs.
slackListFilesList workspace files (metadata only, not content), filterable by user, channel, date, and type. Only files visible to the caller are returned. Check paging.pages for full pagination.
slackGetFileInfoGet detailed metadata and paginated comments for a file by ID. Does not download content — use slackDownloadFile for private URLs. Also retrieves canvases and Slack Lists by file ID.
slackDeleteFilePermanently delete a file by ID, including comments and shares. Irreversible — confirm with the user first.
slackDeleteFileCommentDelete a comment from a file by file ID and comment ID. Irreversible.
slackShareFilePublicUrlEnable public sharing for a file, generating a public URL anyone with the link can open. Verify intent before sharing sensitive files.
slackRevokeFilePublicUrlRevoke a file public URL, making it private again. No-op when not public; irreversible.
slackDownloadFileGet file metadata with authenticated download URLs (url_private, url_private_download). Fetch the URL with the Slack token to download bytes; this tool returns links, not content.
slackUploadFileUpload text content as a file to Slack (snippet/post), optionally shared to a channel or thread with a comment. Uses the files.getUploadURLExternal flow. For binary files, share a URL via message instead.
slackAddRemoteFileRegister an external file (Google Drive, Dropbox, etc.) with Slack for discovery and sharing. Requires a stable external_id and a reachable external_url.
slackGetRemoteFileGet info about a remote file by Slack file ID or your external_id. Remote files only — not for Slack-hosted uploads.
slackUpdateRemoteFileUpdate metadata of a registered remote file (title, URL, type, preview, searchable text). Identify by file or external_id; cannot change the file type fundamentally.
slackRemoveRemoteFileRemove the Slack reference to a remote file by file or external_id. The external file itself is untouched.
slackShareRemoteFileShare a registered remote file into channels or DMs by comma-separated IDs. The file must already be registered.
slackListRemoteFilesList team remote files, filterable by channel and creation timestamps. Paginate with cursor.
slackAddReactionAdd an emoji reaction to a message by channel and exact timestamp. The emoji must exist; use slackListCustomEmojis to verify. Skin tones append ::skin-tone-2..6.
slackRemoveReactionRemove an emoji reaction from a message, file, or file comment. Provide exactly one target: channel+timestamp, file, or fileComment.
slackGetReactionsGet reactions for a message, file, or file comment. Provide exactly one target: channel+timestamp, file, or fileComment. A missing reactions field means zero reactions.
slackListUserReactionsList reactions added by a user (defaults to caller). Paginate with cursor; page/count offer legacy pagination. Items repeat per reaction.
slackAddStarStar (save) a channel, file, file comment, or message. For messages provide channel+timestamp; otherwise file, fileComment, or channel alone.
slackRemoveStarRemove a star from a channel, file, file comment, or message. Same targeting rules as slackAddStar.
slackListStarredItemsList items the caller starred (classic stars, not saved-for-later). Paginate with cursor (preferred) or page/count.
slackPinItemPin a message to a channel by channel ID and exact timestamp. The message must not already be pinned.
slackUnpinItemUnpin a message from a channel by channel ID and timestamp. Destructive — confirm with the user first.
slackListPinnedItemsList messages and files pinned to a channel. The caller must have channel access.
slackCreateReminderCreate a reminder with text and time. Time accepts a Unix timestamp, seconds-from-now, or natural language (e.g. "in 15 minutes", "every Monday at 10am"). Only bot tokens can target other users.
slackGetReminderGet details for a reminder by ID (Rm-prefixed). Read-only.
slackListRemindersList reminders for the caller. An empty array is valid (no reminders), not an error. Match client-side on returned objects before deleting by ID.
slackDeleteReminderDelete a reminder by ID. Irreversible — confirm with the user first.
slackSearchAllUnified workspace search across messages and files in one call. Read the files section explicitly for document hits. Results are index-based (minutes stale); use history tools for real-time. Honor Retry-After on 429.
slackSearchMessagesWorkspace-wide message search with query modifiers (in:#channel, from:@user, before:/after:/on: dates), sorting, and pagination. Combine with autoPaginate+count for full collection.
slackAssistantSearchReal-time search across messages, files, channels, and users (keyword or natural-language/semantic). Resolve named entities to IDs first via contentTypes; confirm with the user on multiple matches.
slackGetSearchInfoCheck whether AI-powered semantic search is enabled on the workspace. When false, pass disableSemanticSearch=true to slackAssistantSearch for keyword-only search.
slackStartCallRegister a third-party call in Slack (calls.add). Requires a provider join_url and unique external_unique_id. Returns the Slack call ID for later updates.
slackGetCallInfoGet a point-in-time snapshot of a call by its Slack call ID (from slackStartCall).
slackUpdateCallInfoUpdate the title, join URL, or desktop app URL of an existing call by ID.
slackEndCallEnd an ongoing call by ID, optionally recording its duration in seconds.
slackAddCallParticipantsAdd participants to an ongoing call. Users is a JSON array string of {"slack_id":"U..."} objects.
slackRemoveCallParticipantsRemove participants from an ongoing call. Users is a JSON array string with slack_id and/or external_id per user.
slackCreateCanvasCreate a Canvas with an optional title, markdown content, and channel tab. Returns the canvas_id.
slackEditCanvasEdit a Canvas: replace whole content or a section, insert before/after/at start/at end, delete a section, or rename. Use slackLookupCanvasSections to find section IDs for targeted edits.
slackDeleteCanvasPermanently delete a Canvas. Irreversible — confirm with the user first.
slackLookupCanvasSectionsFind section IDs in a Canvas by text criteria. Use the returned IDs with slackEditCanvas targeted operations.
slackCreateListCreate a Slack List with a name, optional rich-text description, typed columns, or by copying another List (with optional rows), or in to-do task mode. Returns the list_id. Requires a user token.
slackCreateListItemAdd a row to a Slack List with initial cell values. Text cells accept plain strings (auto-wrapped to rich_text); selects take choice values like ["todo"]. Copy a row via duplicatedItemId or nest via parentItemId. Requires a user token.
slackGetListItemRead one List row with column_id-keyed typed values and parent List metadata. Optionally include subscription status. Requires a user token.
slackListListItemsList rows in a Slack List. You must paginate on response_metadata.next_cursor until empty or rows are silently truncated. Set archived=true for archived rows. Requires a user token.
slackUpdateListEdit a List name, description, or to-do mode. Identify the List by id (not list_id). Description strings are auto-wrapped to rich_text. Requires a user token.
slackUpdateListItemUpdate cells of EXISTING List rows (row_id must match ^Rec[A-Z0-9]{8,}$). Text cells accept plain strings; selects take choice values. To add rows use slackCreateListItem. Requires a user token.
slackDeleteListItemPermanently delete one List row by List ID and row ID. Cannot be undone — confirm with the user first. Requires a user token.
slackDeleteListItemsDelete multiple List rows in one all-or-nothing call. On failure treat the whole batch as not deleted and retry it entirely. Requires a user token.
slackSetListAccessShare a List with channels or users at read/write/owner level. Provide exactly one of channelIds or userIds (owner requires userIds). Requires a user token.
slackDeleteListAccessRevoke List sharing for channels or users. Provide exactly one of channelIds or userIds. Requires a user token.
slackCreateUserGroupCreate a User Group (subteam) with a unique name, @handle, description, and default channels.
slackUpdateUserGroupUpdate a User Group name, handle, description, or default channels by its ID.
slackUpdateUserGroupMembersReplace ALL members of a User Group with a new comma-separated user ID list. This overwrites existing membership — confirm with the user first.
slackListUserGroupsList workspace User Groups, optionally with member IDs, counts, and disabled groups.
slackListUserGroupMembersList user IDs in a User Group, optionally including disabled groups.
slackEnableUserGroupRe-enable a disabled User Group for mentions and permissions. Status-only change.
slackDisableUserGroupDisable (archive) an enabled User Group by ID. The group is not deleted and can be re-enabled.
slackAddEmojiAdd a custom emoji from a public image URL (PNG/GIF/JPEG) under a lowercase name. Subject to workspace emoji limits; admin scope required.
slackAddEmojiAliasCreate an alias name pointing at an existing custom emoji (Enterprise Grid). Colons and whitespace are trimmed automatically.
slackRenameEmojiRename a custom emoji, updating all its instances. The new name must be unique in the workspace.
slackRemoveEmojiRemove a custom emoji across the Enterprise Grid org. Confirm with the user first.
slackListCustomEmojisList workspace custom emojis (image URLs or alias: references). Unicode emojis, usage stats, and dates are not included. Optionally include Unicode categories.
slackListAdminEmojiList custom emoji across an Enterprise Grid org (admin token required). For a single workspace use slackListCustomEmojis. Paginate with cursor.
slackListApprovedAppsList apps approved for installation on an org or workspace (Enterprise Grid / Business+ admin). Paginate with cursor.
slackListAppRequestsList pending app installation requests (who requested what). Requires admin.apps:read. Paginate with cursor.
slackListRestrictedAppsList apps restricted from installation on an org or workspace. Paginate with cursor.
slackRestrictAppRestrict an app from being installed. Provide app_id or request_id, plus team_id or enterprise_id. Confirm with the user first.
slackListApprovedInvitesList approved workspace invite requests with approver details. Enterprise Grid with admin.invites:read. Paginate with cursor.
slackListDeniedInvitesList denied workspace invite requests with who denied them and when. Enterprise Grid with admin.invites:read. Paginate with cursor.
slackListPendingInvitesList pending workspace invite requests (invited but not yet joined). Requires admin.invites:read. Paginate with cursor.
slackReadAuditLogsRead Enterprise Grid audit logs (logins, admin changes, app installs, channel changes) with filters and pagination. Requires an owner/admin user token with auditlogs:read.
slackGetAuditActionsList action types available in the Audit Logs API by category. Use to build action filters for slackReadAuditLogs.
slackGetAuditSchemasList object schemas returned by the Audit Logs API (workspaces, users, channels, etc.).
slackGetScimConfigGet the SCIM service provider configuration (auth schemes, filtering, sorting, bulk support). No parameters. Needs a token with admin scope; SCIM-provisioned tokens may be required.
slackCustomizeUnfurlCustomize link previews (unfurls) on a message: provide custom preview content per URL or empty objects to remove previews. Target by channel+ts, or by unfurl_id+source. Either unfurls or metadata is required.
slackApiTestTest Slack API connectivity and auth. Pass foo to echo a value, or error to simulate an error response.
slackTestAuthVerify authentication and get the caller identity (user, team, bot). Use first when diagnosing scope or token issues. Replaces the deprecated permission-scopes check.
slackWhoAmIReturn the connected account identity (user ID + workspace ID). User IDs are workspace-scoped, so both are included in the label.
slackRtmConnectStart a Real Time Messaging session and get a WebSocket URL for persistent event streaming. Connect to the returned URL separately; the URL is short-lived.