Here is the list of objects, block elements, and blocks you can use to create interactions for your apps.
Field | Type | Required? | Description |
---|
type | String | Yes | The type of text object that you want to add. The available values are plain_text and mrkdwn . |
text | String | Yes | The actual text. |
emoji | Boolean | No | Works with the plain_text type. |
Example
{
type: 'plain_text',
text: 'lorem ipsum 🚀',
emoji: true,
}
Field | Type | Required? | Description |
---|
text | Object | Yes | The text that is to be displayed on the menu. The value can either be plain_text or mrkdwn . |
value | String | Yes | The actual value that the option represents. |
{
value: 'option_1',
text: {
type: 'plain_text',
text: 'lorem ipsum 🚀',
emoji: true,
}
}
Field | Type | Required? | Description |
---|
type | String | Yes | The type of the block element, in this case,button . |
text | Object | Yes | The text that is to be displayed on the menu. The value can either be plain_text or mrkdwn . |
value | String | No | A value sent along with the button information when an action is made upon the element. |
url | String | No | A URL that the button points to. |
style | String | No | The style of the button. The value can either be primary or danger . |
actionId | String | Yes | A unique identifier for an action made upon the element. |
{
type: 'button',
text: {
type: 'plain_text',
text: 'danger❗',
emoji: true,
},
actionId: 'button_1_danger',
style: 'danger',
}
Field | Type | Required? | Description |
---|
type | String | Yes | The type of the block element, in this case, image . |
imageUrl | String | Yes | The URL of the image. |
altText | String | Yes | The text describing the image being displayed. |
{
type: 'image',
imageUrl: 'https://picsum.photos/200/300',
altText: 'An image',
}
overflow menu
Field | Type | Required? | Description |
---|
type | String | Yes | The type of the block element, in this case, overflow . |
options | Array | Yes | An array with the possible options (the options object). |
actionId | String | Yes | A unique identifier for an action made upon the element. |
{
type: 'overflow',
actionId: 'overflow_1',
options: [
{
value: 'option_1',
text: {
type: 'plain_text',
text: 'lorem ipsum 🚀',
emoji: true,
}
},
{
value: 'option_2',
text: {
type: 'plain_text',
text: 'lorem ipsum 🚀',
emoji: true,
}
},
],
}
Field | Type | Required? | Description |
---|
type | String | Yes | The type of the block element, in this case, plain_text_input . |
actionId | String | Yes | A unique identifier for an action made upon the element. |
placeholder | Object | Yes | A placeholder text for the input (plain text object). |
initialValue | String | No | The initial value of the field. |
multiline | Boolean | No | A flag that indicates whether the field should be a single line (default) or a larger text area. |
{
type: 'plain_text_input',
actionId: 'plain_text_input_1',
placeholder: {
type: 'plain_text',
text: 'Enter name',
emoji: true,
},
initialValue: 'John Doe',
multiline: false,
}
static select menu
Field | Type | Required? | Description |
---|
type | String | Yes | The type of the block element, in this case, static_select . |
actionId | String | Yes | A unique identifier for an action made upon the element. |
placeholder | Object | Yes | A placeholder text for the input (plain text object). |
initialValue | String | No | The initial value selected (value field from the options object). |
options | Array | Yes | An array with the possible options (the options object). |
{
type: 'static_select',
actionId: 'overflow_1',
initialValue: 'option_2',
options: [
{
value: 'option_1',
text: {
type: 'plain_text',
text: 'lorem ipsum 🚀',
emoji: true,
}
},
{
value: 'option_2',
text: {
type: 'plain_text',
text: 'lorem ipsum 🚀',
emoji: true,
}
},
],
placeholder: {
type: 'plain_text',
text: 'Select an item',
},
}
multi-static select menu
Field | Type | Required? | Description |
---|
type | String | Yes | The type of the block element, in this case, multi_static_select . |
actionId | String | Yes | A unique identifier for an action made upon the element. |
placeholder | Object | Yes | A placeholder text for the input (plain text object). |
initialValue | Array of strings | No | The initial values selected (value field from the options object). |
options | Array | Yes | An array with the possible options (the options object). |
{
type: 'multi_static_select',
actionId: 'overflow_1',
initialValue: ['option_1' ,'option_2'],
options: [
{
value: 'option_1',
text: {
type: 'plain_text',
text: 'lorem ipsum 🚀',
emoji: true,
}
},
{
value: 'option_2',
text: {
type: 'plain_text',
text: 'lorem ipsum 🚀',
emoji: true,
}
},
],
placeholder: {
type: 'plain_text',
text: 'Select an item',
},
}
Field | Type | Required? | Description |
---|
blockId | String | No | A unique identifier for the block. |
type | String | Yes | The type of the block, in this case, section . |
text | Object | Yes | The text that is to be displayed on the button. The value can either be plain_text or mrkdwn . |
accessory | Object | No | One element that can be a button element , an image element , or an overflow menu . |
{
type: 'section',
blockId: 'section_1',
text: {
type: 'plain_text',
text: 'lorem ipsum 🚀',
emoji: true,
}
accessory: { /* one of the accessory elements */ } ,
}
{% hint style="info" %}
Notice how the section block and the button element are used in the Contextual Bar app.
{% endhint %}
Field | Type | Required? | Description |
---|
blockId | String | No | A unique identifier for the block. |
type | String | Yes | The type of the block, in this case, divider . |
{
type: 'divider',
blockId: 'divider_1',
}
Field | Type | Required? | Description |
---|
blockId | String | No | A unique identifier for the block. |
type | String | Yes | The type of the block, in this case, image . |
imageUrl | String | Yes | The URL of the image. |
altText | String | Yes | A text describing the image being displayed. |
title | Object | No | The text to be displayed as the image's title. The value can either be plain_text or mrkdwn . |
{
type: 'image',
blockId: 'image_1',
imageUrl: 'https://picsum.photos/200/300',
altText: 'An image',
title: {
type: 'plain_text',
text: 'lorem ipsum 🚀',
emoji: true,
}
}
Field | Type | Required? | Description |
---|
blockId | String | No | A unique identifier for the block. |
type | String | Yes | The type of the block, in this case, actions . |
elements | Array | Yes | A list of interactive block elements. |
{
type: 'actions',
blockId: 'actions_1',
elements: [ /* block elements */ ]
}
Field | Type | Required? | Description |
---|
blockId | String | No | A unique identifier for the block. |
type | String | Yes | The type of the block, in this case, context . |
elements | Array | Yes | A list of block elements. Allowed elements are plain text object and image element . |
{
type: 'context',
blockId: 'context_1',
elements: [ /* block elements */ ]
}
Field | Type | Required? | Description |
---|
blockId | String | No | A unique identifier for the block. |
type | String | Yes | The type of the block, in this case, input . |
element | Array | Yes | The input element, that can be plain text input , static select menu , and multi static select menu . |
{
type: 'input',
blockId: 'input_1',
element: { /* input element */ }
}
Now that we've seen the different building blocks that can be used for our apps, let's take a look at how to use action buttons to initiate a set of actions in the next section.