Work with a Slack Bot Client

Use these Apex classes to work with a Slack bot client.

BotClient Class 

Provides access to a Slack Bot Client so you can perform tasks such as publishing views to the home tab or sending messages to a channel.

Usage

Before you can work with a bot client, register the action and get access to a Slack context. To get access to a Slack client, use the Slack.App class.

1public void run () {
2    Slack.App app = Slack.App.MySlackApp.get();
3    Slack.BotClient client = app.getBotClientForTeam(context.getTeamId());
4    Slack.ViewReference viewReference = Slack.View.MyViewName.get();
5
6    // Get context data
7    String channel = context.getChannelId();
8
9    // Specify your request/response objects and pass in your context data
10}

Bots are allowed to post in channels where they are members. If your app must post to a DM between two users, consider using a user client instead.

Many Slack API methods require a token. BotClient automatically includes an appropriate token in your requests. For example, ChatPostMessageRequest calls Slack’s chat.postMessage method, which requires a token along with a few other arguments. This token is automatically included when you use BotClient to make a request.

BotClient Methods 

The following are methods for BotClient.

appsUninstall(req) 

Signature

1public Slack.AppsUninstallResponse appsUninstall(Slack.AppsUninstallRequest req)

Parameters

req

Type: Slack.AppsUninstallRequest

Return Value

Type: Slack.AppsUninstallResponse

authRevoke(req) 

Signature

1public Slack.AuthRevokeResponse authRevoke(Slack.AuthRevokeRequest req)

Parameters

req

Type: Slack.AuthRevokeRequest

Return Value

Type: Slack.AuthRevokeResponse

authTeamsList(req) 

Signature

1public Slack.AuthTeamsListResponse authTeamsList(Slack.AuthTeamsListRequest req)

Parameters

req

Type: Slack.AuthTeamsListRequest

Return Value

Type: Slack.AuthTeamsListResponse

authTest(req) 

Signature

1public Slack.AuthTestResponse authTest(Slack.AuthTestRequest req)

Parameters

req

Type: Slack.AuthTestRequest

Return Value

Type: Slack.AuthTestResponse

botsInfo(req) 

Signature

1public Slack.BotsInfoResponse botsInfo(Slack.BotsInfoRequest req)

Parameters

req

Type: Slack.BotsInfoRequest

Return Value

Type: Slack.BotsInfoResponse

callsAdd(req) 

Signature

1public Slack.CallsAddResponse callsAdd(Slack.CallsAddRequest req)

Parameters

req

Type: Slack.CallsAddRequest

Return Value

Type: Slack.CallsAddResponse

callsEnd(req) 

Signature

1public Slack.CallsEndResponse callsEnd(Slack.CallsEndRequest req)

Parameters

req

Type: Slack.CallsEndRequest

Return Value

Type: Slack.CallsEndResponse

callsInfo(req) 

Signature

1public Slack.CallsInfoResponse callsInfo(Slack.CallsInfoRequest req)

Parameters

req

Type: Slack.CallsInfoRequest

Return Value

Type: Slack.CallsInfoResponse

callsParticipantsAdd(req) 

Signature

1public Slack.CallsParticipantsAddResponse callsParticipantsAdd(Slack.CallsParticipantsAddRequest req)

Parameters

req

Type: Slack.CallsParticipantsAddRequest

Return Value

Type: Slack.CallsParticipantsAddResponse

callsParticipantsRemove(req) 

Signature

1public Slack.CallsParticipantsRemoveResponse callsParticipantsRemove(Slack.CallsParticipantsRemoveRequest req)

Parameters

req

Type: Slack.CallsParticipantsRemoveRequest

Return Value

Type: Slack.CallsParticipantsRemoveResponse

callsUpdate(req) 

Signature

1public Slack.CallsUpdateResponse callsUpdate(Slack.CallsUpdateRequest req)

Parameters

req

Type: Slack.CallsUpdateRequest

Return Value

Type: Slack.CallsUpdateResponse

chatDelete(req) 

