Skip to main content

Elements

This page documents the public C# API for elements, generated from the XML documentation of the compiled library. Values are immutable, constructors take named arguments and validate them, and read-only properties return what was passed.

ButtonElement

An interactive button that sends a payload or opens a URL.

  • Required: text, actionId.

See the Slack reference.

Implements IElement.

ButtonElement

Creates and validates a ButtonElement.

public ButtonElement(PlainText text, string actionId, string? url = null, string? value = null, ButtonStyle? style = null, Confirmation? confirm = null, string? accessibilityLabel = null, IReadOnlyDictionary<string, object?>? additionalFields = null)
ParameterDescription
textThe button label. Required. Slack allows at most 75 characters. A string is sent as a plain_text text object.
actionIdThe identifier Slack returns in interaction payloads when a user acts on this element. It must be unique among the elements of its block. Required. Slack allows at most 255 characters.
urlA URL opened in the user's browser when the button is clicked. Slack still sends an interaction payload. Slack allows at most 3000 characters.
valueThe application-defined value sent in interaction payloads. Slack allows at most 2000 characters.
styleThe button's emphasis. Omit it for the default neutral style.
confirmA confirmation dialog shown before the action is sent.
accessibilityLabelThe label read by screen readers in place of the visible text. Slack allows at most 75 characters.
additionalFieldsSlack fields that have no named parameter yet, such as a field Slack introduced after this release. Values must be strings, numbers, booleans, lists, dictionaries, JSON nodes, or slackblocks values, and are validated with the rest of the object. Typed properties do not reflect them, and a field cannot be set both here and through its named parameter.
ThrowsWhen
ValidationExceptionThe value breaks a Block Kit rule, such as a missing required field or an exceeded length limit.
ArgumentExceptionA collection contains null, or an additional field cannot be written as JSON or repeats a named parameter.

Related types: ButtonElement, ButtonStyle, Confirmation, PlainText

Text

Gets the button label.

public PlainText Text { get; }

Related types: PlainText, Text

ActionId

Gets the identifier Slack returns in interaction payloads when a user acts on this element. It must be unique among the elements of its block.

public string ActionId { get; }

Url

Gets a URL opened in the user's browser when the button is clicked. Slack still sends an interaction payload.

The value, or null when it was not set.

public string? Url { get; }

Value

Gets the application-defined value sent in interaction payloads.

The value, or null when it was not set.

public string? Value { get; }

Style

Gets the button's emphasis. Omit it for the default neutral style.

The value, or null when it was not set.

public ButtonStyle? Style { get; }

Related types: ButtonStyle

Confirm

Gets a confirmation dialog shown before the action is sent.

The value, or null when it was not set.

public Confirmation? Confirm { get; }

Related types: Confirmation

AccessibilityLabel

Gets the label read by screen readers in place of the visible text.

The value, or null when it was not set.

public string? AccessibilityLabel { get; }

ButtonStyle

Visual emphasis for buttons and confirmation dialogs.

ToWireValue() returns the value Slack expects in JSON.

ConstantSlack valueMeaning
PrimaryprimaryGreen emphasis for the affirmative action.
DangerdangerRed emphasis for destructive actions.

ChannelMultiSelectElement

A menu for selecting multiple public channels.

  • Required: actionId.

See the Slack reference.

Implements IElement, IInputElement.

ChannelMultiSelectElement

Creates and validates a ChannelMultiSelectElement.

public ChannelMultiSelectElement(string actionId, IEnumerable<string>? initialChannels = null, Confirmation? confirm = null, int? maxSelectedItems = null, bool? focusOnLoad = null, PlainText? placeholder = null, IReadOnlyDictionary<string, object?>? additionalFields = null)
ParameterDescription
actionIdThe identifier Slack returns in interaction payloads when a user acts on this element. It must be unique among the elements of its block. Required. Slack allows at most 255 characters.
initialChannelsChannel IDs that are selected when the menu loads.
confirmA confirmation dialog shown before the action is sent.
maxSelectedItemsThe maximum number of items a user can select.
focusOnLoadWhether the element receives focus when the view opens. Only one element per view may do so.
placeholderThe placeholder text shown before a value is chosen. Slack allows at most 150 characters. A string is sent as a plain_text text object.
additionalFieldsSlack fields that have no named parameter yet, such as a field Slack introduced after this release. Values must be strings, numbers, booleans, lists, dictionaries, JSON nodes, or slackblocks values, and are validated with the rest of the object. Typed properties do not reflect them, and a field cannot be set both here and through its named parameter.
ThrowsWhen
ValidationExceptionThe value breaks a Block Kit rule, such as a missing required field or an exceeded length limit.
ArgumentExceptionA collection contains null, or an additional field cannot be written as JSON or repeats a named parameter.

Related types: ChannelMultiSelectElement, Confirmation, PlainText

ActionId

Gets the identifier Slack returns in interaction payloads when a user acts on this element. It must be unique among the elements of its block.

public string ActionId { get; }

InitialChannels

Gets channel IDs that are selected when the menu loads.

The values in order, or an empty list when none were set.

public IReadOnlyList<string> InitialChannels { get; }

Confirm

Gets a confirmation dialog shown before the action is sent.

The value, or null when it was not set.

public Confirmation? Confirm { get; }

Related types: Confirmation

MaxSelectedItems

Gets the maximum number of items a user can select.

The value, or null when it was not set.

public int? MaxSelectedItems { get; }

FocusOnLoad

Gets whether the element receives focus when the view opens. Only one element per view may do so.

The value, or null when it was not set.

public bool? FocusOnLoad { get; }

Placeholder

Gets the placeholder text shown before a value is chosen.

The value, or null when it was not set.

public PlainText? Placeholder { get; }

Related types: PlainText

ChannelSelectElement

A menu for selecting one public channel.

  • Required: actionId.

See the Slack reference.

Implements IElement, IInputElement.

ChannelSelectElement

Creates and validates a ChannelSelectElement.

public ChannelSelectElement(string actionId, string? initialChannel = null, bool? responseUrlEnabled = null, Confirmation? confirm = null, bool? focusOnLoad = null, PlainText? placeholder = null, IReadOnlyDictionary<string, object?>? additionalFields = null)
ParameterDescription
actionIdThe identifier Slack returns in interaction payloads when a user acts on this element. It must be unique among the elements of its block. Required. Slack allows at most 255 characters.
initialChannelThe channel ID selected when the menu loads.
responseUrlEnabledWhether the selected conversation receives a response URL in the view submission payload. Only valid in modals.
confirmA confirmation dialog shown before the action is sent.
focusOnLoadWhether the element receives focus when the view opens. Only one element per view may do so.
placeholderThe placeholder text shown before a value is chosen. Slack allows at most 150 characters. A string is sent as a plain_text text object.
additionalFieldsSlack fields that have no named parameter yet, such as a field Slack introduced after this release. Values must be strings, numbers, booleans, lists, dictionaries, JSON nodes, or slackblocks values, and are validated with the rest of the object. Typed properties do not reflect them, and a field cannot be set both here and through its named parameter.
ThrowsWhen
ValidationExceptionThe value breaks a Block Kit rule, such as a missing required field or an exceeded length limit.
ArgumentExceptionA collection contains null, or an additional field cannot be written as JSON or repeats a named parameter.

Related types: ChannelSelectElement, Confirmation, PlainText

ActionId

Gets the identifier Slack returns in interaction payloads when a user acts on this element. It must be unique among the elements of its block.

public string ActionId { get; }

InitialChannel

Gets the channel ID selected when the menu loads.

The value, or null when it was not set.

public string? InitialChannel { get; }

ResponseUrlEnabled

Gets whether the selected conversation receives a response URL in the view submission payload. Only valid in modals.

The value, or null when it was not set.

public bool? ResponseUrlEnabled { get; }

Confirm

Gets a confirmation dialog shown before the action is sent.

The value, or null when it was not set.

public Confirmation? Confirm { get; }

Related types: Confirmation

FocusOnLoad

Gets whether the element receives focus when the view opens. Only one element per view may do so.

The value, or null when it was not set.

public bool? FocusOnLoad { get; }

Placeholder

Gets the placeholder text shown before a value is chosen.

The value, or null when it was not set.

public PlainText? Placeholder { get; }

Related types: PlainText

CheckboxesElement

A group of checkboxes.

  • Required: actionId, options.

See the Slack reference.

Implements IElement, IInputElement.

CheckboxesElement

Creates and validates a CheckboxesElement.

