Skip to main content

Blocks

This page documents the public Java API for blocks, generated from the Javadoc by the javadoc tool. Values are immutable, builders are concrete and fluent, validation runs when you call .build(), and typed getters read built values back.

Built block values implement Slack's official LayoutBlock interface, so they can be passed directly to ChatPostMessageRequest.blocks(...) and other slack-java-sdk request builders.

ActionsBlock​

A block that holds interactive elements such as buttons and menus.

Start with builder(), set fields with the named fluent methods, and call Builder.build() to validate and create an immutable value.

  • Required: elements.

See the Slack reference.

Builder​

Starts a new builder.

public static ActionsBlock.Builder builder()

Returns: a new builder

Related types: ActionsBlock

GetElements​

Returns interactive elements in display order.

public List<Element> getElements()

Returns: the values in order, or an empty list when none were set

ThrowsWhen
IllegalStateExceptionif the field was set through a raw wire field to a value this type cannot represent

Related types: Element

Elements​

Adds interactive elements in display order.

Required. Slack allows at most 25 items. Each call appends to any values already added.

public ActionsBlock.Builder elements(Element... values)
ParameterDescription
valuesElement values appended in order

Returns: this builder

Related types: ActionsBlock, Element

BlockId​

Sets a unique identifier for this block. Slack returns it in interaction payloads, so use a stable value when you need to find the block again.

Slack allows at most 255 characters.

public ActionsBlock.Builder blockId(String value)
ParameterDescription
valuevalue for Slack's block_id field

Returns: this builder

Related types: ActionsBlock

WireField​

Sets a Slack field that has no named method yet, such as a field Slack introduced after this release. Prefer the named methods, which are typed and documented.

The value is checked at build time like any other field. It must be a string, number, boolean, slackblocks value or builder, or a list or map containing only those.

public ActionsBlock.Builder wireField(String field, Object value)
ParameterDescription
fieldSlack JSON field name
valueJSON-compatible value

Returns: this builder

ThrowsWhen
IllegalArgumentExceptionif the field name is empty or the value cannot be written as Slack JSON

Related types: ActionsBlock

Build​

Validates the configured fields and creates an immutable value. The builder can be reused.

public ActionsBlock build()

Returns: an immutable ActionsBlock

ThrowsWhen
ValidationExceptionif the value breaks a Block Kit rule, such as a missing required field or an exceeded length limit

Related types: ActionsBlock

AlertBlock​

A severity-labelled alert, available in modals.

Start with builder(), set fields with the named fluent methods, and call Builder.build() to validate and create an immutable value.

  • Required: text.

See the Slack reference.

Builder​

Starts a new builder.

public static AlertBlock.Builder builder()

Returns: a new builder

Related types: AlertBlock

GetText​

Returns the alert message.

public Text getText()

Returns: the value

ThrowsWhen
IllegalStateExceptionif the field was set through a raw wire field to a value this type cannot represent

Related types: Text

GetLevel​

Returns the alert severity, which controls its color and icon.

public Optional<AlertLevel> getLevel()

Returns: the value, or an empty optional when it was not set

ThrowsWhen
IllegalStateExceptionif the field was set through a raw wire field to a value this type cannot represent

Related types: AlertLevel

Text — String​

Sets the alert message.

Required. Slack allows at most 200 characters. The string is sent as a mrkdwn text object.

public AlertBlock.Builder text(String value)
ParameterDescription
valuetext content

Returns: this builder

Related types: AlertBlock

Text — Text​

Sets the alert message.

Required. Slack allows at most 200 characters.

public AlertBlock.Builder text(Text value)
ParameterDescription
valuea Text object

Returns: this builder

Related types: AlertBlock, Text

MarkdownText​

Sets the alert message.

Required. Slack allows at most 200 characters. Equivalent to text(String).

public AlertBlock.Builder markdownText(String value)
ParameterDescription
valuetext content

Returns: this builder

Related types: AlertBlock

Level​

Sets the alert severity, which controls its color and icon.

public AlertBlock.Builder level(AlertLevel value)
ParameterDescription
valuevalue for Slack's level field

Returns: this builder

Related types: AlertBlock, AlertLevel

BlockId​

Sets a unique identifier for this block. Slack returns it in interaction payloads, so use a stable value when you need to find the block again.

Slack allows at most 255 characters.

public AlertBlock.Builder blockId(String value)
ParameterDescription
valuevalue for Slack's block_id field

Returns: this builder

Related types: AlertBlock

WireField​

Sets a Slack field that has no named method yet, such as a field Slack introduced after this release. Prefer the named methods, which are typed and documented.

The value is checked at build time like any other field. It must be a string, number, boolean, slackblocks value or builder, or a list or map containing only those.

public AlertBlock.Builder wireField(String field, Object value)
ParameterDescription
fieldSlack JSON field name
valueJSON-compatible value

Returns: this builder

ThrowsWhen
IllegalArgumentExceptionif the field name is empty or the value cannot be written as Slack JSON

Related types: AlertBlock

Build​

Validates the configured fields and creates an immutable value. The builder can be reused.

public AlertBlock build()

Returns: an immutable AlertBlock

ThrowsWhen
ValidationExceptionif the value breaks a Block Kit rule, such as a missing required field or an exceeded length limit

Related types: AlertBlock

AlertLevel​

Severity levels supported by alert blocks.

ConstantSlack valueMeaning
DEFAULTdefaultNeutral styling.
INFOinfoInformational styling.
WARNINGwarningWarning styling.
ERRORerrorError styling.
SUCCESSsuccessSuccess styling.

WireValue​

Returns the value Slack expects in JSON.

public String wireValue()

Returns: the wire value

FromWireValue​

Finds the constant for a Slack JSON value.

public static Optional<AlertLevel> fromWireValue(String wireValue)
ParameterDescription
wireValuethe value Slack uses in JSON

Returns: the matching constant, or an empty optional for an unknown value

Related types: AlertLevel

Block​

A validated Slack layout block accepted directly by Slack's official Java SDK.

Implemented by ActionsBlock, AlertBlock, CardBlock, CarouselBlock, ContainerBlock, ContextActionsBlock, ContextBlock, DataTableBlock, DataVisualizationBlock, DividerBlock, FileBlock, HeaderBlock, ImageBlock, InputBlock, MarkdownBlock, PlanBlock, RichTextBlock, SectionBlock, TableBlock, TaskCardBlock, VideoBlock.

GetType​

Returns the Slack block type. Values are materialized once at build time, so this is a map lookup rather than a rebuild.

public default String getType()

Returns: Slack wire type

GetBlockId​

Returns the configured block identifier.

public default lang.@Nullable String getBlockId()

Returns: block identifier, or null when none was set

CardBlock​

A compact card with an image, text, and up to three buttons.

Start with builder(), set fields with the named fluent methods, and call Builder.build() to validate and create an immutable value.

  • Provide at least one of a hero image, title, actions, or body.

  • An image icon and a Slack icon cannot be combined.

See the Slack reference.

Builder​

Starts a new builder.

public static CardBlock.Builder builder()

Returns: a new builder

Related types: CardBlock

GetHeroImage​

Returns the image displayed prominently at the top of the card.

public Optional<ImageElement> getHeroImage()

Returns: the value, or an empty optional when it was not set

ThrowsWhen
IllegalStateExceptionif the field was set through a raw wire field to a value this type cannot represent

Related types: ImageElement

GetIcon​

Returns the image displayed beside the title.

public Optional<ImageElement> getIcon()

Returns: the value, or an empty optional when it was not set

ThrowsWhen
IllegalStateExceptionif the field was set through a raw wire field to a value this type cannot represent

Related types: ImageElement

GetTitle​

Returns the card title.

public Optional<Text> getTitle()

Returns: the value, or an empty optional when it was not set

ThrowsWhen
IllegalStateExceptionif the field was set through a raw wire field to a value this type cannot represent

Related types: Text

GetSubtitle​

Returns the supporting text shown below the title.

public Optional<Text> getSubtitle()

Returns: the value, or an empty optional when it was not set

ThrowsWhen
IllegalStateExceptionif the field was set through a raw wire field to a value this type cannot represent

Related types: Text

GetBody​

Returns the main body text of the card.

public Optional<Text> getBody()

Returns: the value, or an empty optional when it was not set

ThrowsWhen
IllegalStateExceptionif the field was set through a raw wire field to a value this type cannot represent

Related types: Text

GetActions​

Returns buttons displayed at the bottom of the card, in display order.

public List<ButtonElement> getActions()

Returns: the values in order, or an empty list when none were set

ThrowsWhen
IllegalStateExceptionif the field was set through a raw wire field to a value this type cannot represent

Related types: ButtonElement

GetSlackIcon​

Returns a Slack-provided icon displayed beside the title. Cannot be combined with an image icon.

public Optional<SlackIcon> getSlackIcon()

Returns: the value, or an empty optional when it was not set

ThrowsWhen
IllegalStateExceptionif the field was set through a raw wire field to a value this type cannot represent

Related types: SlackIcon

GetSubtext​

Returns the small print shown at the bottom of the card.

public Optional<Text> getSubtext()

Returns: the value, or an empty optional when it was not set