Signature

1public Slack.ChatDeleteResponse chatDelete(Slack.ChatDeleteRequest req)

Parameters

req

Type: Slack.ChatDeleteRequest

Return Value

Type: Slack.ChatDeleteResponse

chatDeleteScheduledMessage(req) 

Signature

1public Slack.ChatDeleteScheduledMessageResponse
2chatDeleteScheduledMessage(
3Slack.ChatDeleteScheduledMessageRequest req)

Parameters

req

Type: Slack.ChatDeleteScheduledMessageRequest

Return Value

Type: Slack.ChatDeleteScheduledMessageResponse

chatGetPermalink(req) 

Signature

1public Slack.ChatGetPermalinkResponse
2    chatGetPermalink(Slack.ChatGetPermalinkRequest req)

Parameters

req

Type: Slack.ChatGetPermalinkRequest

Return Value

Type: Slack.ChatGetPermalinkResponse

chatMeMessage(req) 

Signature

1public Slack.ChatMeMessageResponse chatMeMessage(Slack.ChatMeMessageRequest req)

Parameters

req

Type: Slack.ChatMeMessageRequest

Return Value

Type: Slack.ChatMeMessageResponse

chatPostEphemeral(req) 

Signature

1public Slack.ChatPostEphemeralResponse chatPostEphemeral(Slack.ChatPostEphemeralRequest req)

Parameters

req

Type: Slack.ChatPostEphemeralRequest

Return Value

Type: Slack.ChatPostEphemeralResponse

chatPostMessage(req) 

Signature

1public Slack.ChatPostMessageResponse chatPostMessage(Slack.ChatPostMessageRequest req)

Parameters

req

Type: Slack.ChatPostMessageRequest

Return Value

Type: Slack.ChatPostMessageResponse

chatScheduleMessage(req) 

Signature

1public Slack.ChatScheduleMessageResponse chatScheduleMessage(Slack.ChatScheduleMessageRequest req)

Parameters

req

Type: Slack.ChatScheduleMessageRequest

Return Value

Type: Slack.ChatScheduleMessageResponse

chatScheduledMessagesList(req) 

Signature

1public Slack.ChatScheduledMessagesListResponse chatScheduledMessagesList(Slack.ChatScheduledMessagesListRequest req)

Parameters

req

Type: Slack.ChatScheduledMessagesListRequest

Return Value

Type: Slack.ChatScheduledMessagesListResponse

chatUpdate(req) 

Signature

1public Slack.ChatUpdateResponse chatUpdate(Slack.ChatUpdateRequest req)

Parameters

req

Type: Slack.ChatUpdateRequest

Return Value

Type: Slack.ChatUpdateResponse

conversationsArchive(req) 

Signature

1public Slack.ConversationsArchiveResponse conversationsArchive(Slack.ConversationsArchiveRequest req)

Parameters

req

Type: Slack.ConversationsArchiveRequest

Return Value

Type: Slack.ConversationsArchiveResponse

conversationsClose(req) 

Signature

1public Slack.ConversationsCloseResponse conversationsClose(Slack.ConversationsCloseRequest req)

Parameters

req

Type: Slack.ConversationsCloseRequest

Return Value

Type: Slack.ConversationsCloseResponse

conversationsCreate(req) 

Signature

1public Slack.ConversationsCreateResponse conversationsCreate(Slack.ConversationsCreateRequest req)

Parameters

req

Type: Slack.ConversationsCreateRequest

Return Value

Type: Slack.ConversationsCreateResponse

conversationsHistory(req) 

Signature

1public Slack.ConversationsHistoryResponse conversationsHistory(Slack.ConversationsHistoryRequest req)

Parameters

req

Type: Slack.ConversationsHistoryRequest

Return Value

Type: Slack.ConversationsHistoryResponse

conversationsInfo(req) 

Signature

1public Slack.ConversationsInfoResponse conversationsInfo(Slack.ConversationsInfoRequest req)

Parameters

req

Type: Slack.ConversationsInfoRequest