public CheckboxesElement(string actionId, IEnumerable<Option> options, IEnumerable<Option>? initialOptions = null, Confirmation? confirm = null, bool? focusOnLoad = null, IReadOnlyDictionary<string, object?>? additionalFields = null)
ParameterDescription
actionIdThe identifier Slack returns in interaction payloads when a user acts on this element. It must be unique among the elements of its block. Required. Slack allows at most 255 characters.
optionsSelectable options in display order. Required. Must contain between 1 and 10 items.
initialOptionsOptions that are selected when the element loads. Each must match an option in the element.
confirmA confirmation dialog shown before the action is sent.
focusOnLoadWhether the element receives focus when the view opens. Only one element per view may do so.
additionalFieldsSlack fields that have no named parameter yet, such as a field Slack introduced after this release. Values must be strings, numbers, booleans, lists, dictionaries, JSON nodes, or slackblocks values, and are validated with the rest of the object. Typed properties do not reflect them, and a field cannot be set both here and through its named parameter.
ThrowsWhen
ValidationExceptionThe value breaks a Block Kit rule, such as a missing required field or an exceeded length limit.
ArgumentExceptionA collection contains null, or an additional field cannot be written as JSON or repeats a named parameter.

Related types: CheckboxesElement, Confirmation, Option

ActionId

Gets the identifier Slack returns in interaction payloads when a user acts on this element. It must be unique among the elements of its block.

public string ActionId { get; }

Options

Gets selectable options in display order.

The values in order, or an empty list when none were set.

public IReadOnlyList<Option> Options { get; }

Related types: Option

InitialOptions

Gets options that are selected when the element loads. Each must match an option in the element.

The values in order, or an empty list when none were set.

public IReadOnlyList<Option> InitialOptions { get; }

Related types: Option

Confirm

Gets a confirmation dialog shown before the action is sent.

The value, or null when it was not set.

public Confirmation? Confirm { get; }

Related types: Confirmation

FocusOnLoad

Gets whether the element receives focus when the view opens. Only one element per view may do so.

The value, or null when it was not set.

public bool? FocusOnLoad { get; }

ConversationMultiSelectElement

A menu for selecting multiple conversations.

  • Required: actionId.

See the Slack reference.

Implements IElement, IInputElement.

ConversationMultiSelectElement

Creates and validates a ConversationMultiSelectElement.

public ConversationMultiSelectElement(string actionId, IEnumerable<string>? initialConversations = null, bool? defaultToCurrentConversation = null, ConversationFilter? filter = null, Confirmation? confirm = null, int? maxSelectedItems = null, bool? focusOnLoad = null, PlainText? placeholder = null, IReadOnlyDictionary<string, object?>? additionalFields = null)
ParameterDescription
actionIdThe identifier Slack returns in interaction payloads when a user acts on this element. It must be unique among the elements of its block. Required. Slack allows at most 255 characters.
initialConversationsConversation IDs that are selected when the menu loads.
defaultToCurrentConversationWhether the menu pre-selects the conversation the user is viewing.
filterWhich conversation types the menu offers.
confirmA confirmation dialog shown before the action is sent.
maxSelectedItemsThe maximum number of items a user can select.
focusOnLoadWhether the element receives focus when the view opens. Only one element per view may do so.
placeholderThe placeholder text shown before a value is chosen. Slack allows at most 150 characters. A string is sent as a plain_text text object.
additionalFieldsSlack fields that have no named parameter yet, such as a field Slack introduced after this release. Values must be strings, numbers, booleans, lists, dictionaries, JSON nodes, or slackblocks values, and are validated with the rest of the object. Typed properties do not reflect them, and a field cannot be set both here and through its named parameter.
ThrowsWhen
ValidationExceptionThe value breaks a Block Kit rule, such as a missing required field or an exceeded length limit.
ArgumentExceptionA collection contains null, or an additional field cannot be written as JSON or repeats a named parameter.

Related types: Confirmation, ConversationFilter, ConversationMultiSelectElement, PlainText

ActionId

Gets the identifier Slack returns in interaction payloads when a user acts on this element. It must be unique among the elements of its block.

public string ActionId { get; }

InitialConversations

Gets conversation IDs that are selected when the menu loads.

The values in order, or an empty list when none were set.

public IReadOnlyList<string> InitialConversations { get; }

DefaultToCurrentConversation

Gets whether the menu pre-selects the conversation the user is viewing.

The value, or null when it was not set.

public bool? DefaultToCurrentConversation { get; }

Filter

Gets which conversation types the menu offers.

The value, or null when it was not set.

public ConversationFilter? Filter { get; }

Related types: ConversationFilter

Confirm

Gets a confirmation dialog shown before the action is sent.

The value, or null when it was not set.

public Confirmation? Confirm { get; }

Related types: Confirmation

MaxSelectedItems

Gets the maximum number of items a user can select.

The value, or null when it was not set.

public int? MaxSelectedItems { get; }

FocusOnLoad

Gets whether the element receives focus when the view opens. Only one element per view may do so.

The value, or null when it was not set.

public bool? FocusOnLoad { get; }

Placeholder

Gets the placeholder text shown before a value is chosen.

The value, or null when it was not set.

public PlainText? Placeholder { get; }

Related types: PlainText

ConversationSelectElement

A menu for selecting one conversation.

  • Required: actionId.

See the Slack reference.

Implements IElement, IInputElement.

ConversationSelectElement

Creates and validates a ConversationSelectElement.

public ConversationSelectElement(string actionId, string? initialConversation = null, bool? defaultToCurrentConversation = null, ConversationFilter? filter = null, bool? responseUrlEnabled = null, Confirmation? confirm = null, bool? focusOnLoad = null, PlainText? placeholder = null, IReadOnlyDictionary<string, object?>? additionalFields = null)
ParameterDescription
actionIdThe identifier Slack returns in interaction payloads when a user acts on this element. It must be unique among the elements of its block. Required. Slack allows at most 255 characters.
initialConversationThe conversation ID selected when the menu loads.
defaultToCurrentConversationWhether the menu pre-selects the conversation the user is viewing.
filterWhich conversation types the menu offers.
responseUrlEnabledWhether the selected conversation receives a response URL in the view submission payload. Only valid in modals.
confirmA confirmation dialog shown before the action is sent.
focusOnLoadWhether the element receives focus when the view opens. Only one element per view may do so.
placeholderThe placeholder text shown before a value is chosen. Slack allows at most 150 characters. A string is sent as a plain_text text object.
additionalFieldsSlack fields that have no named parameter yet, such as a field Slack introduced after this release. Values must be strings, numbers, booleans, lists, dictionaries, JSON nodes, or slackblocks values, and are validated with the rest of the object. Typed properties do not reflect them, and a field cannot be set both here and through its named parameter.
ThrowsWhen
ValidationExceptionThe value breaks a Block Kit rule, such as a missing required field or an exceeded length limit.
ArgumentExceptionA collection contains null, or an additional field cannot be written as JSON or repeats a named parameter.

Related types: Confirmation, ConversationFilter, ConversationSelectElement, PlainText

ActionId

Gets the identifier Slack returns in interaction payloads when a user acts on this element. It must be unique among the elements of its block.

public string ActionId { get; }

InitialConversation

Gets the conversation ID selected when the menu loads.

The value, or null when it was not set.

public string? InitialConversation { get; }

DefaultToCurrentConversation

Gets whether the menu pre-selects the conversation the user is viewing.

The value, or null when it was not set.

public bool? DefaultToCurrentConversation { get; }

Filter

Gets which conversation types the menu offers.

The value, or null when it was not set.

public ConversationFilter? Filter { get; }

Related types: ConversationFilter

ResponseUrlEnabled

Gets whether the selected conversation receives a response URL in the view submission payload. Only valid in modals.

The value, or null when it was not set.

public bool? ResponseUrlEnabled { get; }

Confirm

Gets a confirmation dialog shown before the action is sent.

The value, or null when it was not set.

public Confirmation? Confirm { get; }

Related types: Confirmation

FocusOnLoad

Gets whether the element receives focus when the view opens. Only one element per view may do so.

The value, or null when it was not set.

public bool? FocusOnLoad { get; }

Placeholder

Gets the placeholder text shown before a value is chosen.

The value, or null when it was not set.

public PlainText? Placeholder { get; }

Related types: PlainText

DatePickerElement

A calendar date picker.

  • Required: actionId.

See the Slack reference.

Implements IElement, IInputElement.

DatePickerElement

Creates and validates a DatePickerElement.

