---
schema_version: "1"
id: 469b83990392963c49e4fa5b8f860a46a5fc0f32f01bd513fa358aef9db7ea7c
title: Work with Views
collection: developer
version: current
locale: en-us
portal_url: https://docs.salesforce.com/developer/current/en-us/salesforce-slack-sdk/apex-slack-sdk/guides/apex_ref/apex_ref_views.md
canonical_url: https://developer.salesforce.com/docs/platform/salesforce-slack-sdk/guide/apex_ref_views.html
source_site: developer.salesforce.com
content_type: documentation
content_hash: 1bb450675e7798a2e226b85056a0b5f23324e4d6dffda3942c2d4ee5ab638df1
products:
  - Apex SDK for Slack (Beta)
---
# Work with Views

The following are Apex classes for the Slack `views` [API methods](https://api.slack.com/methods?filter=views).

## ViewContext Class

Contains information about a view.

### ViewContext Methods

`ViewContext` has the following methods.

#### getId()

The ID of the view.

**Signature**

```java
public String getId()
```

**Return Value**

Type: String

#### getHash()

A unique value that's optionally accepted in `views.update` and `views.publish` API calls. When provided to those APIs, the hash is validated such that only the most recent view can be updated. This should be used to ensure the correct view is being updated when updates are happening asynchronously.

**Signature**

```java
public String getHash()
```

**Return Value**

Type: String

---

## ViewReference Class

Represents a view definition. This class provides access to `ViewDefinition` records where the `targetType` is `slack`.

**Usage**

```java
ViewReference myViewReference = Slack.View.namespace.name; // returns a ViewReference
myViewReference.setParameter("recordId", "001.........");
Slack.App.myApp.getBotClient(...).postMessage(myViewReference);
```

### ViewReference Methods

The following are methods for `ViewReference`.

#### setParameter(name, value)

Sets the name and value of the view definition.

**Signature**

```java
public void setParameter(String name, Object value)
```

**Parameters**

_name_
Type: String

The name of the view definition.

_value_

Type: Object

**Return Value**

Type: void

---

## ViewsOpenRequest Class

Sends a request to open a view for a user.

**Usage**

See Slack’s [view.open](https://api.slack.com/methods/views.open) method.

### ViewsOpenRequest Methods

The following are methods for `ViewsOpenRequest`.

#### builder()

Builds a request object that's used when executing the API call.

**Signature**

```java
public static Slack.ViewsOpenRequest.Builder builder()
```

**Return Value**

Type: Slack.ViewsOpenRequest.Builder

## ViewsOpenRequest.Builder Class

Contains methods to build an instance of the `Slack.ViewsOpenRequest` class.

A Builder object is obtained by invoking one of the `ViewsOpenRequest.builder` methods defined by the `ViewsOpenRequest` class.

### ViewsOpenRequest.Builder Methods

The following are methods for `ViewsOpenRequest.Builder`.

#### build()

Required. Returns an instance of `Slack.ViewsOpenRequest`.

**Signature**

```java
public Slack.ViewsOpenRequest build()
```

**Return Value**

Type: Slack.ViewsOpenRequest

#### triggerId(triggerId)

Required. Exchanges a trigger to post to the user.

**Signature**

```java
public Slack.ViewsOpenRequest.Builder triggerId(String triggerId)
```

**Parameters**

_triggerId_

Type: String

**Return Value**

Type: Slack.ViewsOpenRequest.Builder

#### view(view)

Required. A view payload in the form of a JSON-encoded string.

**Signature**

```java
public Slack.ViewsOpenRequest.Builder view(Slack.ModalView view)
```

**Parameters**

_view_

Type: Slack.ModalView

**Return Value**

Type: Slack.ViewsOpenRequest.Builder

## ViewsOpenResponse Class

Opens a view for a user.

**Usage**

See Slack’s [view.open](https://api.slack.com/methods/views.open) method.

### ViewsOpenResponse Methods

This class contains [standard response methods](https://developer.salesforce.com/docs/platform/salesforce-slack-sdk/guide/apex_ref_response.md).

The following are methods for `ViewsOpenResponse`.

#### getRenderedView()

**Signature**

```java
public Slack.View getRenderedView()
```

**Return Value**

Type: Slack.View

#### getResponseMetadata()

**Signature**

```java
public Slack.ErrorResponseMetadata getResponseMetadata()
```

**Return Value**

Type: [Slack.ErrorResponseMetadata](https://developer.salesforce.com/docs/platform/salesforce-slack-sdk/guide/apex_ref_response_metadata.md#errorresponsemetadata-class)

#### setResponseMetadata(responseMetadata)

**Signature**

```java
public void setResponseMetadata(Slack.ErrorResponseMetadata responseMetadata)
```

**Parameters**

_responseMetadata_

Type: [Slack.ErrorResponseMetadata](https://developer.salesforce.com/docs/platform/salesforce-slack-sdk/guide/apex_ref_response_metadata.md#errorresponsemetadata-class)

**Return Value**

Type: void

## ViewsPublishRequest Class

Sends a request to publish a static view for a user.

**Usage**

See Slack’s [view.publish method](https://api.slack.com/methods/views.publish).

### ViewsPublishRequest Methods

The following are methods for `ViewsPublishRequest`.

#### builder()

Builds a request object that's used when executing the API call.

**Signature**

```java
public static Slack.ViewsPublishRequest.Builder builder()
```

## ViewsPublishRequest.Builder Class

Contains methods to build an instance of the `Slack.ViewsPublishedRequest` class.

A Builder object is obtained by invoking one of the `ViewsPublishRequest.Builder` methods defined by the `ViewsPublishRequest` class.

### ViewsPublishRequest.Builder Methods

The following are methods for `ViewsPublishRequest.Builder`. These methods are optional unless specified otherwise.

#### build()

Required. Returns an instance of the `Slack.ViewsPublishRequest` object.

**Signature**

```java
public Slack.ViewsPublishRequest build()
```

**Return Value**

Type: Slack.ViewsPublishRequest

#### hash(hash)

A string that represents view state to protect against possible race conditions.

**Signature**

```java
public Slack.ViewsPublishRequest.Builder hash(String hash)
```

**Parameters**

_hash_

Type: String

**Return Value**

Type: Slack.ViewsPublishRequest.Builder

#### userId(userId)

Required. The ID of the user you want to publish a view to.

**Signature**

```java
public Slack.ViewsPublishRequest.Builder userId(String userId)
```

**Parameters**

_userId_

Type: String

**Return Value**

Type: Slack.ViewsPublishRequest.Builder

#### view(view)

Required. A JSON-encoded string that contains the [view payload](https://api.slack.com/reference/surfaces/views).

**Signature**

```java
public Slack.ViewsPublishRequest.Builder view(Slack.HomeView view)
```

**Parameters**

_view_

Type: Type: Slack.HomeView

**Return Value**

Type: Slack.ViewsPublishRequest.Builder

## HomeView Class

Build views for the App Home page.

**Usage**

`HomeView` enables you to build a view for your App Home page, and publish the view when an action is dispatched.

```java
Slack.HomeView homeView = new Slack.HomeView.builder()
    .viewReference(viewReference)
    .build();

Slack.ViewsPublishRequest req = new Slack.ViewsPublishRequest.builder()
    .userId(context.getUserId())
    .view(homeView)
    .build();

Slack.ViewsPublishResponse response = botClient.viewsPublish(req);

if (response.getError() != null) {
    System.debug(response.getError());
}
```

You can also publish the view in response to a slash command. See [ChatPostMessageRequest](https://developer.salesforce.com/docs/platform/salesforce-slack-sdk/guide/apex_ref_chat.md#chatpostmessagerequest-class).

### HomeView Methods

The following are methods for `HomeView`.

#### builder()

Builds an object which is used when executing the API call.

**Signature**

```java
public static Slack.HomeView.Builder builder()
```

**Return Value**

Type: Slack.HomeView.Builder

## HomeView.Builder Class

Contains methods to build an instance of the `Slack.HomeView` class.

A Builder object is obtained by invoking one of the `HomeView.builder` methods defined by the `ViewsOpenRequest` class.

### HomeView.Builder Methods

The following are methods for `HomeView.Builder`.

#### build()

**Signature**

```java
public Slack.HomeView build()
```

**Return Value**

Type: Slack.HomeView

#### externalId(externalId)

**Signature**

```java
public Slack.HomeView.Builder externalId(String externalId)
```

**Parameters**

_externalId_

Type: String

**Return Value**

Type: Slack.HomeView.Builder

#### viewReference(viewReference)

**Signature**

```java
public Slack.HomeView.Builder viewReference(Slack.ViewReference viewReference)
```

**Parameters**

_viewReference_

Type: Slack.ViewReference

**Return Value**

Type: Slack.HomeView.Builder

## ViewsPublishResponse Class

Publish a static view for a user.

**Usage**

See Slack’s [view.publish method](https://api.slack.com/methods/views.publish).

### ViewsPublishResponse Methods

This class contains [standard response methods](https://developer.salesforce.com/docs/platform/salesforce-slack-sdk/guide/apex_ref_response.md).

The following are methods for `ViewsPublishResponse`.

#### getResponseMetadata()

**Signature**

```java
public Slack.ErrorResponseMetadata getResponseMetadata()
```

**Return Value**

Type: [Slack.ErrorResponseMetadata](https://developer.salesforce.com/docs/platform/salesforce-slack-sdk/guide/apex_ref_response_metadata.md#errorresponsemetadata-class)

#### setResponseMetadata(responseMetadata)

**Signature**

```java
public void setResponseMetadata(Slack.ErrorResponseMetadata responseMetadata)
```

**Parameters**

_responseMetadata_

Type: [Slack.ErrorResponseMetadata](https://developer.salesforce.com/docs/platform/salesforce-slack-sdk/guide/apex_ref_response_metadata.md#errorresponsemetadata-class)

**Return Value**

Type: void

## ViewsPushRequest Class

Sends a request to push a view onto the stack of a root view.

**Usage**

See Slack’s [views.push method](https://api.slack.com/methods/views.push).

### ViewsPushRequest Methods

The following are methods for `ViewsPushRequest`.

#### builder()

Builds a request object that's used when executing the API call.

**Signature**

```java
public static Slack.ViewsPushRequest.Builder builder()
```

**Return Value**

Type: Slack.ViewsPushRequest.Builder

## ViewsPushRequest.Builder Class

Contains methods to build an instance of the `Slack.ViewsPushRequest` class.

A Builder object is obtained by invoking one of the `ViewsPushRequest.Builder` methods defined by the `ViewsPushRequest` class.

### ViewsPushRequest.Builder Methods

The following are methods for `ViewsPushRequest.Builder`.

#### build()

Required. Returns an instance of `Slack.ViewsPushRequest`.

**Signature**

public Slack.ViewsPushRequest build()

**Return Value**

Type: Slack.ViewsPushRequest

#### triggerId(triggerId)

Required. Exchanges a trigger to post to the user.

**Signature**

```java
public Slack.ViewsPushRequest.Builder triggerId(String triggerId)
```

**Parameters**

_triggerId_

Type: String

**Return Value**

Type: Slack.ViewsPushRequest.Builder

#### view(view)

Required. A view payload in the form of a JSON-encoded string.

**Signature**

```java
public Slack.ViewsPushRequest.Builder view(Slack.ModalView view)
```

**Parameters**

_view_

Type: Slack.ModalView

**Return Value**

Type: Slack.ViewsPushRequest.Builder

## ViewsPushResponse Class

Pushes a view onto the stack of a root view.

**Usage**

See Slack’s [views.push method](https://api.slack.com/methods/views.push).

### ViewsPushResponse Methods

This class contains [standard response methods](https://developer.salesforce.com/docs/platform/salesforce-slack-sdk/guide/apex_ref_response.md).

The following are methods for `ViewsPushResponse`.

#### getResponseMetadata()

**Signature**

```java
public Slack.ErrorResponseMetadata getResponseMetadata()
```

**Return Value**

Type: [Slack.ErrorResponseMetadata](https://developer.salesforce.com/docs/platform/salesforce-slack-sdk/guide/apex_ref_response_metadata.md#errorresponsemetadata-class)

#### setResponseMetadata(responseMetadata)

**Signature**

```java
public void setResponseMetadata(Slack.ErrorResponseMetadata responseMetadata)
```

**Parameters**

_responseMetadata_

Type: [Slack.ErrorResponseMetadata](https://developer.salesforce.com/docs/platform/salesforce-slack-sdk/guide/apex_ref_response_metadata.md#errorresponsemetadata-class)

**Return Value**

Type: void

## ViewsUpdateRequest Class

Sends a request to update an existing view.

**Usage**

See Slack’s [views.update method](https://api.slack.com/methods/views.update).

### ViewsUpdateRequest Methods

The following are methods for `ViewsUpdateRequest`.

#### builder()

Builds a request object that's used when executing the API call.

**Signature**

```java
public static Slack.ViewsUpdateRequest.Builder builder()
```

**Return Value**

Type: Slack.ViewsUpdateRequest.Builder

## ViewsUpdateRequest.Builder Class

Contains methods to build an instance of the `Slack.ViewsUpdateRequest` class.

A Builder object is obtained by invoking one of the `ViewsUpdateRequest.Builder` methods defined by the `ViewsUpdateRequest` class.

### ViewsUpdateRequest.Builder Methods

The following are methods for `ViewsUpdateRequest.Builder`. These methods are optional unless specified otherwise.

#### build()

Required. Returns an instance of `Slack.ViewsUpdateRequest`.

**Signature**

```java
public Slack.ViewsUpdateRequest build()
```

**Return Value**

Type: Slack.ViewsUpdateRequest

#### externalId(externalId)

Required if `view(view)` is not provided. A unique identifier of the view set by the developer. Must be unique for all views on a team. Max length of 255 characters.

**Signature**

```java
public Slack.ViewsUpdateRequest.Builder externalId(String externalId)
```

**Parameters**

_externalId_

Type: String

**Return Value**

Type: Slack.ViewsUpdateRequest.Builder

#### hash(hash)

A string that represents view state to protect against possible race conditions.

**Signature**

```java
public Slack.ViewsUpdateRequest.Builder hash(String hash)
```

**Parameters**

_hash_

Type: String

**Return Value**

Type: Slack.ViewsUpdateRequest.Builder

#### view(view)

Required if `externalId(externalId)` is not provided. A view object in the format of a JSON-encoded string.

**Signature**

```java
public Slack.ViewsUpdateRequest.Builder view(Slack.ModalView view)
```

**Parameters**

_view_

Type: Slack.ModalView

**Return Value**

Type: Slack.ViewsUpdateRequest.Builder

#### viewId(viewId)

A unique identifier of the view to be updated. Required if the external ID is not provided.

**Signature**

```java
public Slack.ViewsUpdateRequest.Builder viewId(String viewId)
```

**Parameters**

_viewId_

Type: String

**Return Value**

Type: Slack.ViewsUpdateRequest.Builder

## ViewsUpdateResponse Class

Updates an existing view.

**Usage**

See Slack’s [views.update method](https://api.slack.com/methods/views.update).

### ViewsUpdateResponse Methods

This class contains [standard response methods](https://developer.salesforce.com/docs/platform/salesforce-slack-sdk/guide/apex_ref_response.md).

The following are methods for `ViewsUpdateResponse`.

#### getRenderedView()

**Signature**

```java
public Slack.View getRenderedView()
```

**Return Value**

Type: Slack.View

#### getResponseMetadata()

**Signature**

```java
public Slack.ErrorResponseMetadata getResponseMetadata()
```

**Return Value**

Type: [Slack.ErrorResponseMetadata](https://developer.salesforce.com/docs/platform/salesforce-slack-sdk/guide/apex_ref_response_metadata.md#errorresponsemetadata-class)

#### setResponseMetadata(responseMetadata)

**Signature**

```java
public void setResponseMetadata(Slack.ErrorResponseMetadata responseMetadata)
```

**Parameters**

_responseMetadata_

Type: [Slack.ErrorResponseMetadata](https://developer.salesforce.com/docs/platform/salesforce-slack-sdk/guide/apex_ref_response_metadata.md#errorresponsemetadata-class)

**Return Value**

Type: void
