Integration

Slack integration

Team communication and collaboration platform API for messaging, channels, users, and file sharing. Send and manage messages, create channels, search conversations, upload files, add reactions, and manage workspace users. Perfect for building Slack bots, team automation tools, notification systems, and collaboration integrations.

Ask it in chat

Say what should happen.
The workflow builds itself.

When this happens, do that in Slack.Built from the 71 Slack tools below, on the connection you add once.

Common Slack use cases

  • sharing reports with teams
  • file management
  • automated channel provisioning
  • group management interfaces
  • reminder management
  • channel organization
  • group lifecycle management
  • channel lifecycle management
  • bot cleanup
  • app dashboards

What you can do with Slack

Each of these is one operation on one endpoint, available both as a workflow step and as a tool an AI agent can call on its own. Nothing bundles several operations into one action, so what a run did stays readable afterwards.

Most endpoints run on the free plan. A few, mainly the ones that publish on your behalf, need a paid plan.

Channel, 12 operations

  • archive_conversationArchive conversationPOSTArchives a channel. The channel becomes read-only and hidden from the channel list by default.
  • create_conversationCreate conversationPOSTCreates a new Slack channel in the workspace. Specify channel name and whether it's public or private. Channel names must be lowercase, without spaces, and unique. Returns the created channel with its ID for subsequent operations.
  • get_conversation_infoGet conversation infoGETRetrieves detailed metadata about a specific Slack channel. Returns channel name, purpose, topic, creation date, member count, and configuration settings. Works with public channels, private channels, DMs, and group DMs.
  • join_conversationJoin conversationPOSTJoins an existing public channel. The authenticated user or bot is added as a member.
  • leave_conversationLeave conversationPOSTLeaves a channel. The authenticated user or bot is removed from the channel's member list.
  • list_conversationsList conversationsGETRetrieves all Slack channels accessible to the authenticated user or bot. Filter by channel type including public channels, private channels, group DMs, and direct messages. Returns channel IDs, names, membership counts, and metadata for each conv...
  • mark_conversationMark conversationPOSTSets the read cursor in a channel to a specific message. Marks messages as read up to the specified timestamp.
  • open_conversationOpen conversationPOSTOpens or resumes a direct message or multi-person direct message. Creates a new DM if one doesn't exist.
  • rename_conversationRename conversationPOSTRenames a channel. Channel names must be lowercase, without spaces, and unique.
  • set_conversation_purposeSet conversation purposePOSTSets the purpose (description) for a channel. The purpose is visible in channel details.
  • set_conversation_topicSet conversation topicPOSTSets the topic for a channel. The topic is displayed at the top of the channel.
  • unarchive_conversationUnarchive conversationPOSTReverses the archiving of a channel. The channel becomes active again and members can post messages.

Message, 8 operations

  • delete_messageDelete messagePOSTPermanently removes a message from a Slack channel. Requires message timestamp and channel ID. Deletes all associated content including attachments and blocks. Thread replies remain but show parent was deleted.
  • get_conversation_historyGet conversation historyGETRetrieves message history from a Slack channel with optional time range filtering. Returns messages in reverse chronological order with full content, reactions, and metadata. Supports pagination for channels with extensive history.
  • get_conversation_repliesGet conversation repliesGETRetrieves all replies (thread messages) for a specific parent message in a channel. Returns the parent message and all threaded replies in chronological order.
  • get_permalinkGet permalinkGETRetrieves a permalink URL for a specific message that can be shared to navigate directly to the message in Slack.
  • post_messagePost messagePOSTSends a message to a Slack channel or direct message conversation. Supports rich formatting with markdown, Block Kit for interactive layouts, attachments for structured content, and threading for organized discussions. Returns message timestamp fo...
  • schedule_messageSchedule messagePOSTSchedules a message for future delivery to a channel. Specify a Unix timestamp for when the message should be posted.
  • search_messagesSearch messagesGETSearches across all accessible Slack messages using text queries. Supports search modifiers for filtering by user, channel, date, and more. Returns matching messages with context and relevance ranking.
  • update_messageUpdate messagePOSTModifies an existing Slack message content. Requires the original message timestamp (ts) and channel ID. Updates text, blocks, and attachments while preserving reactions and thread replies. Useful for progress updates and correcting messages.