public DatePickerElement(string actionId, string? initialDate = null, Confirmation? confirm = null, bool? focusOnLoad = null, PlainText? placeholder = null, IReadOnlyDictionary<string, object?>? additionalFields = null)
ParameterDescription
actionIdThe identifier Slack returns in interaction payloads when a user acts on this element. It must be unique among the elements of its block. Required. Slack allows at most 255 characters.
initialDateThe initially selected date, formatted as YYYY-MM-DD.
confirmA confirmation dialog shown before the action is sent.
focusOnLoadWhether the element receives focus when the view opens. Only one element per view may do so.
placeholderThe placeholder text shown before a value is chosen. A string is sent as a plain_text text object.
additionalFieldsSlack fields that have no named parameter yet, such as a field Slack introduced after this release. Values must be strings, numbers, booleans, lists, dictionaries, JSON nodes, or slackblocks values, and are validated with the rest of the object. Typed properties do not reflect them, and a field cannot be set both here and through its named parameter.
ThrowsWhen
ValidationExceptionThe value breaks a Block Kit rule, such as a missing required field or an exceeded length limit.
ArgumentExceptionA collection contains null, or an additional field cannot be written as JSON or repeats a named parameter.

Related types: Confirmation, DatePickerElement, PlainText

ActionId

Gets the identifier Slack returns in interaction payloads when a user acts on this element. It must be unique among the elements of its block.

public string ActionId { get; }

InitialDate

Gets the initially selected date, formatted as YYYY-MM-DD.

The value, or null when it was not set.

public string? InitialDate { get; }

Confirm

Gets a confirmation dialog shown before the action is sent.

The value, or null when it was not set.

public Confirmation? Confirm { get; }

Related types: Confirmation

FocusOnLoad

Gets whether the element receives focus when the view opens. Only one element per view may do so.

The value, or null when it was not set.

public bool? FocusOnLoad { get; }

Placeholder

Gets the placeholder text shown before a value is chosen.

The value, or null when it was not set.

public PlainText? Placeholder { get; }

Related types: PlainText

DateTimePickerElement

A combined date and time picker.

  • Required: actionId.

See the Slack reference.

Implements IElement, IInputElement.

DateTimePickerElement

Creates and validates a DateTimePickerElement.

public DateTimePickerElement(string actionId, long? initialDateTime = null, Confirmation? confirm = null, bool? focusOnLoad = null, IReadOnlyDictionary<string, object?>? additionalFields = null)
ParameterDescription
actionIdThe identifier Slack returns in interaction payloads when a user acts on this element. It must be unique among the elements of its block. Required. Slack allows at most 255 characters.
initialDateTimeThe initially selected moment as a UNIX timestamp in seconds.
confirmA confirmation dialog shown before the action is sent.
focusOnLoadWhether the element receives focus when the view opens. Only one element per view may do so.
additionalFieldsSlack fields that have no named parameter yet, such as a field Slack introduced after this release. Values must be strings, numbers, booleans, lists, dictionaries, JSON nodes, or slackblocks values, and are validated with the rest of the object. Typed properties do not reflect them, and a field cannot be set both here and through its named parameter.
ThrowsWhen
ValidationExceptionThe value breaks a Block Kit rule, such as a missing required field or an exceeded length limit.
ArgumentExceptionA collection contains null, or an additional field cannot be written as JSON or repeats a named parameter.

Related types: Confirmation, DateTimePickerElement

ActionId

Gets the identifier Slack returns in interaction payloads when a user acts on this element. It must be unique among the elements of its block.

public string ActionId { get; }

InitialDateTime

Gets the initially selected moment as a UNIX timestamp in seconds.

The value, or null when it was not set.

public long? InitialDateTime { get; }

Confirm

Gets a confirmation dialog shown before the action is sent.

The value, or null when it was not set.

public Confirmation? Confirm { get; }

Related types: Confirmation

FocusOnLoad

Gets whether the element receives focus when the view opens. Only one element per view may do so.

The value, or null when it was not set.

public bool? FocusOnLoad { get; }

EmailInputElement

A single-line input that accepts an email address.

  • Required: actionId.

See the Slack reference.

Implements IElement, IInputElement.

EmailInputElement

Creates and validates a EmailInputElement.

public EmailInputElement(string actionId, string? initialValue = null, DispatchActionConfiguration? dispatchActionConfig = null, bool? focusOnLoad = null, PlainText? placeholder = null, IReadOnlyDictionary<string, object?>? additionalFields = null)
ParameterDescription
actionIdThe identifier Slack returns in interaction payloads when a user acts on this element. It must be unique among the elements of its block. Required. Slack allows at most 255 characters.
initialValueThe value present when the input loads.
dispatchActionConfigWhich user interactions send a block_actions payload.
focusOnLoadWhether the element receives focus when the view opens. Only one element per view may do so.
placeholderThe placeholder text shown before a value is chosen. A string is sent as a plain_text text object.
additionalFieldsSlack fields that have no named parameter yet, such as a field Slack introduced after this release. Values must be strings, numbers, booleans, lists, dictionaries, JSON nodes, or slackblocks values, and are validated with the rest of the object. Typed properties do not reflect them, and a field cannot be set both here and through its named parameter.
ThrowsWhen
ValidationExceptionThe value breaks a Block Kit rule, such as a missing required field or an exceeded length limit.
ArgumentExceptionA collection contains null, or an additional field cannot be written as JSON or repeats a named parameter.

Related types: DispatchActionConfiguration, EmailInputElement, PlainText

ActionId

Gets the identifier Slack returns in interaction payloads when a user acts on this element. It must be unique among the elements of its block.

public string ActionId { get; }

InitialValue

Gets the value present when the input loads.

The value, or null when it was not set.

public string? InitialValue { get; }

DispatchActionConfig

Gets which user interactions send a block_actions payload.

The value, or null when it was not set.

public DispatchActionConfiguration? DispatchActionConfig { get; }

Related types: DispatchActionConfiguration

FocusOnLoad

Gets whether the element receives focus when the view opens. Only one element per view may do so.

The value, or null when it was not set.

public bool? FocusOnLoad { get; }

Placeholder

Gets the placeholder text shown before a value is chosen.

The value, or null when it was not set.

public PlainText? Placeholder { get; }

Related types: PlainText

ExternalMultiSelectElement

A menu for selecting multiple options loaded from your app.

  • Required: actionId.

See the Slack reference.

Implements IElement, IInputElement.

ExternalMultiSelectElement

Creates and validates a ExternalMultiSelectElement.

public ExternalMultiSelectElement(string actionId, int? minQueryLength = null, IEnumerable<Option>? initialOptions = null, Confirmation? confirm = null, int? maxSelectedItems = null, bool? focusOnLoad = null, PlainText? placeholder = null, IReadOnlyDictionary<string, object?>? additionalFields = null)
ParameterDescription
actionIdThe identifier Slack returns in interaction payloads when a user acts on this element. It must be unique among the elements of its block. Required. Slack allows at most 255 characters.
minQueryLengthHow many characters the user must type before Slack queries your options endpoint.
initialOptionsOptions that are selected when the element loads. Each must match an option in the element.
confirmA confirmation dialog shown before the action is sent.
maxSelectedItemsThe maximum number of items a user can select.
focusOnLoadWhether the element receives focus when the view opens. Only one element per view may do so.
placeholderThe placeholder text shown before a value is chosen. Slack allows at most 150 characters. A string is sent as a plain_text text object.
additionalFieldsSlack fields that have no named parameter yet, such as a field Slack introduced after this release. Values must be strings, numbers, booleans, lists, dictionaries, JSON nodes, or slackblocks values, and are validated with the rest of the object. Typed properties do not reflect them, and a field cannot be set both here and through its named parameter.
ThrowsWhen
ValidationExceptionThe value breaks a Block Kit rule, such as a missing required field or an exceeded length limit.
ArgumentExceptionA collection contains null, or an additional field cannot be written as JSON or repeats a named parameter.

Related types: Confirmation, ExternalMultiSelectElement, Option, PlainText

ActionId

Gets the identifier Slack returns in interaction payloads when a user acts on this element. It must be unique among the elements of its block.

public string ActionId { get; }

MinQueryLength

Gets how many characters the user must type before Slack queries your options endpoint.

The value, or null when it was not set.

public int? MinQueryLength { get; }

InitialOptions

Gets options that are selected when the element loads. Each must match an option in the element.

The values in order, or an empty list when none were set.

public IReadOnlyList<Option> InitialOptions { get; }

Related types: Option

Confirm

