← Back to all apps

Slack

Collaborationby Salesforce
Launched Feb 27, 2026 on ChatGPT

Connect to Slack to share messages and create canvases directly to simplify collaboration and boost productivity. Search and retrieve messages, channels, threads, files, and users, giving Claude the context to streamline your work.

12ChatGPT Tools
11Claude Tools
SalesforceDeveloper
CollaborationCategory

Use Cases

productivitycommunication

Available Tools

Create a canvas

slack_create_canvas
Full Description

Creates a Slack Canvas document from Markdown content. Return the canvas link to the user.

Content formatting is specified in the content parameter description. Not available on free teams.

Use slack_read_canvas to read existing canvases.

Parameters (2 required)
Required
contentstring

The content of the canvas. Please carefully consider the following instructions: 1. Formatting: - Format all content as Markdown. - Do not duplicate the title of the canvas in this content section. - When creating a table make sure to escape "|" in the content by using "\|" - Headers: MUST never exceed a depth of 3 (e.g., ###). Truncate any headers deeper than 3 (e.g., #### becomes ###). - Hyperlinks: MUST use only full, valid HTTP links. Do not use relative links. 2. Writing Style: - Write ALL content in full, proper paragraphs, similar to an essay or article. - Use natural transitions and connecting phrases (e.g., "First," "Additionally," "Furthermore," "Moreover," "Finally") when presenting multiple items or examples within a paragraph. - Break up the content into logical sections, where each section is preceded by a Markdown-formatted header. - Only use bullet points or numbered lists if explicitly requested by a human. 3. Citations: - Cite all claims using numbered references formatted as footnotes. - Use [1] for the first source, [2] for the second, etc. - Format citations in text as: "quote/claim [1]" - List all sources at the end of the document, formatted as Markdown links. - Separate each source with two newlines. - Format source links as Markdown: [link text](url). Example: [Slack Canvas Features](https://slack.com/features/canvas) Here's an example of proper formatting: <example> # Slack canvas user research Slack Canvases have revolutionized team collaboration [1]. Studies show that teams using Canvases experience a 25% increase in productivity [2]. Moreover, 80% of users report improved information sharing within their organizations [2]. Sources: [1] [Slack Canvas Features](https://slack.com/features/canvas) [2] [Team Collaboration Study](https://example.com/collaboration-study) </example>

titlestring

Concise but descriptive name for the canvas

Read a canvas

slack_read_canvas
Full Description

Retrieves the markdown content and section ID mapping of a Slack Canvas document. Read-only.

Use slack_create_canvas to create new canvases. Use slack_search_public to find canvases by name or content.

Parameters (1 required)
Required
canvas_idstring

The id of the canvas

Read channel messages

slack_read_channel
Full Description

Reads messages from a Slack channel in reverse chronological order (newest first). Read-only.

Use slack_read_thread with message_ts to read thread replies. Use slack_search_channels to find a channel ID by name. Use slack_search_public to search across channels. If 'channel_not_found', try slack_search_channels first.

Parameters (1 required, 5 optional)
Required
channel_idstring

ID of the Channel, private group, or IM channel to fetch history for

Optional
cursorstring

Paginate through collections of data by setting the cursor parameter to a next_cursor attribute returned by a previous request

lateststring

End of time range of messages to include in results (timestamp)

limitinteger

Number of messages to return, between 1 and 100. Default value is 100.

oldeststring

Start of time range of messages to include in results (timestamp)

response_formatstring

Level of detail (default: 'detailed'). Options: 'detailed', 'concise'

Read thread messages

slack_read_thread
Full Description

Reads messages from a specific Slack thread (parent message + all replies). Read-only.

Requires channel_id and message_ts of the parent message. Use slack_search_public or slack_read_channel to find these values. Use slack_search_public with "is:thread" to find threads by content. Use slack_send_message with thread_ts to reply to a thread.

Parameters (2 required, 5 optional)
Required
channel_idstring

Channel, private group, or IM channel to fetch thread replies for

message_tsstring

Timestamp of the parent message to fetch replies for

Optional
cursorstring

Paginate through collections of data by setting the cursor parameter to a next_cursor attribute returned by a previous request

lateststring

End of time range of messages to include in results (timestamp)

limitinteger

Number of messages to return, between 1 and 1000. Default value is 100.

oldeststring

Start of time range of messages to include in results (timestamp)

response_formatstring

Level of detail (default: 'detailed'). Options: 'detailed', 'concise'

Read user profile

slack_read_user_profile
Full Description

Retrieves detailed profile information for a Slack user: contact info, status, timezone, organization, and role. Read-only. Defaults to current user if user_id not provided.

Use slack_search_users to find a user ID by name or email.

Parameters (0 required, 3 optional)
Optional
include_localeboolean

Include user's locale information. Default: false

response_formatstring

Level of detail in response. 'detailed' includes all fields, 'concise' shows essential info. Default: detailed'

user_idstring

Slack user ID to look up (e.g., 'U0ABC12345'). Defaults to current user if not provided

Schedule message

slack_schedule_message
Full Description

Schedules a message for future delivery to a Slack channel. Does NOT send immediately — use slack_send_message for that.

post_at must be a Unix timestamp at least 2 minutes in the future, max 120 days out. Message is markdown formatted. Once scheduled, cannot be edited via API — user should use "Drafts and sent" in Slack UI.

Thread replies: provide thread_ts and optionally reply_broadcast=true. Cannot schedule in externally shared (Slack Connect) channels.

Use slack_search_channels to find channel IDs, slack_search_users to find user IDs (usable as channel_id for DMs).

Parameters (3 required, 2 optional)
Required
channel_idstring

Channel where message will be scheduled

messagestring

Message content to schedule

post_atinteger

Unix timestamp when message should be sent (2 min future minimum, 120 days max)

Optional
reply_broadcastboolean

Broadcast thread reply to channel

thread_tsstring

Message timestamp to reply to (for thread replies)

Search channels

slack_search_channels
Full Description

Search for Slack channels by name or description. Returns channel names, IDs, topics, purposes, and archive status.

Query tips: use terms matching channel names/descriptions (e.g., "engineering", "project alpha"). Names are typically lowercase with hyphens.

Use slack_read_channel to read messages from a known channel. Use slack_search_public to search message content across channels.

Parameters (1 required, 5 optional)
Required
querystring

Search query for finding channels

Optional
channel_typesstring

Comma-separated list of channel types to include in the search. Defaults to public_channel. Mix and match channel types by providing a comma-separated list of any combination of public_channel, private_channel. Example: public_channel,private_channel; Second Example: public_channel

cursorstring

The cursor returned by the API. Leave this blank for the first request, and use this to get the next page of results

include_archivedboolean

Include archived channels in the search results

limitinteger

Number of results to return, up to a max of 20. Defaults to 20.

response_formatstring

Level of detail (default: 'detailed'). Options: 'detailed', 'concise'

Search public messages and files

slack_search_public
Full Description

Searches for messages, files in public Slack channels ONLY.

slack_search_public and slack_search_public_and_private do NOT generally require user consent for use.


query should include keywords or natural language question with search modifiers.

Search modifiers: in:channel-name / in:<#C123456> / -in:channel Channel filter in:<@U123456> / in:@username DM filter from:<@U123456> / from:username Author filter (angle brackets are literal for IDs) to:<@U123456> / to:me Recipient filter creator:@user Canvas creator filter is:thread / is:saved / has:pin / has:link / has:file Content filters has::emoji: / hasmy::emoji: Reaction filters before:YYYY-MM-DD / after:YYYY-MM-DD / on:YYYY-MM-DD / during:month Date filters "exact phrase" / -word / * (wildcard, min 3 chars) Text matching

File search: use content_types="files" with type:` filter (images, documents, pdfs, spreadsheets, presentations, canvases, lists, emails, audio, videos). All standard modifiers work with file searches.

Search types: 1. Natural language — Semantic search is not available for this user. 2. Keyword — exact matches, space-separated = AND, no boolean operators (AND/OR/NOT).

Use slack_read_thread for thread details, slack_read_canvas for canvas content, slack_read_channel for surrounding messages.

Strategy: break into multiple small searches, use modifiers to narrow, try keyword then semantic (or vice versa), broaden if 0 results.


Examples: Use query="What's our holiday schedule? in:#general" query="bug report after:2024-01-08" sort="timestamp" query="from:<@Jane Doe> in:dev bug report"

Additional parameters: include_context (Optional[bool]) Include surrounding context messages for each result (default: true). Set to false to reduce response size. max_context_length (Optional[int]) Max character length for each context message. Longer messages are truncated.

Parameters (1 required, 12 optional)
Required
querystring

Search query (e.g., 'bug report', 'from:<@Jane> in:dev')

Optional
afterstring

Only messages after this Unix timestamp (inclusive)

beforestring

Only messages before this Unix timestamp (inclusive)

content_typesstring

Content types to include, a comma-separated list of any combination of messages, files. Here's more info about the content types: messages: Slack messages from public channels accessible to the acting user files: Files of all types accessible to the acting user

context_channel_idstring

Context channel ID to support boosting the search results for a channel when applicable

cursorstring

The cursor returned by the API. Leave this blank for the first request, and use this to get the next page of results

include_botsboolean

Include bot messages (default: false)

include_contextboolean

Include surrounding context messages for each result (default: true). Set to false to reduce response size.

limitinteger

Number of results to return, up to a max of 20. Defaults to 20.

max_context_lengthinteger

Max character length for each context message. Longer messages are truncated.

response_formatstring

Level of detail (default: 'detailed'). Options: 'detailed', 'concise'

sortstring

Sort by relevance or date (default: 'score'). Options: 'score', 'timestamp'

sort_dirstring

Sort direction (default: 'desc'). Options: 'asc', 'desc'

Search messages and files

slack_search_public_and_private
Full Description

Searches for messages, files in ALL Slack channels, including public channels, private channels, DMs, and group DMs.


query should include keywords or natural language question with search modifiers.

Search modifiers: in:channel-name / in:<#C123456> / -in:channel Channel filter in:<@U123456> / in:@username DM filter from:<@U123456> / from:username Author filter (angle brackets are literal for IDs) to:<@U123456> / to:me Recipient filter creator:@user Canvas creator filter is:thread / is:saved / has:pin / has:link / has:file Content filters has::emoji: / hasmy::emoji: Reaction filters before:YYYY-MM-DD / after:YYYY-MM-DD / on:YYYY-MM-DD / during:month Date filters "exact phrase" / -word / * (wildcard, min 3 chars) Text matching

File search: use content_types="files" with type: filter (images, documents, pdfs, spreadsheets, presentations, canvases, lists, emails, audio, videos). All standard modifiers work with file searches.

Search types: 1. Natural language — Semantic search is not available for this user. 2. Keyword — exact matches, space-separated = AND, no boolean operators (AND/OR/NOT).

Use slack_read_thread for thread details, slack_read_canvas for canvas content, slack_read_channel for surrounding messages.

Strategy: break into multiple small searches, use modifiers to narrow, try keyword then semantic (or vice versa), broaden if 0 results.


Examples:

query="What's our holiday schedule? in:#general" query="bug report after:2024-01-08" sort="timestamp" query="from:<@Jane Doe> in:dev bug report"

Additional parameters: include_context (Optional[bool]) Include surrounding context messages for each result (default: true). Set to false to reduce response size. max_context_length (Optional[int]) Max character length for each context message. Longer messages are truncated.

Parameters (1 required, 13 optional)
Required
querystring

Search query using Slack's search syntax (e.g., 'in:#general from:@user important')

Optional
afterstring

Only messages after this Unix timestamp (inclusive)

beforestring

Only messages before this Unix timestamp (inclusive)

channel_typesstring

Comma-separated list of channel types to include in the search. Defaults to 'public_channel,private_channel,mpim,im' (all channel types including private channels, group DMs, and DMs). Mix and match channel types by providing a comma-separated list of any combination of `public_channel`, `private_channel`, `mpim`, `im`

content_typesstring

Content types to include, a comma-separated list of any combination of messages, files. Here's more info about the content types: messages: Slack messages from channels accessible to the acting user files: Files of all types accessible to the acting user

context_channel_idstring

Context channel ID to support boosting the search results for a channel when applicable

cursorstring

The cursor returned by the API. Leave this blank for the first request, and use this to get the next page of results

include_botsboolean

Include bot messages (default: false)

include_contextboolean

Include surrounding context messages for each result (default: true). Set to false to reduce response size.

limitinteger

Number of results to return, up to a max of 20. Defaults to 20.

max_context_lengthinteger

Max character length for each context message. Longer messages are truncated.

response_formatstring

Level of detail (default: 'detailed'). Options: 'detailed', 'concise'

sortstring

Sort by relevance or date (default: 'score'). Options: 'score', 'timestamp'

sort_dirstring

Sort direction (default: 'desc'). Options: 'asc', 'desc'

Search users

slack_search_users
Full Description

Search for Slack users by name, email, or profile attributes (department, role, title).

Query syntax: full names ("John Smith"), partial names ("John"), emails ("john@company.com"), departments/roles ("engineering"), combinations ("John engineering"), exclusions ("engineering -intern"). Space-separated terms = AND.

Use slack_read_user_profile for detailed info on a known user ID. Use slack_search_public with from: filter to find messages by a user.

Parameters (1 required, 3 optional)
Required
querystring

Search query for finding users. Accepts names, email address, and other attributes in profile Examples: - "John Smith" - exact name match - john@company - find users with john@company in email - engineering -intern - users with "engineering" but not "intern" in profile

Optional
cursorstring

The cursor returned by the API. Leave this blank for the first request, and use this to get the next page of results

limitinteger

Number of results to return, up to a max of 20. Defaults to 20.

response_formatstring

Level of detail (default: 'detailed'). Options: 'detailed', 'concise'

Send message

slack_send_message
Full Description

Sends a message to a Slack channel or user. To DM a user, use their user_id as channel_id. Return the message link to the user.

Message is markdown formatted, limited to 5000 chars per text element. Do not include sensitive info in link query params. Cannot post to externally shared (Slack Connect) channels.

Thread replies: set thread_ts to parent message timestamp, reply_broadcast=true to also post to channel.

Use slack_search_channels to find channel IDs, slack_search_users to find user IDs. If user has not reviewed the message, use slack_send_message_draft instead.

Parameters (2 required, 3 optional)
Required
channel_idstring

ID of the Channel

messagestring

Add a message

Optional
draft_idstring

ID of the draft to delete after sending

reply_broadcastboolean

Also send to conversation

thread_tsstring

Provide another message's ts value to make this message a reply

Create a draft message

slack_send_message_draft
Full Description

Creates a draft message in a Slack channel. The draft is saved to the user's "Drafts & Sent" in Slack without sending it.

When to Use

  • User wants to prepare a message without sending it immediately
  • User needs to compose a message for later review or sending
  • User wants to draft a message to a specific channel

When NOT to Use

  • User wants to send a message immediately (use slack_send_message instead)
  • User wants to schedule a message (use slack_send_message with scheduling)
  • User wants to create drafts in multiple channels (call this tool multiple times)
  • Channel is externally shared (Slack Connect channel) - drafts in externally shared channels are not supported

Input Parameters:

  • channel_id: Single channel ID where the draft should be created
  • message: The draft message content using Slack's markdown format (mrkdwn). Use *bold* (single asterisks), _italic_ (underscores), code (backticks), >quote (angle bracket), and bullet points. Do NOT use

headers or double asterisks - these are not supported.

  • thread_ts (optional): Timestamp of the parent message to create a draft reply in a thread (e.g., "1234567890.123456")

Output:

Returns channel_link - a Slack web client URL (e.g., https://app.slack.com/client/T123/C456) that opens the channel in the web app where the draft was created.

Finding value for channel_id input:

  • Use slack_search_users tool to find user ID for DMs, then use their user_id as the channel_id

Error Codes:

  • channel_not_found: Invalid channel ID or user does not have access to the channel
  • draft_already_exists: A draft already exists for this channel (user should edit or delete the existing draft first)
  • failed_to_create_draft: Draft creation failed for an unknown reason
  • mcp_externally_shared_channel_restricted: Cannot create drafts in externally shared channels (Slack Connect channels)

Notes:

  • Drafts are created as attached drafts (linked to the specific channel)
  • User must have write access to the channel
  • Only one attached draft is allowed per channel - if a draft already exists, you'll get an error
Parameters (2 required, 1 optional)
Required
channel_idstring

Channel to create draft in

messagestring

The message content using standard markdown format

Optional
thread_tsstring

Timestamp of the parent message to create a draft reply in a thread