User, 8 operations

  • get_conversation_membersGet conversation membersGETRetrieves the list of member user IDs for a channel. Supports pagination for channels with many members.
  • get_user_infoGet user infoGETRetrieves detailed profile information for a specific Slack user. Returns name, email, profile picture, status, timezone, and admin status. Essential for displaying user details or enriching user mentions.
  • get_user_presenceGet user presenceGETGets a user's current presence status (active or away).
  • list_usersList usersGETRetrieves all users in a Slack workspace including active members, guests, and bots. Returns user IDs, names, email addresses, profile information, and status. Supports pagination for large workspaces.
  • lookup_user_by_emailLookup user by emailGETFinds a user by their email address and returns their full profile information.
  • set_user_presenceSet user presencePOSTManually sets user presence to auto or away.
  • set_user_profileSet user profilePOSTSets or updates a user's profile information including status, display name, and custom fields.
  • usergroups_users_listUsergroups users listGETLists all users who are members of a specific User Group. Returns an array of user IDs that can be resolved using users.info.

File, 6 operations

  • complete_upload_externalComplete upload externalPOSTStep 2 of the new Slack file upload flow. Finalizes the upload and shares the file to a channel. Requires the file_id from get_upload_url_external.
  • delete_fileDelete filePOSTDeletes a file from the workspace permanently.
  • get_file_infoGet file infoGETGets detailed information about a specific file including metadata, download URLs, and sharing info.
  • get_upload_url_externalGet upload url externalPOSTStep 1 of the new Slack file upload flow. Returns an upload URL and file ID. POST the file bytes to upload_url, then call complete_upload_external with the file_id.
  • list_filesList filesGETLists files shared across the workspace. Filter by channel, user, file type, and date range.
  • upload_fileUpload filePOSTDEPRECATED - Uploads and shares a file to one or more Slack channels. Prefer get_upload_url_external + complete_upload_external for new integrations.

Usergroup, 6 operations

  • usergroups_createUsergroups createPOSTCreates a new User Group (like @marketing or @engineering) that can be mentioned to notify all group members at once. Define handle, name, description, and optionally add channels where the group is used.
  • usergroups_disableUsergroups disablePOSTDisables a User Group without deleting it. The group cannot be @mentioned while disabled but retains its members and can be re-enabled later.
  • usergroups_enableUsergroups enablePOSTRe-enables a previously disabled User Group. The group becomes active again and can be @mentioned.
  • usergroups_listUsergroups listGETLists all User Groups in a workspace. Returns group IDs, names, handles, descriptions, and member counts. Use to discover available groups or build group management interfaces.
  • usergroups_updateUsergroups updatePOSTUpdates an existing User Group's name, handle, description, or default channels. Does not modify membership - use usergroups.users.update for that.
  • usergroups_users_updateUsergroups users updatePOSTUpdates the member list of a User Group. Replaces all current members with the specified users. To add/remove individual users, first get the current list and modify it.

Dnd, 5 operations

  • dnd_end_dndDnd end dndPOSTEnds the current Do Not Disturb session entirely, including scheduled DND hours. Use with caution as it affects the user's configured DND schedule.
  • dnd_end_snoozeDnd end snoozePOSTEnds the current Do Not Disturb snooze session immediately. Restores normal notification behavior before the scheduled snooze end time.
  • dnd_infoDnd infoGETRetrieves a user's current Do Not Disturb status. Shows whether DND is active, snooze status, and when it ends. Useful for respecting notification preferences.
  • dnd_set_snoozeDnd set snoozePOSTTurns on Do Not Disturb mode for the authenticated user for a specified duration. Silences all Slack notifications during the snooze period.
  • dnd_team_infoDnd team infoGETRetrieves Do Not Disturb status for multiple users at once. Returns DND states for up to 50 users in a single call. Efficient for checking team availability.