Gets a confirmation dialog shown before the action is sent.

The value, or null when it was not set.

public Confirmation? Confirm { get; }

Related types: Confirmation

MaxSelectedItems

Gets the maximum number of items a user can select.

The value, or null when it was not set.

public int? MaxSelectedItems { get; }

FocusOnLoad

Gets whether the element receives focus when the view opens. Only one element per view may do so.

The value, or null when it was not set.

public bool? FocusOnLoad { get; }

Placeholder

Gets the placeholder text shown before a value is chosen.

The value, or null when it was not set.

public PlainText? Placeholder { get; }

Related types: PlainText

ExternalSelectElement

A menu for selecting one option loaded from your app.

  • Required: actionId.

See the Slack reference.

Implements IElement, IInputElement.

ExternalSelectElement

Creates and validates a ExternalSelectElement.

public ExternalSelectElement(string actionId, int? minQueryLength = null, Option? initialOption = null, Confirmation? confirm = null, bool? focusOnLoad = null, PlainText? placeholder = null, IReadOnlyDictionary<string, object?>? additionalFields = null)
ParameterDescription
actionIdThe identifier Slack returns in interaction payloads when a user acts on this element. It must be unique among the elements of its block. Required. Slack allows at most 255 characters.
minQueryLengthHow many characters the user must type before Slack queries your options endpoint.
initialOptionThe option selected when the element loads. It must match an option in the element.
confirmA confirmation dialog shown before the action is sent.
focusOnLoadWhether the element receives focus when the view opens. Only one element per view may do so.
placeholderThe placeholder text shown before a value is chosen. Slack allows at most 150 characters. A string is sent as a plain_text text object.
additionalFieldsSlack fields that have no named parameter yet, such as a field Slack introduced after this release. Values must be strings, numbers, booleans, lists, dictionaries, JSON nodes, or slackblocks values, and are validated with the rest of the object. Typed properties do not reflect them, and a field cannot be set both here and through its named parameter.
ThrowsWhen
ValidationExceptionThe value breaks a Block Kit rule, such as a missing required field or an exceeded length limit.
ArgumentExceptionA collection contains null, or an additional field cannot be written as JSON or repeats a named parameter.

Related types: Confirmation, ExternalSelectElement, Option, PlainText

ActionId

Gets the identifier Slack returns in interaction payloads when a user acts on this element. It must be unique among the elements of its block.

public string ActionId { get; }

MinQueryLength

Gets how many characters the user must type before Slack queries your options endpoint.

The value, or null when it was not set.

public int? MinQueryLength { get; }

InitialOption

Gets the option selected when the element loads. It must match an option in the element.

The value, or null when it was not set.

public Option? InitialOption { get; }

Related types: Option

Confirm

Gets a confirmation dialog shown before the action is sent.

The value, or null when it was not set.

public Confirmation? Confirm { get; }

Related types: Confirmation

FocusOnLoad

Gets whether the element receives focus when the view opens. Only one element per view may do so.

The value, or null when it was not set.

public bool? FocusOnLoad { get; }

Placeholder

Gets the placeholder text shown before a value is chosen.

The value, or null when it was not set.

public PlainText? Placeholder { get; }

Related types: PlainText

FeedbackButtonsElement

A pair of thumbs-up and thumbs-down feedback buttons.

  • Required: positiveButton, negativeButton.

See the Slack reference.

Implements IContextActionsElement, IElement.

FeedbackButtonsElement

Creates and validates a FeedbackButtonsElement.

public FeedbackButtonsElement(FeedbackButton positiveButton, FeedbackButton negativeButton, string? actionId = null, IReadOnlyDictionary<string, object?>? additionalFields = null)
ParameterDescription
positiveButtonThe button for positive feedback. Required.
negativeButtonThe button for negative feedback. Required.
actionIdThe identifier Slack returns in interaction payloads when a user acts on this element. It must be unique among the elements of its block. Slack allows at most 255 characters.
additionalFieldsSlack fields that have no named parameter yet, such as a field Slack introduced after this release. Values must be strings, numbers, booleans, lists, dictionaries, JSON nodes, or slackblocks values, and are validated with the rest of the object. Typed properties do not reflect them, and a field cannot be set both here and through its named parameter.
ThrowsWhen
ValidationExceptionThe value breaks a Block Kit rule, such as a missing required field or an exceeded length limit.
ArgumentExceptionA collection contains null, or an additional field cannot be written as JSON or repeats a named parameter.

Related types: FeedbackButton, FeedbackButtonsElement

PositiveButton

Gets the button for positive feedback.

public FeedbackButton PositiveButton { get; }

Related types: FeedbackButton

NegativeButton

Gets the button for negative feedback.

public FeedbackButton NegativeButton { get; }

Related types: FeedbackButton

ActionId

Gets the identifier Slack returns in interaction payloads when a user acts on this element. It must be unique among the elements of its block.

The value, or null when it was not set.

public string? ActionId { get; }

FileInputElement

An input that lets users upload files.

  • Required: actionId.

See the Slack reference.

Implements IElement, IInputElement.

FileInputElement

Creates and validates a FileInputElement.

public FileInputElement(string actionId, IEnumerable<string>? filetypes = null, int? maxFiles = null, IReadOnlyDictionary<string, object?>? additionalFields = null)
ParameterDescription
actionIdThe identifier Slack returns in interaction payloads when a user acts on this element. It must be unique among the elements of its block. Required. Slack allows at most 255 characters.
filetypesAccepted file extensions, such as pdf or png.
maxFilesThe maximum number of files a user can upload. Must be between 1 and 10.
additionalFieldsSlack fields that have no named parameter yet, such as a field Slack introduced after this release. Values must be strings, numbers, booleans, lists, dictionaries, JSON nodes, or slackblocks values, and are validated with the rest of the object. Typed properties do not reflect them, and a field cannot be set both here and through its named parameter.
ThrowsWhen
ValidationExceptionThe value breaks a Block Kit rule, such as a missing required field or an exceeded length limit.
ArgumentExceptionA collection contains null, or an additional field cannot be written as JSON or repeats a named parameter.

Related types: FileInputElement

ActionId

Gets the identifier Slack returns in interaction payloads when a user acts on this element. It must be unique among the elements of its block.

public string ActionId { get; }

Filetypes

Gets accepted file extensions, such as pdf or png.

The values in order, or an empty list when none were set.

public IReadOnlyList<string> Filetypes { get; }

MaxFiles

Gets the maximum number of files a user can upload.

The value, or null when it was not set.

public int? MaxFiles { get; }

IconButtonElement

A button that shows an icon instead of text.

  • Required: text.

See the Slack reference.

Implements IContextActionsElement, IElement.

IconButtonElement

Creates and validates a IconButtonElement.

public IconButtonElement(PlainText text, IconButtonIcon? icon = null, string? actionId = null, string? value = null, Confirmation? confirm = null, string? accessibilityLabel = null, IEnumerable<string>? visibleToUserIds = null, IReadOnlyDictionary<string, object?>? additionalFields = null)
ParameterDescription
textThe text used as the button's accessible name. Required. A string is sent as a plain_text text object.
iconThe icon shown on the button.
actionIdThe identifier Slack returns in interaction payloads when a user acts on this element. It must be unique among the elements of its block. Slack allows at most 255 characters.
valueThe application-defined value sent in interaction payloads.
confirmA confirmation dialog shown before the action is sent.
accessibilityLabelThe label read by screen readers in place of the visible text.
visibleToUserIdsThe IDs of users who can see this button. Slack allows at most 10 items.
additionalFieldsSlack fields that have no named parameter yet, such as a field Slack introduced after this release. Values must be strings, numbers, booleans, lists, dictionaries, JSON nodes, or slackblocks values, and are validated with the rest of the object. Typed properties do not reflect them, and a field cannot be set both here and through its named parameter.
ThrowsWhen
ValidationExceptionThe value breaks a Block Kit rule, such as a missing required field or an exceeded length limit.
ArgumentExceptionA collection contains null, or an additional field cannot be written as JSON or repeats a named parameter.

Related types: Confirmation, IconButtonElement, IconButtonIcon, PlainText

Text

Gets the text used as the button's accessible name.

public PlainText Text { get; }

Related types: PlainText, Text

Icon

Gets the icon shown on the button.

public IconButtonIcon? Icon { get; }

Related types: IconButtonIcon

ActionId

Gets the identifier Slack returns in interaction payloads when a user acts on this element. It must be unique among the elements of its block.

The value, or null when it was not set.