ThrowsWhen
IllegalStateExceptionif the field was set through a raw wire field to a value this type cannot represent

Related types: Text

HeroImage​

Sets the image displayed prominently at the top of the card.

public CardBlock.Builder heroImage(ImageElement value)
ParameterDescription
valuenested ImageElement

Returns: this builder

Related types: CardBlock, ImageElement

Icon​

Sets the image displayed beside the title.

public CardBlock.Builder icon(ImageElement value)
ParameterDescription
valuenested ImageElement

Returns: this builder

Related types: CardBlock, ImageElement

Title — String​

Sets the card title.

Slack allows at most 150 characters. The string is sent as a mrkdwn text object.

public CardBlock.Builder title(String value)
ParameterDescription
valuetext content

Returns: this builder

Related types: CardBlock

Title — Text​

Sets the card title.

Slack allows at most 150 characters.

public CardBlock.Builder title(Text value)
ParameterDescription
valuea Text object

Returns: this builder

Related types: CardBlock, Text

Subtitle — String​

Sets the supporting text shown below the title.

Slack allows at most 150 characters. The string is sent as a mrkdwn text object.

public CardBlock.Builder subtitle(String value)
ParameterDescription
valuetext content

Returns: this builder

Related types: CardBlock

Subtitle — Text​

Sets the supporting text shown below the title.

Slack allows at most 150 characters.

public CardBlock.Builder subtitle(Text value)
ParameterDescription
valuea Text object

Returns: this builder

Related types: CardBlock, Text

Body — String​

Sets the main body text of the card.

Slack allows at most 200 characters. The string is sent as a mrkdwn text object.

public CardBlock.Builder body(String value)
ParameterDescription
valuetext content

Returns: this builder

Related types: CardBlock

Body — Text​

Sets the main body text of the card.

Slack allows at most 200 characters.

public CardBlock.Builder body(Text value)
ParameterDescription
valuea Text object

Returns: this builder

Related types: CardBlock, Text

Actions​

Adds buttons displayed at the bottom of the card, in display order.

Slack allows at most 3 items. Each call appends to any values already added.

public CardBlock.Builder actions(ButtonElement... values)
ParameterDescription
valuesButtonElement values appended in order

Returns: this builder

Related types: ButtonElement, CardBlock

SlackIcon​

Sets a Slack-provided icon displayed beside the title. Cannot be combined with an image icon.

public CardBlock.Builder slackIcon(SlackIcon value)
ParameterDescription
valuenested SlackIcon

Returns: this builder

Related types: CardBlock, SlackIcon

Subtext — String​

Sets the small print shown at the bottom of the card.

Slack allows at most 200 characters. The string is sent as a mrkdwn text object.

public CardBlock.Builder subtext(String value)
ParameterDescription
valuetext content

Returns: this builder

Related types: CardBlock

Subtext — Text​

Sets the small print shown at the bottom of the card.

Slack allows at most 200 characters.

public CardBlock.Builder subtext(Text value)
ParameterDescription
valuea Text object

Returns: this builder

Related types: CardBlock, Text

BlockId​

Sets a unique identifier for this block. Slack returns it in interaction payloads, so use a stable value when you need to find the block again.

Slack allows at most 255 characters.

public CardBlock.Builder blockId(String value)
ParameterDescription
valuevalue for Slack's block_id field

Returns: this builder

Related types: CardBlock

WireField​

Sets a Slack field that has no named method yet, such as a field Slack introduced after this release. Prefer the named methods, which are typed and documented.

The value is checked at build time like any other field. It must be a string, number, boolean, slackblocks value or builder, or a list or map containing only those.

public CardBlock.Builder wireField(String field, Object value)
ParameterDescription
fieldSlack JSON field name
valueJSON-compatible value

Returns: this builder

ThrowsWhen
IllegalArgumentExceptionif the field name is empty or the value cannot be written as Slack JSON

Related types: CardBlock

Build​

Validates the configured fields and creates an immutable value. The builder can be reused.

public CardBlock build()

Returns: an immutable CardBlock

ThrowsWhen
ValidationExceptionif the value breaks a Block Kit rule, such as a missing required field or an exceeded length limit

Related types: CardBlock

CarouselBlock​

A horizontally scrolling set of cards, available in messages and App Home.

Start with builder(), set fields with the named fluent methods, and call Builder.build() to validate and create an immutable value.

  • Required: elements.

See the Slack reference.

Builder​

Starts a new builder.

public static CarouselBlock.Builder builder()

Returns: a new builder

Related types: CarouselBlock

GetElements​

Returns the cards in display order.

public List<CardBlock> getElements()

Returns: the values in order, or an empty list when none were set

ThrowsWhen
IllegalStateExceptionif the field was set through a raw wire field to a value this type cannot represent

Related types: CardBlock

Elements​

Adds the cards in display order.

Required. Must contain between 1 and 10 items. Each call appends to any values already added.

public CarouselBlock.Builder elements(CardBlock... values)
ParameterDescription
valuesCardBlock values appended in order

Returns: this builder

Related types: CardBlock, CarouselBlock

BlockId​

Sets a unique identifier for this block. Slack returns it in interaction payloads, so use a stable value when you need to find the block again.

Slack allows at most 255 characters.

public CarouselBlock.Builder blockId(String value)
ParameterDescription
valuevalue for Slack's block_id field

Returns: this builder

Related types: CarouselBlock

WireField​

Sets a Slack field that has no named method yet, such as a field Slack introduced after this release. Prefer the named methods, which are typed and documented.

The value is checked at build time like any other field. It must be a string, number, boolean, slackblocks value or builder, or a list or map containing only those.

public CarouselBlock.Builder wireField(String field, Object value)
ParameterDescription
fieldSlack JSON field name
valueJSON-compatible value

Returns: this builder

ThrowsWhen
IllegalArgumentExceptionif the field name is empty or the value cannot be written as Slack JSON

Related types: CarouselBlock

Build​

Validates the configured fields and creates an immutable value. The builder can be reused.

public CarouselBlock build()

Returns: an immutable CarouselBlock

ThrowsWhen
ValidationExceptionif the value breaks a Block Kit rule, such as a missing required field or an exceeded length limit

Related types: CarouselBlock

ContainerBlock​

A titled group of blocks that can optionally collapse.

Start with builder(), set fields with the named fluent methods, and call Builder.build() to validate and create an immutable value.

  • Required: childBlocks.

  • Provide a title or a rich text title.

See the Slack reference.

Builder​

Starts a new builder.

public static ContainerBlock.Builder builder()

Returns: a new builder

Related types: ContainerBlock

GetChildBlocks​

Returns the blocks grouped inside the container, in display order.

public List<Block> getChildBlocks()

Returns: the values in order, or an empty list when none were set

ThrowsWhen
IllegalStateExceptionif the field was set through a raw wire field to a value this type cannot represent

Related types: Block

GetTitle​

Returns the container title. Provide either a title or a rich text title.

public Optional<PlainText> getTitle()

Returns: the value, or an empty optional when it was not set

ThrowsWhen
IllegalStateExceptionif the field was set through a raw wire field to a value this type cannot represent

Related types: PlainText

GetRichTextTitle​

Returns a rich text block used as the title in place of a plain-text title.

public Optional<RichTextBlock> getRichTextTitle()

Returns: the value, or an empty optional when it was not set

ThrowsWhen
IllegalStateExceptionif the field was set through a raw wire field to a value this type cannot represent

Related types: RichTextBlock

GetSubtitle​

Returns the supporting text shown below the title.

public Optional<Text> getSubtitle()

Returns: the value, or an empty optional when it was not set

ThrowsWhen
IllegalStateExceptionif the field was set through a raw wire field to a value this type cannot represent

Related types: Text

GetWidth​

Returns the horizontal width of the container.

public Optional<ContainerWidth> getWidth()

Returns: the value, or an empty optional when it was not set

ThrowsWhen
IllegalStateExceptionif the field was set through a raw wire field to a value this type cannot represent

Related types: ContainerWidth

GetIcon​

Returns the image displayed beside the title.

public Optional<ImageElement> getIcon()

Returns: the value, or an empty optional when it was not set

ThrowsWhen
IllegalStateExceptionif the field was set through a raw wire field to a value this type cannot represent

Related types: ImageElement

GetCollapsible​

Returns whether users can collapse and expand the container.

public Optional<Boolean> getCollapsible()

Returns: the value, or an empty optional when it was not set

ThrowsWhen
IllegalStateExceptionif the field was set through a raw wire field to a value this type cannot represent

GetDefaultCollapsed​

Returns whether a collapsible container starts collapsed. Requires the container to be collapsible.

public Optional<Boolean> getDefaultCollapsed()

Returns: the value, or an empty optional when it was not set

ThrowsWhen
IllegalStateExceptionif the field was set through a raw wire field to a value this type cannot represent

GetHasHeaderDivider​

Returns whether Slack draws a divider below the container header. Only valid for non-collapsible containers.

public Optional<Boolean> getHasHeaderDivider()

Returns: the value, or an empty optional when it was not set

ThrowsWhen
IllegalStateExceptionif the field was set through a raw wire field to a value this type cannot represent

ChildBlocks​

Adds the blocks grouped inside the container, in display order.