Reminder, 5 operations

  • reminders_addReminders addPOSTCreates a reminder for the authenticated user or another user. Set a specific time or use natural language like 'in 10 minutes' or 'tomorrow at 9am'. Reminders trigger Slack notifications.
  • reminders_completeReminders completePOSTMarks a reminder as complete. The reminder will no longer trigger notifications. Use this when a task has been finished or the reminder is no longer needed.
  • reminders_deleteReminders deletePOSTPermanently deletes a reminder. The reminder will not trigger and cannot be recovered. Use for canceling reminders that are no longer relevant.
  • reminders_infoReminders infoGETRetrieves detailed information about a specific reminder by its ID. Returns the reminder text, scheduled time, creator, recipient, and completion status.
  • reminders_listReminders listGETLists all reminders created by or for the authenticated user. Returns pending, completed, and recurring reminders with their scheduled times and content.

Bookmark, 4 operations

  • bookmarks_addBookmarks addPOSTAdds a bookmark to a channel. Bookmarks appear at the top of the channel and provide quick access to important links, documents, or resources.
  • bookmarks_editBookmarks editPOSTUpdates an existing channel bookmark. Modify the title, link, or emoji without removing and recreating the bookmark.
  • bookmarks_listBookmarks listGETLists all bookmarks in a channel. Returns bookmark IDs, titles, URLs, types, and who created them. Useful for displaying or managing channel bookmarks.
  • bookmarks_removeBookmarks removePOSTRemoves a bookmark from a channel. The bookmark is permanently deleted and will no longer appear at the top of the channel.

Reaction, 4 operations

  • add_reactionAdd reactionPOSTAdds an emoji reaction to a Slack message. Specify emoji name without colons (e.g., 'thumbsup' not ':thumbsup:'). Reactions enable quick feedback, voting, and acknowledgment without sending new messages.
  • get_reactionsGet reactionsGETGets reactions for a specific message, file, or file comment. Returns all emoji reactions with the users who reacted.
  • list_reactionsList reactionsGETLists reactions made by a user. Returns items the user has reacted to.
  • remove_reactionRemove reactionPOSTRemoves an emoji reaction from a message, file, or file comment.

View, 4 operations

  • views_openViews openPOSTOpens a modal view for a user triggered from a slash command, shortcut, or interactive component. Requires a valid trigger_id from the interaction payload. Build interactive forms, confirmations, and multi-step workflows.
  • views_publishViews publishPOSTPublishes a view to a user's App Home tab. Creates or updates the home tab content for your app. The home tab persists and shows when users open your app from the sidebar.
  • views_pushViews pushPOSTPushes a new view onto the modal stack, creating a layered navigation experience. Users can navigate back to previous views. Maximum stack depth is 3 views.
  • views_updateViews updatePOSTUpdates an existing modal view while it is open. Use to dynamically change content, show loading states, or respond to user selections. Requires either view_id or external_id from the original view.

Pin, 3 operations

  • list_pinsList pinsGETLists all pinned items in a channel.
  • pin_messagePin messagePOSTPins a message to a channel. Pinned messages appear in the channel's pinned items.
  • unpin_messageUnpin messagePOSTRemoves a pin from a message in a channel. The message remains but is no longer pinned.

Star, 3 operations

  • stars_addStars addPOSTAdds a star (saved item) to a message, file, or channel. Starred items appear in the user's Saved Items for quick access later.
  • stars_listStars listGETLists all starred (saved) items for the authenticated user. Returns messages, files, and channels that have been starred. Supports pagination for users with many saved items.
  • stars_removeStars removePOSTRemoves a star (saved item) from a message, file, or channel. The item will no longer appear in the user's Saved Items.

Member, 2 operations

  • invite_to_conversationInvite to conversationPOSTInvites one or more users to a Slack channel. Accepts comma-separated user IDs. Users receive notification of being added. Works with public and private channels where the caller has invite permissions.
  • kick_from_conversationKick from conversationPOSTRemoves a user from a channel. The user will no longer see new messages.

