Go to Slack

Bot Users

You're reading this because you're looking for info on legacy custom integrations - an outdated way for teams to integrate with Slack. These integrations lack newer features and they will be deprecated and possibly removed in the future. We do not recommend their use.
Instead, we suggest that you read about their replacement - Slack apps. Slack apps can be built just for your own workspace or distributed through the App Directory, and they can use the latest and greatest APIs and UI features.

Building a bot enables conversations between users and your app in Slack.

Because we strongly recommend you do not use legacy custom integrations anymore, you should instead use the similar feature in Slack apps. Our guide to Enabling Interactions with Bots will walk you through the process of enabling this functionality in a Slack app.


Migrating from legacy bots

If you previously created a bot using legacy integrations, you should switch to using bots with a Slack app instead. To do this you need to follow the Enabling Interactions with Bots guide and create new bots to replicate your existing ones.

The majority of your legacy bot code should continue to work within a Slack app without much modification; check out the list of limitations to see if there's anything you'll need to adjust.

In our newer bot guide we do suggest that you use the Events API with bots in Slack apps; however you can also continue to use the Real Time Messaging API that was suggested for use with legacy bots.


Legacy information

Though we recommend that all legacy custom integrations should migrate to Slack apps, we also understand that some will still need to maintain older integrations. This section contains any information about building bots that is specific to the legacy implementation.

Legacy management

If you need to configure your legacy integrations, you can access the Integrations management pages here.

Additional limitations

While you can use legacy bots to post messages, they do not have access to interactive messages features. To make your messages interactive, you'll need to build a Slack app bot instead.

Legacy Bot Methods

Legacy Bot Users, and legacy bot tokens, can be used with a restricted set of Web API methods. These methods are shown below:

Method & Description Description
api.test
Checks API calling code.
Checks API calling code.
auth.revoke
Revokes a token.
Revokes a token.
auth.test
Checks authentication & identity.
Checks authentication & identity.
bots.info
Gets information about a bot user.
Gets information about a bot user.
channels.history
Fetches history of messages and events from a channel.
Fetches history of messages and events from a channel.
channels.info
Gets information about a channel.
Gets information about a channel.
channels.list
Lists all channels in a Slack team.
Lists all channels in a Slack team.
channels.mark
Sets the read cursor in a channel.
Sets the read cursor in a channel.
channels.replies
Retrieve a thread of messages posted to a channel
Retrieve a thread of messages posted to a channel
channels.setPurpose
Sets the purpose for a channel.
Sets the purpose for a channel.
channels.setTopic
Sets the topic for a channel.
Sets the topic for a channel.
chat.delete
Deletes a message.
Deletes a message.
chat.getPermalink
Retrieve a permalink URL for a specific extant message
Retrieve a permalink URL for a specific extant message
chat.meMessage
Share a me message into a channel.
Share a me message into a channel.
chat.postEphemeral
Sends an ephemeral message to a user in a channel.
Sends an ephemeral message to a user in a channel.
chat.postMessage
Sends a message to a channel.
Sends a message to a channel.
chat.update
Updates a message.
Updates a message.
conversations.close
Closes a direct message or multi-person direct message.
Closes a direct message or multi-person direct message.
conversations.history
Fetches a conversation's history of messages and events.
Fetches a conversation's history of messages and events.
conversations.info
Retrieve information about a conversation.
Retrieve information about a conversation.
conversations.list
Lists all channels in a Slack team.
Lists all channels in a Slack team.
conversations.members
Retrieve members of a conversation.
Retrieve members of a conversation.
conversations.open
Opens or resumes a direct message or multi-person direct message.
Opens or resumes a direct message or multi-person direct message.
conversations.replies
Retrieve a thread of messages posted to a conversation
Retrieve a thread of messages posted to a conversation
conversations.setPurpose
Sets the purpose for a conversation.
Sets the purpose for a conversation.
conversations.setTopic
Sets the topic for a conversation.
Sets the topic for a conversation.
dialog.open
Open a dialog with a user
Open a dialog with a user
dnd.info
Retrieves a user's current Do Not Disturb status.
Retrieves a user's current Do Not Disturb status.
dnd.teamInfo
Retrieves the Do Not Disturb status for users on a team.
Retrieves the Do Not Disturb status for users on a team.
emoji.list
Lists custom emoji for a team.
Lists custom emoji for a team.
files.comments.add
Add a comment to an existing file.
Add a comment to an existing file.
files.comments.delete
Deletes an existing comment on a file.
Deletes an existing comment on a file.
files.comments.edit
Edit an existing file comment.
Edit an existing file comment.
files.delete
Deletes a file.
Deletes a file.
files.info
Gets information about a team file.
Gets information about a team file.
files.upload
Uploads or creates a file.
Uploads or creates a file.
groups.history
Fetches history of messages and events from a private channel.
Fetches history of messages and events from a private channel.
groups.info
Gets information about a private channel.
Gets information about a private channel.
groups.list
Lists private channels that the calling user has access to.
Lists private channels that the calling user has access to.
groups.mark
Sets the read cursor in a private channel.
Sets the read cursor in a private channel.
groups.open
Opens a private channel.
Opens a private channel.
groups.setPurpose
Sets the purpose for a private channel.
Sets the purpose for a private channel.
groups.setTopic
Sets the topic for a private channel.
Sets the topic for a private channel.
im.close
Close a direct message channel.
Close a direct message channel.
im.history
Fetches history of messages and events from direct message channel.
Fetches history of messages and events from direct message channel.
im.list
Lists direct message channels for the calling user.
Lists direct message channels for the calling user.
im.mark
Sets the read cursor in a direct message channel.
Sets the read cursor in a direct message channel.
im.open
Opens a direct message channel.
Opens a direct message channel.
im.replies
Retrieve a thread of messages posted to a direct message conversation
Retrieve a thread of messages posted to a direct message conversation
migration.exchange
For Enterprise Grid workspaces, map local user IDs to global user IDs
For Enterprise Grid workspaces, map local user IDs to global user IDs
mpim.close
Closes a multiparty direct message channel.
Closes a multiparty direct message channel.
mpim.history
Fetches history of messages and events from a multiparty direct message.
Fetches history of messages and events from a multiparty direct message.
mpim.list
Lists multiparty direct message channels for the calling user.
Lists multiparty direct message channels for the calling user.
mpim.mark
Sets the read cursor in a multiparty direct message channel.
Sets the read cursor in a multiparty direct message channel.
mpim.open
This method opens a multiparty direct message.
This method opens a multiparty direct message.
oauth.access
Exchanges a temporary OAuth verifier code for an access token.
Exchanges a temporary OAuth verifier code for an access token.
oauth.token
Exchanges a temporary OAuth verifier code for a workspace token.
Exchanges a temporary OAuth verifier code for a workspace token.
pins.add
Pins an item to a channel.
Pins an item to a channel.
pins.list
Lists items pinned to a channel.
Lists items pinned to a channel.
pins.remove
Un-pins an item from a channel.
Un-pins an item from a channel.
reactions.add
Adds a reaction to an item.
Adds a reaction to an item.
reactions.get
Gets reactions for an item.
Gets reactions for an item.
reactions.list
Lists reactions made by a user.
Lists reactions made by a user.
reactions.remove
Removes a reaction from an item.
Removes a reaction from an item.
rtm.connect
Starts a Real Time Messaging session.
Starts a Real Time Messaging session.
rtm.start
Starts a Real Time Messaging session.
Starts a Real Time Messaging session.
stars.add
Adds a star to an item.
Adds a star to an item.
stars.remove
Removes a star from an item.
Removes a star from an item.
team.info
Gets information about the current team.
Gets information about the current team.
users.conversations
List conversations the calling user may access.
List conversations the calling user may access.
users.getPresence
Gets user presence information.
Gets user presence information.
users.info
Gets information about a user.
Gets information about a user.
users.list
Lists all users in a Slack team.
Lists all users in a Slack team.
users.setActive
Marked a user as active. Deprecated and non-functional.
Marked a user as active. Deprecated and non-functional.
users.setPresence
Manually sets user presence.
Manually sets user presence.