Required. Must contain between 1 and 10 items. Each call appends to any values already added.

public ContainerBlock.Builder childBlocks(Block... values)
ParameterDescription
valuesBlock values appended in order

Returns: this builder

Related types: Block, ContainerBlock

Title — String​

Sets the container title. Provide either a title or a rich text title.

Slack allows at most 150 characters. The string is sent as a plain_text text object.

public ContainerBlock.Builder title(String value)
ParameterDescription
valuetext content

Returns: this builder

Related types: ContainerBlock

Title — PlainText​

Sets the container title. Provide either a title or a rich text title.

Slack allows at most 150 characters.

public ContainerBlock.Builder title(PlainText value)
ParameterDescription
valuea PlainText object

Returns: this builder

Related types: ContainerBlock, PlainText

RichTextTitle​

Sets a rich text block used as the title in place of a plain-text title.

public ContainerBlock.Builder richTextTitle(RichTextBlock value)
ParameterDescription
valuenested RichTextBlock

Returns: this builder

Related types: ContainerBlock, RichTextBlock

Subtitle — String​

Sets the supporting text shown below the title.

Slack allows at most 150 characters. The string is sent as a mrkdwn text object.

public ContainerBlock.Builder subtitle(String value)
ParameterDescription
valuetext content

Returns: this builder

Related types: ContainerBlock

Subtitle — Text​

Sets the supporting text shown below the title.

Slack allows at most 150 characters.

public ContainerBlock.Builder subtitle(Text value)
ParameterDescription
valuea Text object

Returns: this builder

Related types: ContainerBlock, Text

Width​

Sets the horizontal width of the container.

public ContainerBlock.Builder width(ContainerWidth value)
ParameterDescription
valuevalue for Slack's width field

Returns: this builder

Related types: ContainerBlock, ContainerWidth

Icon​

Sets the image displayed beside the title.

public ContainerBlock.Builder icon(ImageElement value)
ParameterDescription
valuenested ImageElement

Returns: this builder

Related types: ContainerBlock, ImageElement

IsCollapsible​

Sets whether users can collapse and expand the container.

public ContainerBlock.Builder isCollapsible(boolean value)
ParameterDescription
valuevalue for Slack's is_collapsible field

Returns: this builder

Related types: ContainerBlock

DefaultCollapsed​

Sets whether a collapsible container starts collapsed. Requires the container to be collapsible.

public ContainerBlock.Builder defaultCollapsed(boolean value)
ParameterDescription
valuevalue for Slack's default_collapsed field

Returns: this builder

Related types: ContainerBlock

HasHeaderDivider​

Sets whether Slack draws a divider below the container header. Only valid for non-collapsible containers.

public ContainerBlock.Builder hasHeaderDivider(boolean value)
ParameterDescription
valuevalue for Slack's has_header_divider field

Returns: this builder

Related types: ContainerBlock

BlockId​

Sets a unique identifier for this block. Slack returns it in interaction payloads, so use a stable value when you need to find the block again.

Slack allows at most 255 characters.

public ContainerBlock.Builder blockId(String value)
ParameterDescription
valuevalue for Slack's block_id field

Returns: this builder

Related types: ContainerBlock

WireField​

Sets a Slack field that has no named method yet, such as a field Slack introduced after this release. Prefer the named methods, which are typed and documented.

The value is checked at build time like any other field. It must be a string, number, boolean, slackblocks value or builder, or a list or map containing only those.

public ContainerBlock.Builder wireField(String field, Object value)
ParameterDescription
fieldSlack JSON field name
valueJSON-compatible value

Returns: this builder

ThrowsWhen
IllegalArgumentExceptionif the field name is empty or the value cannot be written as Slack JSON

Related types: ContainerBlock

Build​

Validates the configured fields and creates an immutable value. The builder can be reused.

public ContainerBlock build()

Returns: an immutable ContainerBlock

ThrowsWhen
ValidationExceptionif the value breaks a Block Kit rule, such as a missing required field or an exceeded length limit

Related types: ContainerBlock

ContainerWidth​

Widths supported by Slack container blocks.

ConstantSlack valueMeaning
NARROWnarrowA compact container.
STANDARDstandardSlack's standard container width.
WIDEwideA wide container.
FULLfullThe full available width.

WireValue​

Returns the value Slack expects in JSON.

public String wireValue()

Returns: the wire value

FromWireValue​

Finds the constant for a Slack JSON value.

public static Optional<ContainerWidth> fromWireValue(String wireValue)
ParameterDescription
wireValuethe value Slack uses in JSON

Returns: the matching constant, or an empty optional for an unknown value

Related types: ContainerWidth

ContextActionsBlock​

A row of feedback or icon buttons, usually shown below AI-generated content.

Start with builder(), set fields with the named fluent methods, and call Builder.build() to validate and create an immutable value.

  • Required: elements.

See the Slack reference.

Builder​

Starts a new builder.

public static ContextActionsBlock.Builder builder()

Returns: a new builder

Related types: ContextActionsBlock

GetElements​

Returns feedback buttons or icon buttons in display order.

public List<ContextActionsElement> getElements()

Returns: the values in order, or an empty list when none were set

ThrowsWhen
IllegalStateExceptionif the field was set through a raw wire field to a value this type cannot represent

Related types: ContextActionsElement

Elements​

Adds feedback buttons or icon buttons in display order.

Required. Slack allows at most 5 items. Each call appends to any values already added.

public ContextActionsBlock.Builder elements(ContextActionsElement... values)
ParameterDescription
valuesContextActionsElement values appended in order

Returns: this builder

Related types: ContextActionsBlock, ContextActionsElement

BlockId​

Sets a unique identifier for this block. Slack returns it in interaction payloads, so use a stable value when you need to find the block again.

Slack allows at most 255 characters.

public ContextActionsBlock.Builder blockId(String value)
ParameterDescription
valuevalue for Slack's block_id field

Returns: this builder

Related types: ContextActionsBlock

WireField​

Sets a Slack field that has no named method yet, such as a field Slack introduced after this release. Prefer the named methods, which are typed and documented.

The value is checked at build time like any other field. It must be a string, number, boolean, slackblocks value or builder, or a list or map containing only those.

public ContextActionsBlock.Builder wireField(String field, Object value)
ParameterDescription
fieldSlack JSON field name
valueJSON-compatible value

Returns: this builder

ThrowsWhen
IllegalArgumentExceptionif the field name is empty or the value cannot be written as Slack JSON

Related types: ContextActionsBlock

Build​

Validates the configured fields and creates an immutable value. The builder can be reused.

public ContextActionsBlock build()

Returns: an immutable ContextActionsBlock

ThrowsWhen
ValidationExceptionif the value breaks a Block Kit rule, such as a missing required field or an exceeded length limit

Related types: ContextActionsBlock

ContextActionsElement​

A value that can appear in a context actions block: feedback buttons or an icon button.

Implemented by FeedbackButtonsElement, IconButtonElement.

ContextBlock​

A block of small, secondary images and text.

Start with builder(), set fields with the named fluent methods, and call Builder.build() to validate and create an immutable value.

  • Required: elements.

See the Slack reference.

Builder​

Starts a new builder.

public static ContextBlock.Builder builder()

Returns: a new builder

Related types: ContextBlock

GetElements​

Returns images and text in display order.

public List<ContextElement> getElements()

Returns: the values in order, or an empty list when none were set

ThrowsWhen
IllegalStateExceptionif the field was set through a raw wire field to a value this type cannot represent

Related types: ContextElement

Elements​

Adds images and text in display order.

Required. Slack allows at most 10 items. Each call appends to any values already added.

public ContextBlock.Builder elements(ContextElement... values)
ParameterDescription
valuesContextElement values appended in order

Returns: this builder

Related types: ContextBlock, ContextElement

BlockId​

Sets a unique identifier for this block. Slack returns it in interaction payloads, so use a stable value when you need to find the block again.

Slack allows at most 255 characters.

public ContextBlock.Builder blockId(String value)
ParameterDescription
valuevalue for Slack's block_id field

Returns: this builder

Related types: ContextBlock

WireField​

Sets a Slack field that has no named method yet, such as a field Slack introduced after this release. Prefer the named methods, which are typed and documented.

The value is checked at build time like any other field. It must be a string, number, boolean, slackblocks value or builder, or a list or map containing only those.

public ContextBlock.Builder wireField(String field, Object value)
ParameterDescription
fieldSlack JSON field name
valueJSON-compatible value

Returns: this builder

ThrowsWhen
IllegalArgumentExceptionif the field name is empty or the value cannot be written as Slack JSON

Related types: ContextBlock

Build​

Validates the configured fields and creates an immutable value. The builder can be reused.

public ContextBlock build()

Returns: an immutable ContextBlock

ThrowsWhen
ValidationExceptionif the value breaks a Block Kit rule, such as a missing required field or an exceeded length limit

Related types: ContextBlock

ContextElement​

A value that can appear in a context block: an image element or a text object.

Implemented by ImageElement, MarkdownText, PlainText.

DataTableBlock​

A sortable, paginated table of raw text, numbers, and rich text.