public string? ActionId { get; }

Value

Gets the application-defined value sent in interaction payloads.

The value, or null when it was not set.

public string? Value { get; }

Confirm

Gets a confirmation dialog shown before the action is sent.

The value, or null when it was not set.

public Confirmation? Confirm { get; }

Related types: Confirmation

AccessibilityLabel

Gets the label read by screen readers in place of the visible text.

The value, or null when it was not set.

public string? AccessibilityLabel { get; }

VisibleToUserIds

Gets the IDs of users who can see this button.

The values in order, or an empty list when none were set.

public IReadOnlyList<string> VisibleToUserIds { get; }

IconButtonIcon

Icons supported by icon buttons.

ToWireValue() returns the value Slack expects in JSON.

ConstantSlack valueMeaning
TrashtrashA trash can, for delete actions.

IElement

A validated interactive, visual, or input element nested inside a Slack block.

Implemented by ButtonElement, ChannelMultiSelectElement, ChannelSelectElement, CheckboxesElement, ConversationMultiSelectElement, ConversationSelectElement, DatePickerElement, DateTimePickerElement, EmailInputElement, ExternalMultiSelectElement, ExternalSelectElement, FeedbackButtonsElement, FileInputElement, IconButtonElement, ImageElement, NumberInputElement, OverflowElement, PlainTextInputElement, RadioButtonsElement, RichTextInputElement, StaticMultiSelectElement, StaticSelectElement, TimePickerElement, UrlInputElement, UserMultiSelectElement, UserSelectElement, WorkflowButtonElement.

IInputElement

An element that can be placed in an input block.

Implemented by ChannelMultiSelectElement, ChannelSelectElement, CheckboxesElement, ConversationMultiSelectElement, ConversationSelectElement, DatePickerElement, DateTimePickerElement, EmailInputElement, ExternalMultiSelectElement, ExternalSelectElement, FileInputElement, NumberInputElement, PlainTextInputElement, RadioButtonsElement, RichTextInputElement, StaticMultiSelectElement, StaticSelectElement, TimePickerElement, UrlInputElement, UserMultiSelectElement, UserSelectElement.

ImageElement

An image displayed inside a section, context, or card.

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

See the Slack reference.

Implements IContextElement, IElement.

ImageElement

Creates and validates a ImageElement.

public ImageElement(string altText, string? imageUrl = null, SlackFile? slackFile = null, IReadOnlyDictionary<string, object?>? additionalFields = null)
ParameterDescription
altTextA plain-text summary of the image or video for assistive technology. Required.
imageUrlThe publicly accessible URL of the image. Cannot be combined with a Slack file.
slackFileA file hosted in Slack as the image source. Cannot be combined with an image URL.
additionalFieldsSlack fields that have no named parameter yet, such as a field Slack introduced after this release. Values must be strings, numbers, booleans, lists, dictionaries, JSON nodes, or slackblocks values, and are validated with the rest of the object. Typed properties do not reflect them, and a field cannot be set both here and through its named parameter.
ThrowsWhen
ValidationExceptionThe value breaks a Block Kit rule, such as a missing required field or an exceeded length limit.
ArgumentExceptionA collection contains null, or an additional field cannot be written as JSON or repeats a named parameter.

Related types: ImageElement, SlackFile

AltText

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

public string AltText { get; }

ImageUrl

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

The value, or null when it was not set.

public string? ImageUrl { get; }

SlackFile

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

The value, or null when it was not set.

public SlackFile? SlackFile { get; }

Related types: SlackFile

NumberInputElement

An input that accepts whole or decimal numbers.

  • Required: actionId.
  • The minimum value cannot exceed the maximum value.

See the Slack reference.

Implements IElement, IInputElement.

NumberInputElement

Creates and validates a NumberInputElement.

public NumberInputElement(string actionId, bool? isDecimalAllowed = null, string? initialValue = null, double? minValue = null, double? maxValue = null, DispatchActionConfiguration? dispatchActionConfig = null, bool? focusOnLoad = null, PlainText? placeholder = null, IReadOnlyDictionary<string, object?>? additionalFields = null)
ParameterDescription
actionIdThe identifier Slack returns in interaction payloads when a user acts on this element. It must be unique among the elements of its block. Required. Slack allows at most 255 characters.
isDecimalAllowedWhether the input accepts decimal numbers.
initialValueThe number present when the input loads, as a string such as 42 or 3.5.
minValueThe smallest accepted number.
maxValueThe largest accepted number.
dispatchActionConfigWhich user interactions send a block_actions payload.
focusOnLoadWhether the element receives focus when the view opens. Only one element per view may do so.
placeholderThe placeholder text shown before a value is chosen. A string is sent as a plain_text text object.
additionalFieldsSlack fields that have no named parameter yet, such as a field Slack introduced after this release. Values must be strings, numbers, booleans, lists, dictionaries, JSON nodes, or slackblocks values, and are validated with the rest of the object. Typed properties do not reflect them, and a field cannot be set both here and through its named parameter.
ThrowsWhen
ValidationExceptionThe value breaks a Block Kit rule, such as a missing required field or an exceeded length limit.
ArgumentExceptionA collection contains null, or an additional field cannot be written as JSON or repeats a named parameter.

Related types: DispatchActionConfiguration, NumberInputElement, PlainText

ActionId

Gets the identifier Slack returns in interaction payloads when a user acts on this element. It must be unique among the elements of its block.

public string ActionId { get; }

IsDecimalAllowed

Gets whether the input accepts decimal numbers.

The value, or null when it was not set.

public bool? IsDecimalAllowed { get; }

InitialValue

Gets the number present when the input loads, as a string such as 42 or 3.5.

The value, or null when it was not set.

public string? InitialValue { get; }

MinValue

Gets the smallest accepted number.

The value, or null when it was not set.

public double? MinValue { get; }

MaxValue

Gets the largest accepted number.

The value, or null when it was not set.

public double? MaxValue { get; }

DispatchActionConfig

Gets which user interactions send a block_actions payload.

The value, or null when it was not set.

public DispatchActionConfiguration? DispatchActionConfig { get; }

Related types: DispatchActionConfiguration

FocusOnLoad

Gets whether the element receives focus when the view opens. Only one element per view may do so.

The value, or null when it was not set.

public bool? FocusOnLoad { get; }

Placeholder

Gets the placeholder text shown before a value is chosen.

The value, or null when it was not set.

public PlainText? Placeholder { get; }

Related types: PlainText

OverflowElement

A compact menu of up to five options.

  • Required: actionId, options.

See the Slack reference.

Implements IElement.

OverflowElement

Creates and validates a OverflowElement.

public OverflowElement(string actionId, IEnumerable<Option> options, Confirmation? confirm = null, IReadOnlyDictionary<string, object?>? additionalFields = null)
ParameterDescription
actionIdThe identifier Slack returns in interaction payloads when a user acts on this element. It must be unique among the elements of its block. Required. Slack allows at most 255 characters.
optionsSelectable options in display order. Required. Must contain between 1 and 5 items.
confirmA confirmation dialog shown before the action is sent.
additionalFieldsSlack fields that have no named parameter yet, such as a field Slack introduced after this release. Values must be strings, numbers, booleans, lists, dictionaries, JSON nodes, or slackblocks values, and are validated with the rest of the object. Typed properties do not reflect them, and a field cannot be set both here and through its named parameter.
ThrowsWhen
ValidationExceptionThe value breaks a Block Kit rule, such as a missing required field or an exceeded length limit.
ArgumentExceptionA collection contains null, or an additional field cannot be written as JSON or repeats a named parameter.

Related types: Confirmation, Option, OverflowElement

ActionId

Gets the identifier Slack returns in interaction payloads when a user acts on this element. It must be unique among the elements of its block.

public string ActionId { get; }

Options

Gets selectable options in display order.

The values in order, or an empty list when none were set.

public IReadOnlyList<Option> Options { get; }

Related types: Option

Confirm

Gets a confirmation dialog shown before the action is sent.

The value, or null when it was not set.

public Confirmation? Confirm { get; }

Related types: Confirmation

PlainTextInputElement

A single-line or multi-line free-text input.

  • Required: actionId.

See the Slack reference.

Implements IElement, IInputElement.

PlainTextInputElement

Creates and validates a PlainTextInputElement.