Auth, 1 operation

  • auth_testAuth testPOSTValidates the authentication token and returns information about the authenticated user or bot. Returns workspace name, user/bot ID, and team ID. Essential for verifying credentials and getting identity information.

OAuth scopes Slack requires

Each operation declares the scopes Slack requires for it.

  • channels:manageneeded by archive_conversation, create_conversation, invite_to_conversation and 7 more
  • usergroups:writeneeded by usergroups_create, usergroups_disable, usergroups_enable and 2 more
  • chat:writeneeded by delete_message, post_message, schedule_message and 1 more
  • files:writeneeded by complete_upload_external, delete_file, get_upload_url_external and 1 more
  • bookmarks:writeneeded by bookmarks_add, bookmarks_edit, bookmarks_remove
  • channels:readneeded by get_conversation_info, get_conversation_members, list_conversations
  • users:readneeded by get_user_info, get_user_presence, list_users
  • channels:historyneeded by get_conversation_history, get_conversation_replies
  • dnd:readneeded by dnd_info, dnd_team_info
  • files:readneeded by get_file_info, list_files
  • pins:writeneeded by pin_message, unpin_message
  • reactions:readneeded by get_reactions, list_reactions
  • reactions:writeneeded by add_reaction, remove_reaction
  • usergroups:readneeded by usergroups_list, usergroups_users_list
  • bookmarks:readneeded by bookmarks_list
  • channels:joinneeded by join_conversation
  • im:writeneeded by open_conversation
  • pins:readneeded by list_pins
  • users:read.emailneeded by lookup_user_by_email
  • users:writeneeded by set_user_presence

Slack API rate limits

  • 50 requests per minute

Slack uses tiered rate limiting: Tier 1 (1/min), Tier 2 (20/min), Tier 3 (50/min), Tier 4 (100/min). This value represents Tier 3 as a general default.

These are the limits Slack documents, not ones LiveContext measured. They can change and often depend on your plan, so check the Slack documentation for current values.

Use Slack from Claude Code, Cursor or Codex

Connect Slack in LiveContext, create an API key in Settings, then add the LiveContext MCP server to your client. Its Slack operations become tools the client can call, next to every other integration you connected.

Claude Code
claude mcp add --transport http livecontext https://livecontext.ai/mcp --header "X-API-Key: YOUR_API_KEY"
Codex (~/.codex/config.toml)
[mcp_servers.livecontext]
url = "https://livecontext.ai/mcp"

[mcp_servers.livecontext.http_headers]
"X-API-Key" = "YOUR_API_KEY"
Cursor, Claude Desktop and other JSON configs
{
  "mcpServers": {
    "livecontext": {
      "type": "http",
      "url": "https://livecontext.ai/mcp",
      "headers": {
        "X-API-Key": "YOUR_API_KEY"
      }
    }
  }
}

Set up the MCP server step by step

How to connect Slack

  1. Create your workspace

    Sign up free. Nothing to install.

  2. Connect Slack once

    Add your Slack connection in Settings. Every tool from this integration reuses it, and secrets are encrypted at rest and visible only to you.

  3. Describe the job in chat

    The workflow builds itself in front of you and picks the endpoints it needs. Drag the steps yourself on the canvas whenever you would rather be explicit.

Slack integration FAQ

What can you do with the Slack integration?

LiveContext exposes 71 operations on Slack, covering channel, message, user and file. Common uses include sharing reports with teams, file management and automated channel provisioning.

Which OAuth scopes does Slack require?

It depends on the operation: each one declares the scopes Slack requires for it. The most common are channels:manage (10 operations), usergroups:write (5 operations), chat:write (4 operations) and files:write (4 operations).

What are the Slack API rate limits?

Slack documents 50 requests per minute. Slack uses tiered rate limiting: Tier 1 (1/min), Tier 2 (20/min), Tier 3 (50/min), Tier 4 (100/min). This value represents Tier 3 as a general default. Limits are set by Slack and can depend on your plan.

Popular integrations

Browse the whole catalog