Start with builder(), set fields with the named fluent methods, and call Builder.build() to validate and create an immutable value.

  • Required: rows, caption.

  • The first row is the header row and cannot contain rich text.

  • Every row must have the same number of cells, and all cell text together is limited to 20,000 characters.

See the Slack reference.

Builder​

Starts a new builder.

public static DataTableBlock.Builder builder()

Returns: a new builder

Related types: DataTableBlock

GetRows​

Returns complete table rows in display order. Every row must have the same number of cells.

public List<List<DataTableCell>> getRows()

Returns: the values in order, or an empty list when none were set

ThrowsWhen
IllegalStateExceptionif the field was set through a raw wire field to a value this type cannot represent

Related types: DataTableCell

GetCaption​

Returns the caption that describes the table's contents.

public String getCaption()

Returns: the value

ThrowsWhen
IllegalStateExceptionif the field was set through a raw wire field to a value this type cannot represent

GetPageSize​

Returns how many rows Slack shows per page.

public OptionalInt getPageSize()

Returns: the value, or an empty optional when it was not set

ThrowsWhen
IllegalStateExceptionif the field was set through a raw wire field to a value this type cannot represent

GetRowHeaderColumnIndex​

Returns the zero-based index of the column whose cells act as row headers.

public OptionalInt getRowHeaderColumnIndex()

Returns: the value, or an empty optional when it was not set

ThrowsWhen
IllegalStateExceptionif the field was set through a raw wire field to a value this type cannot represent

Rows​

Adds complete table rows in display order. Every row must have the same number of cells.

Required. Must contain between 2 and 201 items. Each call appends to any rows already added.

public final DataTableBlock.Builder rows(List<? extends DataTableCell>... rows)
ParameterDescription
rowsrows of DataTableCell values, in display order

Returns: this builder

Related types: DataTableBlock, DataTableCell

Caption​

Sets the caption that describes the table's contents.

Required.

public DataTableBlock.Builder caption(String value)
ParameterDescription
valuevalue for Slack's caption field

Returns: this builder

Related types: DataTableBlock

PageSize​

Sets how many rows Slack shows per page.

Must be between 1 and 100.

public DataTableBlock.Builder pageSize(int value)
ParameterDescription
valuevalue for Slack's page_size field

Returns: this builder

Related types: DataTableBlock

RowHeaderColumnIndex​

Sets the zero-based index of the column whose cells act as row headers.

Must be at least 0.

public DataTableBlock.Builder rowHeaderColumnIndex(int value)
ParameterDescription
valuevalue for Slack's row_header_column_index field

Returns: this builder

Related types: DataTableBlock

BlockId​

Sets a unique identifier for this block. Slack returns it in interaction payloads, so use a stable value when you need to find the block again.

Slack allows at most 255 characters.

public DataTableBlock.Builder blockId(String value)
ParameterDescription
valuevalue for Slack's block_id field

Returns: this builder

Related types: DataTableBlock

WireField​

Sets a Slack field that has no named method yet, such as a field Slack introduced after this release. Prefer the named methods, which are typed and documented.

The value is checked at build time like any other field. It must be a string, number, boolean, slackblocks value or builder, or a list or map containing only those.

public DataTableBlock.Builder wireField(String field, Object value)
ParameterDescription
fieldSlack JSON field name
valueJSON-compatible value

Returns: this builder

ThrowsWhen
IllegalArgumentExceptionif the field name is empty or the value cannot be written as Slack JSON

Related types: DataTableBlock

Build​

Validates the configured fields and creates an immutable value. The builder can be reused.

public DataTableBlock build()

Returns: an immutable DataTableBlock

ThrowsWhen
ValidationExceptionif the value breaks a Block Kit rule, such as a missing required field or an exceeded length limit

Related types: DataTableBlock

DataTableCell​

A value that can appear as a data table cell: raw text, a raw number, or a rich text block.

Implemented by RawNumber, RawText, RichTextBlock.

DataVisualizationBlock​

A titled pie, bar, area, or line chart.

Start with builder(), set fields with the named fluent methods, and call Builder.build() to validate and create an immutable value.

  • Required: title, chart.

See the Slack reference.

Builder​

Starts a new builder.

public static DataVisualizationBlock.Builder builder()

Returns: a new builder

Related types: DataVisualizationBlock

GetTitle​

Returns the chart title.

public String getTitle()

Returns: the value

ThrowsWhen
IllegalStateExceptionif the field was set through a raw wire field to a value this type cannot represent

GetChart​

Returns the chart to display.

public Chart getChart()

Returns: the value

ThrowsWhen
IllegalStateExceptionif the field was set through a raw wire field to a value this type cannot represent

Related types: Chart

Title​

Sets the chart title.

Required. Slack allows at most 50 characters.

public DataVisualizationBlock.Builder title(String value)
ParameterDescription
valuevalue for Slack's title field

Returns: this builder

Related types: DataVisualizationBlock

Chart​

Sets the chart to display.

Required.

public DataVisualizationBlock.Builder chart(Chart value)
ParameterDescription
valuenested Chart

Returns: this builder

Related types: Chart, DataVisualizationBlock

BlockId​

Sets a unique identifier for this block. Slack returns it in interaction payloads, so use a stable value when you need to find the block again.

Slack allows at most 255 characters.

public DataVisualizationBlock.Builder blockId(String value)
ParameterDescription
valuevalue for Slack's block_id field

Returns: this builder

Related types: DataVisualizationBlock

WireField​

Sets a Slack field that has no named method yet, such as a field Slack introduced after this release. Prefer the named methods, which are typed and documented.

The value is checked at build time like any other field. It must be a string, number, boolean, slackblocks value or builder, or a list or map containing only those.

public DataVisualizationBlock.Builder wireField(String field, Object value)
ParameterDescription
fieldSlack JSON field name
valueJSON-compatible value

Returns: this builder

ThrowsWhen
IllegalArgumentExceptionif the field name is empty or the value cannot be written as Slack JSON

Related types: DataVisualizationBlock

Build​

Validates the configured fields and creates an immutable value. The builder can be reused.

public DataVisualizationBlock build()

Returns: an immutable DataVisualizationBlock

ThrowsWhen
ValidationExceptionif the value breaks a Block Kit rule, such as a missing required field or an exceeded length limit

Related types: DataVisualizationBlock

DividerBlock​

A horizontal rule that separates blocks.

Start with builder(), set fields with the named fluent methods, and call Builder.build() to validate and create an immutable value.

See the Slack reference.

Builder​

Starts a new builder.

public static DividerBlock.Builder builder()

Returns: a new builder

Related types: DividerBlock

Create​

Creates a divider block with no block identifier.

public static DividerBlock create()

Returns: an immutable DividerBlock

ThrowsWhen
ValidationExceptionif the value breaks a Block Kit rule

Related types: DividerBlock

BlockId​

Sets a unique identifier for this block. Slack returns it in interaction payloads, so use a stable value when you need to find the block again.

Slack allows at most 255 characters.

public DividerBlock.Builder blockId(String value)
ParameterDescription
valuevalue for Slack's block_id field

Returns: this builder

Related types: DividerBlock

WireField​

Sets a Slack field that has no named method yet, such as a field Slack introduced after this release. Prefer the named methods, which are typed and documented.

The value is checked at build time like any other field. It must be a string, number, boolean, slackblocks value or builder, or a list or map containing only those.

public DividerBlock.Builder wireField(String field, Object value)
ParameterDescription
fieldSlack JSON field name
valueJSON-compatible value

Returns: this builder

ThrowsWhen
IllegalArgumentExceptionif the field name is empty or the value cannot be written as Slack JSON

Related types: DividerBlock

Build​

Validates the configured fields and creates an immutable value. The builder can be reused.

public DividerBlock build()

Returns: an immutable DividerBlock

ThrowsWhen
ValidationExceptionif the value breaks a Block Kit rule, such as a missing required field or an exceeded length limit

Related types: DividerBlock

FileBlock​

A remote file previously added with the files.remote API.

Start with builder(), set fields with the named fluent methods, and call Builder.build() to validate and create an immutable value.

  • Required: externalId, source.

See the Slack reference.

Builder​

Starts a new builder.

public static FileBlock.Builder builder()

Returns: a new builder

Related types: FileBlock

GetExternalId​

Returns the external identifier of a remote file previously added with the files.remote API.

public String getExternalId()

Returns: the value

ThrowsWhen
IllegalStateExceptionif the field was set through a raw wire field to a value this type cannot represent

GetSource​

Returns the file source. Slack currently supports only remote files.

public Optional<String> getSource()

Returns: the value, or an empty optional when it was not set

ThrowsWhen
IllegalStateExceptionif the field was set through a raw wire field to a value this type cannot represent

ExternalId​

Sets the external identifier of a remote file previously added with the files.remote API.

Required.

public FileBlock.Builder externalId(String value)
ParameterDescription
valuevalue for Slack's external_id field

Returns: this builder

Related types: FileBlock

Source​

Sets the file source. Slack currently supports only remote files.

Required.

public FileBlock.Builder source(String value)
ParameterDescription
valuevalue for Slack's source field

Returns: this builder

Related types: FileBlock

BlockId​

Sets a unique identifier for this block. Slack returns it in interaction payloads, so use a stable value when you need to find the block again.