Return Value

Type: Slack.ConversationsInfoResponse

conversationsInvite(req) 

Signature

1public Slack.ConversationsInviteResponse conversationsInvite(Slack.ConversationsInviteRequest req)

Parameters

req

Type: Slack.ConversationsInviteRequest

Return Value

Type: Slack.ConversationsInviteResponse

conversationsJoin(req) 

Signature

1public Slack.ConversationsJoinResponse conversationsJoin(Slack.ConversationsJoinRequest req)

Parameters

req

Type: Slack.ConversationsJoinRequest

Return Value

Type: Slack.ConversationsJoinResponse

conversationsKick(req) 

Signature

1public Slack.ConversationsKickResponse conversationsKick(Slack.ConversationsKickRequest req)

Parameters

req

Type: Slack.ConversationsKickRequest

Return Value

Type: Slack.ConversationsKickResponse

conversationsLeave(req) 

Signature

1public Slack.ConversationsLeaveResponse conversationsLeave(Slack.ConversationsLeaveRequest req)

Parameters

req

Type: Slack.ConversationsLeaveRequest

Return Value

Type: Slack.ConversationsLeaveResponse

conversationsList(req) 

Signature

1public Slack.ConversationsListResponse conversationsList(Slack.ConversationsListRequest req)

Parameters

req

Type: Slack.ConversationsListRequest

Return Value

Type: Slack.ConversationsListResponse

conversationsMark(req) 

Signature

1public Slack.ConversationsMarkResponse conversationsMark(Slack.ConversationsMarkRequest req)

Parameters

req

Return Value

Type: Slack.ConversationsMarkResponse

conversationsMembers(req) 

Signature

1public Slack.ConversationsMembersResponse conversationsMembers(Slack.ConversationsMembersRequest req)

Parameters

req

Type: Slack.ConversationsMembersRequest

Return Value

Type: Slack.ConversationsMembersResponse

conversationsOpen(req) 

Signature

1public Slack.ConversationsOpenResponse conversationsOpen(Slack.ConversationsOpenRequest req)

Parameters

req

Type: Slack.ConversationsOpenRequest

Return Value

Type: Slack.ConversationsOpenResponse

conversationsRename(req) 

Signature

1public Slack.ConversationsRenameResponse conversationsRename(Slack.ConversationsRenameRequest req)

Parameters

req

Type: Slack.ConversationsRenameRequest

Return Value

Type: Slack.ConversationsRenameResponse

conversationsReplies(req) 

Signature

1public Slack.ConversationsRepliesResponse conversationsReplies(Slack.ConversationsRepliesRequest req)

Parameters

req

Type: Slack.ConversationsRepliesRequest

Return Value

Type: Slack.ConversationsRepliesResponse

conversationsSetPurpose(req) 

Signature

1public Slack.ConversationsSetPurposeResponse conversationsSetPurpose(Slack.ConversationsSetPurposeRequest req)

Parameters

req

Type: Slack.ConversationsSetPurposeRequest

Return Value

Type: Slack.ConversationsSetPurposeResponse

conversationsSetTopic(req) 

Signature

1public Slack.ConversationsSetTopicResponse conversationsSetTopic(Slack.ConversationsSetTopicRequest req)

Parameters

req

Type: Slack.ConversationsSetTopicRequest

Return Value

Type: Slack.ConversationsSetTopicResponse

conversationsUnarchive(req) 

Signature

1public Slack.ConversationsUnarchiveResponse conversationsUnarchive(Slack.ConversationsUnarchiveRequest req)

Parameters

req

Type: Slack.ConversationsUnarchiveRequest

Return Value

Type: Slack.ConversationsUnarchiveResponse

dndInfo(req) 

Signature

1public Slack.DndInfoResponse dndInfo(Slack.DndInfoRequest req)

Parameters

req

Type: Slack.DndInfoRequest

Return Value

Type: Slack.DndInfoResponse

dndTeamInfo(req) 

Signature

