---
schema_version: "1"
id: b5ab053dedd45c2b799213ba97110c4e118b4583537147d21f559926a2bff815
title: Work with Modals
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_modal.md
canonical_url: https://developer.salesforce.com/docs/platform/salesforce-slack-sdk/guide/apex_ref_modal.html
source_site: developer.salesforce.com
content_type: documentation
content_hash: 384e3a885a30dcdd0b99b670797b06b485986e6b5bda6ce1a17cd7b26d78ff5f
products:
  - Apex SDK for Slack (Beta)
---
# Work with Modals

The following are Apex classes to work with modals.

## ModalHandler Interface

Implement this interface to return a modal view.

### ModalHandler Methods

`ModalHandler` has the following method.

#### call()

Enables you to create an instance of modal view with the view reference parameters.

**Signature**

```java
public Slack.ModalView call()
```

**Return Value**

Type: Slack.ModalView

---

## ModalView Class

Creates a modal view. A view is a visual area within a modal. See [Defining view objects](https://api.slack.com/reference/surfaces/views).

### ModalView Methods

The following are methods for `ModalView`.

#### builder()

Builds a request object that's used when executing the API call.

**Signature**

```java
public static Slack.ModalView.Builder builder()
```

**Return Value**

Type: Slack.ModalView.Builder

---

## ModalView.Builder Class

Contains methods to build an instance of the `Slack.ModalView` class.

A Builder object is obtained by invoking one of the `ModalView.Builder` methods defined by the `ModalView` class.

### ModalView.Builder Methods

The following are methods for `ModalView.Builder`.

#### build()

Returns an instance of the `Slack.ModalView` object.

**Signature**

```java
public Slack.ModalView build()
```

**Return Value**

Type: Slack.ModalView

#### clearOnClose(clearOnClose)

Sets the `clearOnClose` boolean value on the modal view object.

**Signature**

```java
public Slack.ModalView.Builder clearOnClose(Boolean clearOnClose)
```

**Parameters**

_clearOnClose_

Specifies whether clicking on the close button clears all views in a modal and closes it. This value defaults to false.

Type: Boolean

**Return Value**

Type: Slack.ModalView.Builder

#### externalId(externalId)

Sets the `externalId` value on the modal view object.

**Signature**

```java
public Slack.ModalView.Builder externalId(String externalId)
```

**Parameters**

_externalId_

Type: String

A custom identifier that must be unique for all views on a per-team basis.

**Return Value**

Type:Slack.ModalView.Builder

#### viewReference(viewReference)

Sets the view to be displayed in the modal.

**Signature**

```java
public Slack.ModalView.Builder viewReference(Slack.ViewReference viewReference)
```

**Parameters**

_viewReference_

Type: Slack.ViewReference

The view to be displayed in the modal.

**Return Value**

Type: Slack.ModalView.Builder