Slack allows at most 255 characters.

public FileBlock.Builder blockId(String value)
ParameterDescription
valuevalue for Slack's block_id field

Returns: this builder

Related types: FileBlock

WireField​

Sets a Slack field that has no named method yet, such as a field Slack introduced after this release. Prefer the named methods, which are typed and documented.

The value is checked at build time like any other field. It must be a string, number, boolean, slackblocks value or builder, or a list or map containing only those.

public FileBlock.Builder wireField(String field, Object value)
ParameterDescription
fieldSlack JSON field name
valueJSON-compatible value

Returns: this builder

ThrowsWhen
IllegalArgumentExceptionif the field name is empty or the value cannot be written as Slack JSON

Related types: FileBlock

Build​

Validates the configured fields and creates an immutable value. The builder can be reused.

public FileBlock build()

Returns: an immutable FileBlock

ThrowsWhen
ValidationExceptionif the value breaks a Block Kit rule, such as a missing required field or an exceeded length limit

Related types: FileBlock

HeaderBlock​

Large, bold plain text that introduces a group of blocks.

Start with builder(), set fields with the named fluent methods, and call Builder.build() to validate and create an immutable value.

  • Required: text.

See the Slack reference.

Builder — no arguments​

Starts a new builder.

public static HeaderBlock.Builder builder()

Returns: a new builder

Related types: HeaderBlock

Builder — String​

Starts a header builder with its required text.

public static HeaderBlock.Builder builder(String text)
ParameterDescription
textheader text

Returns: a new builder

Related types: HeaderBlock

GetText​

Returns the header text, shown in a larger bold font.

public PlainText getText()

Returns: the value

ThrowsWhen
IllegalStateExceptionif the field was set through a raw wire field to a value this type cannot represent

Related types: PlainText

Text — String​

Sets the header text, shown in a larger bold font.

Required. Slack allows at most 150 characters. The string is sent as a plain_text text object.

public HeaderBlock.Builder text(String value)
ParameterDescription
valuetext content

Returns: this builder

Related types: HeaderBlock

Text — PlainText​

Sets the header text, shown in a larger bold font.

Required. Slack allows at most 150 characters.

public HeaderBlock.Builder text(PlainText value)
ParameterDescription
valuea PlainText object

Returns: this builder

Related types: HeaderBlock, PlainText

PlainText​

Sets the header text, shown in a larger bold font.

Required. Slack allows at most 150 characters. Equivalent to text(String).

public HeaderBlock.Builder plainText(String value)
ParameterDescription
valuetext content

Returns: this builder

Related types: HeaderBlock

BlockId​

Sets a unique identifier for this block. Slack returns it in interaction payloads, so use a stable value when you need to find the block again.

Slack allows at most 255 characters.

public HeaderBlock.Builder blockId(String value)
ParameterDescription
valuevalue for Slack's block_id field

Returns: this builder

Related types: HeaderBlock

WireField​

Sets a Slack field that has no named method yet, such as a field Slack introduced after this release. Prefer the named methods, which are typed and documented.

The value is checked at build time like any other field. It must be a string, number, boolean, slackblocks value or builder, or a list or map containing only those.

public HeaderBlock.Builder wireField(String field, Object value)
ParameterDescription
fieldSlack JSON field name
valueJSON-compatible value

Returns: this builder

ThrowsWhen
IllegalArgumentExceptionif the field name is empty or the value cannot be written as Slack JSON

Related types: HeaderBlock

Build​

Validates the configured fields and creates an immutable value. The builder can be reused.

public HeaderBlock build()

Returns: an immutable HeaderBlock

ThrowsWhen
ValidationExceptionif the value breaks a Block Kit rule, such as a missing required field or an exceeded length limit

Related types: HeaderBlock

ImageBlock​

A standalone image with alternative text and an optional title.

Start with builder(), set fields with the named fluent methods, and call Builder.build() to validate and create an immutable value.

  • Required: altText.

  • Provide exactly one of an image URL or a Slack file.

See the Slack reference.

Builder — no arguments​

Starts a new builder.

public static ImageBlock.Builder builder()

Returns: a new builder

Related types: ImageBlock

Builder — String, String​

Starts an image builder with its required URL and alternative text.

public static ImageBlock.Builder builder(String imageUrl, String altText)
ParameterDescription
imageUrlpublic image URL
altTextaccessible image description

Returns: a new builder

Related types: ImageBlock

GetImageUrl​

Returns the publicly accessible URL of the image. Cannot be combined with a Slack file.

public String getImageUrl()

Returns: the value

ThrowsWhen
IllegalStateExceptionif the field is not set, or was set through a raw wire field to a value this type cannot represent

GetSlackFile​

Returns a file hosted in Slack as the image source. Cannot be combined with an image URL.

public Optional<SlackFile> getSlackFile()

Returns: the value, or an empty optional when it was not set

ThrowsWhen
IllegalStateExceptionif the field was set through a raw wire field to a value this type cannot represent

Related types: SlackFile

GetAltText​

Returns a plain-text summary of the image or video for assistive technology.

public String getAltText()

Returns: the value

ThrowsWhen
IllegalStateExceptionif the field was set through a raw wire field to a value this type cannot represent

GetTitle​

Returns the title shown above the image.

public Optional<PlainText> getTitle()

Returns: the value, or an empty optional when it was not set

ThrowsWhen
IllegalStateExceptionif the field was set through a raw wire field to a value this type cannot represent

Related types: PlainText

ImageUrl​

Sets the publicly accessible URL of the image. Cannot be combined with a Slack file.

Slack allows at most 3000 characters.

public ImageBlock.Builder imageUrl(String value)
ParameterDescription
valuevalue for Slack's image_url field

Returns: this builder

Related types: ImageBlock

SlackFile​

Sets a file hosted in Slack as the image source. Cannot be combined with an image URL.

public ImageBlock.Builder slackFile(SlackFile value)
ParameterDescription
valuenested SlackFile

Returns: this builder

Related types: ImageBlock, SlackFile

AltText​

Sets a plain-text summary of the image or video for assistive technology.

Required. Slack allows at most 2000 characters.

public ImageBlock.Builder altText(String value)
ParameterDescription
valuevalue for Slack's alt_text field

Returns: this builder

Related types: ImageBlock

Title — String​

Sets the title shown above the image.

Slack allows at most 2000 characters. The string is sent as a plain_text text object.

public ImageBlock.Builder title(String value)
ParameterDescription
valuetext content

Returns: this builder

Related types: ImageBlock

Title — PlainText​

Sets the title shown above the image.

Slack allows at most 2000 characters.

public ImageBlock.Builder title(PlainText value)
ParameterDescription
valuea PlainText object

Returns: this builder

Related types: ImageBlock, PlainText

BlockId​

Sets a unique identifier for this block. Slack returns it in interaction payloads, so use a stable value when you need to find the block again.

Slack allows at most 255 characters.

public ImageBlock.Builder blockId(String value)
ParameterDescription
valuevalue for Slack's block_id field

Returns: this builder

Related types: ImageBlock

WireField​

Sets a Slack field that has no named method yet, such as a field Slack introduced after this release. Prefer the named methods, which are typed and documented.

The value is checked at build time like any other field. It must be a string, number, boolean, slackblocks value or builder, or a list or map containing only those.

public ImageBlock.Builder wireField(String field, Object value)
ParameterDescription
fieldSlack JSON field name
valueJSON-compatible value

Returns: this builder

ThrowsWhen
IllegalArgumentExceptionif the field name is empty or the value cannot be written as Slack JSON

Related types: ImageBlock

Build​

Validates the configured fields and creates an immutable value. The builder can be reused.

public ImageBlock build()

Returns: an immutable ImageBlock

ThrowsWhen
ValidationExceptionif the value breaks a Block Kit rule, such as a missing required field or an exceeded length limit

Related types: ImageBlock

InputBlock​

A labelled input that collects a value in a modal, App Home, or message.

Start with builder(), set fields with the named fluent methods, and call Builder.build() to validate and create an immutable value.

  • Required: label, element.

See the Slack reference.

Builder​

Starts a new builder.

public static InputBlock.Builder builder()

Returns: a new builder

Related types: InputBlock

GetLabel​

Returns the label shown above the input.

public PlainText getLabel()

Returns: the value

ThrowsWhen
IllegalStateExceptionif the field was set through a raw wire field to a value this type cannot represent

Related types: PlainText

GetElement​

Returns the input element that collects the user's value.

public InputElement getElement()

Returns: the value

ThrowsWhen
IllegalStateExceptionif the field was set through a raw wire field to a value this type cannot represent

Related types: InputElement

GetDispatchAction​

Returns whether changing the element sends a block_actions payload immediately.

public Optional<Boolean> getDispatchAction()

Returns: the value, or an empty optional when it was not set

ThrowsWhen
IllegalStateExceptionif the field was set through a raw wire field to a value this type cannot represent

GetHint​

Returns helper text shown below the input.

public Optional<PlainText> getHint()

Returns: the value, or an empty optional when it was not set

ThrowsWhen
IllegalStateExceptionif the field was set through a raw wire field to a value this type cannot represent

Related types: PlainText

GetOptional​

