Bot Users
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. |
calls.add Registers a new Call. | Registers a new Call. |
calls.end Ends a Call. | Ends a Call. |
calls.info Returns information about a Call. | Returns information about a Call. |
calls.participants.add Registers new participants added to a Call. | Registers new participants added to a Call. |
calls.participants.remove Registers participants removed from a Call. | Registers participants removed from a Call. |
calls.update Updates information about a Call. | Updates information about a Call. |
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.mark Sets the read cursor in a channel. | Sets the read cursor in a channel. |
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 up to 50 users on a team. | Retrieves the Do Not Disturb status for up to 50 users on a team. |
emoji.list Lists custom emoji for a team. | Lists custom emoji for a team. |
files.comments.delete Deletes an existing comment on a file. | Deletes an existing comment on a file. |
files.delete Deletes a file. | Deletes a file. |
files.info Gets information about a file. | Gets information about a file. |
files.remote.add Adds a file from a remote service | Adds a file from a remote service |
files.remote.info Retrieve information about a remote file added to Slack | Retrieve information about a remote file added to Slack |
files.remote.list Retrieve information about a remote file added to Slack | Retrieve information about a remote file added to Slack |
files.remote.remove Remove a remote file. | Remove a remote file. |
files.remote.share Share a remote file into a channel. | Share a remote file into a channel. |
files.remote.update Updates an existing remote file. | Updates an existing remote 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. |
oauth.v2.access Exchanges a temporary OAuth verifier code for an access token. | Exchanges a temporary OAuth verifier code for an access 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. |
views.open Open a view for a user. | Open a view for a user. |
views.publish Publish a static view for a User. | Publish a static view for a User. |
views.push Push a view onto the stack of a root view. | Push a view onto the stack of a root view. |
views.update Update an existing view. | Update an existing view. |