1public Slack.DndTeamInfoResponse dndTeamInfo(Slack.DndTeamInfoRequest req)

Parameters

req

Type: Slack.DndTeamInfoRequest

Return Value

Type: Slack.DndTeamInfoResponse

emojiList(req) 

Signature

1public Slack.EmojiListResponse emojiList(Slack.EmojiListRequest req)

Parameters

req

Type: Slack.EmojiListRequest

Return Value

Type: Slack.EmojiListResponse

filesDelete(req) 

Signature

1public Slack.FilesDeleteResponse filesDelete(Slack.FilesDeleteRequest req)

Parameters

req

Type: Slack.FilesDeleteRequest

Return Value

Type: Slack.FilesDeleteResponse

filesInfo(req) 

Signature

1public Slack.FilesInfoResponse filesInfo(Slack.FilesInfoRequest req)

Parameters

req

Type: Slack.FilesInfoRequest

Return Value

Type: Slack.FilesInfoResponse

filesList(req) 

Signature

1public Slack.FilesListResponse filesList(Slack.FilesListRequest req)

Parameters

req

Type: Slack.FilesListRequest

Return Value

Type: Slack.FilesListResponse

filesRemoteAdd(req) 

Signature

1public Slack.FilesRemoteAddResponse filesRemoteAdd(Slack.FilesRemoteAddRequest req)

Parameters

req

Type: Slack.FilesRemoteAddRequest

Return Value

Type: Slack.FilesRemoteAddResponse

filesRemoteInfo(req) 

Signature

1public Slack.FilesRemoteInfoResponse filesRemoteInfo(Slack.FilesRemoteInfoRequest req)

Parameters

req

Type: Slack.FilesRemoteInfoRequest

Return Value

Type: Slack.FilesRemoteInfoResponse

filesRemoteList(req) 

Signature

1public Slack.FilesRemoteListResponse filesRemoteList(Slack.FilesRemoteListRequest req)

Parameters

req

Type: Slack.FilesRemoteListRequest

Return Value

Type: Slack.FilesRemoteListResponse

filesRemoteRemove(req) 

Signature

1public Slack.FilesRemoteRemoveResponse filesRemoteRemove(Slack.FilesRemoteRemoveRequest req)

Parameters

req

Type: Slack.FilesRemoteRemoveRequest

Return Value

Type: Slack.FilesRemoteRemoveResponse

filesRemoteShare(req) 

Signature

1public Slack.FilesRemoteShareResponse filesRemoteShare(Slack.FilesRemoteShareRequest req)

Parameters

req

Type: Slack.FilesRemoteShareRequest

Return Value

Type: Slack.FilesRemoteShareResponse

filesRemoteUpdate(req) 

Signature

1public Slack.FilesRemoteUpdateResponse filesRemoteUpdate(Slack.FilesRemoteUpdateRequest req)

Parameters

req

Type: Slack.FilesRemoteUpdateRequest

migrationExchange(req) 

Signature

1public Slack.MigrationExchangeResponse migrationExchange(Slack.MigrationExchangeRequest req)

Parameters

req

Type: Slack.MigrationExchangeRequest

Return Value

Type: Slack.MigrationExchangeResponse

pinsAdd(req) 

Signature

1public Slack.PinsAddResponse pinsAdd(Slack.PinsAddRequest req)

Parameters

req

Type: Slack.PinsAddRequest

Return Value

Type: Slack.PinsAddResponse

pinsList(req) 

Signature

1public Slack.PinsListResponse pinsList(Slack.PinsListRequest req)

Parameters

req

Type: Slack.PinsListRequest

Return Value

Type: Slack.PinsListResponse

pinsRemove(req) 

Signature

1public Slack.PinsRemoveResponse pinsRemove(Slack.PinsRemoveRequest req)

Parameters

req

Type: Slack.PinsRemoveRequest

Return Value

Type: Slack.PinsRemoveResponse

reactionsAdd(req) 

Signature

1public Slack.ReactionsAddResponse reactionsAdd(Slack.ReactionsAddRequest req)