Returns whether the modal can be submitted when this input is empty.

public Optional<Boolean> getOptional()

Returns: the value, or an empty optional when it was not set

ThrowsWhen
IllegalStateExceptionif the field was set through a raw wire field to a value this type cannot represent

Label — String​

Sets the label shown above the input.

Required. Slack allows at most 2000 characters. The string is sent as a plain_text text object.

public InputBlock.Builder label(String value)
ParameterDescription
valuetext content

Returns: this builder

Related types: InputBlock

Label — PlainText​

Sets the label shown above the input.

Required. Slack allows at most 2000 characters.

public InputBlock.Builder label(PlainText value)
ParameterDescription
valuea PlainText object

Returns: this builder

Related types: InputBlock, PlainText

Element​

Sets the input element that collects the user's value.

Required.

public InputBlock.Builder element(InputElement value)
ParameterDescription
valuenested InputElement

Returns: this builder

Related types: InputBlock, InputElement

DispatchAction​

Sets whether changing the element sends a block_actions payload immediately.

public InputBlock.Builder dispatchAction(boolean value)
ParameterDescription
valuevalue for Slack's dispatch_action field

Returns: this builder

Related types: InputBlock

BlockId​

Sets a unique identifier for this block. Slack returns it in interaction payloads, so use a stable value when you need to find the block again.

Slack allows at most 255 characters.

public InputBlock.Builder blockId(String value)
ParameterDescription
valuevalue for Slack's block_id field

Returns: this builder

Related types: InputBlock

Hint — String​

Sets helper text shown below the input.

Slack allows at most 2000 characters. The string is sent as a plain_text text object.

public InputBlock.Builder hint(String value)
ParameterDescription
valuetext content

Returns: this builder

Related types: InputBlock

Hint — PlainText​

Sets helper text shown below the input.

Slack allows at most 2000 characters.

public InputBlock.Builder hint(PlainText value)
ParameterDescription
valuea PlainText object

Returns: this builder

Related types: InputBlock, PlainText

Optional​

Sets whether the modal can be submitted when this input is empty.

public InputBlock.Builder optional(boolean value)
ParameterDescription
valuevalue for Slack's optional field

Returns: this builder

Related types: InputBlock

WireField​

Sets a Slack field that has no named method yet, such as a field Slack introduced after this release. Prefer the named methods, which are typed and documented.

The value is checked at build time like any other field. It must be a string, number, boolean, slackblocks value or builder, or a list or map containing only those.

public InputBlock.Builder wireField(String field, Object value)
ParameterDescription
fieldSlack JSON field name
valueJSON-compatible value

Returns: this builder

ThrowsWhen
IllegalArgumentExceptionif the field name is empty or the value cannot be written as Slack JSON

Related types: InputBlock

Build​

Validates the configured fields and creates an immutable value. The builder can be reused.

public InputBlock build()

Returns: an immutable InputBlock

ThrowsWhen
ValidationExceptionif the value breaks a Block Kit rule, such as a missing required field or an exceeded length limit

Related types: InputBlock

MarkdownBlock​

Standard markdown rendered by Slack, intended for AI-generated content.

Start with builder(), set fields with the named fluent methods, and call Builder.build() to validate and create an immutable value.

  • Required: text.

See the Slack reference.

Builder​

Starts a new builder.

public static MarkdownBlock.Builder builder()

Returns: a new builder

Related types: MarkdownBlock

GetText​

Returns standard markdown content, which Slack renders directly.

public String getText()

Returns: the value

ThrowsWhen
IllegalStateExceptionif the field was set through a raw wire field to a value this type cannot represent

Text​

Sets standard markdown content, which Slack renders directly.

Required. Slack allows at most 12000 characters.

public MarkdownBlock.Builder text(String value)
ParameterDescription
valuevalue for Slack's text field

Returns: this builder

Related types: MarkdownBlock

BlockId​

Sets a unique identifier for this block. Slack returns it in interaction payloads, so use a stable value when you need to find the block again.

Slack allows at most 255 characters.

public MarkdownBlock.Builder blockId(String value)
ParameterDescription
valuevalue for Slack's block_id field

Returns: this builder

Related types: MarkdownBlock

WireField​

Sets a Slack field that has no named method yet, such as a field Slack introduced after this release. Prefer the named methods, which are typed and documented.

The value is checked at build time like any other field. It must be a string, number, boolean, slackblocks value or builder, or a list or map containing only those.

public MarkdownBlock.Builder wireField(String field, Object value)
ParameterDescription
fieldSlack JSON field name
valueJSON-compatible value

Returns: this builder

ThrowsWhen
IllegalArgumentExceptionif the field name is empty or the value cannot be written as Slack JSON

Related types: MarkdownBlock

Build​

Validates the configured fields and creates an immutable value. The builder can be reused.

public MarkdownBlock build()

Returns: an immutable MarkdownBlock

ThrowsWhen
ValidationExceptionif the value breaks a Block Kit rule, such as a missing required field or an exceeded length limit

Related types: MarkdownBlock

PlanBlock​

A titled sequence of task cards.

Start with builder(), set fields with the named fluent methods, and call Builder.build() to validate and create an immutable value.

  • Required: title, tasks.

  • Task IDs must be unique within a plan.

See the Slack reference.

Builder​

Starts a new builder.

public static PlanBlock.Builder builder()

Returns: a new builder

Related types: PlanBlock

GetTitle​

Returns the plan title.

public String getTitle()

Returns: the value

ThrowsWhen
IllegalStateExceptionif the field was set through a raw wire field to a value this type cannot represent

GetTasks​

Returns task cards in display order.

public List<TaskCardBlock> getTasks()

Returns: the values in order, or an empty list when none were set

ThrowsWhen
IllegalStateExceptionif the field was set through a raw wire field to a value this type cannot represent

Related types: TaskCardBlock

Title​

Sets the plan title.

Required.

public PlanBlock.Builder title(String value)
ParameterDescription
valuevalue for Slack's title field

Returns: this builder

Related types: PlanBlock

Tasks​

Adds task cards in display order.

Required. Slack allows at most 50 items. Each call appends to any values already added.

public PlanBlock.Builder tasks(TaskCardBlock... values)
ParameterDescription
valuesTaskCardBlock values appended in order

Returns: this builder

Related types: PlanBlock, TaskCardBlock

BlockId​

Sets a unique identifier for this block. Slack returns it in interaction payloads, so use a stable value when you need to find the block again.

Slack allows at most 255 characters.

public PlanBlock.Builder blockId(String value)
ParameterDescription
valuevalue for Slack's block_id field

Returns: this builder

Related types: PlanBlock

WireField​

Sets a Slack field that has no named method yet, such as a field Slack introduced after this release. Prefer the named methods, which are typed and documented.

The value is checked at build time like any other field. It must be a string, number, boolean, slackblocks value or builder, or a list or map containing only those.

public PlanBlock.Builder wireField(String field, Object value)
ParameterDescription
fieldSlack JSON field name
valueJSON-compatible value

Returns: this builder

ThrowsWhen
IllegalArgumentExceptionif the field name is empty or the value cannot be written as Slack JSON

Related types: PlanBlock

Build​

Validates the configured fields and creates an immutable value. The builder can be reused.

public PlanBlock build()

Returns: an immutable PlanBlock

ThrowsWhen
ValidationExceptionif the value breaks a Block Kit rule, such as a missing required field or an exceeded length limit

Related types: PlanBlock

RichTextBlock​

Formatted text built from sections, lists, preformatted blocks, and quotes.

Start with builder(), set fields with the named fluent methods, and call Builder.build() to validate and create an immutable value.

  • Required: elements.

See the Slack reference.

Builder​

Starts a new builder.

public static RichTextBlock.Builder builder()

Returns: a new builder

Related types: RichTextBlock

GetElements​

Returns sections, lists, preformatted blocks, and quotes in display order.

public List<RichTextBlockElement> getElements()

Returns: the values in order, or an empty list when none were set

ThrowsWhen
IllegalStateExceptionif the field was set through a raw wire field to a value this type cannot represent

Related types: RichTextBlockElement

Elements​

Adds sections, lists, preformatted blocks, and quotes in display order.

Required. Each call appends to any values already added.

public RichTextBlock.Builder elements(RichTextBlockElement... values)
ParameterDescription
valuesRichTextBlockElement values appended in order

Returns: this builder

Related types: RichTextBlock, RichTextBlockElement

BlockId​

Sets a unique identifier for this block. Slack returns it in interaction payloads, so use a stable value when you need to find the block again.

Slack allows at most 255 characters.

public RichTextBlock.Builder blockId(String value)
ParameterDescription
valuevalue for Slack's block_id field

Returns: this builder

Related types: RichTextBlock

WireField​

Sets a Slack field that has no named method yet, such as a field Slack introduced after this release. Prefer the named methods, which are typed and documented.

The value is checked at build time like any other field. It must be a string, number, boolean, slackblocks value or builder, or a list or map containing only those.

public RichTextBlock.Builder wireField(String field, Object value)
ParameterDescription
fieldSlack JSON field name
valueJSON-compatible value

Returns: this builder

ThrowsWhen
IllegalArgumentExceptionif the field name is empty or the value cannot be written as Slack JSON