public PlainTextInputElement(string actionId, string? initialValue = null, bool? multiline = null, int? minLength = null, int? maxLength = null, DispatchActionConfiguration? dispatchActionConfig = null, bool? focusOnLoad = null, PlainText? placeholder = null, IReadOnlyDictionary<string, object?>? additionalFields = null)
ParameterDescription
actionIdThe identifier Slack returns in interaction payloads when a user acts on this element. It must be unique among the elements of its block. Required. Slack allows at most 255 characters.
initialValueThe value present when the input loads.
multilineWhether the input is a multi-line text area.
minLengthThe minimum number of characters the user must enter.
maxLengthThe maximum number of characters the user can enter. Must be at most 3000.
dispatchActionConfigWhich user interactions send a block_actions payload.
focusOnLoadWhether the element receives focus when the view opens. Only one element per view may do so.
placeholderThe placeholder text shown before a value is chosen. A string is sent as a plain_text text object.
additionalFieldsSlack fields that have no named parameter yet, such as a field Slack introduced after this release. Values must be strings, numbers, booleans, lists, dictionaries, JSON nodes, or slackblocks values, and are validated with the rest of the object. Typed properties do not reflect them, and a field cannot be set both here and through its named parameter.
ThrowsWhen
ValidationExceptionThe value breaks a Block Kit rule, such as a missing required field or an exceeded length limit.
ArgumentExceptionA collection contains null, or an additional field cannot be written as JSON or repeats a named parameter.

Related types: DispatchActionConfiguration, PlainText, PlainTextInputElement

ActionId

Gets the identifier Slack returns in interaction payloads when a user acts on this element. It must be unique among the elements of its block.

public string ActionId { get; }

InitialValue

Gets the value present when the input loads.

The value, or null when it was not set.

public string? InitialValue { get; }

Multiline

Gets whether the input is a multi-line text area.

The value, or null when it was not set.

public bool? Multiline { get; }

MinLength

Gets the minimum number of characters the user must enter.

The value, or null when it was not set.

public int? MinLength { get; }

MaxLength

Gets the maximum number of characters the user can enter.

The value, or null when it was not set.

public int? MaxLength { get; }

DispatchActionConfig

Gets which user interactions send a block_actions payload.

The value, or null when it was not set.

public DispatchActionConfiguration? DispatchActionConfig { get; }

Related types: DispatchActionConfiguration

FocusOnLoad

Gets whether the element receives focus when the view opens. Only one element per view may do so.

The value, or null when it was not set.

public bool? FocusOnLoad { get; }

Placeholder

Gets the placeholder text shown before a value is chosen.

The value, or null when it was not set.

public PlainText? Placeholder { get; }

Related types: PlainText

RadioButtonsElement

A group of radio buttons.

  • Required: actionId, options.

See the Slack reference.

Implements IElement, IInputElement.

RadioButtonsElement

Creates and validates a RadioButtonsElement.

public RadioButtonsElement(string actionId, IEnumerable<Option> options, Option? initialOption = null, Confirmation? confirm = null, bool? focusOnLoad = null, IReadOnlyDictionary<string, object?>? additionalFields = null)
ParameterDescription
actionIdThe identifier Slack returns in interaction payloads when a user acts on this element. It must be unique among the elements of its block. Required. Slack allows at most 255 characters.
optionsSelectable options in display order. Required. Must contain between 1 and 10 items.
initialOptionThe option selected when the element loads. It must match an option in the element.
confirmA confirmation dialog shown before the action is sent.
focusOnLoadWhether the element receives focus when the view opens. Only one element per view may do so.
additionalFieldsSlack fields that have no named parameter yet, such as a field Slack introduced after this release. Values must be strings, numbers, booleans, lists, dictionaries, JSON nodes, or slackblocks values, and are validated with the rest of the object. Typed properties do not reflect them, and a field cannot be set both here and through its named parameter.
ThrowsWhen
ValidationExceptionThe value breaks a Block Kit rule, such as a missing required field or an exceeded length limit.
ArgumentExceptionA collection contains null, or an additional field cannot be written as JSON or repeats a named parameter.

Related types: Confirmation, Option, RadioButtonsElement

ActionId

Gets the identifier Slack returns in interaction payloads when a user acts on this element. It must be unique among the elements of its block.

public string ActionId { get; }

Options

Gets selectable options in display order.

The values in order, or an empty list when none were set.

public IReadOnlyList<Option> Options { get; }

Related types: Option

InitialOption

Gets the option selected when the element loads. It must match an option in the element.

The value, or null when it was not set.

public Option? InitialOption { get; }

Related types: Option

Confirm

Gets a confirmation dialog shown before the action is sent.

The value, or null when it was not set.

public Confirmation? Confirm { get; }

Related types: Confirmation

FocusOnLoad

Gets whether the element receives focus when the view opens. Only one element per view may do so.

The value, or null when it was not set.

public bool? FocusOnLoad { get; }

RichTextInputElement

An input that accepts formatted rich text.

  • Required: actionId.

See the Slack reference.

Implements IElement, IInputElement.

RichTextInputElement

Creates and validates a RichTextInputElement.

public RichTextInputElement(string actionId, RichTextText? initialValue = null, DispatchActionConfiguration? dispatchActionConfig = null, bool? focusOnLoad = null, PlainText? placeholder = null, int? minLines = null, int? maxLines = null, IReadOnlyDictionary<string, object?>? additionalFields = null)
ParameterDescription
actionIdThe identifier Slack returns in interaction payloads when a user acts on this element. It must be unique among the elements of its block. Required. Slack allows at most 255 characters.
initialValueThe rich text present when the input loads.
dispatchActionConfigWhich user interactions send a block_actions payload.
focusOnLoadWhether the element receives focus when the view opens. Only one element per view may do so.
placeholderThe placeholder text shown before a value is chosen. A string is sent as a plain_text text object.
minLinesThe minimum visible height of the input, in lines.
maxLinesThe maximum visible height of the input, in lines.
additionalFieldsSlack fields that have no named parameter yet, such as a field Slack introduced after this release. Values must be strings, numbers, booleans, lists, dictionaries, JSON nodes, or slackblocks values, and are validated with the rest of the object. Typed properties do not reflect them, and a field cannot be set both here and through its named parameter.
ThrowsWhen
ValidationExceptionThe value breaks a Block Kit rule, such as a missing required field or an exceeded length limit.
ArgumentExceptionA collection contains null, or an additional field cannot be written as JSON or repeats a named parameter.

Related types: DispatchActionConfiguration, PlainText, RichTextInputElement, RichTextText

ActionId

Gets the identifier Slack returns in interaction payloads when a user acts on this element. It must be unique among the elements of its block.

public string ActionId { get; }

InitialValue

Gets the rich text present when the input loads.

The value, or null when it was not set.

public RichTextText? InitialValue { get; }

Related types: RichTextText

DispatchActionConfig

Gets which user interactions send a block_actions payload.

The value, or null when it was not set.

public DispatchActionConfiguration? DispatchActionConfig { get; }

Related types: DispatchActionConfiguration

FocusOnLoad

Gets whether the element receives focus when the view opens. Only one element per view may do so.

The value, or null when it was not set.

public bool? FocusOnLoad { get; }

Placeholder

Gets the placeholder text shown before a value is chosen.

The value, or null when it was not set.

public PlainText? Placeholder { get; }

Related types: PlainText

MinLines

Gets the minimum visible height of the input, in lines.

The value, or null when it was not set.

public int? MinLines { get; }

MaxLines

Gets the maximum visible height of the input, in lines.

The value, or null when it was not set.

public int? MaxLines { get; }

StaticMultiSelectElement

A menu for selecting multiple options defined in the payload.

  • Required: actionId.
  • Use options or option groups, not both.

See the Slack reference.

Implements IElement, IInputElement.

StaticMultiSelectElement

Creates and validates a StaticMultiSelectElement.

public StaticMultiSelectElement(string actionId, IEnumerable<Option>? options = null, IEnumerable<OptionGroup>? optionGroups = null, IEnumerable<Option>? initialOptions = null, Confirmation? confirm = null, int? maxSelectedItems = null, bool? focusOnLoad = null, PlainText? placeholder = null, IReadOnlyDictionary<string, object?>? additionalFields = null)
ParameterDescription
actionIdThe identifier Slack returns in interaction payloads when a user acts on this element. It must be unique among the elements of its block. Required. Slack allows at most 255 characters.
optionsSelectable options in display order. Slack allows at most 100 items.
optionGroupsLabelled groups of options in display order. Cannot be combined with ungrouped options. Slack allows at most 100 items.
initialOptionsOptions that are selected when the element loads. Each must match an option in the element.
confirmA confirmation dialog shown before the action is sent.
maxSelectedItemsThe maximum number of items a user can select.
focusOnLoadWhether the element receives focus when the view opens. Only one element per view may do so.
placeholderThe placeholder text shown before a value is chosen. Slack allows at most 150 characters. A string is sent as a plain_text text object.
additionalFieldsSlack fields that have no named parameter yet, such as a field Slack introduced after this release. Values must be strings, numbers, booleans, lists, dictionaries, JSON nodes, or slackblocks values, and are validated with the rest of the object. Typed properties do not reflect them, and a field cannot be set both here and through its named parameter.
ThrowsWhen
ValidationExceptionThe value breaks a Block Kit rule, such as a missing required field or an exceeded length limit.
ArgumentExceptionA collection contains null, or an additional field cannot be written as JSON or repeats a named parameter.

