# 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](/docs/platform/salesforce-slack-sdk/guide/actions_register.md). To get access to a Slack client, use the [`Slack.App` class](/docs/platform/salesforce-slack-sdk/guide/apex_ref_client_access.md).

```java
public void run () {
    Slack.App app = Slack.App.MySlackApp.get();
    Slack.BotClient client = app.getBotClientForTeam(context.getTeamId());
    Slack.ViewReference viewReference = Slack.View.MyViewName.get();

    // Get context data
    String channel = context.getChannelId();

    // Specify your request/response objects and pass in your context data
}
```

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](/docs/platform/salesforce-slack-sdk/guide/apex_ref_client_user.md) instead.

Many Slack API methods require a token. `BotClient` automatically includes an appropriate token in your requests. For example,
[ChatPostMessageRequest](/docs/platform/salesforce-slack-sdk/guide/apex_ref_chat.md#chatpostmessagerequest-class) calls [Slack's chat.postMessage method](https://api.slack.com/methods/chat.postMessage), 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**

```java
public Slack.AppsUninstallResponse appsUninstall(Slack.AppsUninstallRequest req)
```

**Parameters**

*req*

Type: Slack.AppsUninstallRequest

**Return Value**

Type: Slack.AppsUninstallResponse

#### authRevoke(req)

**Signature**

```java
public Slack.AuthRevokeResponse authRevoke(Slack.AuthRevokeRequest req)
```

**Parameters**

*req*

Type: Slack.AuthRevokeRequest

**Return Value**

Type: Slack.AuthRevokeResponse

#### authTeamsList(req)

**Signature**

```java
public Slack.AuthTeamsListResponse authTeamsList(Slack.AuthTeamsListRequest req)
```

**Parameters**

*req*

Type: Slack.AuthTeamsListRequest

**Return Value**

Type: Slack.AuthTeamsListResponse

#### authTest(req)

**Signature**

```java
public Slack.AuthTestResponse authTest(Slack.AuthTestRequest req)
```

**Parameters**

*req*

Type: Slack.AuthTestRequest

**Return Value**

Type: Slack.AuthTestResponse

#### botsInfo(req)

**Signature**

```java
public Slack.BotsInfoResponse botsInfo(Slack.BotsInfoRequest req)
```

**Parameters**

*req*

Type: Slack.BotsInfoRequest

**Return Value**

Type: Slack.BotsInfoResponse

#### callsAdd(req)

**Signature**

```java
public Slack.CallsAddResponse callsAdd(Slack.CallsAddRequest req)
```

**Parameters**

*req*

Type: Slack.CallsAddRequest

**Return Value**

Type: Slack.CallsAddResponse

#### callsEnd(req)

**Signature**

```java
public Slack.CallsEndResponse callsEnd(Slack.CallsEndRequest req)
```

**Parameters**

*req*

Type: Slack.CallsEndRequest

**Return Value**

Type: Slack.CallsEndResponse

#### callsInfo(req)

**Signature**

```java
public Slack.CallsInfoResponse callsInfo(Slack.CallsInfoRequest req)
```

**Parameters**

*req*

Type: Slack.CallsInfoRequest

**Return Value**

Type: Slack.CallsInfoResponse

#### callsParticipantsAdd(req)

**Signature**

```java
public Slack.CallsParticipantsAddResponse callsParticipantsAdd(Slack.CallsParticipantsAddRequest req)
```

**Parameters**

*req*

Type: Slack.CallsParticipantsAddRequest

**Return Value**

Type: Slack.CallsParticipantsAddResponse

#### callsParticipantsRemove(req)

**Signature**

```java
public Slack.CallsParticipantsRemoveResponse callsParticipantsRemove(Slack.CallsParticipantsRemoveRequest req)
```

**Parameters**

*req*

Type: Slack.CallsParticipantsRemoveRequest

**Return Value**

Type: Slack.CallsParticipantsRemoveResponse

#### callsUpdate(req)

**Signature**

```java
public Slack.CallsUpdateResponse callsUpdate(Slack.CallsUpdateRequest req)
```

**Parameters**

*req*

Type: Slack.CallsUpdateRequest

**Return Value**

Type: Slack.CallsUpdateResponse

#### chatDelete(req)

**Signature**

```java
public Slack.ChatDeleteResponse chatDelete(Slack.ChatDeleteRequest req)
```

**Parameters**

*req*

Type: Slack.ChatDeleteRequest

**Return Value**

Type: Slack.ChatDeleteResponse

#### chatDeleteScheduledMessage(req)

**Signature**

```java
public Slack.ChatDeleteScheduledMessageResponse
chatDeleteScheduledMessage(
Slack.ChatDeleteScheduledMessageRequest req)
```

**Parameters**

*req*

Type: Slack.ChatDeleteScheduledMessageRequest

**Return Value**

Type: Slack.ChatDeleteScheduledMessageResponse

#### chatGetPermalink(req)

**Signature**

```java
public Slack.ChatGetPermalinkResponse
    chatGetPermalink(Slack.ChatGetPermalinkRequest req)
```

**Parameters**

*req*

Type: Slack.ChatGetPermalinkRequest

**Return Value**

Type: Slack.ChatGetPermalinkResponse

#### chatMeMessage(req)

**Signature**

```java
public Slack.ChatMeMessageResponse chatMeMessage(Slack.ChatMeMessageRequest req)

```

**Parameters**

*req*

Type: Slack.ChatMeMessageRequest

**Return Value**

Type: Slack.ChatMeMessageResponse

#### chatPostEphemeral(req)

**Signature**

```java
public Slack.ChatPostEphemeralResponse chatPostEphemeral(Slack.ChatPostEphemeralRequest req)
```

**Parameters**

*req*

Type: Slack.ChatPostEphemeralRequest

**Return Value**

Type: Slack.ChatPostEphemeralResponse

#### chatPostMessage(req)

**Signature**

```java
public Slack.ChatPostMessageResponse chatPostMessage(Slack.ChatPostMessageRequest req)
```

**Parameters**

*req*

Type: Slack.ChatPostMessageRequest

**Return Value**

Type: Slack.ChatPostMessageResponse

#### chatScheduleMessage(req)

**Signature**

```java
public Slack.ChatScheduleMessageResponse chatScheduleMessage(Slack.ChatScheduleMessageRequest req)
```

**Parameters**

*req*

Type: Slack.ChatScheduleMessageRequest

**Return Value**

Type: Slack.ChatScheduleMessageResponse

#### chatScheduledMessagesList(req)

**Signature**

```java
public Slack.ChatScheduledMessagesListResponse chatScheduledMessagesList(Slack.ChatScheduledMessagesListRequest req)
```

**Parameters**

*req*

Type: Slack.ChatScheduledMessagesListRequest

**Return Value**

Type: Slack.ChatScheduledMessagesListResponse

#### chatUpdate(req)

**Signature**

```java
public Slack.ChatUpdateResponse chatUpdate(Slack.ChatUpdateRequest req)
```

**Parameters**

*req*

Type: Slack.ChatUpdateRequest

**Return Value**

Type: Slack.ChatUpdateResponse

#### conversationsArchive(req)

**Signature**

```java
public Slack.ConversationsArchiveResponse conversationsArchive(Slack.ConversationsArchiveRequest req)
```

**Parameters**

*req*

Type: Slack.ConversationsArchiveRequest

**Return Value**

Type: Slack.ConversationsArchiveResponse

#### conversationsClose(req)

**Signature**

```java
public Slack.ConversationsCloseResponse conversationsClose(Slack.ConversationsCloseRequest req)
```

**Parameters**

*req*

Type: Slack.ConversationsCloseRequest

**Return Value**

Type: Slack.ConversationsCloseResponse

#### conversationsCreate(req)

**Signature**

```java
public Slack.ConversationsCreateResponse conversationsCreate(Slack.ConversationsCreateRequest req)
```

**Parameters**

*req*

Type: Slack.ConversationsCreateRequest

**Return Value**

Type: Slack.ConversationsCreateResponse

#### conversationsHistory(req)

**Signature**

```java
public Slack.ConversationsHistoryResponse conversationsHistory(Slack.ConversationsHistoryRequest req)
```

**Parameters**

*req*

Type: Slack.ConversationsHistoryRequest

**Return Value**

Type: Slack.ConversationsHistoryResponse

#### conversationsInfo(req)

**Signature**

```java
public Slack.ConversationsInfoResponse conversationsInfo(Slack.ConversationsInfoRequest req)
```

**Parameters**

*req*

Type: Slack.ConversationsInfoRequest

**Return Value**

Type: Slack.ConversationsInfoResponse

#### conversationsInvite(req)

**Signature**

```java
public Slack.ConversationsInviteResponse conversationsInvite(Slack.ConversationsInviteRequest req)
```

**Parameters**

*req*

Type: Slack.ConversationsInviteRequest

**Return Value**

Type: Slack.ConversationsInviteResponse

#### conversationsJoin(req)

**Signature**

```java
public Slack.ConversationsJoinResponse conversationsJoin(Slack.ConversationsJoinRequest req)
```

**Parameters**

*req*

Type: Slack.ConversationsJoinRequest

**Return Value**

Type: Slack.ConversationsJoinResponse

#### conversationsKick(req)

**Signature**

```java
public Slack.ConversationsKickResponse conversationsKick(Slack.ConversationsKickRequest req)
```

**Parameters**

*req*

Type: Slack.ConversationsKickRequest

**Return Value**

Type: Slack.ConversationsKickResponse

#### conversationsLeave(req)

**Signature**

```java
public Slack.ConversationsLeaveResponse conversationsLeave(Slack.ConversationsLeaveRequest req)
```

**Parameters**

*req*

Type: Slack.ConversationsLeaveRequest

**Return Value**

Type: Slack.ConversationsLeaveResponse

#### conversationsList(req)

**Signature**

```java
public Slack.ConversationsListResponse conversationsList(Slack.ConversationsListRequest req)
```

**Parameters**

*req*

Type: Slack.ConversationsListRequest

**Return Value**

Type: Slack.ConversationsListResponse

#### conversationsMark(req)

**Signature**

```java
public Slack.ConversationsMarkResponse conversationsMark(Slack.ConversationsMarkRequest req)
```

**Parameters**

*req*

**Return Value**

Type: Slack.ConversationsMarkResponse

#### conversationsMembers(req)

**Signature**

```java
public Slack.ConversationsMembersResponse conversationsMembers(Slack.ConversationsMembersRequest req)
```

**Parameters**

*req*

Type: Slack.ConversationsMembersRequest

**Return Value**

Type: Slack.ConversationsMembersResponse

#### conversationsOpen(req)

**Signature**

```java
public Slack.ConversationsOpenResponse conversationsOpen(Slack.ConversationsOpenRequest req)
```

**Parameters**

*req*

Type: Slack.ConversationsOpenRequest

**Return Value**

Type: Slack.ConversationsOpenResponse

#### conversationsRename(req)

**Signature**

```java
public Slack.ConversationsRenameResponse conversationsRename(Slack.ConversationsRenameRequest req)
```

**Parameters**

*req*

Type: Slack.ConversationsRenameRequest

**Return Value**

Type: Slack.ConversationsRenameResponse

#### conversationsReplies(req)

**Signature**

```java
public Slack.ConversationsRepliesResponse conversationsReplies(Slack.ConversationsRepliesRequest req)
```

**Parameters**

*req*

Type: Slack.ConversationsRepliesRequest

**Return Value**

Type: Slack.ConversationsRepliesResponse

#### conversationsSetPurpose(req)

**Signature**

```java
public Slack.ConversationsSetPurposeResponse conversationsSetPurpose(Slack.ConversationsSetPurposeRequest req)
```

**Parameters**

*req*

Type: Slack.ConversationsSetPurposeRequest

**Return Value**

Type: Slack.ConversationsSetPurposeResponse

#### conversationsSetTopic(req)

**Signature**

```java
public Slack.ConversationsSetTopicResponse conversationsSetTopic(Slack.ConversationsSetTopicRequest req)
```

**Parameters**

*req*

Type: Slack.ConversationsSetTopicRequest

**Return Value**

Type: Slack.ConversationsSetTopicResponse

#### conversationsUnarchive(req)

**Signature**

```java
public Slack.ConversationsUnarchiveResponse conversationsUnarchive(Slack.ConversationsUnarchiveRequest req)
```

**Parameters**

*req*

Type: Slack.ConversationsUnarchiveRequest

**Return Value**

Type: Slack.ConversationsUnarchiveResponse

#### dndInfo(req)

**Signature**

```java
public Slack.DndInfoResponse dndInfo(Slack.DndInfoRequest req)
```

**Parameters**

*req*

Type: Slack.DndInfoRequest

**Return Value**

Type: Slack.DndInfoResponse

#### dndTeamInfo(req)

**Signature**

```java
public Slack.DndTeamInfoResponse dndTeamInfo(Slack.DndTeamInfoRequest req)
```

**Parameters**

*req*

Type: Slack.DndTeamInfoRequest

**Return Value**

Type: Slack.DndTeamInfoResponse

#### emojiList(req)

**Signature**

```java
public Slack.EmojiListResponse emojiList(Slack.EmojiListRequest req)
```

**Parameters**

*req*

Type: Slack.EmojiListRequest

**Return Value**

Type: Slack.EmojiListResponse

#### filesDelete(req)

**Signature**

```java
public Slack.FilesDeleteResponse filesDelete(Slack.FilesDeleteRequest req)
```

**Parameters**

*req*

Type: Slack.FilesDeleteRequest

**Return Value**

Type: Slack.FilesDeleteResponse

#### filesInfo(req)

**Signature**

```java
public Slack.FilesInfoResponse filesInfo(Slack.FilesInfoRequest req)
```

**Parameters**

*req*

Type: Slack.FilesInfoRequest

**Return Value**

Type: Slack.FilesInfoResponse

#### filesList(req)

**Signature**

```java
public Slack.FilesListResponse filesList(Slack.FilesListRequest req)
```

**Parameters**

*req*

Type: Slack.FilesListRequest

**Return Value**

Type: Slack.FilesListResponse

#### filesRemoteAdd(req)

**Signature**

```java
public Slack.FilesRemoteAddResponse filesRemoteAdd(Slack.FilesRemoteAddRequest req)
```

**Parameters**

*req*

Type: Slack.FilesRemoteAddRequest

**Return Value**

Type: Slack.FilesRemoteAddResponse

#### filesRemoteInfo(req)

**Signature**

```java
public Slack.FilesRemoteInfoResponse filesRemoteInfo(Slack.FilesRemoteInfoRequest req)
```

**Parameters**

*req*

Type: Slack.FilesRemoteInfoRequest

**Return Value**

Type: Slack.FilesRemoteInfoResponse

#### filesRemoteList(req)

**Signature**

```java
public Slack.FilesRemoteListResponse filesRemoteList(Slack.FilesRemoteListRequest req)
```

**Parameters**

*req*

Type: Slack.FilesRemoteListRequest

**Return Value**

Type: Slack.FilesRemoteListResponse

#### filesRemoteRemove(req)

**Signature**

```java
public Slack.FilesRemoteRemoveResponse filesRemoteRemove(Slack.FilesRemoteRemoveRequest req)
```

**Parameters**

*req*

Type: Slack.FilesRemoteRemoveRequest

**Return Value**

Type: Slack.FilesRemoteRemoveResponse

#### filesRemoteShare(req)

**Signature**

```java
public Slack.FilesRemoteShareResponse filesRemoteShare(Slack.FilesRemoteShareRequest req)
```

**Parameters**

*req*

Type: Slack.FilesRemoteShareRequest

**Return Value**

Type: Slack.FilesRemoteShareResponse

#### filesRemoteUpdate(req)

**Signature**

```java
public Slack.FilesRemoteUpdateResponse filesRemoteUpdate(Slack.FilesRemoteUpdateRequest req)
```

**Parameters**

*req*

Type: Slack.FilesRemoteUpdateRequest

#### migrationExchange(req)

**Signature**

```java
public Slack.MigrationExchangeResponse migrationExchange(Slack.MigrationExchangeRequest req)
```

**Parameters**

*req*

Type: Slack.MigrationExchangeRequest

**Return Value**

Type: Slack.MigrationExchangeResponse

#### pinsAdd(req)

**Signature**

```java
public Slack.PinsAddResponse pinsAdd(Slack.PinsAddRequest req)
```

**Parameters**

*req*

Type: Slack.PinsAddRequest

**Return Value**

Type: Slack.PinsAddResponse

#### pinsList(req)

**Signature**

```java
public Slack.PinsListResponse pinsList(Slack.PinsListRequest req)
```

**Parameters**

*req*

Type: Slack.PinsListRequest

**Return Value**

Type: Slack.PinsListResponse

#### pinsRemove(req)

**Signature**

```java
public Slack.PinsRemoveResponse pinsRemove(Slack.PinsRemoveRequest req)
```

**Parameters**

*req*

Type: Slack.PinsRemoveRequest

**Return Value**

Type: Slack.PinsRemoveResponse

#### reactionsAdd(req)

**Signature**

```java
public Slack.ReactionsAddResponse reactionsAdd(Slack.ReactionsAddRequest req)
```

**Parameters**

*req*

Type: Slack.ReactionsAddRequest

**Return Value**

Type: Slack.ReactionsAddResponse

#### reactionsGet(req)

**Signature**

```java
public Slack.ReactionsGetResponse reactionsGet(Slack.ReactionsGetRequest req)
```

**Parameters**

*req*

Type: Slack.ReactionsGetRequest

**Return Value**

Type: Slack.ReactionsGetResponse

#### reactionsList(req)

**Signature**

```java
public Slack.ReactionsListResponse reactionsList(Slack.ReactionsListRequest req)
```

**Parameters**

*req*

Type: Slack.ReactionsListRequest

**Return Value**

Type: Slack.ReactionsListResponse

#### reactionsRemove(req)

**Signature**

```java
public Slack.ReactionsRemoveResponse reactionsRemove(Slack.ReactionsRemoveRequest req)
```

**Parameters**

*req*

Type: Slack.ReactionsRemoveRequest

**Return Value**

Type: Slack.ReactionsRemoveResponse

#### starsAdd(req)

**Signature**

```java
public Slack.StarsAddResponse starsAdd(Slack.StarsAddRequest req)
```

**Parameters**

*req*

Type: Slack.StarsAddRequest

**Return Value**

Type: Slack.StarsAddResponse

#### teamInfo(req)

**Signature**

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

**Parameters**

*req*

Type: Slack.TeamInfoRequest

**Return Value**

Type: Slack.TeamInfoResponse

#### teamProfileGet(req)

**Signature**

```java
public Slack.TeamProfileGetResponse teamProfileGet(Slack.TeamProfileGetRequest req)
```

**Parameters**

*req*

Type: Slack.TeamProfileGetRequest

**Return Value**

Type: Slack.TeamProfileGetResponse

#### usergroupsCreate(req)

**Signature**

```java
public Slack.UsergroupsCreateResponse usergroupsCreate(Slack.UsergroupsCreateRequest req)
```

**Parameters**

*req*

Type: Slack.UsergroupsCreateRequest

**Return Value**

Type: Slack.UsergroupsCreateResponse

#### usergroupsDisable(req)

**Parameters**

*req*

```java
public Slack.UsergroupsDisableResponse usergroupsDisable(Slack.UsergroupsDisableRequest req)
```

**Parameters**

*req*

Type: Slack.UsergroupsDisableRequest

**Return Value**

Type: Slack.UsergroupsDisableResponse

#### usergroupsEnable(req)

**Signature**

```java
public Slack.UsergroupsEnableResponse usergroupsEnable(Slack.UsergroupsEnableRequest req)
```

**Parameters**

*req*

Type: Slack.UsergroupsEnableRequest

**Return Value**

Type: Slack.UsergroupsEnableResponse

#### usergroupsList(req)

**Signature**

```java
public Slack.UsergroupsListResponse usergroupsList(Slack.UsergroupsListRequest req)
```

**Parameters**

*req*

Type: Slack.UsergroupsListRequest

**Return Value**

Type: Slack.UsergroupsListResponse

#### usergroupsUpdate(req)

**Signature**

```java
public Slack.UsergroupsUpdateResponse usergroupsUpdate(Slack.UsergroupsUpdateRequest req)
```

**Parameters**

*req*

Type: Slack.UsergroupsUpdateRequest

**Return Value**

Type: Slack.UsergroupsUpdateResponse

#### usergroupsUsersList(req)

**Signature**

```java
public Slack.UsergroupsUsersListResponse usergroupsUsersList(Slack.UsergroupsUsersListRequest req)
```

**Parameters**

*req*

Type: Slack.UsergroupsUsersListRequest

**Return Value**

Type: Slack.UsergroupsUsersListResponse

#### usergroupsUsersUpdate(req)

**Signature**

```java
public Slack.UsergroupsUsersUpdateResponse usergroupsUsersUpdate(Slack.UsergroupsUsersUpdateRequest req)
```

**Parameters**

*req*

Type: Slack.UsergroupsUsersUpdateRequest

**Return Value**

Type: Slack.UsergroupsUsersUpdateResponse

#### usersConversations(req)

**Signature**

```java
public Slack.UsersConversationsResponse usersConversations(Slack.UsersConversationsRequest req)
```

**Parameters**

Type: Slack.UsersConversationsRequest

#### usersGetPresence(req)

**Signature**

```java
public Slack.UsersGetPresenceResponse usersGetPresence(Slack.UsersGetPresenceRequest req)
```

**Parameters**

*req*

Type: Slack.UsersGetPresenceRequest

**Return Value**

Type: Slack.UsersGetPresenceResponse

#### usersInfo(req)

**Signature**

```java
public Slack.UsersInfoResponse usersInfo(Slack.UsersInfoRequest req)
```

**Return Value**

Type: Slack.UsersInfoResponse

#### usersList(req)

**Signature**

```java
public Slack.UsersListResponse usersList(Slack.UsersListRequest req)
```

**Return Value**

*req*

Type: Slack.UsersListRequest

#### usersLookupByEmail(req)

**Signature**

```java
public Slack.UsersLookupByEmailResponse usersLookupByEmail(Slack.UsersLookupByEmailRequest req)
```

**Parameters**

*req*

Type: Slack.UsersLookupByEmailRequest

**Return Value**

Type: Slack.UsersLookupByEmailResponse

#### usersProfileGet(req)

**Signature**

```java
public Slack.UsersProfileGetResponse usersProfileGet(Slack.UsersProfileGetRequest req)
```

**Parameters**

*req*

Type: Slack.UsersProfileGetRequest

**Return Value**

Type: Slack.UsersProfileGetResponse

#### usersSetActive(req)

**Signature**

```java
public Slack.UsersSetActiveResponse usersSetActive(Slack.UsersSetActiveRequest req)
```

**Parameters**

*req*

Type: Slack.UsersSetActiveRequest

**Return Value**

Type: Slack.UsersSetActiveResponse

#### usersSetPresence(req)

**Signature**

```java
public Slack.UsersSetPresenceResponse usersSetPresence(Slack.UsersSetPresenceRequest req)
```

**Parameters**

*req*

Type: Slack.UsersSetPresenceRequest

**Return Value**

Type: Slack.UsersSetPresenceResponse

#### viewsOpen(req)

**Signature**

```java
public Slack.ViewsOpenResponse viewsOpen(Slack.ViewsOpenRequest req)
```

**Parameters**

*req*

Type: Slack.ViewsOpenRequest

**Return Value**

Type: Slack.ViewsOpenResponse

#### viewsPublish(req)

**Signature**

```java
public Slack.ViewsPublishResponse viewsPublish(Slack.ViewsPublishRequest req)
```

**Parameters**

*req*

Type: Slack.ViewsPublishRequest

**Return Value**

Type: Slack.ViewsPublishResponse

#### viewsPush(req)

**Signature**

```java
public Slack.ViewsPushResponse viewsPush(Slack.ViewsPushRequest req)
```

**Parameters**

*req*

Type: Slack.ViewsPushRequest

**Return Value**

Type: Slack.ViewsPushResponse

#### viewsUpdate(req)

**Signature**

```java
public Slack.ViewsUpdateResponse viewsUpdate(Slack.ViewsUpdateRequest req)
```

**Parameters**

*req*

Type: Slack.ViewsUpdateRequest

**Return Value**

Type: Slack.ViewsUpdateResponse

#### workflowsStepCompleted(req)

**Signature**

```java
public Slack.WorkflowsStepCompletedResponse workflowsStepCompleted(Slack.WorkflowsStepCompletedRequest req)
```

**Parameters**

*req*

Type: Slack.WorkflowsStepCompletedRequest

**Return Value**

Type: Slack.WorkflowsStepCompletedResponse

#### workflowsStepFailed(req)

**Signature**

```java
public Slack.WorkflowsStepFailedResponse workflowsStepFailed(Slack.WorkflowsStepFailedRequest req)
```

**Parameters**

*req*

Type: Slack.WorkflowsStepFailedRequest

#### workflowsUpdateStep(req)

**Signature**

```java
public Slack.WorkflowsUpdateStepResponse workflowsUpdateStep(Slack.WorkflowsUpdateStepRequest req)
```

**Parameters**

*req*

Type: Slack.WorkflowsUpdateStepRequest

**Return Value**

Type: Slack.WorkflowsUpdateStepResponse