Related types: RichTextBlock

Build​

Validates the configured fields and creates an immutable value. The builder can be reused.

public RichTextBlock build()

Returns: an immutable RichTextBlock

ThrowsWhen
ValidationExceptionif the value breaks a Block Kit rule, such as a missing required field or an exceeded length limit

Related types: RichTextBlock

SectionBlock​

Text, a grid of fields, or both, with an optional accessory element.

Start with builder(), set fields with the named fluent methods, and call Builder.build() to validate and create an immutable value.

  • Provide text, fields, or both.

See the Slack reference.

Builder​

Starts a new builder.

public static SectionBlock.Builder builder()

Returns: a new builder

Related types: SectionBlock

GetText​

Returns the main text of the section.

public Optional<Text> getText()

Returns: the value, or an empty optional when it was not set

ThrowsWhen
IllegalStateExceptionif the field was set through a raw wire field to a value this type cannot represent

Related types: Text

GetFields​

Returns section fields, shown in a two-column grid, in display order.

public List<Text> getFields()

Returns: the values in order, or an empty list when none were set

ThrowsWhen
IllegalStateExceptionif the field was set through a raw wire field to a value this type cannot represent

Related types: Text

GetAccessory​

Returns the element displayed beside the section text.

public Optional<Element> getAccessory()

Returns: the value, or an empty optional when it was not set

ThrowsWhen
IllegalStateExceptionif the field was set through a raw wire field to a value this type cannot represent

Related types: Element

Text — String​

Sets the main text of the section.

Slack allows at most 3000 characters. The string is sent as a mrkdwn text object.

public SectionBlock.Builder text(String value)
ParameterDescription
valuetext content

Returns: this builder

Related types: SectionBlock

Text — Text​

Sets the main text of the section.

Slack allows at most 3000 characters.

public SectionBlock.Builder text(Text value)
ParameterDescription
valuea Text object

Returns: this builder

Related types: SectionBlock, Text

MarkdownText​

Sets the main text of the section.

Slack allows at most 3000 characters. Equivalent to text(String).

public SectionBlock.Builder markdownText(String value)
ParameterDescription
valuetext content

Returns: this builder

Related types: SectionBlock

Fields​

Adds section fields, shown in a two-column grid, in display order.

Slack allows at most 10 items, each at most 2000 characters. Each call appends to any values already added.

public SectionBlock.Builder fields(Text... values)
ParameterDescription
valuesText objects appended in order

Returns: this builder

Related types: SectionBlock, Text

MarkdownFields​

Adds section fields, shown in a two-column grid, in display order.

Slack allows at most 10 items, each at most 2000 characters. Each string is sent as a mrkdwn text object.

public SectionBlock.Builder markdownFields(String... values)
ParameterDescription
valuesstrings appended in order

Returns: this builder

Related types: SectionBlock

Accessory​

Sets the element displayed beside the section text.

public SectionBlock.Builder accessory(Element value)
ParameterDescription
valuenested Element

Returns: this builder

Related types: Element, SectionBlock

BlockId​

Sets a unique identifier for this block. Slack returns it in interaction payloads, so use a stable value when you need to find the block again.

Slack allows at most 255 characters.

public SectionBlock.Builder blockId(String value)
ParameterDescription
valuevalue for Slack's block_id field

Returns: this builder

Related types: SectionBlock

WireField​

Sets a Slack field that has no named method yet, such as a field Slack introduced after this release. Prefer the named methods, which are typed and documented.

The value is checked at build time like any other field. It must be a string, number, boolean, slackblocks value or builder, or a list or map containing only those.

public SectionBlock.Builder wireField(String field, Object value)
ParameterDescription
fieldSlack JSON field name
valueJSON-compatible value

Returns: this builder

ThrowsWhen
IllegalArgumentExceptionif the field name is empty or the value cannot be written as Slack JSON

Related types: SectionBlock

Build​

Validates the configured fields and creates an immutable value. The builder can be reused.

public SectionBlock build()

Returns: an immutable SectionBlock

ThrowsWhen
ValidationExceptionif the value breaks a Block Kit rule, such as a missing required field or an exceeded length limit

Related types: SectionBlock

TableBlock​

A simple table of raw text and rich text cells.

Start with builder(), set fields with the named fluent methods, and call Builder.build() to validate and create an immutable value.

  • Required: rows.

See the Slack reference.

Builder​

Starts a new builder.

public static TableBlock.Builder builder()

Returns: a new builder

Related types: TableBlock

GetRows​

Returns complete table rows in display order.

public List<List<TableCell>> getRows()

Returns: the values in order, or an empty list when none were set

ThrowsWhen
IllegalStateExceptionif the field was set through a raw wire field to a value this type cannot represent

Related types: TableCell

GetColumnSettings​

Returns per-column settings in column order. Provide one entry for every column.

public List<ColumnSettings> getColumnSettings()

Returns: the values in order, or an empty list when none were set

ThrowsWhen
IllegalStateExceptionif the field was set through a raw wire field to a value this type cannot represent

Related types: ColumnSettings

Rows​

Adds complete table rows in display order.

Required. Slack allows at most 100 items. Each call appends to any rows already added.

public final TableBlock.Builder rows(List<? extends TableCell>... rows)
ParameterDescription
rowsrows of TableCell values, in display order

Returns: this builder

Related types: TableBlock, TableCell

ColumnSettings​

Adds per-column settings in column order. Provide one entry for every column.

Slack allows at most 20 items. Each call appends to any values already added.

public TableBlock.Builder columnSettings(ColumnSettings... values)
ParameterDescription
valuesColumnSettings values appended in order

Returns: this builder

Related types: ColumnSettings, TableBlock

BlockId​

Sets a unique identifier for this block. Slack returns it in interaction payloads, so use a stable value when you need to find the block again.

Slack allows at most 255 characters.

public TableBlock.Builder blockId(String value)
ParameterDescription
valuevalue for Slack's block_id field

Returns: this builder

Related types: TableBlock

WireField​

Sets a Slack field that has no named method yet, such as a field Slack introduced after this release. Prefer the named methods, which are typed and documented.

The value is checked at build time like any other field. It must be a string, number, boolean, slackblocks value or builder, or a list or map containing only those.

public TableBlock.Builder wireField(String field, Object value)
ParameterDescription
fieldSlack JSON field name
valueJSON-compatible value

Returns: this builder

ThrowsWhen
IllegalArgumentExceptionif the field name is empty or the value cannot be written as Slack JSON

Related types: TableBlock

Build​

Validates the configured fields and creates an immutable value. The builder can be reused.

public TableBlock build()

Returns: an immutable TableBlock

ThrowsWhen
ValidationExceptionif the value breaks a Block Kit rule, such as a missing required field or an exceeded length limit

Related types: TableBlock

TableCell​

A value that can appear as a table block cell: raw text or a rich text block.

Implemented by RawText, RichTextBlock.

TaskCardBlock​

One task with its status, details, output, and sources.

Start with builder(), set fields with the named fluent methods, and call Builder.build() to validate and create an immutable value.

  • Required: taskId, title, status.

  • A standalone task card's status cannot be pending; pending is only valid for plan tasks.

See the Slack reference.

Builder​

Starts a new builder.

public static TaskCardBlock.Builder builder()

Returns: a new builder

Related types: TaskCardBlock

GetTaskId​

Returns the identifier of the task.

public String getTaskId()

Returns: the value

ThrowsWhen
IllegalStateExceptionif the field was set through a raw wire field to a value this type cannot represent

GetTitle​

Returns the task title.

public String getTitle()

Returns: the value

ThrowsWhen
IllegalStateExceptionif the field was set through a raw wire field to a value this type cannot represent

GetDetails​

Returns a rich text description of the task.

public Optional<RichTextBlock> getDetails()

Returns: the value, or an empty optional when it was not set

ThrowsWhen
IllegalStateExceptionif the field was set through a raw wire field to a value this type cannot represent

Related types: RichTextBlock

GetOutput​

Returns rich text describing the task's output.

public Optional<RichTextBlock> getOutput()

Returns: the value, or an empty optional when it was not set

ThrowsWhen
IllegalStateExceptionif the field was set through a raw wire field to a value this type cannot represent

Related types: RichTextBlock

GetSources​

Returns links to the sources the task used, in display order.

public List<UrlSource> getSources()

Returns: the values in order, or an empty list when none were set

ThrowsWhen
IllegalStateExceptionif the field was set through a raw wire field to a value this type cannot represent

Related types: UrlSource

GetStatus​

Returns the task's current state.

public Optional<TaskStatus> getStatus()

Returns: the value, or an empty optional when it was not set

ThrowsWhen
IllegalStateExceptionif the field was set through a raw wire field to a value this type cannot represent

Related types: TaskStatus

TaskId​

Sets the identifier of the task.

Required.

public TaskCardBlock.Builder taskId(String value)
ParameterDescription
valuevalue for Slack's task_id field

Returns: this builder

Related types: TaskCardBlock

Title​

Sets the task title.

Required.

public TaskCardBlock.Builder title(String value)
ParameterDescription
valuevalue for Slack's title field

Returns: this builder

Related types: TaskCardBlock

Details​

Sets a rich text description of the task.