Parameters

req

Type: Slack.ReactionsAddRequest

Return Value

Type: Slack.ReactionsAddResponse

reactionsGet(req) 

Signature

1public Slack.ReactionsGetResponse reactionsGet(Slack.ReactionsGetRequest req)

Parameters

req

Type: Slack.ReactionsGetRequest

Return Value

Type: Slack.ReactionsGetResponse

reactionsList(req) 

Signature

1public Slack.ReactionsListResponse reactionsList(Slack.ReactionsListRequest req)

Parameters

req

Type: Slack.ReactionsListRequest

Return Value

Type: Slack.ReactionsListResponse

reactionsRemove(req) 

Signature

1public Slack.ReactionsRemoveResponse reactionsRemove(Slack.ReactionsRemoveRequest req)

Parameters

req

Type: Slack.ReactionsRemoveRequest

Return Value

Type: Slack.ReactionsRemoveResponse

starsAdd(req) 

Signature

1public Slack.StarsAddResponse starsAdd(Slack.StarsAddRequest req)

Parameters

req

Type: Slack.StarsAddRequest

Return Value

Type: Slack.StarsAddResponse

teamInfo(req) 

Signature

1public Slack.TeamInfoResponse teamInfo(Slack.TeamInfoRequest req)

Parameters

req

Type: Slack.TeamInfoRequest

Return Value

Type: Slack.TeamInfoResponse

teamProfileGet(req) 

Signature

1public Slack.TeamProfileGetResponse teamProfileGet(Slack.TeamProfileGetRequest req)

Parameters

req

Type: Slack.TeamProfileGetRequest

Return Value

Type: Slack.TeamProfileGetResponse

usergroupsCreate(req) 

Signature

1public Slack.UsergroupsCreateResponse usergroupsCreate(Slack.UsergroupsCreateRequest req)

Parameters

req

Type: Slack.UsergroupsCreateRequest

Return Value

Type: Slack.UsergroupsCreateResponse

usergroupsDisable(req) 

Parameters

req

1public Slack.UsergroupsDisableResponse usergroupsDisable(Slack.UsergroupsDisableRequest req)

Parameters

req

Type: Slack.UsergroupsDisableRequest

Return Value

Type: Slack.UsergroupsDisableResponse

usergroupsEnable(req) 

Signature

1public Slack.UsergroupsEnableResponse usergroupsEnable(Slack.UsergroupsEnableRequest req)

Parameters

req

Type: Slack.UsergroupsEnableRequest

Return Value

Type: Slack.UsergroupsEnableResponse

usergroupsList(req) 

Signature

1public Slack.UsergroupsListResponse usergroupsList(Slack.UsergroupsListRequest req)

Parameters

req

Type: Slack.UsergroupsListRequest

Return Value

Type: Slack.UsergroupsListResponse

usergroupsUpdate(req) 

Signature

1public Slack.UsergroupsUpdateResponse usergroupsUpdate(Slack.UsergroupsUpdateRequest req)

Parameters

req

Type: Slack.UsergroupsUpdateRequest

Return Value

Type: Slack.UsergroupsUpdateResponse

usergroupsUsersList(req) 

Signature

1public Slack.UsergroupsUsersListResponse usergroupsUsersList(Slack.UsergroupsUsersListRequest req)

Parameters

req

Type: Slack.UsergroupsUsersListRequest

Return Value

Type: Slack.UsergroupsUsersListResponse

usergroupsUsersUpdate(req) 

Signature

1public Slack.UsergroupsUsersUpdateResponse usergroupsUsersUpdate(Slack.UsergroupsUsersUpdateRequest req)

Parameters

req

Type: Slack.UsergroupsUsersUpdateRequest

Return Value

Type: Slack.UsergroupsUsersUpdateResponse

usersConversations(req) 

Signature

1public Slack.UsersConversationsResponse usersConversations(Slack.UsersConversationsRequest req)

Parameters

Type: Slack.UsersConversationsRequest

usersGetPresence(req) 

Signature