Related types: Confirmation, Option, OptionGroup, PlainText, StaticMultiSelectElement

ActionId

Gets the identifier Slack returns in interaction payloads when a user acts on this element. It must be unique among the elements of its block.

public string ActionId { get; }

Options

Gets selectable options in display order.

The values in order, or an empty list when none were set.

public IReadOnlyList<Option> Options { get; }

Related types: Option

OptionGroups

Gets labelled groups of options in display order. Cannot be combined with ungrouped options.

The values in order, or an empty list when none were set.

public IReadOnlyList<OptionGroup> OptionGroups { get; }

Related types: OptionGroup

InitialOptions

Gets options that are selected when the element loads. Each must match an option in the element.

The values in order, or an empty list when none were set.

public IReadOnlyList<Option> InitialOptions { get; }

Related types: Option

Confirm

Gets a confirmation dialog shown before the action is sent.

The value, or null when it was not set.

public Confirmation? Confirm { get; }

Related types: Confirmation

MaxSelectedItems

Gets the maximum number of items a user can select.

The value, or null when it was not set.

public int? MaxSelectedItems { get; }

FocusOnLoad

Gets whether the element receives focus when the view opens. Only one element per view may do so.

The value, or null when it was not set.

public bool? FocusOnLoad { get; }

Placeholder

Gets the placeholder text shown before a value is chosen.

The value, or null when it was not set.

public PlainText? Placeholder { get; }

Related types: PlainText

StaticSelectElement

A menu for selecting one option defined in the payload.

  • Required: actionId.
  • Use options or option groups, not both.

See the Slack reference.

Implements IElement, IInputElement.

StaticSelectElement

Creates and validates a StaticSelectElement.

public StaticSelectElement(string actionId, IEnumerable<Option>? options = null, IEnumerable<OptionGroup>? optionGroups = null, Option? initialOption = null, Confirmation? confirm = null, bool? focusOnLoad = null, PlainText? placeholder = null, IReadOnlyDictionary<string, object?>? additionalFields = null)
ParameterDescription
actionIdThe identifier Slack returns in interaction payloads when a user acts on this element. It must be unique among the elements of its block. Required. Slack allows at most 255 characters.
optionsSelectable options in display order. Slack allows at most 100 items.
optionGroupsLabelled groups of options in display order. Cannot be combined with ungrouped options. Slack allows at most 100 items.
initialOptionThe option selected when the element loads. It must match an option in the element.
confirmA confirmation dialog shown before the action is sent.
focusOnLoadWhether the element receives focus when the view opens. Only one element per view may do so.
placeholderThe placeholder text shown before a value is chosen. Slack allows at most 150 characters. A string is sent as a plain_text text object.
additionalFieldsSlack fields that have no named parameter yet, such as a field Slack introduced after this release. Values must be strings, numbers, booleans, lists, dictionaries, JSON nodes, or slackblocks values, and are validated with the rest of the object. Typed properties do not reflect them, and a field cannot be set both here and through its named parameter.
ThrowsWhen
ValidationExceptionThe value breaks a Block Kit rule, such as a missing required field or an exceeded length limit.
ArgumentExceptionA collection contains null, or an additional field cannot be written as JSON or repeats a named parameter.

Related types: Confirmation, Option, OptionGroup, PlainText, StaticSelectElement

ActionId

Gets the identifier Slack returns in interaction payloads when a user acts on this element. It must be unique among the elements of its block.

public string ActionId { get; }

Options

Gets selectable options in display order.

The values in order, or an empty list when none were set.

public IReadOnlyList<Option> Options { get; }

Related types: Option

OptionGroups

Gets labelled groups of options in display order. Cannot be combined with ungrouped options.

The values in order, or an empty list when none were set.

public IReadOnlyList<OptionGroup> OptionGroups { get; }

Related types: OptionGroup

InitialOption

Gets the option selected when the element loads. It must match an option in the element.

The value, or null when it was not set.

public Option? InitialOption { get; }

Related types: Option

Confirm

Gets a confirmation dialog shown before the action is sent.

The value, or null when it was not set.

public Confirmation? Confirm { get; }

Related types: Confirmation

FocusOnLoad

Gets whether the element receives focus when the view opens. Only one element per view may do so.

The value, or null when it was not set.

public bool? FocusOnLoad { get; }

Placeholder

Gets the placeholder text shown before a value is chosen.

The value, or null when it was not set.

public PlainText? Placeholder { get; }

Related types: PlainText

TimePickerElement

A time-of-day picker.

  • Required: actionId.

See the Slack reference.

Implements IElement, IInputElement.

TimePickerElement

Creates and validates a TimePickerElement.

public TimePickerElement(string actionId, string? initialTime = null, string? timezone = null, Confirmation? confirm = null, bool? focusOnLoad = null, PlainText? placeholder = null, IReadOnlyDictionary<string, object?>? additionalFields = null)
ParameterDescription
actionIdThe identifier Slack returns in interaction payloads when a user acts on this element. It must be unique among the elements of its block. Required. Slack allows at most 255 characters.
initialTimeThe initially selected time, formatted as HH:mm in 24-hour time.
timezoneThe IANA time zone used to display the time, such as Australia/Brisbane.
confirmA confirmation dialog shown before the action is sent.
focusOnLoadWhether the element receives focus when the view opens. Only one element per view may do so.
placeholderThe placeholder text shown before a value is chosen. A string is sent as a plain_text text object.
additionalFieldsSlack fields that have no named parameter yet, such as a field Slack introduced after this release. Values must be strings, numbers, booleans, lists, dictionaries, JSON nodes, or slackblocks values, and are validated with the rest of the object. Typed properties do not reflect them, and a field cannot be set both here and through its named parameter.
ThrowsWhen
ValidationExceptionThe value breaks a Block Kit rule, such as a missing required field or an exceeded length limit.
ArgumentExceptionA collection contains null, or an additional field cannot be written as JSON or repeats a named parameter.

Related types: Confirmation, PlainText, TimePickerElement

ActionId

Gets the identifier Slack returns in interaction payloads when a user acts on this element. It must be unique among the elements of its block.

public string ActionId { get; }

InitialTime

Gets the initially selected time, formatted as HH:mm in 24-hour time.

The value, or null when it was not set.

public string? InitialTime { get; }

Timezone

Gets the IANA time zone used to display the time, such as Australia/Brisbane.

The value, or null when it was not set.

public string? Timezone { get; }

Confirm

Gets a confirmation dialog shown before the action is sent.

The value, or null when it was not set.

public Confirmation? Confirm { get; }

Related types: Confirmation

FocusOnLoad

Gets whether the element receives focus when the view opens. Only one element per view may do so.

The value, or null when it was not set.

public bool? FocusOnLoad { get; }

Placeholder

Gets the placeholder text shown before a value is chosen.

The value, or null when it was not set.

public PlainText? Placeholder { get; }

Related types: PlainText

UrlInputElement

A single-line input that accepts a URL.

  • Required: actionId.

See the Slack reference.

Implements IElement, IInputElement.

UrlInputElement

Creates and validates a UrlInputElement.

public UrlInputElement(string actionId, string? initialValue = null, DispatchActionConfiguration? dispatchActionConfig = null, bool? focusOnLoad = null, PlainText? placeholder = null, IReadOnlyDictionary<string, object?>? additionalFields = null)
ParameterDescription
actionIdThe identifier Slack returns in interaction payloads when a user acts on this element. It must be unique among the elements of its block. Required. Slack allows at most 255 characters.
initialValueThe value present when the input loads.
dispatchActionConfigWhich user interactions send a block_actions payload.
focusOnLoadWhether the element receives focus when the view opens. Only one element per view may do so.
placeholderThe placeholder text shown before a value is chosen. A string is sent as a plain_text text object.
additionalFieldsSlack fields that have no named parameter yet, such as a field Slack introduced after this release. Values must be strings, numbers, booleans, lists, dictionaries, JSON nodes, or slackblocks values, and are validated with the rest of the object. Typed properties do not reflect them, and a field cannot be set both here and through its named parameter.
ThrowsWhen
ValidationExceptionThe value breaks a Block Kit rule, such as a missing required field or an exceeded length limit.
ArgumentExceptionA collection contains null, or an additional field cannot be written as JSON or repeats a named parameter.