public TaskCardBlock.Builder details(RichTextBlock value)
ParameterDescription
valuenested RichTextBlock

Returns: this builder

Related types: RichTextBlock, TaskCardBlock

Output​

Sets rich text describing the task's output.

public TaskCardBlock.Builder output(RichTextBlock value)
ParameterDescription
valuenested RichTextBlock

Returns: this builder

Related types: RichTextBlock, TaskCardBlock

Sources​

Adds links to the sources the task used, in display order.

Each call appends to any values already added.

public TaskCardBlock.Builder sources(UrlSource... values)
ParameterDescription
valuesUrlSource values appended in order

Returns: this builder

Related types: TaskCardBlock, UrlSource

Status​

Sets the task's current state.

Required.

public TaskCardBlock.Builder status(TaskStatus value)
ParameterDescription
valuevalue for Slack's status field

Returns: this builder

Related types: TaskCardBlock, TaskStatus

BlockId​

Sets a unique identifier for this block. Slack returns it in interaction payloads, so use a stable value when you need to find the block again.

Slack allows at most 255 characters.

public TaskCardBlock.Builder blockId(String value)
ParameterDescription
valuevalue for Slack's block_id field

Returns: this builder

Related types: TaskCardBlock

WireField​

Sets a Slack field that has no named method yet, such as a field Slack introduced after this release. Prefer the named methods, which are typed and documented.

The value is checked at build time like any other field. It must be a string, number, boolean, slackblocks value or builder, or a list or map containing only those.

public TaskCardBlock.Builder wireField(String field, Object value)
ParameterDescription
fieldSlack JSON field name
valueJSON-compatible value

Returns: this builder

ThrowsWhen
IllegalArgumentExceptionif the field name is empty or the value cannot be written as Slack JSON

Related types: TaskCardBlock

Build​

Validates the configured fields and creates an immutable value. The builder can be reused.

public TaskCardBlock build()

Returns: an immutable TaskCardBlock

ThrowsWhen
ValidationExceptionif the value breaks a Block Kit rule, such as a missing required field or an exceeded length limit

Related types: TaskCardBlock

TaskStatus​

States supported by task card blocks.

ConstantSlack valueMeaning
PENDINGpendingThe task has not started.
IN_PROGRESSin_progressThe task is running.
COMPLETEcompleteThe task finished successfully.
ERRORerrorThe task failed.

WireValue​

Returns the value Slack expects in JSON.

public String wireValue()

Returns: the wire value

FromWireValue​

Finds the constant for a Slack JSON value.

public static Optional<TaskStatus> fromWireValue(String wireValue)
ParameterDescription
wireValuethe value Slack uses in JSON

Returns: the matching constant, or an empty optional for an unknown value

Related types: TaskStatus

VideoBlock​

An embedded video player.

Start with builder(), set fields with the named fluent methods, and call Builder.build() to validate and create an immutable value.

  • Required: altText, thumbnailUrl, title, videoUrl.

See the Slack reference.

Builder​

Starts a new builder.

public static VideoBlock.Builder builder()

Returns: a new builder

Related types: VideoBlock

GetAltText​

Returns a plain-text summary of the image or video for assistive technology.

public String getAltText()

Returns: the value

ThrowsWhen
IllegalStateExceptionif the field was set through a raw wire field to a value this type cannot represent

GetThumbnailUrl​

Returns the URL of the image shown before the video plays.

public String getThumbnailUrl()

Returns: the value

ThrowsWhen
IllegalStateExceptionif the field was set through a raw wire field to a value this type cannot represent

GetTitle​

Returns the video title.

public PlainText getTitle()

Returns: the value

ThrowsWhen
IllegalStateExceptionif the field was set through a raw wire field to a value this type cannot represent

Related types: PlainText

GetVideoUrl​

Returns the embeddable URL of the video. The domain must be listed in the app's unfurl domains.

public String getVideoUrl()

Returns: the value

ThrowsWhen
IllegalStateExceptionif the field was set through a raw wire field to a value this type cannot represent

GetAuthorName​

Returns the name of the video's author.

public Optional<String> getAuthorName()

Returns: the value, or an empty optional when it was not set

ThrowsWhen
IllegalStateExceptionif the field was set through a raw wire field to a value this type cannot represent

GetDescription​

Returns the video description.

public Optional<PlainText> getDescription()

Returns: the value, or an empty optional when it was not set

ThrowsWhen
IllegalStateExceptionif the field was set through a raw wire field to a value this type cannot represent

Related types: PlainText

GetProviderIconUrl​

Returns the URL of the video provider's icon.

public Optional<String> getProviderIconUrl()

Returns: the value, or an empty optional when it was not set

ThrowsWhen
IllegalStateExceptionif the field was set through a raw wire field to a value this type cannot represent

GetProviderName​

Returns the name of the video provider, such as YouTube.

public Optional<String> getProviderName()

Returns: the value, or an empty optional when it was not set

ThrowsWhen
IllegalStateExceptionif the field was set through a raw wire field to a value this type cannot represent

GetTitleUrl​

Returns the HTTPS URL opened when the title is clicked.

public Optional<String> getTitleUrl()

Returns: the value, or an empty optional when it was not set

ThrowsWhen
IllegalStateExceptionif the field was set through a raw wire field to a value this type cannot represent

AltText​

Sets a plain-text summary of the image or video for assistive technology.

Required. Slack allows at most 2000 characters.

public VideoBlock.Builder altText(String value)
ParameterDescription
valuevalue for Slack's alt_text field

Returns: this builder

Related types: VideoBlock

ThumbnailUrl​

Sets the URL of the image shown before the video plays.

Required. Slack allows at most 3000 characters.

public VideoBlock.Builder thumbnailUrl(String value)
ParameterDescription
valuevalue for Slack's thumbnail_url field

Returns: this builder

Related types: VideoBlock

Title — String​

Sets the video title.

Required. Slack allows at most 200 characters. The string is sent as a plain_text text object.

public VideoBlock.Builder title(String value)
ParameterDescription
valuetext content

Returns: this builder

Related types: VideoBlock

Title — PlainText​

Sets the video title.

Required. Slack allows at most 200 characters.

public VideoBlock.Builder title(PlainText value)
ParameterDescription
valuea PlainText object

Returns: this builder

Related types: PlainText, VideoBlock

VideoUrl​

Sets the embeddable URL of the video. The domain must be listed in the app's unfurl domains.

Required. Slack allows at most 3000 characters.

public VideoBlock.Builder videoUrl(String value)
ParameterDescription
valuevalue for Slack's video_url field

Returns: this builder

Related types: VideoBlock

BlockId​

Sets a unique identifier for this block. Slack returns it in interaction payloads, so use a stable value when you need to find the block again.

Slack allows at most 255 characters.

public VideoBlock.Builder blockId(String value)
ParameterDescription
valuevalue for Slack's block_id field

Returns: this builder

Related types: VideoBlock

AuthorName​

Sets the name of the video's author.

Slack allows at most 50 characters.

public VideoBlock.Builder authorName(String value)
ParameterDescription
valuevalue for Slack's author_name field

Returns: this builder

Related types: VideoBlock

Description — String​

Sets the video description.

Slack allows at most 200 characters. The string is sent as a plain_text text object.

public VideoBlock.Builder description(String value)
ParameterDescription
valuetext content

Returns: this builder

Related types: VideoBlock

Description — PlainText​

Sets the video description.

Slack allows at most 200 characters.

public VideoBlock.Builder description(PlainText value)
ParameterDescription
valuea PlainText object

Returns: this builder

Related types: PlainText, VideoBlock

ProviderIconUrl​

Sets the URL of the video provider's icon.

Slack allows at most 2000 characters.

public VideoBlock.Builder providerIconUrl(String value)
ParameterDescription
valuevalue for Slack's provider_icon_url field

Returns: this builder

Related types: VideoBlock

ProviderName​

Sets the name of the video provider, such as YouTube.

Slack allows at most 50 characters.

public VideoBlock.Builder providerName(String value)
ParameterDescription
valuevalue for Slack's provider_name field

Returns: this builder

Related types: VideoBlock

TitleUrl​

Sets the HTTPS URL opened when the title is clicked.

Slack allows at most 2000 characters.

public VideoBlock.Builder titleUrl(String value)
ParameterDescription
valuevalue for Slack's title_url field

Returns: this builder

Related types: VideoBlock

WireField​

Sets a Slack field that has no named method yet, such as a field Slack introduced after this release. Prefer the named methods, which are typed and documented.

The value is checked at build time like any other field. It must be a string, number, boolean, slackblocks value or builder, or a list or map containing only those.

public VideoBlock.Builder wireField(String field, Object value)
ParameterDescription
fieldSlack JSON field name
valueJSON-compatible value

Returns: this builder

ThrowsWhen
IllegalArgumentExceptionif the field name is empty or the value cannot be written as Slack JSON

Related types: VideoBlock

Build​

Validates the configured fields and creates an immutable value. The builder can be reused.

public VideoBlock build()

Returns: an immutable VideoBlock

ThrowsWhen
ValidationExceptionif the value breaks a Block Kit rule, such as a missing required field or an exceeded length limit

Related types: VideoBlock