1public Slack.UsersGetPresenceResponse usersGetPresence(Slack.UsersGetPresenceRequest req)

Parameters

req

Type: Slack.UsersGetPresenceRequest

Return Value

Type: Slack.UsersGetPresenceResponse

usersInfo(req) 

Signature

1public Slack.UsersInfoResponse usersInfo(Slack.UsersInfoRequest req)

Return Value

Type: Slack.UsersInfoResponse

usersList(req) 

Signature

1public Slack.UsersListResponse usersList(Slack.UsersListRequest req)

Return Value

req

Type: Slack.UsersListRequest

usersLookupByEmail(req) 

Signature

1public Slack.UsersLookupByEmailResponse usersLookupByEmail(Slack.UsersLookupByEmailRequest req)

Parameters

req

Type: Slack.UsersLookupByEmailRequest

Return Value

Type: Slack.UsersLookupByEmailResponse

usersProfileGet(req) 

Signature

1public Slack.UsersProfileGetResponse usersProfileGet(Slack.UsersProfileGetRequest req)

Parameters

req

Type: Slack.UsersProfileGetRequest

Return Value

Type: Slack.UsersProfileGetResponse

usersSetActive(req) 

Signature

1public Slack.UsersSetActiveResponse usersSetActive(Slack.UsersSetActiveRequest req)

Parameters

req

Type: Slack.UsersSetActiveRequest

Return Value

Type: Slack.UsersSetActiveResponse

usersSetPresence(req) 

Signature

1public Slack.UsersSetPresenceResponse usersSetPresence(Slack.UsersSetPresenceRequest req)

Parameters

req

Type: Slack.UsersSetPresenceRequest

Return Value

Type: Slack.UsersSetPresenceResponse

viewsOpen(req) 

Signature

1public Slack.ViewsOpenResponse viewsOpen(Slack.ViewsOpenRequest req)

Parameters

req

Type: Slack.ViewsOpenRequest

Return Value

Type: Slack.ViewsOpenResponse

viewsPublish(req) 

Signature

1public Slack.ViewsPublishResponse viewsPublish(Slack.ViewsPublishRequest req)

Parameters

req

Type: Slack.ViewsPublishRequest

Return Value

Type: Slack.ViewsPublishResponse

viewsPush(req) 

Signature

1public Slack.ViewsPushResponse viewsPush(Slack.ViewsPushRequest req)

Parameters

req

Type: Slack.ViewsPushRequest

Return Value

Type: Slack.ViewsPushResponse

viewsUpdate(req) 

Signature

1public Slack.ViewsUpdateResponse viewsUpdate(Slack.ViewsUpdateRequest req)

Parameters

req

Type: Slack.ViewsUpdateRequest

Return Value

Type: Slack.ViewsUpdateResponse

workflowsStepCompleted(req) 

Signature

1public Slack.WorkflowsStepCompletedResponse workflowsStepCompleted(Slack.WorkflowsStepCompletedRequest req)

Parameters

req

Type: Slack.WorkflowsStepCompletedRequest

Return Value

Type: Slack.WorkflowsStepCompletedResponse

workflowsStepFailed(req) 

Signature

1public Slack.WorkflowsStepFailedResponse workflowsStepFailed(Slack.WorkflowsStepFailedRequest req)

Parameters

req

Type: Slack.WorkflowsStepFailedRequest

workflowsUpdateStep(req) 

Signature

1public Slack.WorkflowsUpdateStepResponse workflowsUpdateStep(Slack.WorkflowsUpdateStepRequest req)

Parameters

req

Type: Slack.WorkflowsUpdateStepRequest

Return Value

Type: Slack.WorkflowsUpdateStepResponse

Beta Feature

This feature is not generally available. It is not part of your purchased Services. This feature is subject to change, may be discontinued with no notice at any time in SFDC’s sole discretion, and SFDC may never make this feature generally available. Make your purchase decisions only on the basis of generally available products and features. This feature is made available on an AS IS basis and use of this feature is at your sole risk.