Related types: DispatchActionConfiguration, PlainText, UrlInputElement

ActionId

Gets the identifier Slack returns in interaction payloads when a user acts on this element. It must be unique among the elements of its block.

public string ActionId { get; }

InitialValue

Gets the value present when the input loads.

The value, or null when it was not set.

public string? InitialValue { get; }

DispatchActionConfig

Gets which user interactions send a block_actions payload.

The value, or null when it was not set.

public DispatchActionConfiguration? DispatchActionConfig { get; }

Related types: DispatchActionConfiguration

FocusOnLoad

Gets whether the element receives focus when the view opens. Only one element per view may do so.

The value, or null when it was not set.

public bool? FocusOnLoad { get; }

Placeholder

Gets the placeholder text shown before a value is chosen.

The value, or null when it was not set.

public PlainText? Placeholder { get; }

Related types: PlainText

UserMultiSelectElement

A menu for selecting multiple workspace users.

  • Required: actionId.

See the Slack reference.

Implements IElement, IInputElement.

UserMultiSelectElement

Creates and validates a UserMultiSelectElement.

public UserMultiSelectElement(string actionId, IEnumerable<string>? initialUsers = null, Confirmation? confirm = null, int? maxSelectedItems = null, bool? focusOnLoad = null, PlainText? placeholder = null, IReadOnlyDictionary<string, object?>? additionalFields = null)
ParameterDescription
actionIdThe identifier Slack returns in interaction payloads when a user acts on this element. It must be unique among the elements of its block. Required. Slack allows at most 255 characters.
initialUsersUser IDs that are selected when the menu loads.
confirmA confirmation dialog shown before the action is sent.
maxSelectedItemsThe maximum number of items a user can select.
focusOnLoadWhether the element receives focus when the view opens. Only one element per view may do so.
placeholderThe placeholder text shown before a value is chosen. Slack allows at most 150 characters. A string is sent as a plain_text text object.
additionalFieldsSlack fields that have no named parameter yet, such as a field Slack introduced after this release. Values must be strings, numbers, booleans, lists, dictionaries, JSON nodes, or slackblocks values, and are validated with the rest of the object. Typed properties do not reflect them, and a field cannot be set both here and through its named parameter.
ThrowsWhen
ValidationExceptionThe value breaks a Block Kit rule, such as a missing required field or an exceeded length limit.
ArgumentExceptionA collection contains null, or an additional field cannot be written as JSON or repeats a named parameter.

Related types: Confirmation, PlainText, UserMultiSelectElement

ActionId

Gets the identifier Slack returns in interaction payloads when a user acts on this element. It must be unique among the elements of its block.

public string ActionId { get; }

InitialUsers

Gets user IDs that are selected when the menu loads.

The values in order, or an empty list when none were set.

public IReadOnlyList<string> InitialUsers { get; }

Confirm

Gets a confirmation dialog shown before the action is sent.

The value, or null when it was not set.

public Confirmation? Confirm { get; }

Related types: Confirmation

MaxSelectedItems

Gets the maximum number of items a user can select.

The value, or null when it was not set.

public int? MaxSelectedItems { get; }

FocusOnLoad

Gets whether the element receives focus when the view opens. Only one element per view may do so.

The value, or null when it was not set.

public bool? FocusOnLoad { get; }

Placeholder

Gets the placeholder text shown before a value is chosen.

The value, or null when it was not set.

public PlainText? Placeholder { get; }

Related types: PlainText

UserSelectElement

A menu for selecting one workspace user.

  • Required: actionId.

See the Slack reference.

Implements IElement, IInputElement.

UserSelectElement

Creates and validates a UserSelectElement.

public UserSelectElement(string actionId, string? initialUser = null, Confirmation? confirm = null, bool? focusOnLoad = null, PlainText? placeholder = null, IReadOnlyDictionary<string, object?>? additionalFields = null)
ParameterDescription
actionIdThe identifier Slack returns in interaction payloads when a user acts on this element. It must be unique among the elements of its block. Required. Slack allows at most 255 characters.
initialUserThe user ID selected when the menu loads.
confirmA confirmation dialog shown before the action is sent.
focusOnLoadWhether the element receives focus when the view opens. Only one element per view may do so.
placeholderThe placeholder text shown before a value is chosen. Slack allows at most 150 characters. A string is sent as a plain_text text object.
additionalFieldsSlack fields that have no named parameter yet, such as a field Slack introduced after this release. Values must be strings, numbers, booleans, lists, dictionaries, JSON nodes, or slackblocks values, and are validated with the rest of the object. Typed properties do not reflect them, and a field cannot be set both here and through its named parameter.
ThrowsWhen
ValidationExceptionThe value breaks a Block Kit rule, such as a missing required field or an exceeded length limit.
ArgumentExceptionA collection contains null, or an additional field cannot be written as JSON or repeats a named parameter.

Related types: Confirmation, PlainText, UserSelectElement

ActionId

Gets the identifier Slack returns in interaction payloads when a user acts on this element. It must be unique among the elements of its block.

public string ActionId { get; }

InitialUser

Gets the user ID selected when the menu loads.

The value, or null when it was not set.

public string? InitialUser { get; }

Confirm

Gets a confirmation dialog shown before the action is sent.

The value, or null when it was not set.

public Confirmation? Confirm { get; }

Related types: Confirmation

FocusOnLoad

Gets whether the element receives focus when the view opens. Only one element per view may do so.

The value, or null when it was not set.

public bool? FocusOnLoad { get; }

Placeholder

Gets the placeholder text shown before a value is chosen.

The value, or null when it was not set.

public PlainText? Placeholder { get; }

Related types: PlainText

WorkflowButtonElement

A button that starts a workflow through a link trigger.

  • Required: text, workflow.

See the Slack reference.

Implements IElement.

WorkflowButtonElement

Creates and validates a WorkflowButtonElement.

public WorkflowButtonElement(PlainText text, Workflow workflow, string? actionId = null, Confirmation? confirm = null, ButtonStyle? style = null, string? accessibilityLabel = null, IReadOnlyDictionary<string, object?>? additionalFields = null)
ParameterDescription
textThe button label. Required. A string is sent as a plain_text text object.
workflowThe workflow started when the button is clicked. Required.
actionIdThe identifier Slack returns in interaction payloads when a user acts on this element. It must be unique among the elements of its block. Slack allows at most 255 characters.
confirmA confirmation dialog shown before the action is sent.
styleThe button's emphasis. Omit it for the default neutral style.
accessibilityLabelThe label read by screen readers in place of the visible text.
additionalFieldsSlack fields that have no named parameter yet, such as a field Slack introduced after this release. Values must be strings, numbers, booleans, lists, dictionaries, JSON nodes, or slackblocks values, and are validated with the rest of the object. Typed properties do not reflect them, and a field cannot be set both here and through its named parameter.
ThrowsWhen
ValidationExceptionThe value breaks a Block Kit rule, such as a missing required field or an exceeded length limit.
ArgumentExceptionA collection contains null, or an additional field cannot be written as JSON or repeats a named parameter.

Related types: ButtonStyle, Confirmation, PlainText, Workflow, WorkflowButtonElement

Text

Gets the button label.

public PlainText Text { get; }

Related types: PlainText, Text

Workflow

Gets the workflow started when the button is clicked.

public Workflow Workflow { get; }

Related types: Workflow

ActionId

Gets the identifier Slack returns in interaction payloads when a user acts on this element. It must be unique among the elements of its block.

The value, or null when it was not set.

public string? ActionId { get; }

Confirm

Gets a confirmation dialog shown before the action is sent.

The value, or null when it was not set.

public Confirmation? Confirm { get; }

Related types: Confirmation

Style

Gets the button's emphasis. Omit it for the default neutral style.

The value, or null when it was not set.

public ButtonStyle? Style { get; }

Related types: ButtonStyle

AccessibilityLabel

Gets the label read by screen readers in place of the visible text.

The value, or null when it was not set.

public string? AccessibilityLabel { get; }