# Table of Contents - [Block Kit | Slack Developer Docs](#block-kit-slack-developer-docs) - [Designing with Block Kit | Slack Developer Docs](#designing-with-block-kit-slack-developer-docs) - [Formatting with rich text | Slack Developer Docs](#formatting-with-rich-text-slack-developer-docs) - [Upgrading outmoded dialogs to modals | Slack Developer Docs](#upgrading-outmoded-dialogs-to-modals-slack-developer-docs) - [Blocks | Slack Developer Docs](#blocks-slack-developer-docs) - [Block Elements | Slack Developer Docs](#block-elements-slack-developer-docs) - [Date picker element | Slack Developer Docs](#date-picker-element-slack-developer-docs) - [Checkboxes element | Slack Developer Docs](#checkboxes-element-slack-developer-docs) - [Datetime picker element | Slack Developer Docs](#datetime-picker-element-slack-developer-docs) - [Divider block | Slack Developer Docs](#divider-block-slack-developer-docs) - [File block | Slack Developer Docs](#file-block-slack-developer-docs) - [Confirmation dialog object | Slack Developer Docs](#confirmation-dialog-object-slack-developer-docs) - [Button element | Slack Developer Docs](#button-element-slack-developer-docs) - [File input element | Slack Developer Docs](#file-input-element-slack-developer-docs) - [Context block | Slack Developer Docs](#context-block-slack-developer-docs) - [Header block | Slack Developer Docs](#header-block-slack-developer-docs) - [Composition objects | Slack Developer Docs](#composition-objects-slack-developer-docs) - [Dispatch action configuration object | Slack Developer Docs](#dispatch-action-configuration-object-slack-developer-docs) - [Trigger object | Slack Developer Docs](#trigger-object-slack-developer-docs) - [Email input element | Slack Developer Docs](#email-input-element-slack-developer-docs) - [Text object | Slack Developer Docs](#text-object-slack-developer-docs) - [Slack file object | Slack Developer Docs](#slack-file-object-slack-developer-docs) - [Markdown block | Slack Developer Docs](#markdown-block-slack-developer-docs) - [Conversation filter object | Slack Developer Docs](#conversation-filter-object-slack-developer-docs) - [Image element | Slack Developer Docs](#image-element-slack-developer-docs) - [Table block | Slack Developer Docs](#table-block-slack-developer-docs) - [Option group object | Slack Developer Docs](#option-group-object-slack-developer-docs) - [Workflow object | Slack Developer Docs](#workflow-object-slack-developer-docs) - [Image block | Slack Developer Docs](#image-block-slack-developer-docs) - [Number input element | Slack Developer Docs](#number-input-element-slack-developer-docs) - [Video block | Slack Developer Docs](#video-block-slack-developer-docs) - [Actions block | Slack Developer Docs](#actions-block-slack-developer-docs) - [Overflow menu element | Slack Developer Docs](#overflow-menu-element-slack-developer-docs) - [Input block | Slack Developer Docs](#input-block-slack-developer-docs) - [Section block | Slack Developer Docs](#section-block-slack-developer-docs) - [Plain-text input element | Slack Developer Docs](#plain-text-input-element-slack-developer-docs) - [Radio button group element | Slack Developer Docs](#radio-button-group-element-slack-developer-docs) - [Rich text input element | Slack Developer Docs](#rich-text-input-element-slack-developer-docs) - [URL input element | Slack Developer Docs](#url-input-element-slack-developer-docs) - [Time picker element | Slack Developer Docs](#time-picker-element-slack-developer-docs) - [Option object | Slack Developer Docs](#option-object-slack-developer-docs) - [Workflow button element | Slack Developer Docs](#workflow-button-element-slack-developer-docs) - [Multi-select menu element | Slack Developer Docs](#multi-select-menu-element-slack-developer-docs) - [Rich text block | Slack Developer Docs](#rich-text-block-slack-developer-docs) - [Select menu element | Slack Developer Docs](#select-menu-element-slack-developer-docs) --- # Block Kit | Slack Developer Docs [Skip to main content](https://docs.slack.dev/block-kit/#__docusaurus_skipToContent_fallback) On this page The Block Kit UI framework is built with _blocks_, _block elements_ and _composition objects_. _Blocks_ are visual components that can be arranged to create app layouts. Apps can add blocks to _surfaces_ like [the Home tab](https://docs.slack.dev/surfaces/app-home) , [messages](https://docs.slack.dev/messaging) and [modals](https://docs.slack.dev/surfaces/modals) . You can include up to 50 blocks in each message, and 100 blocks in modals or Home tabs. Blocks may also contain _block elements_. Block elements are usually interactive components, such as buttons and menus. Blocks and block elements are built with _composition objects_. Composition objects define text, options, or other interactive features within certain blocks and block elements. ![](https://docs.slack.dev/assets/images/bk_landing_bkb-81a42ef126a7e67a38e69dfc63db06ee.png) Whether you're composing layouts for modals, messages, or tabs, the Block Kit building experience is the same — your app will be sculpting specially-structured JSON to express itself. The result is clear, interactive communication between your app and its users. Eager to see Block Kit in action? [Take a peek in Block Kit Builder.](https://api.slack.com/tools/block-kit-builder?blocks=%5B%7B%22type%22%3A%22section%22%2C%22text%22%3A%7B%22type%22%3A%22mrkdwn%22%2C%22text%22%3A%22Hey%20there%20%F0%9F%91%8B%20I%27m%20TaskBot.%20I%27m%20here%20to%20help%20you%20create%20and%20manage%20tasks%20in%20Slack.%5CnThere%20are%20two%20ways%20to%20quickly%20create%20tasks%3A%22%7D%7D%2C%7B%22type%22%3A%22section%22%2C%22text%22%3A%7B%22type%22%3A%22mrkdwn%22%2C%22text%22%3A%22*1%EF%B8%8F%E2%83%A3%20Use%20the%20%60%2Ftask%60%20command*.%20Type%20%60%2Ftask%60%20followed%20by%20a%20short%20description%20of%20your%20tasks%20and%20I%27ll%20ask%20for%20a%20due%20date%20(if%20applicable).%20Try%20it%20out%20by%20using%20the%20%60%2Ftask%60%20command%20in%20this%20channel.%22%7D%7D%2C%7B%22type%22%3A%22section%22%2C%22text%22%3A%7B%22type%22%3A%22mrkdwn%22%2C%22text%22%3A%22*2%EF%B8%8F%E2%83%A3%20Use%20the%20_Create%20a%20Task_%20action.*%20If%20you%20want%20to%20create%20a%20task%20from%20a%20message%2C%20select%20%60Create%20a%20Task%60%20in%20a%20message%27s%20context%20menu.%20Try%20it%20out%20by%20selecting%20the%20_Create%20a%20Task_%20action%20for%20this%20message%20(shown%20below).%22%7D%7D%2C%7B%22type%22%3A%22image%22%2C%22title%22%3A%7B%22type%22%3A%22plain_text%22%2C%22text%22%3A%22image1%22%2C%22emoji%22%3Atrue%7D%2C%22image_url%22%3A%22https%3A%2F%2Fapi.slack.com%2Fimg%2Fblocks%2Fbkb_template_images%2FonboardingComplex.jpg%22%2C%22alt_text%22%3A%22image1%22%7D%2C%7B%22type%22%3A%22section%22%2C%22text%22%3A%7B%22type%22%3A%22mrkdwn%22%2C%22text%22%3A%22%E2%9E%95%20To%20start%20tracking%20your%20team%27s%20tasks%2C%20*add%20me%20to%20a%20channel*%20and%20I%27ll%20introduce%20myself.%20I%27m%20usually%20added%20to%20a%20team%20or%20project%20channel.%20Type%20%60%2Finvite%20%40TaskBot%60%20from%20the%20channel%20or%20pick%20a%20channel%20on%20the%20right.%22%7D%2C%22accessory%22%3A%7B%22type%22%3A%22conversations_select%22%2C%22placeholder%22%3A%7B%22type%22%3A%22plain_text%22%2C%22text%22%3A%22Select%20a%20channel...%22%2C%22emoji%22%3Atrue%7D%7D%7D%2C%7B%22type%22%3A%22divider%22%7D%2C%7B%22type%22%3A%22context%22%2C%22elements%22%3A%5B%7B%22type%22%3A%22mrkdwn%22%2C%22text%22%3A%22%F0%9F%91%80%20View%20all%20tasks%20with%20%60%2Ftask%20list%60%5Cn%E2%9D%93Get%20help%20at%20any%20time%20with%20%60%2Ftask%20help%60%20or%20type%20*help*%20in%20a%20DM%20with%20me%22%7D%5D%7D%5D) Read on to learn how you can construct the stacks of blocks that app surfaces love to consume. * * * Placing blocks within surfaces[​](https://docs.slack.dev/block-kit/#adding_blocks "Direct link to Placing blocks within surfaces") ----------------------------------------------------------------------------------------------------------------------------------- Blocks are used within all [app surfaces](https://docs.slack.dev/surfaces) : [Home tabs](https://docs.slack.dev/surfaces/app-home) , [messages](https://docs.slack.dev/messaging) and [modals](https://docs.slack.dev/surfaces/modals) can all be designed using blocks. Each of them uses a `blocks` array that you prepare by [stacking individual blocks together](https://docs.slack.dev/block-kit/#stack_of_blocks) . Check out [app surfaces](https://docs.slack.dev/surfaces) to learn more about using these different surfaces, and how to add blocks to your app's [Home tab](https://docs.slack.dev/surfaces/app-home#composing) , [messages](https://docs.slack.dev/messaging) , and [modals](https://docs.slack.dev/surfaces/modals#composing_modal) . Some blocks can only be used in particular app surfaces. Read the [Block Kit reference guides](https://docs.slack.dev/reference/block-kit/blocks) to check if a block is compatible with your app's surfaces. Building blocks[​](https://docs.slack.dev/block-kit/#getting_started "Direct link to Building blocks") ------------------------------------------------------------------------------------------------------- There's no special setup needed to start using blocks in [app surfaces](https://docs.slack.dev/surfaces) . However, just as when you open a pack of generic, colorful, interlocking plastic bricks, you should read the instructions first. ### Defining a single block[​](https://docs.slack.dev/block-kit/#block_basics "Direct link to Defining a single block") Each block is represented in our APIs as a JSON object. Here's an example of a [`section`](https://docs.slack.dev/reference/block-kit/blocks/section-block) block: { "type": "section", "text": { "type": "mrkdwn", "text": "New Paid Time Off request from \n\n" }} [Preview in Block Kit Builder](https://api.slack.com/tools/block-kit-builder/#%7B%22blocks%22:%5B%7B%22type%22:%22section%22,%22text%22:%7B%22type%22:%22mrkdwn%22,%22text%22:%22New%20Paid%20Time%20Off%20request%20from%20%3Cexample.com%7CFred%20Enriquez%3E%5Cn%5Cn%3Chttps://example.com%7CView%20request%3E%22%7D%7D%5D%7D) Every block contains a `type` field — specifying which of the [available blocks](https://docs.slack.dev/reference/block-kit/blocks) to use — along with other fields that describe the content of the block. [Block Kit Builder](https://api.slack.com/tools/block-kit-builder) is a visual prototyping sandbox that will let you choose from, configure, and preview all the available blocks. If you want to skip the builder, the [block reference guide](https://docs.slack.dev/reference/block-kit/blocks) contains the specifications of every block, and the JSON fields required for each of them. ### Stacking multiple blocks[​](https://docs.slack.dev/block-kit/#stack_of_blocks "Direct link to Stacking multiple blocks") Individual blocks can be stacked together to create complex visual layouts. When you've chosen each of the blocks you want in your layout, place each of them in an array, in visual order, like this: [ { "type": "header", "text": { "type": "plain_text", "text": "New request" } }, { "type": "section", "fields": [ { "type": "mrkdwn", "text": "*Type:*\nPaid Time Off" }, { "type": "mrkdwn", "text": "*Created by:*\n" } ] }, { "type": "section", "fields": [ { "type": "mrkdwn", "text": "*When:*\nAug 10 - Aug 13" } ] }, { "type": "section", "text": { "type": "mrkdwn", "text": "" } }] [Preview in Block Kit Builder](https://api.slack.com/block-kit-builder/#%7B%22blocks%22:%5B%7B%22type%22:%22header%22,%22text%22:%7B%22type%22:%22plain_text%22,%22text%22:%22New%20request%22,%22emoji%22:true%7D%7D,%7B%22type%22:%22section%22,%22fields%22:%5B%7B%22type%22:%22mrkdwn%22,%22text%22:%22*Type:*%5CnPaid%20Time%20Off%22%7D,%7B%22type%22:%22mrkdwn%22,%22text%22:%22*Created%20by:*%5Cn%3Cexample.com%7CFred%20Enriquez%3E%22%7D%5D%7D,%7B%22type%22:%22section%22,%22fields%22:%5B%7B%22type%22:%22mrkdwn%22,%22text%22:%22*When:*%5CnAug%2010%20-%20Aug%2013%22%7D,%7B%22type%22:%22mrkdwn%22,%22text%22:%22*Type:*%5CnPaid%20time%20off%22%7D%5D%7D,%7B%22type%22:%22section%22,%22fields%22:%5B%7B%22type%22:%22mrkdwn%22,%22text%22:%22*Hours:*%5Cn16.0%20(2%20days)%22%7D,%7B%22type%22:%22mrkdwn%22,%22text%22:%22*Remaining%20balance:*%5Cn32.0%20hours%20(4%20days)%22%7D%5D%7D,%7B%22type%22:%22section%22,%22text%22:%7B%22type%22:%22mrkdwn%22,%22text%22:%22%3Chttps://example.com%7CView%20request%3E%22%7D%7D%5D%7D) [Block Kit Builder](https://api.slack.com/tools/block-kit-builder) will allow you to drag, drop, and rearrange blocks to design and preview Block Kit layouts. Alternatively you can use the [block reference guide](https://docs.slack.dev/reference/block-kit/blocks) to manually generate a complete `blocks` array, like the one shown above. Your newly created array of blocks can be used [with a range of different app surfaces](https://docs.slack.dev/block-kit/#adding_blocks) . ### Accessibility considerations[​](https://docs.slack.dev/block-kit/#accessibility "Direct link to Accessibility considerations") When posting messages, it is expected behavior that screen readers will default to the top-level `text` field of the post, and will not read the content of any interior `blocks` in the underlying structure of the message. Therefore, to make an accessible app, you must either: * include all necessary content for screen reader users in the top-level `text` field of your message, or * do not include a top-level `text` field if the message has `blocks`, and allow Slack attempt to build it for you by appending content from supported `blocks` to be read by the screen reader. * * * Adding interactivity to blocks with block elements[​](https://docs.slack.dev/block-kit/#making-things-interactive "Direct link to Adding interactivity to blocks with block elements") --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Blocks can be made to interact with users via Block Kit _elements_. Elements include interactive components such as buttons, menus and text inputs. Here's an example of a [`button`](https://docs.slack.dev/reference/block-kit/block-elements/button-element) element within a [`section`](https://docs.slack.dev/reference/block-kit/blocks/section-block) block. { "blocks": [ { "type": "section", "text": { "type": "mrkdwn", "text": "This is a section block with a button." }, "accessory": { "type": "button", "text": { "type": "plain_text", "text": "Click Me", "emoji": true }, "value": "click_me_123", "action_id": "button-action" } } ]} [View in Block Kit Builder](https://api.slack.com/block-kit-builder/#%7B%22blocks%22:%5B%7B%22type%22:%22section%22,%22text%22:%7B%22type%22:%22mrkdwn%22,%22text%22:%22This%20is%20a%20section%20block%20with%20a%20button.%22%7D,%22accessory%22:%7B%22type%22:%22button%22,%22text%22:%7B%22type%22:%22plain_text%22,%22text%22:%22Click%20Me%22,%22emoji%22:true%7D,%22value%22:%22click_me_123%22,%22action_id%22:%22button-action%22%7D%7D%5D%7D) When you add an interactive component to a surface in your Slack app, you've opened the door to user interaction. People will push your app's buttons and expecting a helpful and prompt reaction. Apps need to handle the requests that start to flow their way, and respond appropriately. Follow our [guide to handling user interaction](https://docs.slack.dev/interactivity/handling-user-interaction) to prepare your app for the interactivity that Block Kit will inspire. Block Kit builder allows you to add elements to blocks as well. Give it a try! Alternatively, read the [Block Kit element reference guide](https://docs.slack.dev/reference/block-kit/block-elements) for all the info you'll need for manually implementing individual elements. * * * Onward[​](https://docs.slack.dev/block-kit/#onward "Direct link to Onward") ---------------------------------------------------------------------------- Check out the following guides for everything blocks: * [Blocks](https://docs.slack.dev/reference/block-kit/blocks) * [Block elements, including interactive components](https://docs.slack.dev/reference/block-kit/block-elements) * [Composition objects](https://docs.slack.dev/reference/block-kit/composition-objects) * [View objects](https://docs.slack.dev/reference/views) * [Placing blocks within surfaces](https://docs.slack.dev/block-kit/#adding_blocks) * [Building blocks](https://docs.slack.dev/block-kit/#getting_started) * [Defining a single block](https://docs.slack.dev/block-kit/#block_basics) * [Stacking multiple blocks](https://docs.slack.dev/block-kit/#stack_of_blocks) * [Accessibility considerations](https://docs.slack.dev/block-kit/#accessibility) * [Adding interactivity to blocks with block elements](https://docs.slack.dev/block-kit/#making-things-interactive) * [Onward](https://docs.slack.dev/block-kit/#onward) --- # Designing with Block Kit | Slack Developer Docs [Skip to main content](https://docs.slack.dev/block-kit/designing-with-block-kit/#__docusaurus_skipToContent_fallback) On this page It's important to consider accessibility when designing your app. Accessibility in your apps means ensuring users with disabilities can understand, navigate, and interact with them effectively. And it benefits everyone! Consider that everyone at some point in life will experience a disability, whether it be permanent, temporary, or situational (think "I sat on my glasses and can't quite see today"). Building your apps in an accessible way will make the world a better place. Here are our tips and recommendations for how to make your apps accessible when using Block Kit to compose [your app's surfaces](https://docs.slack.dev/surfaces) . Keep content clear and concise[​](https://docs.slack.dev/block-kit/designing-with-block-kit/#content "Direct link to Keep content clear and concise") ------------------------------------------------------------------------------------------------------------------------------------------------------ Here are some general guidelines for content in Slack apps. Do: * Use short, clear sentences and paragraphs. * Explain abbreviations. Don't: * Use jargon, buzzwords, idioms, and slang; be fun but don't alienate anyone. * Use directional and sensory language, including emojis. For example, do not use an arrow to refer to a prior message. Use color carefully[​](https://docs.slack.dev/block-kit/designing-with-block-kit/#color "Direct link to Use color carefully") ------------------------------------------------------------------------------------------------------------------------------ There are two main rules around the use of color: * **Use more than just color to convey meaning**. Color can enhance and reinforce meaning, but it should not be the only way to convey meaning. Say, for instance, you'd like to have a button to cancel a subscription. A red button that says "cancel" would not be sufficient because "cancel" is used in many contexts that are not a severe action. Instead, the button should read "cancel subscription" to fully convey the meaning of the action. * **Provide sufficient contrast for text and important visual indicators**. The ideal contrast ratio is 4.5:1 for regular text, though we at Slack mostly control this so you don't need to worry about it. However, it's always a good idea to test your apps in both light and dark mode to ensure usability in both. Simplify with pictures[​](https://docs.slack.dev/block-kit/designing-with-block-kit/#pictures "Direct link to Simplify with pictures") --------------------------------------------------------------------------------------------------------------------------------------- Sometimes faces can be better than names, or maps better than addresses. Sprinkle [image elements](https://docs.slack.dev/reference/block-kit/block-elements/image-element) into blocks to remove some of that text. This message is okay: ![App message featuring a text list of tagged users](https://docs.slack.dev/assets/images/dg_pictures_bad-6ad60fd79548302eb622c9d0418e1366.png) But this version is easier to parse, without losing any vital information: ![App message featuring the tagged users as profile photos instead of text](https://docs.slack.dev/assets/images/dg_pictures_good-a823374a2d8146bb97330389b6587e9a.png) The example above is using a [context block](https://docs.slack.dev/reference/block-kit/blocks/context-block) , which is great for storing helpful information that isn’t primary content. [Context blocks](https://docs.slack.dev/reference/block-kit/blocks/context-block) can store text, images, and emoji. Use interactivity to reduce complexity[​](https://docs.slack.dev/block-kit/designing-with-block-kit/#complexity "Direct link to Use interactivity to reduce complexity") ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Use [interactive components](https://docs.slack.dev/block-kit#making-things-interactive) to break workflows into steps, and only show what’s needed for the current step. Let interaction choices reveal further information or options only when they’re necessary. For example, this calendar app has a lot of information and interactive options to display: ![Calendar app message featuring lots of text and interactive options](https://docs.slack.dev/assets/images/dg_complex_bad-141313acfbeff708de24edc7fb313d31.png) But it could achieve the same functionality by keeping advanced options tucked away until they're needed. Here's the same app using [context blocks](https://docs.slack.dev/reference/block-kit/blocks/context-block) to better organize info, and [an overflow menu](https://docs.slack.dev/reference/block-kit/block-elements/overflow-menu-element) to store lesser-used options: ![Calendar app message where options have been hidden behind interactivity, and other elements turned visual](https://docs.slack.dev/assets/images/dg_complex_good-e80cf385428e87b0f3c1c7c1834161d8.png) By streamlining the default interactivity, you're helping your users intuit the most important action to take on the message. Choose sensible default options[​](https://docs.slack.dev/block-kit/designing-with-block-kit/#defaults "Direct link to Choose sensible default options") --------------------------------------------------------------------------------------------------------------------------------------------------------- Save people work wherever you can by minimizing the choices they have to make. When you give [select menus](https://docs.slack.dev/reference/block-kit/block-elements/select-menu-element) and [buttons](https://docs.slack.dev/reference/block-kit/block-elements/button-element) good default values, you decrease the number of choices they have to make from many to one - yes or no. ![Coffee ordering app message showing previous order and asking whether to reorder it with yes or no buttons](https://docs.slack.dev/assets/images/dg_defaults-6550b5a97bd81bf36af7053de4552661.png) Say your app helps people buy coffee. Instead of presenting a full menu of choices every time someone orders, you could make the user’s last order the default option. In the best case scenario, this reduces the coffee order to a single click. Cleaning up after your app[​](https://docs.slack.dev/block-kit/designing-with-block-kit/#cleanup "Direct link to Cleaning up after your app") ---------------------------------------------------------------------------------------------------------------------------------------------- [Visually rich messages](https://docs.slack.dev/messaging) are great in the moment you receive them: they’re nice to read and understandable to interact with. They also take up a lot of space on a person’s screen: ![Lunch group app message showing text and a couple of buttons](https://docs.slack.dev/assets/images/dg_cleanup_before-cc011023a1e643223b67312770ea76ac.png) Think about what a person will need to remember about their interaction with your app when they come back to it later, at the end of the message’s life—or after an exchange of several messages. Do those buttons and menus need to stick around, or can you condense the message down to a short text record of what happened? Be considerate and update your message after the interactive flow or the conversation expires: ![Lunch group app message after cleanup, with the buttons gone](https://docs.slack.dev/assets/images/dg_cleanup_after-29a329bc9745f5ab3c31450e33af7c07.png) Read our guide to [updating messages](https://docs.slack.dev/messaging/modifying-messages#updating) to see how you can cleanup after your app has done some work. Screen reader considerations[​](https://docs.slack.dev/block-kit/designing-with-block-kit/#screen-reader "Direct link to Screen reader considerations") -------------------------------------------------------------------------------------------------------------------------------------------------------- A screen reader is a tool used that helps people who have difficulties seeing with accessing and interacting with digital content. There are several considerations to keep in mind to most effectively work with a screen reader, including emoji use, images, and interactive elements. ### Emoji use 😄[​](https://docs.slack.dev/block-kit/designing-with-block-kit/#emoji-use "Direct link to Emoji use 😄") Emojis are tied to text aliases, which display on hover and when emojis are turned off. Text aliases also act as the accessible name for the emoji. A screen reader user will hear “\[alias\] emoji” when they read an emoji. There is no way to indicate that an emoji is decorative or add an ARIA (Accessible Rich Internet Applications) label to an emoji to describe it better. Also, organizations and end users have the ability to turn off emojis and default to the alias as plain text. Knowing this, here are some tips: * **Do not use an emoji as a control**. Do not use them for field labels or inline help, in a button, or to trigger a workflow. Always pair emojis with text. * **Always the grand finale**. Ideal emoji placement is at the end of a sentence or line; this improves readability. * **Just a sprinkle**. Use emojis sparingly in headers and append them to the end. We recommend using emojis either in the header or the subtext, but not both. * **Emojis are not word replacements**. Ensure they are paired with relevant text. * **Avoid using emojis as bullet points**. You can talk about them in bulleted lists, just don't make them the bullets themselves. ### Images[​](https://docs.slack.dev/block-kit/designing-with-block-kit/#images "Direct link to Images") Guidelines regarding images in Slack apps are: * **Describe your images**. Provide clear, context-specific `alt_text` for all images, and if appropriate, a `title` too. * **Save the gallery wall for your stairway**. Limit the number of redundant and purely decorative images in your apps. Because each image requires `alt_text`, and each will be read by a screen reader, the experience could get messy with too many extraneous images. ### Animations[​](https://docs.slack.dev/block-kit/designing-with-block-kit/#animations "Direct link to Animations") Keep in mind that users can turn off animated gifs and emojis in their Slack accessibility preferences, so for every informational animation you have, ensure its meaning is conveyed even when paused. Either the freeze frame or the animation's surrounding text should capture the main point. Like images, always include descriptive `alt_text`. Don't cause seizures Do not add more than three large flashes per second in animations. This is a WCAG (Web Content Accessibility Guidelines) standard. ### Charts[​](https://docs.slack.dev/block-kit/designing-with-block-kit/#charts "Direct link to Charts") Every chart that an app visually displays needs an accompanying accessible PDF. Include: * An image block containing a chart screenshot with brief `alt_text`, e.g. “chart preview”. * A button allowing the user to download the chart as an accessible PDF. * An accessible PDF in PDF/UA format containing a properly-tagged table version of the data displayed visually in the chart screenshot. ### Interactive elements[​](https://docs.slack.dev/block-kit/designing-with-block-kit/#interactive-elements "Direct link to Interactive elements") #### Input fields[​](https://docs.slack.dev/block-kit/designing-with-block-kit/#input-fields "Direct link to Input fields") Do: * Wrap inputs in input blocks. * Be a good host and provide associated labels for all inputs fields, so all users are clear on what information to enter where. * Use descriptive placeholder text for selects. Don't: * Wrap inputs in section or action blocks. * Use emojis in input labels. #### Repetitive controls in lists[​](https://docs.slack.dev/block-kit/designing-with-block-kit/#controls "Direct link to Repetitive controls in lists") To ensure the best experience for your users, we recommend you: * Give buttons brief, repetitive labels to avoid truncation. * Make placeholder text for inputs record-specific where possible. If you get a little wordy with your button and/or placeholder text such that Block Kit truncates the text, know that a screen reader will still read the entire placeholder text, but the button text will be cut off, so prioritize brevity on those buttons! * [Keep content clear and concise](https://docs.slack.dev/block-kit/designing-with-block-kit/#content) * [Use color carefully](https://docs.slack.dev/block-kit/designing-with-block-kit/#color) * [Simplify with pictures](https://docs.slack.dev/block-kit/designing-with-block-kit/#pictures) * [Use interactivity to reduce complexity](https://docs.slack.dev/block-kit/designing-with-block-kit/#complexity) * [Choose sensible default options](https://docs.slack.dev/block-kit/designing-with-block-kit/#defaults) * [Cleaning up after your app](https://docs.slack.dev/block-kit/designing-with-block-kit/#cleanup) * [Screen reader considerations](https://docs.slack.dev/block-kit/designing-with-block-kit/#screen-reader) * [Emoji use 😄](https://docs.slack.dev/block-kit/designing-with-block-kit/#emoji-use) * [Images](https://docs.slack.dev/block-kit/designing-with-block-kit/#images) * [Animations](https://docs.slack.dev/block-kit/designing-with-block-kit/#animations) * [Charts](https://docs.slack.dev/block-kit/designing-with-block-kit/#charts) * [Interactive elements](https://docs.slack.dev/block-kit/designing-with-block-kit/#interactive-elements) --- # Formatting with rich text | Slack Developer Docs [Skip to main content](https://docs.slack.dev/block-kit/formatting-with-rich-text/#__docusaurus_skipToContent_fallback) On this page Wow, what a beautifully constructed message! Wouldn’t it be great to create a bot to keep your new hires informed of what they should be doing in their first days with the company, in a clear, organized message sent directly to them? Yes, the answer is yes, it would be great. In this tutorial, we’ll walk through how to structure the [Block Kit](https://docs.slack.dev/block-kit) blocks to achieve this message, while explaining the ins and outs of rich text. To learn how to incorporate these blocks in messages and modals, read up on [Building with Block Kit](https://docs.slack.dev/block-kit) . ![Rich text example](https://docs.slack.dev/assets/images/rich_text_example-784fba9155a7084940d6d60352b5ba77.png) If you’d like to follow along with the code already constructed, you can check it out [here](https://app.slack.com/block-kit-builder/T024BE7LD?cdn_fallback=1&force_cold_boot=1#%7B%22blocks%22:%5B%7B%22type%22:%22header%22,%22text%22:%7B%22type%22:%22plain_text%22,%22text%22:%22Onboarding%20Week%201%22%7D%7D,%7B%22type%22:%22context%22,%22elements%22:%5B%7B%22type%22:%22mrkdwn%22,%22text%22:%22Hello%20there!%20This%20is%20a%20weekly%20reminder%20of%20what%20you%20should%20be%20doing%20during%20onboarding.%22%7D%5D%7D,%7B%22type%22:%22section%22,%22text%22:%7B%22type%22:%22mrkdwn%22,%22text%22:%22*Welcome%20aboard!*%5Cn%20:eye:%20:lips:%20:eye:%5Cn%5CnHere%20are%20some%20things%20you%20should%20do%20in%20week%201.%5Cn%20Of%20course,%20reach%20out%20to%20your%20manager%20with%20any%20questions.%22%7D,%22accessory%22:%7B%22type%22:%22image%22,%22image_url%22:%22https://media.giphy.com/media/Ae7SI3LoPYj8Q/giphy.gif%22,%22alt_text%22:%22One%20of%20us%22%7D%7D,%7B%22type%22:%22divider%22%7D,%7B%22type%22:%22rich_text%22,%22elements%22:%5B%7B%22type%22:%22rich_text_section%22,%22elements%22:%5B%7B%22type%22:%22emoji%22,%22name%22:%22office%22%7D,%7B%22type%22:%22text%22,%22text%22:%22%20Company%20business%22,%22style%22:%7B%22bold%22:true%7D%7D%5D%7D,%7B%22type%22:%22rich_text_list%22,%22style%22:%22bullet%22,%22elements%22:%5B%7B%22type%22:%22rich_text_section%22,%22elements%22:%5B%7B%22type%22:%22text%22,%22text%22:%22Fill%20out%20your%20W-2%22%7D%5D%7D,%7B%22type%22:%22rich_text_section%22,%22elements%22:%5B%7B%22type%22:%22text%22,%22text%22:%22Enroll%20in%20%22%7D,%7B%22type%22:%22link%22,%22text%22:%22benefits%22,%22url%22:%22https://salesforcebenefits.com%22%7D%5D%7D,%7B%22type%22:%22rich_text_section%22,%22elements%22:%5B%7B%22type%22:%22text%22,%22text%22:%22Fill%20out%20your%20Slack%20profile,%20including:%22%7D%5D%7D%5D%7D,%7B%22type%22:%22rich_text_list%22,%22style%22:%22ordered%22,%22indent%22:1,%22elements%22:%5B%7B%22type%22:%22rich_text_section%22,%22elements%22:%5B%7B%22type%22:%22text%22,%22text%22:%22Time%20zone%22%7D%5D%7D,%7B%22type%22:%22rich_text_section%22,%22elements%22:%5B%7B%22type%22:%22text%22,%22text%22:%22Pronouns%22%7D%5D%7D%5D%7D%5D%7D,%7B%22type%22:%22divider%22%7D,%7B%22type%22:%22rich_text%22,%22elements%22:%5B%7B%22type%22:%22rich_text_section%22,%22elements%22:%5B%7B%22type%22:%22emoji%22,%22name%22:%22green_book%22%7D,%7B%22type%22:%22text%22,%22text%22:%22%20Read%20about%20our%20culture%22,%22style%22:%7B%22bold%22:true%7D%7D%5D%7D,%7B%22type%22:%22rich_text_list%22,%22style%22:%22bullet%22,%22elements%22:%5B%7B%22type%22:%22rich_text_section%22,%22elements%22:%5B%7B%22type%22:%22link%22,%22text%22:%22Four%20tips%20for%20building%20a%20digital%20first%20culture%22,%22url%22:%22https://slack.com/blog/collaboration/four-tips-build-digital-first-culture%22%7D%5D%7D,%7B%22type%22:%22rich_text_section%22,%22elements%22:%5B%7B%22type%22:%22link%22,%22text%22:%226%20simple%20ways%20to%20foster%20a%20positive%20hybrid%20work%20environment%22,%22url%22:%22https://slack.com/blog/collaboration/ways-foster-positive-work-environment%22%7D%5D%7D%5D%7D%5D%7D,%7B%22type%22:%22divider%22%7D,%7B%22type%22:%22rich_text%22,%22elements%22:%5B%7B%22type%22:%22rich_text_section%22,%22elements%22:%5B%7B%22type%22:%22emoji%22,%22name%22:%22speech_balloon%22%7D,%7B%22type%22:%22text%22,%22text%22:%22%20Inspirational%20quote%20of%20the%20day%22,%22style%22:%7B%22bold%22:true%7D%7D%5D%7D,%7B%22type%22:%22rich_text_quote%22,%22elements%22:%5B%7B%22type%22:%22text%22,%22text%22:%22Having%20no%20destination%20I%20am%20never%20lost.%20-%20Ikky%C5%AB.%22%7D%5D%7D%5D%7D,%7B%22type%22:%22input%22,%22block_id%22:%22quote_input_block%22,%22element%22:%7B%22type%22:%22plain_text_input%22%7D,%22label%22:%7B%22type%22:%22plain_text%22,%22text%22:%22:envelope:%20Enter%20your%20favorite%20quote,%20to%20be%20shared%20with%20future%20hires%20like%20you:%22,%22emoji%22:true%7D%7D,%7B%22type%22:%22actions%22,%22block_id%22:%22submit_button_action_block%22,%22elements%22:%5B%7B%22type%22:%22button%22,%22text%22:%7B%22type%22:%22plain_text%22,%22text%22:%22Submit%22%7D,%22value%22:%22submit%22,%22action_id%22:%22button_1%22%7D%5D%7D%5D%7D) in Block Kit Builder. Mapping an outline[​](https://docs.slack.dev/block-kit/formatting-with-rich-text/#outline "Direct link to Mapping an outline") ------------------------------------------------------------------------------------------------------------------------------- Building with Block Kit is layering one block on after another, all independent pieces with their own details within their structure. The main blocks of this message are: | Block Type | Description of block in image | | --- | --- | | [`header`](https://docs.slack.dev/reference/block-kit/blocks/header-block) | Onboarding Week 1 | | [`context`](https://docs.slack.dev/reference/block-kit/blocks/context-block) | Line of text in smaller, lighter font providing context for the message | | [`section`](https://docs.slack.dev/reference/block-kit/blocks/section-block) | Text and accessory image | | [`divider`](https://docs.slack.dev/reference/block-kit/blocks/divider-block) | Horizontal line | | [`rich_text`](https://docs.slack.dev/reference/block-kit/blocks/rich-text-block) | Company business header, bulleted and ordered lists | | [`divider`](https://docs.slack.dev/reference/block-kit/blocks/divider-block) | Horizontal line | | [`rich_text`](https://docs.slack.dev/reference/block-kit/blocks/rich-text-block) | Read about our culture header and bullet list | | [`divider`](https://docs.slack.dev/reference/block-kit/blocks/divider-block) | Horizontal line | | [`rich_text`](https://docs.slack.dev/reference/block-kit/blocks/rich-text-block) | Inspirational quote of the day section | | [`input`](https://docs.slack.dev/reference/block-kit/blocks/input-block) | Component for text data collection | | [`actions`](https://docs.slack.dev/reference/block-kit/blocks/actions-block) | Button | Now let's step through these individually. Introducing the content[​](https://docs.slack.dev/block-kit/formatting-with-rich-text/#introduction "Direct link to Introducing the content") ---------------------------------------------------------------------------------------------------------------------------------------------- To give the user context of the overall content of the message, we provide a header, a context sentence, and an introductory blurb. ### Header block[​](https://docs.slack.dev/block-kit/formatting-with-rich-text/#header-block "Direct link to Header block") The [header block](https://docs.slack.dev/reference/block-kit/blocks/header-block) is straightforward. The only option for the `text` object's `type` field is `plain_text`, so if you wanted to add emoji here, it would need to be in a separate component. We'll explore adding emoji later. Header code { "type": "header", "text": { "type": "plain_text", "text": "Onboarding Week 1" }}, [View in Block Kit Builder](https://app.slack.com/block-kit-builder/T024BE7LD#%7B%22blocks%22:%5B%7B%22type%22:%22header%22,%22text%22:%7B%22type%22:%22plain_text%22,%22text%22:%22Onboarding%20Week%201%22%7D%7D%5D%7D) ### Context block[​](https://docs.slack.dev/block-kit/formatting-with-rich-text/#context-block "Direct link to Context block") The [context block](https://docs.slack.dev/reference/block-kit/blocks/context-block) is a bit of text that gives the user context for the rest of the message. It is shown in smaller text that is grey instead of black. A context block's `elements` property is an array of objects, either [`image`](https://docs.slack.dev/reference/block-kit/block-elements/image-element) or [`text`](https://docs.slack.dev/reference/block-kit/composition-objects/text-object) . Here we are using `text`. It's important to know that `text` in a context block cannot be rich text, only `mrkdwn` or `plain_text`. Context code { "type": "context", "elements": [ { "type": "mrkdwn", "text": "Hello there! This is a weekly reminder of what you should be doing during onboarding." } ]}, [View in Block Kit Builder](https://app.slack.com/block-kit-builder/T024BE7LD#%7B%22blocks%22:%5B%7B%22type%22:%22context%22,%22elements%22:%5B%7B%22type%22:%22mrkdwn%22,%22text%22:%22Hello%20there!%20This%20is%20a%20weekly%20reminder%20of%20what%20you%20should%20be%20doing%20during%20onboarding.%22%7D%5D%7D%5D%7D) ### Introductory section block[​](https://docs.slack.dev/block-kit/formatting-with-rich-text/#section-block "Direct link to Introductory section block") The [section block](https://docs.slack.dev/reference/block-kit/blocks/section-block) provides an introductory blurb with a fun gif welcoming the user to the team. While we strongly encourage rich text to markdown formatting, we've used a `section` block here (which offers _only_ markdown formatting, not rich text) for use the of the accessory image. The same content could be achieved by creating a `rich_text` block followed by an `image` block, but they would be stacked, as opposed to side by side as shown in this example. Also note that we use a link to a gif, and while it is not animated in this screenshot, it will be in a message (and even in the Block Kit Builder preview). After this section, we'll use rich text for formatting text. Intro section code { "type": "section", "text": { "type": "mrkdwn", "text": "*Welcome aboard!*\n :eye: :lips: :eye:\n\nHere are some things you should do in week 1.\n Of course, reach out to your manager with any questions." }, "accessory": { "type": "image", "image_url": "https://media.giphy.com/media/Ae7SI3LoPYj8Q/giphy.gif", "alt_text": "One of us" }} [View in Block Kit Builder](https://app.slack.com/block-kit-builder/T024BE7LD#%7B%22blocks%22:%5B%7B%22type%22:%22section%22,%22text%22:%7B%22type%22:%22mrkdwn%22,%22text%22:%22*Welcome%20aboard!*%5Cn%20:eye:%20:lips:%20:eye:%5Cn%5CnHere%20are%20some%20things%20you%20should%20do%20in%20week%201.%5Cn%20Of%20course,%20reach%20out%20to%20your%20manager%20with%20any%20questions.%22%7D,%22accessory%22:%7B%22type%22:%22image%22,%22image_url%22:%22https://media.giphy.com/media/Ae7SI3LoPYj8Q/giphy.gif%22,%22alt_text%22:%22One%20of%20us%22%7D%7D%5D%7D) ### Divider block[​](https://docs.slack.dev/block-kit/formatting-with-rich-text/#divider "Direct link to Divider block") The [divider block](https://docs.slack.dev/reference/block-kit/blocks/divider-block) is simply a horizontal line to provide a visual break in content. Divider block code { "type": "divider"}, [View in Block Kit Builder](https://app.slack.com/block-kit-builder/T024BE7LD#%7B%22blocks%22:%5B%7B%22type%22:%22divider%22%7D%5D%7D) The main content[​](https://docs.slack.dev/block-kit/formatting-with-rich-text/#main-content "Direct link to The main content") -------------------------------------------------------------------------------------------------------------------------------- The main content of this message is comprised of a few visual sections: "Company business", "Read about our culture", and "Inspirational quote of the day". ### Company business[​](https://docs.slack.dev/block-kit/formatting-with-rich-text/#company-business "Direct link to Company business") The entirety of the "Company business" section of this message is contained within a single [`rich_text`](https://docs.slack.dev/reference/block-kit/blocks/rich-text-block) block. The flexibility of formatting is possible through many element types we'll dive into deeper here. #### Rich text section[​](https://docs.slack.dev/block-kit/formatting-with-rich-text/#rich-text-section "Direct link to Rich text section") Within the top-level [`rich_text`](https://docs.slack.dev/reference/block-kit/blocks/rich-text-block) block, we have a [`rich_text_section`](https://docs.slack.dev/reference/block-kit/blocks/rich-text-block#section) , a [`rich_text_list`](https://docs.slack.dev/reference/block-kit/blocks/rich-text-block#list) , and another [`rich_text_list`](https://docs.slack.dev/reference/block-kit/blocks/rich-text-block#list) . Think of each [`rich_text_section`](https://docs.slack.dev/reference/block-kit/blocks/rich-text-block#section) as a single line of text. This may be deceiving, given that it holds an array of elements. However, structuring it as an array of elements provides maximum flexibility with styling each element (which can be as tiny as a single character), as well as ease in parsing. For instance, looking at the [`rich_text_section`](https://docs.slack.dev/reference/block-kit/blocks/rich-text-block#section) , we see two elements: an `emoji` and a `text` element. While these are different elements in the array, they appear on the same line. The [`rich_text_section`](https://docs.slack.dev/reference/block-kit/blocks/rich-text-block#section) block allows for elements of the following types, providing many possibilities for styling: `text`, `link`, `emoji`, `user`, `user_group`, and `channel`. Our text object has a `style` field, in which we specify `bold`. Other style options include `italic`, `strike`, and `code`. You apply them in the same manner as `bold` is shown here. #### Rich text list[​](https://docs.slack.dev/block-kit/formatting-with-rich-text/#rich-text-list "Direct link to Rich text list") Moving on to the lists, you'll see in the code that we have two lists. One is the bulleted list, containing the first three bullets, and the second is an ordered list containing the last two elements. Notice how the [`rich_text_list`](https://docs.slack.dev/reference/block-kit/blocks/rich-text-block#list) is comprised of another `elements` array. This again allows for flexibility in the types of text you want to show, whether that be links, quotes, code snippets, or simply formatted text. To achieve the style of linking one word in a line of plain text, we use a [`rich_text_section`](https://docs.slack.dev/reference/block-kit/blocks/rich-text-block#section) , remembering that each [`rich_text_section`](https://docs.slack.dev/reference/block-kit/blocks/rich-text-block#section) is read as a single line of text. To achieve the nested list that is part of the third bullet point, we simply create another [`rich_text_list`](https://docs.slack.dev/reference/block-kit/blocks/rich-text-block#list) below the prior one and set the `indent` property to 1. To indent a list further, you keep increasing the number by one to create deeply nested lists. This section ends with another [divider block](https://docs.slack.dev/block-kit/formatting-with-rich-text/#divider) . Company business code { "type": "rich_text", "elements": [ { "type": "rich_text_section", "elements": [ { "type": "emoji", "name": "office" }, { "type": "text", "text": " Company business", "style": { "bold": true } } ] }, { "type": "rich_text_list", "style": "bullet", "elements": [ { "type": "rich_text_section", "elements": [ { "type": "text", "text": "Fill out your W-2" } ] }, { "type": "rich_text_section", "elements": [ { "type": "text", "text": "Enroll in " }, { "type": "link", "text": "benefits", "url": "https://salesforcebenefits.com" } ] }, { "type": "rich_text_section", "elements": [ { "type": "text", "text": "Fill out your Slack profile, including:" } ] } ] }, { "type": "rich_text_list", "style": "ordered", "indent": 1, "elements": [ { "type": "rich_text_section", "elements": [ { "type": "text", "text": "Time zone" } ] }, { "type": "rich_text_section", "elements": [ { "type": "text", "text": "Pronouns" } ] } ] } ]}, [View in Block Kit Builder](https://app.slack.com/block-kit-builder/T024BE7LD#%7B%22blocks%22:%5B%7B%22type%22:%22rich_text%22,%22elements%22:%5B%7B%22type%22:%22rich_text_section%22,%22elements%22:%5B%7B%22type%22:%22emoji%22,%22name%22:%22office%22%7D,%7B%22type%22:%22text%22,%22text%22:%22%20Company%20business%22,%22style%22:%7B%22bold%22:true%7D%7D%5D%7D,%7B%22type%22:%22rich_text_list%22,%22style%22:%22bullet%22,%22elements%22:%5B%7B%22type%22:%22rich_text_section%22,%22elements%22:%5B%7B%22type%22:%22text%22,%22text%22:%22Fill%20out%20your%20W-2%22%7D%5D%7D,%7B%22type%22:%22rich_text_section%22,%22elements%22:%5B%7B%22type%22:%22text%22,%22text%22:%22Enroll%20in%20%22%7D,%7B%22type%22:%22link%22,%22text%22:%22benefits%22,%22url%22:%22https://salesforcebenefits.com%22%7D%5D%7D,%7B%22type%22:%22rich_text_section%22,%22elements%22:%5B%7B%22type%22:%22text%22,%22text%22:%22Fill%20out%20your%20Slack%20profile,%20including:%22%7D%5D%7D%5D%7D,%7B%22type%22:%22rich_text_list%22,%22style%22:%22ordered%22,%22indent%22:1,%22elements%22:%5B%7B%22type%22:%22rich_text_section%22,%22elements%22:%5B%7B%22type%22:%22text%22,%22text%22:%22Time%20zone%22%7D%5D%7D,%7B%22type%22:%22rich_text_section%22,%22elements%22:%5B%7B%22type%22:%22text%22,%22text%22:%22Pronouns%22%7D%5D%7D%5D%7D%5D%7D%5D%7D) ### Read about our culture[​](https://docs.slack.dev/block-kit/formatting-with-rich-text/#read "Direct link to Read about our culture") The entirety of the "Read about our culture" section is also contained within a single [`rich_text`](https://docs.slack.dev/reference/block-kit/blocks/rich-text-block) block. Let's look at how to format links in a list like the ones shown in this example. Again within this block we see it is constructed using a [`rich_text_section`](https://docs.slack.dev/reference/block-kit/blocks/rich-text-block#section) and a [`rich_text_list`](https://docs.slack.dev/reference/block-kit/blocks/rich-text-block#list) . Unlike the prior section, we have decided to link the entire text line of the bullet, which can be done using the `text` property of the `link` element, instead of breaking it into multiple `link` and `text` elements. This section ends with another [divider block](https://docs.slack.dev/block-kit/formatting-with-rich-text/#divider) . Read about our culture code { "type": "rich_text", "elements": [ { "type": "rich_text_section", "elements": [ { "type": "emoji", "name": "green_book" }, { "type": "text", "text": " Read about our culture", "style": { "bold": true } } ] }, { "type": "rich_text_list", "style": "bullet", "elements": [ { "type": "rich_text_section", "elements": [ { "type": "link", "text": "Four tips for building a digital first culture", "url": "https://slack.com/blog/collaboration/four-tips-build-digital-first-culture" } ] }, { "type": "rich_text_section", "elements": [ { "type": "link", "text": "6 simple ways to foster a positive hybrid work environment", "url": "https://slack.com/blog/collaboration/ways-foster-positive-work-environment" } ] } ] } ]}, [View in Block Kit Builder](https://app.slack.com/block-kit-builder/T024BE7LD#%7B%22blocks%22:%5B%7B%22type%22:%22rich_text%22,%22elements%22:%5B%7B%22type%22:%22rich_text_section%22,%22elements%22:%5B%7B%22type%22:%22emoji%22,%22name%22:%22green_book%22%7D,%7B%22type%22:%22text%22,%22text%22:%22%20Read%20about%20our%20culture%22,%22style%22:%7B%22bold%22:true%7D%7D%5D%7D,%7B%22type%22:%22rich_text_list%22,%22style%22:%22bullet%22,%22elements%22:%5B%7B%22type%22:%22rich_text_section%22,%22elements%22:%5B%7B%22type%22:%22link%22,%22text%22:%22Four%20tips%20for%20building%20a%20digital%20first%20culture%22,%22url%22:%22https://slack.com/blog/collaboration/four-tips-build-digital-first-culture%22%7D%5D%7D,%7B%22type%22:%22rich_text_section%22,%22elements%22:%5B%7B%22type%22:%22link%22,%22text%22:%226%20simple%20ways%20to%20foster%20a%20positive%20hybrid%20work%20environment%22,%22url%22:%22https://slack.com/blog/collaboration/ways-foster-positive-work-environment%22%7D%5D%7D%5D%7D%5D%7D%5D%7D) ### Inspirational quote[​](https://docs.slack.dev/block-kit/formatting-with-rich-text/#inspirational-quote "Direct link to Inspirational quote") While the header and emoji of the last section of content also use the [`rich_text`](https://docs.slack.dev/reference/block-kit/blocks/rich-text-block) block, the following rich text element is different: the [`rich_text_quote`](https://docs.slack.dev/reference/block-kit/blocks/rich-text-block#quote) . Using this element creates the vertical bar to the left of the text that indicates it is a quote, similar to how it is shown in messages in the Slack client or app. The next piece is an [`input`](https://docs.slack.dev/reference/block-kit/blocks/input-block) block, which allows collection of data, in this case, a quote, from the user that can be stored and recalled again at a later date. The final block is the [`actions`](https://docs.slack.dev/reference/block-kit/blocks/actions-block) block, which is the call to action after the user submits their favorite quote — they push the button, letting the app know the action has been completed and the data is submitted. Read more about button function on the [Block elements & interactive components reference page](https://docs.slack.dev/reference/block-kit/block-elements/button-element) . We've added a `block_id` for both the `input` and `actions` block in order to reference them later. When a `block_id` is not explicitly added for a block, one will be automatically generated. Inspirational quote code { "type": "rich_text", "elements": [ { "type": "rich_text_section", "elements": [ { "type": "emoji", "name": "speech_balloon" }, { "type": "text", "text": " Inspirational quote of the day", "style": { "bold": true } } ] }, { "type": "rich_text_quote", "elements": [ { "type": "text", "text": "Having no destination I am never lost. - Ikkyū." } ] } ]},{ "type": "input", "block_id": "quote_input_block", "element": { "type": "plain_text_input" }, "label": { "type": "plain_text", "text": ":envelope: Enter your favorite quote, to be shared with future hires like you:", "emoji": true }},{ "type": "actions", "block_id": "submit_button_action_block", "elements": [ { "type": "button", "text": { "type": "plain_text", "text": "Submit" }, "value": "submit", "action_id": "button_1" } ]} [View in Block Kit Builder](https://app.slack.com/block-kit-builder/T024BE7LD#%7B%22blocks%22:%5B%7B%22type%22:%22rich_text%22,%22elements%22:%5B%7B%22type%22:%22rich_text_section%22,%22elements%22:%5B%7B%22type%22:%22emoji%22,%22name%22:%22speech_balloon%22%7D,%7B%22type%22:%22text%22,%22text%22:%22%20Inspirational%20quote%20of%20the%20day%22,%22style%22:%7B%22bold%22:true%7D%7D%5D%7D,%7B%22type%22:%22rich_text_quote%22,%22elements%22:%5B%7B%22type%22:%22text%22,%22text%22:%22Having%20no%20destination%20I%20am%20never%20lost.%20-%20Ikky%C5%AB.%22%7D%5D%7D%5D%7D,%7B%22type%22:%22input%22,%22block_id%22:%22quote_input_block%22,%22element%22:%7B%22type%22:%22plain_text_input%22%7D,%22label%22:%7B%22type%22:%22plain_text%22,%22text%22:%22:envelope:%20Enter%20your%20favorite%20quote,%20to%20be%20shared%20with%20future%20hires%20like%20you:%22,%22emoji%22:true%7D%7D,%7B%22type%22:%22actions%22,%22block_id%22:%22submit_button_action_block%22,%22elements%22:%5B%7B%22type%22:%22button%22,%22text%22:%7B%22type%22:%22plain_text%22,%22text%22:%22Submit%22%7D,%22value%22:%22submit%22,%22action_id%22:%22button_1%22%7D%5D%7D%5D%7D) Summary[​](https://docs.slack.dev/block-kit/formatting-with-rich-text/#summary "Direct link to Summary") --------------------------------------------------------------------------------------------------------- This concludes our guide on how to construct a beautiful message with Block Kit! We hope you will continue to explore all that blocks have to offer in [Block Kit Builder](https://app.slack.com/block-kit-builder) and by reviewing the material below. ### Further reading[​](https://docs.slack.dev/block-kit/formatting-with-rich-text/#further-reading "Direct link to Further reading") Check out these articles to expand your knowledge and skills of Block Kit: ➡️ [Building with Block Kit](https://docs.slack.dev/block-kit) ➡️ [Designing with Block Kit](https://docs.slack.dev/block-kit/designing-with-block-kit) ➡️ [Block Kit reference](https://docs.slack.dev/reference/block-kit) ### Slack developer tools helper[​](https://docs.slack.dev/block-kit/formatting-with-rich-text/#dev-tools "Direct link to Slack developer tools helper") Another tool to help you in your rich text journey is the [Slack Developer Tools Inspect tool](https://sdt.builtbyslack.com/) . Once installed, you can click the kebab (or three dots) menu on the upper-right of any message in Slack, then click "more message shortcuts." Search for the Inspect tool and click on it. This tool shows you the `json` behind any given message in Slack, which helps you understand how blocks are used to construct them. Magic. ✨ * [Mapping an outline](https://docs.slack.dev/block-kit/formatting-with-rich-text/#outline) * [Introducing the content](https://docs.slack.dev/block-kit/formatting-with-rich-text/#introduction) * [Header block](https://docs.slack.dev/block-kit/formatting-with-rich-text/#header-block) * [Context block](https://docs.slack.dev/block-kit/formatting-with-rich-text/#context-block) * [Introductory section block](https://docs.slack.dev/block-kit/formatting-with-rich-text/#section-block) * [Divider block](https://docs.slack.dev/block-kit/formatting-with-rich-text/#divider) * [The main content](https://docs.slack.dev/block-kit/formatting-with-rich-text/#main-content) * [Company business](https://docs.slack.dev/block-kit/formatting-with-rich-text/#company-business) * [Read about our culture](https://docs.slack.dev/block-kit/formatting-with-rich-text/#read) * [Inspirational quote](https://docs.slack.dev/block-kit/formatting-with-rich-text/#inspirational-quote) * [Summary](https://docs.slack.dev/block-kit/formatting-with-rich-text/#summary) * [Further reading](https://docs.slack.dev/block-kit/formatting-with-rich-text/#further-reading) * [Slack developer tools helper](https://docs.slack.dev/block-kit/formatting-with-rich-text/#dev-tools) --- # Upgrading outmoded dialogs to modals | Slack Developer Docs [Skip to main content](https://docs.slack.dev/block-kit/upgrading-outmoded-dialogs-to-modals/#__docusaurus_skipToContent_fallback) On this page In late 2019 we released a new app surface for collecting rich user input and displaying dynamic information using [Block Kit](https://docs.slack.dev/block-kit) — [**modals**](https://docs.slack.dev/surfaces/modals) . Modals are the replacement for [dialogs](https://docs.slack.dev/legacy/legacy-dialogs) , an outmoded feature that allowed apps to collect static input. Modals have the ability to use Block Kit interactive components like [datepickers](https://docs.slack.dev/messaging/creating-interactive-messages#datepickers) and [multi-select menus](https://docs.slack.dev/messaging/creating-interactive-messages#multi_select_menus) , as well as the standard input options available to dialogs. Modals can also be updated dynamically, and chained together to form deep workflows. Dialogs will continue to work for the time being, but apps using them cannot avail any of these new modal features. This guide is intended for developers of existing Slack apps that use dialogs. It will provide information on how to migrate your dialogs to modals and introduce you to new capabilities and components that modals provide. * * * Planning your upgrade[​](https://docs.slack.dev/block-kit/upgrading-outmoded-dialogs-to-modals/#planning "Direct link to Planning your upgrade") ------------------------------------------------------------------------------------------------------------------------------------------------- Mapping dialogs to modals is fairly straight-forward if you plan to keep the same layout and user flow. However, it’s **highly recommended** you take the opportunity to explore the new Block Kit components and [additional functionality](https://docs.slack.dev/block-kit/upgrading-outmoded-dialogs-to-modals/#new_methods) available to your app within modals. ### Using blocks to collect richer user input[​](https://docs.slack.dev/block-kit/upgrading-outmoded-dialogs-to-modals/#using_blocks "Direct link to Using blocks to collect richer user input") Modals are built with [blocks](https://docs.slack.dev/reference/block-kit/blocks) that can be mixed and stacked to design surface areas customized to your app. Modals can use Block Kit components that map directly to dialog elements. Blocks such as [`input`](https://docs.slack.dev/reference/block-kit/blocks/input-block) and elements like [`select` menus](https://docs.slack.dev/reference/block-kit/block-elements/select-menu-element) replicate fields that could be added to dialogs. There are also additional blocks that your app can use to improve the user experience and simplify the payload your app receives on submission: [**Date pickers**](https://docs.slack.dev/reference/block-kit/block-elements/date-picker-element) allow your app to collect dates through a calendar interface. This provides a better user experience than text fields, and it standardizes date formats that your app may receive. [**Multi-select menus**](https://docs.slack.dev/reference/block-kit/block-elements/multi-select-menu-element) are new dropdown menus similar to select menus. You probably guessed by the name, but they allow users to make multiple selections rather than being limited to just one. You also have access to the entire suite of blocks, like `section` and `image` blocks that allow you to display static content, or `divider` and `context` blocks that help you organize information. To get started with blocks read our [building with blocks guide](https://docs.slack.dev/block-kit) , or to see all available blocks check out our [layout block reference](https://docs.slack.dev/reference/block-kit/blocks) . ### Creating a modal[​](https://docs.slack.dev/block-kit/upgrading-outmoded-dialogs-to-modals/#creating "Direct link to Creating a modal") Similar to [`dialog.open`](https://docs.slack.dev/reference/methods/dialog.open) , with modals you call [`views.open`](https://docs.slack.dev/reference/methods/views.open) to open a modal and populate it with a [view object](https://docs.slack.dev/reference/views) . The response will be similar to dialogs, though it will also include a view ID which you can use to [update an existing modal](https://docs.slack.dev/block-kit/upgrading-outmoded-dialogs-to-modals/#new_methods) . Read our [documentation on creating modals](https://docs.slack.dev/surfaces/modals) to learn more and see an example. ### Updating and pushing views in modals[​](https://docs.slack.dev/block-kit/upgrading-outmoded-dialogs-to-modals/#new_methods "Direct link to Updating and pushing views in modals") Modals are containers that can hold a stack of one to three views. Each view is generated using [a payload](https://docs.slack.dev/reference/views) that defines a Block Kit layout, view functionality, and some state variables to track within the view. Within an individual modal, views can be created and [pushed onto the stack](https://docs.slack.dev/reference/methods/views.push) , or [updated while in the stack](https://docs.slack.dev/reference/methods/views.update) . Complete [our guide to using modals](https://docs.slack.dev/surfaces/modals) to learn how to manipulate views and modals. ### Prototyping with Block Kit Builder[​](https://docs.slack.dev/block-kit/upgrading-outmoded-dialogs-to-modals/#builder "Direct link to Prototyping with Block Kit Builder") [Block Kit Builder](https://api.slack.com/tools/block-kit-builder) is a prototyping tool that allows you (or a designer on your team) to quickly design surface areas for your app. There’s a [dedicated mode to design modals](https://api.slack.com/tools/block-kit-builder?&mode=modal) which reveals blocks exclusive to modals, like the [`input`](https://docs.slack.dev/reference/block-kit/blocks/input-block) block. The Builder also provides [templates with common workflows](https://api.slack.com/tools/block-kit-builder?template=1) to get started, editable JSON to plug into your app, and example interactive payloads to examine what your app will receive. Upgrading to modals[​](https://docs.slack.dev/block-kit/upgrading-outmoded-dialogs-to-modals/#upgrading "Direct link to Upgrading to modals") ---------------------------------------------------------------------------------------------------------------------------------------------- You've read about the details of new modals functionality that apps have access to. Now let's get into the specific differences to account for in your app when you replace dialogs with modals. ### Discovering equivalents for dialog elements[​](https://docs.slack.dev/block-kit/upgrading-outmoded-dialogs-to-modals/#elements "Direct link to Discovering equivalents for dialog elements") The content of a view is composed using a `blocks` array rather than the `elements` equivalent in dialogs. The `blocks` array contains a collection of [blocks from the Block Kit framework](https://docs.slack.dev/reference/block-kit/blocks) . Although dialogs could only contain 10 elements, modals can contain up to 100 blocks. Each dialog element has an equivalent that you can use to define and design the views within your modals: [`input`](https://docs.slack.dev/reference/block-kit/blocks/input-block) blocks replace the dialog's text element and textarea. The `input` block has an optional `multiline` flag that determines whether it should be one line (the text element equivalent) or multiple lines (the textarea equivalent). An important difference with `input` blocks in a view is that when _any_ `input` blocks are in your `blocks[]` array, you **must** pass a [`submit` element](https://docs.slack.dev/reference/views) . When you pass a `submit` element, you will receive the input's values when a user submits the view. This is discussed more in the [accessing input values in modals](https://docs.slack.dev/block-kit/upgrading-outmoded-dialogs-to-modals/#accessing_input) section. [`select` menus](https://docs.slack.dev/reference/block-kit/block-elements/select-menu-element) and [`multi-select` menus](https://docs.slack.dev/reference/block-kit/block-elements/multi-select-menu-element) replace the dialog's select element. Select menus can be within [`actions` blocks](https://docs.slack.dev/reference/block-kit/blocks/actions-block) , [`input` blocks](https://docs.slack.dev/reference/block-kit/blocks/input-block) , or as accessories in [`section` blocks](https://docs.slack.dev/reference/block-kit/blocks/section-block) . To see all available blocks, see our [layout block reference](https://docs.slack.dev/reference/block-kit/blocks) . ### Identifying blocks with `block_id` and `action_id`[​](https://docs.slack.dev/block-kit/upgrading-outmoded-dialogs-to-modals/#identifying "Direct link to identifying") While [view objects](https://docs.slack.dev/reference/views) are still identified using a `callback_id`, interactive components within a view use `block_id`s and `action_id`s. These are sent when interactive components are used in a view, or when a view is submitted (described [below](https://docs.slack.dev/block-kit/upgrading-outmoded-dialogs-to-modals/#accessing_input) ). The `block_id` is specified in blocks. It can be used to identify the parent block of the source interactive component used in a `block_actions` or `view_submission` interaction. If you don’t specify a `block_id`, one will be automatically generated for the block. The `action_id` is specified in the interactive component. It can be used to identify the parent block of the source interactive component used in a `block_actions` or `view_submission` interaction. If you don’t specify an `action_id`, one will be automatically generated for the element. ### Accessing input values in modals[​](https://docs.slack.dev/block-kit/upgrading-outmoded-dialogs-to-modals/#accessing_input "Direct link to Accessing input values in modals") For elements within `input` blocks, the values will be contained in a `view_submission` payload that will be sent to your app’s Request URL when a user clicks a submit button. Within the `view_submission` payload, there will be a `state` object that contains the values for all `input` blocks, stored using their `block_id` and `action_id`. To learn more about view submissions, read the section on [handling `view_submission` events](https://docs.slack.dev/surfaces/modals#handling_submissions) . ### Handling interactions in modals[​](https://docs.slack.dev/block-kit/upgrading-outmoded-dialogs-to-modals/#interactions "Direct link to Handling interactions in modals") If you have `select` menus or other interactive components within an [`actions`](https://docs.slack.dev/reference/block-kit/blocks/actions-block) or [`section`](https://docs.slack.dev/reference/block-kit/blocks/section-block) block, the values will **not** be contained in the `view_submission` payload. You’ll handle these events in the same way as all Block Kit interactive components. For more information on handling non-input interactions in modals, [read the modals documentation](https://docs.slack.dev/surfaces/modals#handling_modal_interactions) . ### Responding to `view_submission` events[​](https://docs.slack.dev/block-kit/upgrading-outmoded-dialogs-to-modals/#submissions "Direct link to submissions") Within dialogs, you respond to `dialog_submission` events with either a **200 OK** or an array of errors. With modals, your app will receive a `view_submission` event. After receiving this event, you have 3 seconds to respond with a valid [`response_action`](https://docs.slack.dev/surfaces/modals#handling_submissions) . Similar to dialogs, `response_action`s allow your app to close the modal or display errors. If you just want to close the modal, nothing will change — you’ll just respond with a **200 OK**. For other options, you’ll respond with the `response_action` corresponding to the action you want to take. With modals, you also have the option to use a `response_action` to update a view, push a new view, or close all views. To learn more about using `response_action`s [read the handling submission section of the documentation](https://docs.slack.dev/surfaces/modals#handling_submissions) . ### Passing state in modals[​](https://docs.slack.dev/block-kit/upgrading-outmoded-dialogs-to-modals/#state "Direct link to Passing state in modals") When opening or updating a view, you may optionally use the `private_metadata` string to pass additional data. This is equivalent to the `state` string in dialogs, and has the same 3000 character limit. The `private_metadata` string will never be sent to clients. It is only returned in `view_submission` and `block_actions` events. ### Don't rely on `response_url`[​](https://docs.slack.dev/block-kit/upgrading-outmoded-dialogs-to-modals/#responding "Direct link to responding") When a dialog is submitted, your app receives an HTTP request. `dialog_submission` events contained a `response_url` that allowed you to post a message tied to the channel the dialog was initiated from. However, **modals don't rely on a channel context**. This means that the `view_submission` event will not contain a `response_url`. If you want to send a message into the channel the modal was opened from, you can pass the channel ID in the [`private_metadata` string](https://docs.slack.dev/block-kit/upgrading-outmoded-dialogs-to-modals/#state) . This will be included in `view_submission` events, and you can access this value to send a message to channel using [`chat.postMessage`](https://docs.slack.dev/reference/methods/chat.postMessage) . Another option is to DM the user verifying that the modal they filled out was successfully submitted. Note that to call [`chat.postMessage`](https://docs.slack.dev/reference/methods/chat.postMessage) , you’ll need to add the `chat:write` scope to your app if you aren’t using a bot user. ### Include text in objects rather than as fields[​](https://docs.slack.dev/block-kit/upgrading-outmoded-dialogs-to-modals/#text "Direct link to Include text in objects rather than as fields") Instead of defining text as a flat field, Block Kit uses text objects. Using text objects you can define the actual text content, as well as the formatting method (mrkdwn or plain\_text) in the same place. Read the [reference guide for text objects](https://docs.slack.dev/reference/block-kit/composition-objects/text-object) to see an example and full details. Note that in view objects, most text objects _only_ accept `plain_text` objects. Read the [reference guide for view objects](https://docs.slack.dev/reference/views) for more information. ### Handling closed modals[​](https://docs.slack.dev/block-kit/upgrading-outmoded-dialogs-to-modals/#closing "Direct link to Handling closed modals") When creating a view object, you can pass a `notify_on_close` flag that indicates that Slack will send you a `view_closed` event. This is equivalent to the `notify_on_cancel` flag in dialogs. Read the [reference guide for view objects](https://docs.slack.dev/reference/views) for more information and examples. Next steps[​](https://docs.slack.dev/block-kit/upgrading-outmoded-dialogs-to-modals/#next "Direct link to Next steps") ----------------------------------------------------------------------------------------------------------------------- Congratulations! 🎉 If you made it to this point, hopefully you were successfully able to migrate your app’s dialogs to modals. If you want to level-up your app’s user experience, here are some next steps: * If you haven’t migrated your messages to use Block Kit, read our [migration guide for messages](https://docs.slack.dev/messaging/migrating-outmoded-message-compositions-to-blocks#text_objects) . * Explore all of the [available Blocks and elements in Block Kit](https://docs.slack.dev/block-kit) . Discover new interactive components and static elements that will allow you to create cleaner and more compelling workflows. * Use the [Block Kit Builder](https://api.slack.com/tools/block-kit-builder) to quickly play with blocks, or use [templates](https://api.slack.com/tools/block-kit-builder?template=1) as a starting point for common design patterns in Slack apps. * If you’re rewriting your app from scratch, check out Bolt, a development framework built to make building Slack apps faster and easier, available in [JavaScript](https://docs.slack.dev/tools/bolt-js) and [Java](https://docs.slack.dev/tools/java-slack-sdk/guides/getting-started-with-bolt) . * [Planning your upgrade](https://docs.slack.dev/block-kit/upgrading-outmoded-dialogs-to-modals/#planning) * [Using blocks to collect richer user input](https://docs.slack.dev/block-kit/upgrading-outmoded-dialogs-to-modals/#using_blocks) * [Creating a modal](https://docs.slack.dev/block-kit/upgrading-outmoded-dialogs-to-modals/#creating) * [Updating and pushing views in modals](https://docs.slack.dev/block-kit/upgrading-outmoded-dialogs-to-modals/#new_methods) * [Prototyping with Block Kit Builder](https://docs.slack.dev/block-kit/upgrading-outmoded-dialogs-to-modals/#builder) * [Upgrading to modals](https://docs.slack.dev/block-kit/upgrading-outmoded-dialogs-to-modals/#upgrading) * [Discovering equivalents for dialog elements](https://docs.slack.dev/block-kit/upgrading-outmoded-dialogs-to-modals/#elements) * [Identifying blocks with `block_id` and `action_id`](https://docs.slack.dev/block-kit/upgrading-outmoded-dialogs-to-modals/#identifying) * [Accessing input values in modals](https://docs.slack.dev/block-kit/upgrading-outmoded-dialogs-to-modals/#accessing_input) * [Handling interactions in modals](https://docs.slack.dev/block-kit/upgrading-outmoded-dialogs-to-modals/#interactions) * [Responding to `view_submission` events](https://docs.slack.dev/block-kit/upgrading-outmoded-dialogs-to-modals/#submissions) * [Passing state in modals](https://docs.slack.dev/block-kit/upgrading-outmoded-dialogs-to-modals/#state) * [Don't rely on `response_url`](https://docs.slack.dev/block-kit/upgrading-outmoded-dialogs-to-modals/#responding) * [Include text in objects rather than as fields](https://docs.slack.dev/block-kit/upgrading-outmoded-dialogs-to-modals/#text) * [Handling closed modals](https://docs.slack.dev/block-kit/upgrading-outmoded-dialogs-to-modals/#closing) * [Next steps](https://docs.slack.dev/block-kit/upgrading-outmoded-dialogs-to-modals/#next) --- # Blocks | Slack Developer Docs [Skip to main content](https://docs.slack.dev/reference/block-kit/blocks/#__docusaurus_skipToContent_fallback) Blocks are a series of components that can be combined to create visually rich and compellingly interactive messages. You can include up to 50 blocks in each message, and 100 blocks in modals or Home tabs. This page describes the JSON payloads that your app can use to generate each block. Select the block you'd like to build: All Name Description Surfaces --- # Block Elements | Slack Developer Docs [Skip to main content](https://docs.slack.dev/reference/block-kit/block-elements/#__docusaurus_skipToContent_fallback) This page lists the JSON payloads that your app can use to generate each element. Select the block element you'd like to build: All All Name Description Blocks Surfaces --- # Date picker element | Slack Developer Docs [Skip to main content](https://docs.slack.dev/reference/block-kit/block-elements/date-picker-element/#__docusaurus_skipToContent_fallback) On this page Example: ![An example of a datepicker element](https://docs.slack.dev/assets/images/bk_datepicker_example-e52ce494f6a609715d9f45fe049c5f48.png) Fields[​](https://docs.slack.dev/reference/block-kit/block-elements/date-picker-element/#fields "Direct link to Fields") ------------------------------------------------------------------------------------------------------------------------- | Field | Type | Description | Required? | | --- | --- | --- | --- | | `type` | String | The type of element. In this case `type` is always `datepicker`. | Required | | `action_id` | String | An identifier for the action triggered when a menu option is selected. You can use this when you receive an interaction payload to [identify the source of the action](https://docs.slack.dev/interactivity/handling-user-interaction#payloads)
. Should be unique among all other `action_id`s in the containing block. Maximum length is 255 characters. | Optional | | `initial_date` | String | The initial date that is selected when the element is loaded. This should be in the format `YYYY-MM-DD`. | Optional | | `confirm` | Object | A [confirm object](https://docs.slack.dev/reference/block-kit/composition-objects/confirmation-dialog-object)
that defines an optional confirmation dialog that appears after a date is selected. | Optional | | `focus_on_load` | Boolean | Indicates whether the element will be set to auto focus within the [`view object`](https://docs.slack.dev/reference/views)
. Only one element can be set to `true`. Defaults to `false`. | Optional | | `placeholder` | Object | A [`plain_text`](https://docs.slack.dev/reference/block-kit/composition-objects/text-object)
only text object that defines the placeholder text shown on the datepicker. Maximum length for the `text` in this field is 150 characters. | Optional | Example[​](https://docs.slack.dev/reference/block-kit/block-elements/date-picker-element/#example "Direct link to Example") ---------------------------------------------------------------------------------------------------------------------------- A section block containing a datepicker element: { "type": "section", "block_id": "section1234", "text": { "type": "mrkdwn", "text": "Pick a date for the deadline." }, "accessory": { "type": "datepicker", "action_id": "datepicker123", "initial_date": "1990-04-28", "placeholder": { "type": "plain_text", "text": "Select a date" } }} [View in Block Kit Builder](https://api.slack.com/tools/block-kit-builder?blocks=%5B%0A%09%7B%0A%09%09%22type%22%3A%20%22section%22%2C%0A%09%09%22block_id%22%3A%20%22section1234%22%2C%0A%09%09%22text%22%3A%20%7B%0A%09%09%09%22type%22%3A%20%22mrkdwn%22%2C%0A%09%09%09%22text%22%3A%20%22Pick%20a%20date%20for%20the%20deadline.%22%0A%09%09%7D%2C%0A%09%09%22accessory%22%3A%20%7B%0A%09%09%09%22type%22%3A%20%22datepicker%22%2C%0A%09%09%09%22action_id%22%3A%20%22datepicker123%22%2C%0A%09%09%09%22initial_date%22%3A%20%221990-04-28%22%2C%0A%09%09%09%22placeholder%22%3A%20%7B%0A%09%09%09%09%22type%22%3A%20%22plain_text%22%2C%0A%09%09%09%09%22text%22%3A%20%22Select%20a%20date%22%0A%09%09%09%7D%0A%09%09%7D%0A%09%7D%0A%5D) * [Fields](https://docs.slack.dev/reference/block-kit/block-elements/date-picker-element/#fields) * [Example](https://docs.slack.dev/reference/block-kit/block-elements/date-picker-element/#example) --- # Checkboxes element | Slack Developer Docs [Skip to main content](https://docs.slack.dev/reference/block-kit/block-elements/checkboxes-element/#__docusaurus_skipToContent_fallback) On this page Example: ![An example of a checkbox element](https://docs.slack.dev/assets/images/bk_checkboxes_example-457b053a75b174a052b22a86d0cb143e.png) Fields[​](https://docs.slack.dev/reference/block-kit/block-elements/checkboxes-element/#fields "Direct link to Fields") ------------------------------------------------------------------------------------------------------------------------ | Field | Type | Description | Required? | | --- | --- | --- | --- | | `type` | String | The type of element. In this case `type` is always `checkboxes`. | Required | | `action_id` | String | An identifier for the action triggered when the checkbox group is changed. You can use this when you receive an interaction payload to [identify the source of the action](https://docs.slack.dev/interactivity/handling-user-interaction#payloads)
. Should be unique among all other `action_id`s in the containing block. Maximum length is 255 characters. | Optional | | `options` | Object\[\] | An array of [option objects](https://docs.slack.dev/reference/block-kit/composition-objects/option-object)
. A maximum of 10 options are allowed. | Required | | `initial_options` | Object\[\] | An array of [option objects](https://docs.slack.dev/reference/block-kit/composition-objects/option-object)
that exactly matches one or more of the options within `options`. These options will be selected when the checkbox group initially loads. | Optional | | `confirm` | Object | A [confirm object](https://docs.slack.dev/reference/block-kit/composition-objects/confirmation-dialog-object)
that defines an optional confirmation dialog that appears after clicking one of the checkboxes in this element. | Optional | | `focus_on_load` | Boolean | Indicates whether the element will be set to auto focus within the [`view object`](https://docs.slack.dev/reference/views)
. Only one element can be set to `true`. Defaults to `false`. | Optional | Example[​](https://docs.slack.dev/reference/block-kit/block-elements/checkboxes-element/#example "Direct link to Example") --------------------------------------------------------------------------------------------------------------------------- A section block containing a group of checkboxes: { "type": "modal", "title": { "type": "plain_text", "text": "My App", "emoji": true }, "submit": { "type": "plain_text", "text": "Submit", "emoji": true }, "close": { "type": "plain_text", "text": "Cancel", "emoji": true }, "blocks": [ { "type": "section", "text": { "type": "plain_text", "text": "Check out these charming checkboxes" }, "accessory": { "type": "checkboxes", "action_id": "this_is_an_action_id", "initial_options": [{ "value": "A1", "text": { "type": "plain_text", "text": "Checkbox 1" } }], "options": [ { "value": "A1", "text": { "type": "plain_text", "text": "Checkbox 1" } }, { "value": "A2", "text": { "type": "plain_text", "text": "Checkbox 2" }, "description": { "type": "mrkdwn", "text": "*A description of option two*" }, } ] } } ]} [View in Block Kit Builder](https://api.slack.com/tools/block-kit-builder?mode=modal&view=%7B%22type%22%3A%22modal%22%2C%22title%22%3A%7B%22type%22%3A%22plain_text%22%2C%22text%22%3A%22My%20App%22%2C%22emoji%22%3Atrue%7D%2C%22submit%22%3A%7B%22type%22%3A%22plain_text%22%2C%22text%22%3A%22Submit%22%2C%22emoji%22%3Atrue%7D%2C%22close%22%3A%7B%22type%22%3A%22plain_text%22%2C%22text%22%3A%22Cancel%22%2C%22emoji%22%3Atrue%7D%2C%22blocks%22%3A%5B%7B%22type%22%3A%22section%22%2C%22text%22%3A%7B%22type%22%3A%22mrkdwn%22%2C%22text%22%3A%22Hello%2C%20Assistant%20to%20the%20Regional%20Manager%20Dwight!%20*Michael%20Scott*%20wants%20to%20know%20where%20you%27d%20like%20to%20take%20the%20Paper%20Company%20investors%20to%20dinner%20tonight.%5Cn%5Cn%22%7D%7D%2C%7B%22type%22%3A%22input%22%2C%22element%22%3A%7B%22type%22%3A%22checkboxes%22%2C%22options%22%3A%5B%7B%22text%22%3A%7B%22type%22%3A%22plain_text%22%2C%22text%22%3A%22Gary%20Danko%22%2C%22emoji%22%3Atrue%7D%2C%22value%22%3A%22value-0%22%7D%2C%7B%22text%22%3A%7B%22type%22%3A%22plain_text%22%2C%22text%22%3A%22Chipotle%22%2C%22emoji%22%3Atrue%7D%2C%22value%22%3A%22value-1%22%7D%2C%7B%22text%22%3A%7B%22type%22%3A%22plain_text%22%2C%22text%22%3A%22Slack%20Cafe%22%2C%22emoji%22%3Atrue%7D%2C%22value%22%3A%22value-2%22%7D%5D%7D%2C%22label%22%3A%7B%22type%22%3A%22plain_text%22%2C%22text%22%3A%22Please%20select%20all%20restaurants%20you%27d%20be%20willing%20to%20eat%20at%3A%22%2C%22emoji%22%3Atrue%7D%7D%5D%7D) * [Fields](https://docs.slack.dev/reference/block-kit/block-elements/checkboxes-element/#fields) * [Example](https://docs.slack.dev/reference/block-kit/block-elements/checkboxes-element/#example) --- # Datetime picker element | Slack Developer Docs [Skip to main content](https://docs.slack.dev/reference/block-kit/block-elements/datetime-picker-element/#__docusaurus_skipToContent_fallback) On this page Example: ![An example of a date time picker element](https://docs.slack.dev/assets/images/bk_datetimepicker_example-a622bc51448ca53c40c89375e85213f0.svg) Fields[​](https://docs.slack.dev/reference/block-kit/block-elements/datetime-picker-element/#fields "Direct link to Fields") ----------------------------------------------------------------------------------------------------------------------------- | Fields | Type | Description | Required? | | --- | --- | --- | --- | | `type` | String | The type of element. In this case `type` is always `datetimepicker`. | Required | | `action_id` | String | An identifier for the input value when the parent modal is submitted. You can use this when you receive a `view_submission` payload [to identify the value of the input element](https://docs.slack.dev/surfaces/modals#interactions)
. Should be unique among all other `action_id`s in the containing block. Maximum length is 255 characters. | Optional | | `initial_date_time` | Integer | The initial date and time that is selected when the element is loaded, represented as a UNIX timestamp in seconds. This should be in the format of 10 digits, for example `1628633820` represents the date and time August 10th, 2021 at 03:17pm PST. | Optional | | `confirm` | Object | A [confirm object](https://docs.slack.dev/reference/block-kit/composition-objects/confirmation-dialog-object)
that defines an optional confirmation dialog that appears after a time is selected. | Optional | | `focus_on_load` | Boolean | Indicates whether the element will be set to auto focus within the [`view object`](https://docs.slack.dev/reference/views)
. Only one element can be set to `true`. Defaults to `false`. | Optional | Usage Info[​](https://docs.slack.dev/reference/block-kit/block-elements/datetime-picker-element/#usage-info "Direct link to Usage Info") ----------------------------------------------------------------------------------------------------------------------------------------- _Interactive component_ - see our [guide to enabling interactivity](https://docs.slack.dev/interactivity/handling-user-interaction) . On desktop clients, the time picker will take the form of a dropdown list and the date picker will take the form of a dropdown calendar. Both options will have free-text entry for precise choices. On mobile clients, the time picker and date picker will use native UIs. Example[​](https://docs.slack.dev/reference/block-kit/block-elements/datetime-picker-element/#example "Direct link to Example") -------------------------------------------------------------------------------------------------------------------------------- An input block containing a datetime picker element: { "type": "input", "element": { "type": "datetimepicker", "action_id": "datetimepicker-action" }, "hint": { "type": "plain_text", "text": "This is some hint text", "emoji": true }, "label": { "type": "plain_text", "text": "Start date", "emoji": true }} * [Fields](https://docs.slack.dev/reference/block-kit/block-elements/datetime-picker-element/#fields) * [Usage Info](https://docs.slack.dev/reference/block-kit/block-elements/datetime-picker-element/#usage-info) * [Example](https://docs.slack.dev/reference/block-kit/block-elements/datetime-picker-element/#example) --- # Divider block | Slack Developer Docs [Skip to main content](https://docs.slack.dev/reference/block-kit/blocks/divider-block/#__docusaurus_skipToContent_fallback) On this page Fields[​](https://docs.slack.dev/reference/block-kit/blocks/divider-block/#fields "Direct link to Fields") ----------------------------------------------------------------------------------------------------------- | Field | Type | Description | Required? | | --- | --- | --- | --- | | `type` | String | The type of block. For a divider block, `type` is always `divider`. | Required | | `block_id` | String | A unique identifier for a block. If not specified, one will be generated. Maximum length for this field is 255 characters. `block_id` should be unique for each message and each iteration of a message. If a message is updated, use a new `block_id`. | Optional | Usage Info[​](https://docs.slack.dev/reference/block-kit/blocks/divider-block/#usage-info "Direct link to Usage Info") ----------------------------------------------------------------------------------------------------------------------- A content divider, like an `
`, to split up different blocks inside of a message. The divider block is nice and neat, requiring only a `type`. Example[​](https://docs.slack.dev/reference/block-kit/blocks/divider-block/#example "Direct link to Example") -------------------------------------------------------------------------------------------------------------- ![An example of a divider block](https://docs.slack.dev/assets/images/bk_divider_example-4dbbcc819b668aa7b86c161a0a4c48ae.png) [View in Block Kit Builder](https://app.slack.com/block-kit-builder/#%7B%22blocks%22:%5B%7B%22type%22:%22divider%22,%22block_id%22:%22divider1%22%7D%5D%7D) { "type": "divider"} * [Fields](https://docs.slack.dev/reference/block-kit/blocks/divider-block/#fields) * [Usage Info](https://docs.slack.dev/reference/block-kit/blocks/divider-block/#usage-info) * [Example](https://docs.slack.dev/reference/block-kit/blocks/divider-block/#example) --- # File block | Slack Developer Docs [Skip to main content](https://docs.slack.dev/reference/block-kit/blocks/file-block/#__docusaurus_skipToContent_fallback) On this page Fields[​](https://docs.slack.dev/reference/block-kit/blocks/file-block/#fields "Direct link to Fields") -------------------------------------------------------------------------------------------------------- | Field | Type | Description | Required? | | --- | --- | --- | --- | | `type` | String | The type of block. For a file block, `type` is always `file`. | Required | | `external_id` | String | The external unique ID for this file. | Required | | `source` | String | At the moment, `source` will always be `remote` for a remote file. | Required | | `block_id` | String | A unique identifier for a block. If not specified, one will be generated. Maximum length for this field is 255 characters. `block_id` should be unique for each message and each iteration of a message. If a message is updated, use a new `block_id`. | Optional | Usage info[​](https://docs.slack.dev/reference/block-kit/blocks/file-block/#usage-info "Direct link to Usage info") -------------------------------------------------------------------------------------------------------------------- You can't add this block to app surfaces directly, but it will show up when [retrieving messages](https://docs.slack.dev/messaging/retrieving-messages) that contain remote files. If you want to add remote files to messages, [follow our guide](https://docs.slack.dev/messaging/working-with-files#remote) . Example[​](https://docs.slack.dev/reference/block-kit/blocks/file-block/#examples "Direct link to Example") ------------------------------------------------------------------------------------------------------------ ![An example of a file block](https://docs.slack.dev/assets/images/file_upload_remote_file-c5df41fd6e71a0e3f01685d46e10b19d.png) { "type": "file", "external_id": "ABCD1", "source": "remote",} * [Fields](https://docs.slack.dev/reference/block-kit/blocks/file-block/#fields) * [Usage info](https://docs.slack.dev/reference/block-kit/blocks/file-block/#usage-info) * [Example](https://docs.slack.dev/reference/block-kit/blocks/file-block/#examples) --- # Confirmation dialog object | Slack Developer Docs [Skip to main content](https://docs.slack.dev/reference/block-kit/composition-objects/confirmation-dialog-object/#__docusaurus_skipToContent_fallback) On this page **Defines a dialog that adds a confirmation step to interactive elements.** An object that defines a dialog that provides a confirmation step to any interactive element. This dialog will ask the user to confirm their action by offering a confirm and deny buttons. #### Fields[​](https://docs.slack.dev/reference/block-kit/composition-objects/confirmation-dialog-object/#fields "Direct link to Fields") | Field | Type | Description | Required? | | --- | --- | --- | --- | | `title` | Object | A [`plain_text`](https://docs.slack.dev/reference/block-kit/composition-objects/confirmation-dialog-object/#text)
text object that defines the dialog's title. Maximum length for this field is 100 characters. | Required | | `text` | Object | A [`plain_text`](https://docs.slack.dev/reference/block-kit/composition-objects/confirmation-dialog-object/#text)
text object that defines the explanatory text that appears in the confirm dialog. Maximum length for the `text` in this field is 300 characters. | Required | | `confirm` | Object | A [`plain_text`](https://docs.slack.dev/reference/block-kit/composition-objects/confirmation-dialog-object/#text)
text object to define the text of the button that confirms the action. Maximum length for the `text` in this field is 30 characters. | Required | | `deny` | Object | A [`plain_text`](https://docs.slack.dev/reference/block-kit/composition-objects/confirmation-dialog-object/#text)
text object to define the text of the button that cancels the action. Maximum length for the `text` in this field is 30 characters. | Required | | `style` | String | Defines the color scheme applied to the `confirm` button. A value of `danger` will display the button with a red background on desktop, or red text on mobile. A value of `primary` will display the button with a green background on desktop, or blue text on mobile. If this field is not provided, the default value will be `primary`. | Optional | #### Example[​](https://docs.slack.dev/reference/block-kit/composition-objects/confirmation-dialog-object/#example "Direct link to Example") { "title": { "type": "plain_text", "text": "Are you sure?" }, "text": { "type": "plain_text", "text": "Wouldn't you prefer a good game of chess?" }, "confirm": { "type": "plain_text", "text": "Do it" }, "deny": { "type": "plain_text", "text": "Stop, I've changed my mind!" }} [View in Block Kit Builder](https://api.slack.com/tools/block-kit-builder?mode=message&blocks=%5B%7B%22type%22%3A%22section%22%2C%22text%22%3A%7B%22type%22%3A%22mrkdwn%22%2C%22text%22%3A%22You%20have%20a%20new%20request%3A%5Cn*%3CfakeLink.toEmployeeProfile.com%7CFred%20Enriquez%20-%20New%20device%20request%3E*%22%7D%7D%2C%7B%22type%22%3A%22section%22%2C%22fields%22%3A%5B%7B%22type%22%3A%22mrkdwn%22%2C%22text%22%3A%22*Type%3A*%5CnComputer%20(laptop)%22%7D%2C%7B%22type%22%3A%22mrkdwn%22%2C%22text%22%3A%22*When%3A*%5CnSubmitted%20Aut%2010%22%7D%2C%7B%22type%22%3A%22mrkdwn%22%2C%22text%22%3A%22*Last%20Update%3A*%5CnMar%2010%2C%202015%20(3%20years%2C%205%20months)%22%7D%2C%7B%22type%22%3A%22mrkdwn%22%2C%22text%22%3A%22*Reason%3A*%5CnAll%20vowel%20keys%20aren%27t%20working.%22%7D%2C%7B%22type%22%3A%22mrkdwn%22%2C%22text%22%3A%22*Specs%3A*%5Cn%5C%22Cheetah%20Pro%2015%5C%22%20-%20Fast%2C%20really%20fast%5C%22%22%7D%5D%7D%2C%7B%22type%22%3A%22actions%22%2C%22elements%22%3A%5B%7B%22type%22%3A%22button%22%2C%22text%22%3A%7B%22type%22%3A%22plain_text%22%2C%22emoji%22%3Atrue%2C%22text%22%3A%22Approve%22%7D%2C%22confirm%22%3A%7B%22title%22%3A%7B%22type%22%3A%22plain_text%22%2C%22text%22%3A%22Are%20you%20sure%3F%22%7D%2C%22text%22%3A%7B%22type%22%3A%22mrkdwn%22%2C%22text%22%3A%22Wouldn%27t%20you%20prefer%20a%20good%20game%20of%20_chess_%3F%22%7D%2C%22confirm%22%3A%7B%22type%22%3A%22plain_text%22%2C%22text%22%3A%22Do%20it%22%7D%2C%22deny%22%3A%7B%22type%22%3A%22plain_text%22%2C%22text%22%3A%22Stop%2C%20I%27ve%20changed%20my%20mind!%22%7D%7D%2C%22style%22%3A%22primary%22%2C%22value%22%3A%22click_me_123%22%7D%2C%7B%22type%22%3A%22button%22%2C%22text%22%3A%7B%22type%22%3A%22plain_text%22%2C%22emoji%22%3Atrue%2C%22text%22%3A%22Deny%22%7D%2C%22style%22%3A%22danger%22%2C%22value%22%3A%22click_me_123%22%7D%5D%7D%5D) * * * --- # Button element | Slack Developer Docs [Skip to main content](https://docs.slack.dev/reference/block-kit/block-elements/button-element/#__docusaurus_skipToContent_fallback) On this page Example: ![Three buttons showing default, primary, and danger color styles](data:image/png;base64,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) Fields[​](https://docs.slack.dev/reference/block-kit/block-elements/button-element/#fields "Direct link to Fields") -------------------------------------------------------------------------------------------------------------------- | Field | Type | Description | Required? | | --- | --- | --- | --- | | `type` | String | The type of element. In this case `type` is always `button`. | Required | | `text` | Object | A [text object](https://docs.slack.dev/reference/block-kit/composition-objects/text-object)
that defines the button's text. Can only be of `type: plain_text`. `text` may truncate with ~30 characters. Maximum length for the `text` in this field is 75 characters. | Required | | `action_id` | String | An identifier for this action. You can use this when you receive an interaction payload to [identify the source of the action](https://docs.slack.dev/interactivity/handling-user-interaction#payloads)
. Should be unique among all other `action_id`s in the containing block. Maximum length is 255 characters. | Optional | | `url` | String | A URL to load in the user's browser when the button is clicked. Maximum length is 3000 characters. If you're using `url`, you'll still receive an [interaction payload](https://docs.slack.dev/interactivity/handling-user-interaction#payloads)
and will need to [send an acknowledgement response](https://docs.slack.dev/interactivity/handling-user-interaction#acknowledgment_response)
. | Optional | | `value` | String | The value to send along with the [interaction payload](https://docs.slack.dev/interactivity/handling-user-interaction#payloads)
. Maximum length is 2000 characters. | Optional | | `style` | String | Decorates buttons with alternative visual color schemes. Use this option with restraint.`primary` gives buttons a green outline and text, ideal for affirmation or confirmation actions. `primary` should only be used for one button within a set.`danger` gives buttons a red outline and text, and should be used when the action is destructive. Use `danger` even more sparingly than `primary`.If you don't include this field, the default button style will be used. | Optional | | `confirm` | Object | A [confirm object](https://docs.slack.dev/reference/block-kit/composition-objects/confirmation-dialog-object)
that defines an optional confirmation dialog after the button is clicked. | Optional | | `accessibility_label` | String | A label for longer descriptive text about a button element. This label will be read out by screen readers _instead of_ the button [`text`](https://docs.slack.dev/reference/block-kit/composition-objects/text-object)
object. Maximum length is 75 characters. | Optional | Examples[​](https://docs.slack.dev/reference/block-kit/block-elements/button-element/#examples "Direct link to Examples") -------------------------------------------------------------------------------------------------------------------------- A regular interactive button: { "type": "button", "text": { "type": "plain_text", "text": "Click Me" }, "value": "click_me_123", "action_id": "button"} A button with a `primary` `style` attribute: { "type": "button", "text": { "type": "plain_text", "text": "Save" }, "style": "primary", "value": "click_me_123", "action_id": "button"} A link button: { "type": "button", "text": { "type": "plain_text", "text": "Link Button" }, "url": "https://docs.slack.dev/block-kit"} [View in Block Kit Builder](https://api.slack.com/tools/block-kit-builder?blocks=%5B%0A%09%7B%0A%09%09%22type%22%3A%20%22section%22%2C%0A%09%09%22text%22%3A%20%7B%0A%09%09%09%22type%22%3A%20%22mrkdwn%22%2C%0A%09%09%09%22text%22%3A%20%22This%20is%20a%20section%20block%20with%20a%20button.%22%0A%09%09%7D%2C%0A%09%09%22accessory%22%3A%20%7B%0A%09%09%09%22type%22%3A%20%22button%22%2C%0A%09%09%09%22text%22%3A%20%7B%0A%09%09%09%09%22type%22%3A%20%22plain_text%22%2C%0A%09%09%09%09%22text%22%3A%20%22Click%20Me%22%0A%09%09%09%7D%2C%0A%09%09%09%22value%22%3A%20%22click_me_123%22%2C%0A%09%09%09%22action_id%22%3A%20%22button%22%0A%09%09%7D%0A%09%7D%2C%0A%09%7B%0A%09%09%22type%22%3A%20%22actions%22%2C%0A%09%09%22block_id%22%3A%20%22actionblock789%22%2C%0A%09%09%22elements%22%3A%20%5B%0A%09%09%09%7B%0A%09%09%09%09%22type%22%3A%20%22button%22%2C%0A%09%09%09%09%22text%22%3A%20%7B%0A%09%09%09%09%09%22type%22%3A%20%22plain_text%22%2C%0A%09%09%09%09%09%22text%22%3A%20%22Primary%20Button%22%0A%09%09%09%09%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22style%22%3A%20%22primary%22%2C%0A%09%09%09%09%22value%22%3A%20%22click_me_456%22%0A%09%09%09%7D%2C%0A%09%09%09%7B%0A%09%09%09%09%22type%22%3A%20%22button%22%2C%0A%09%09%09%09%22text%22%3A%20%7B%0A%09%09%09%09%09%22type%22%3A%20%22plain_text%22%2C%0A%09%09%09%09%09%22text%22%3A%20%22Link%20Button%22%0A%09%09%09%09%7D%2C%0A%09%09%09%09%22url%22%3A%20%22https%3A%2F%2Fapi.slack.com%2Fblock-kit%22%0A%09%09%09%7D%0A%09%09%5D%0A%09%7D%0A%5D) * [Fields](https://docs.slack.dev/reference/block-kit/block-elements/button-element/#fields) * [Examples](https://docs.slack.dev/reference/block-kit/block-elements/button-element/#examples) --- # File input element | Slack Developer Docs [Skip to main content](https://docs.slack.dev/reference/block-kit/block-elements/file-input-element/#__docusaurus_skipToContent_fallback) On this page Fields[​](https://docs.slack.dev/reference/block-kit/block-elements/file-input-element/#fields "Direct link to Fields") ------------------------------------------------------------------------------------------------------------------------ | Fields | Type | Description | Required? | | --- | --- | --- | --- | | `type` | String | The type of element. In this case `type` is always `file_input`. | Required | | `action_id` | String | An identifier for the input value when the parent modal is submitted. You can use this when you receive a `view_submission` payload [to identify the value of the input element](https://docs.slack.dev/surfaces/modals#interactions)
. Should be unique among all other `action_id`s in the containing block. Maximum length is 255 characters. | Optional | | `filetypes` | String\[\] | An array of valid [file extensions](https://docs.slack.dev/reference/objects/file-object#types)
that will be accepted for this element. All file extensions will be accepted if filetypes is not specified. This validation is provided for convenience only, and you should perform your own file type validation based on what you expect to receive. | Optional | | `max_files` | Integer | Maximum number of files that can be uploaded for this `file_input` element. Minimum of 1, maximum of 10. Defaults to 10 if not specified. | Optional | Usage info[​](https://docs.slack.dev/reference/block-kit/block-elements/file-input-element/#usage-info "Direct link to Usage info") ------------------------------------------------------------------------------------------------------------------------------------ In order to use the `file_input` element within your app, your app must have the [`files:read`](https://docs.slack.dev/reference/scopes/files.read) scope. There is a 10MB file size limit. Example[​](https://docs.slack.dev/reference/block-kit/block-elements/file-input-element/#example "Direct link to Example") --------------------------------------------------------------------------------------------------------------------------- An [input block](https://docs.slack.dev/reference/block-kit/blocks/input-block) containing a `file_input` input element. { "type": "input", "block_id": "input_block_id", "label": { "type": "plain_text", "text": "Upload Files" }, "element": { "type": "file_input", "action_id": "file_input_action_id_1", "filetypes": ["jpg", "png"], "max_files": 5, },} * [Fields](https://docs.slack.dev/reference/block-kit/block-elements/file-input-element/#fields) * [Usage info](https://docs.slack.dev/reference/block-kit/block-elements/file-input-element/#usage-info) * [Example](https://docs.slack.dev/reference/block-kit/block-elements/file-input-element/#example) --- # Context block | Slack Developer Docs [Skip to main content](https://docs.slack.dev/reference/block-kit/blocks/context-block/#__docusaurus_skipToContent_fallback) On this page Fields[​](https://docs.slack.dev/reference/block-kit/blocks/context-block/#fields "Direct link to Fields") ----------------------------------------------------------------------------------------------------------- | Field | Type | Description | Required? | | --- | --- | --- | --- | | `type` | String | The type of block. For a context block, `type` is always `context`. | Required | | `elements` | Object\[\] | An array of [image elements](https://docs.slack.dev/reference/block-kit/block-elements/image-element)
and [text objects](https://docs.slack.dev/reference/block-kit/composition-objects/text-object)
. Maximum number of items is 10. | Required | | `block_id` | String | A unique identifier for a block. If not specified, one will be generated. Maximum length for this field is 255 characters. `block_id` should be unique for each message and each iteration of a message. If a message is updated, use a new `block_id`. | Optional | Example[​](https://docs.slack.dev/reference/block-kit/blocks/context-block/#examples "Direct link to Example") --------------------------------------------------------------------------------------------------------------- ![An example of a context block](https://docs.slack.dev/assets/images/bk_context_example-140fdfe29e9adab4eac0935417aa91e5.png) [View in Block Kit Builder](https://app.slack.com/block-kit-builder/#%7B%22blocks%22:%5B%7B%22type%22:%22context%22,%22elements%22:%5B%7B%22type%22:%22image%22,%22image_url%22:%22https://image.freepik.com/free-photo/red-drawing-pin_1156-445.jpg%22,%22alt_text%22:%22images%22%7D,%7B%22type%22:%22mrkdwn%22,%22text%22:%22Location:%20*Dogpatch*%22%7D%5D%7D%5D%7D) { "type": "context", "elements": [ { "type": "image", "image_url": "https://image.freepik.com/free-photo/red-drawing-pin_1156-445.jpg", "alt_text": "images" }, { "type": "mrkdwn", "text": "Location: **Dogpatch**" } ]} * [Fields](https://docs.slack.dev/reference/block-kit/blocks/context-block/#fields) * [Example](https://docs.slack.dev/reference/block-kit/blocks/context-block/#examples) --- # Header block | Slack Developer Docs [Skip to main content](https://docs.slack.dev/reference/block-kit/blocks/header-block/#__docusaurus_skipToContent_fallback) On this page Fields[​](https://docs.slack.dev/reference/block-kit/blocks/header-block/#fields "Direct link to Fields") ---------------------------------------------------------------------------------------------------------- | Field | Type | Description | Required? | | --- | --- | --- | --- | | `type` | String | The type of block. For this block, type will always be `header`. | Required | | `text` | Object | The text for the block, in the form of a [`plain_text` text object](https://docs.slack.dev/reference/block-kit/composition-objects/text-object)
. Maximum length for the `text` in this field is 150 characters. | Required | | `block_id` | String | A unique identifier for a block. If not specified, one will be generated. Maximum length for this field is 255 characters. `block_id` should be unique for each message and each iteration of a message. If a message is updated, use a new `block_id`. | Optional | Usage info[​](https://docs.slack.dev/reference/block-kit/blocks/header-block/#usage-info "Direct link to Usage info") ---------------------------------------------------------------------------------------------------------------------- A `header` is a plain-text block that displays in a larger, bold font. Use it to delineate between different groups of content in your app's surfaces. Example[​](https://docs.slack.dev/reference/block-kit/blocks/header-block/#examples "Direct link to Example") -------------------------------------------------------------------------------------------------------------- ![An example of a header block](https://docs.slack.dev/assets/images/bk_header_example-9251762e2166b86493aed5909e781a39.png) [View in Block Kit Builder](https://app.slack.com/block-kit-builder/#%7B%22blocks%22:%5B%7B%22type%22:%22header%22,%22text%22:%7B%22type%22:%22plain_text%22,%22text%22:%22A%20Heartfelt%20Header%22%7D%7D%5D%7D) { "type": "header", "text": { "type": "plain_text", "text": "A Heartfelt Header" }} * [Fields](https://docs.slack.dev/reference/block-kit/blocks/header-block/#fields) * [Usage info](https://docs.slack.dev/reference/block-kit/blocks/header-block/#usage-info) * [Example](https://docs.slack.dev/reference/block-kit/blocks/header-block/#examples) --- # Composition objects | Slack Developer Docs [Skip to main content](https://docs.slack.dev/reference/block-kit/composition-objects/#__docusaurus_skipToContent_fallback) Composition objects can be used inside of [block elements](https://docs.slack.dev/reference/block-kit/block-elements) and certain [message payload](https://docs.slack.dev/messaging#payloads) fields. They are common JSON object patterns that you'll encounter frequently when [building blocks](https://docs.slack.dev/block-kit) or [composing messages](https://docs.slack.dev/messaging) . The list of fields and values for each object describe the JSON that apps can use to generate each object. Name Description --- # Dispatch action configuration object | Slack Developer Docs [Skip to main content](https://docs.slack.dev/reference/block-kit/composition-objects/dispatch-action-configuration-object/#__docusaurus_skipToContent_fallback) On this page **Defines when a [plain-text input element](https://docs.slack.dev/reference/block-kit/block-elements/plain-text-input-element) will return a [`block_actions`](https://docs.slack.dev/reference/interaction-payloads/block_actions-payload) interaction payload.** #### Fields[​](https://docs.slack.dev/reference/block-kit/composition-objects/dispatch-action-configuration-object/#fields "Direct link to Fields") | Field | Type | Description | Required? | | --- | --- | --- | --- | | `trigger_actions_on` | String\[\] | An array of interaction types that you would like to receive a [`block_actions` payload](https://docs.slack.dev/reference/interaction-payloads/block_actions-payload)
for. Should be one or both of:`on_enter_pressed` — payload is dispatched when user presses the enter key while the input is in focus. Hint text will appear underneath the input explaining to the user to press enter to submit.`on_character_entered` — payload is dispatched when a character is entered (or removed) in the input. | Optional | #### Example[​](https://docs.slack.dev/reference/block-kit/composition-objects/dispatch-action-configuration-object/#example "Direct link to Example") { "type": "input", "dispatch_action": true, "element": { "type": "plain_text_input", "multiline": true, "dispatch_action_config": { "trigger_actions_on": [ "on_character_entered" ] } }, "label": { "type": "plain_text", "text": "This is a multiline plain-text input", "emoji": true }} * * * --- # Trigger object | Slack Developer Docs [Skip to main content](https://docs.slack.dev/reference/block-kit/composition-objects/trigger-object/#__docusaurus_skipToContent_fallback) On this page **Defines an object containing trigger information.** #### Fields[​](https://docs.slack.dev/reference/block-kit/composition-objects/trigger-object/#fields "Direct link to Fields") | Field | Type | Description | Required? | | --- | --- | --- | --- | | `url` | String | A [link trigger URL](https://docs.slack.dev/tools/deno-slack-sdk/guides/creating-link-triggers)
. Must be associated with a valid trigger. | Required | | `customizable_input_parameters` | Object\[\] | An array of input parameter objects. Each specified name must match an input parameter defined on the workflow of the provided trigger (url), and the input parameter mapping on the trigger must be set as `customizable: true`. Each specified value must match the type defined by the workflow input parameter of the matching name. | Optional | The values used for these `customizable_input_parameters` may be visible client-side to end users. You should not share sensitive information or secrets via these input parameters. #### Example[​](https://docs.slack.dev/reference/block-kit/composition-objects/trigger-object/#example "Direct link to Example") { "url": "https://slack.com/shortcuts/Ft0123ABC456/123...xyz", "customizable_input_parameters": [ { "name": "input_parameter_a", "value": "Value for input param A" }, { "name": "input_parameter_b", "value": "Value for input param B" } ]} * * * --- # Email input element | Slack Developer Docs [Skip to main content](https://docs.slack.dev/reference/block-kit/block-elements/email-input-element/#__docusaurus_skipToContent_fallback) On this page Fields[​](https://docs.slack.dev/reference/block-kit/block-elements/email-input-element/#fields "Direct link to Fields") ------------------------------------------------------------------------------------------------------------------------- | Fields | Type | Description | Required? | | --- | --- | --- | --- | | `type` | String | The type of element. In this case `type` is always `email_text_input`. | Required | | `action_id` | String | An identifier for the input value when the parent modal is submitted. You can use this when you receive a `view_submission` payload [to identify the value of the input element](https://docs.slack.dev/surfaces/modals#interactions)
. Should be unique among all other `action_id`s in the containing block. Maximum length is 255 characters. | Optional | | `initial_value` | String | The initial value in the email input when it is loaded. | Optional | | `dispatch_action_config` | Object | A [dispatch configuration object](https://docs.slack.dev/reference/block-kit/composition-objects/dispatch-action-configuration-object)
that determines when during text input the element returns a [`block_actions` payload](https://docs.slack.dev/reference/interaction-payloads/block_actions-payload)
. | Optional | | `focus_on_load` | Boolean | Indicates whether the element will be set to auto focus within the [`view object`](https://docs.slack.dev/reference/views)
. Only one element can be set to `true`. Defaults to `false`. | Optional | | `placeholder` | Object | A [`plain_text`](https://docs.slack.dev/reference/block-kit/composition-objects/text-object)
only text object that defines the placeholder text shown in the email input. Maximum length for the `text` in this field is 150 characters. | Optional | Example[​](https://docs.slack.dev/reference/block-kit/block-elements/email-input-element/#example "Direct link to Example") ---------------------------------------------------------------------------------------------------------------------------- An input block containing a email-text input element. { "type": "input", "block_id": "input123", "label": { "type": "plain_text", "text": "Email Address" }, "element": { "type": "email_text_input", "action_id": "email_text_input-action", "placeholder": { "type": "plain_text", "text": "Enter an email" } }} * [Fields](https://docs.slack.dev/reference/block-kit/block-elements/email-input-element/#fields) * [Example](https://docs.slack.dev/reference/block-kit/block-elements/email-input-element/#example) --- # Text object | Slack Developer Docs [Skip to main content](https://docs.slack.dev/reference/block-kit/composition-objects/text-object/#__docusaurus_skipToContent_fallback) On this page **Defines an object containing some text.** Formatted either as `plain_text` or using [`mrkdwn`](https://docs.slack.dev/messaging/formatting-message-text) , our proprietary contribution to the much beloved [Markdown standard](https://xkcd.com/927/) . #### Fields[​](https://docs.slack.dev/reference/block-kit/composition-objects/text-object/#fields "Direct link to Fields") | Field | Type | Description | Required? | | --- | --- | --- | --- | | `type` | String | The formatting to use for this text object. Can be one of `plain_text`or `mrkdwn`. | Required | | `text` | String | The text for the block. This field accepts any of the standard [text formatting markup](https://docs.slack.dev/messaging/formatting-message-text)
when `type` is `mrkdwn`. The minimum length is 1 and maximum length is 3000 characters. | Required | | `emoji` | Boolean | Indicates whether emojis in a text field should be escaped into the colon emoji format. This field is only usable when `type` is `plain_text`. | Optional | | `verbatim` | Boolean | When set to `false` (as is default) URLs will be auto-converted into links, conversation names will be link-ified, and certain mentions will be [automatically parsed](https://docs.slack.dev/messaging/formatting-message-text#automatic-parsing)
. When set to `true`, Slack will continue to process all markdown formatting and [manual parsing strings](https://docs.slack.dev/messaging/formatting-message-text#advanced)
, but it won’t modify any plain-text content. For example, channel names will not be hyperlinked. This field is only usable when `type` is `mrkdwn`. | | #### Example[​](https://docs.slack.dev/reference/block-kit/composition-objects/text-object/#example "Direct link to Example") { "type": "mrkdwn", "text": "A message *with some bold text* and _some italicized text_."} [View in Block Kit Builder](https://api.slack.com/tools/block-kit-builder?mode=message&blocks=%5B%7B%22type%22%3A%22section%22%2C%22text%22%3A%7B%22type%22%3A%22mrkdwn%22%2C%22text%22%3A%22A%20message%20*with%20some%20bold%20text*%20and%20_some%20italicized%20text_.%22%7D%7D%5D) * * * --- # Slack file object | Slack Developer Docs [Skip to main content](https://docs.slack.dev/reference/block-kit/composition-objects/slack-file-object/#__docusaurus_skipToContent_fallback) On this page **Defines an object containing Slack file information to be used in an image block or image element.** This [file](https://docs.slack.dev/reference/objects/file-object) must be an image and you must provide either the URL or ID. In addition, the user posting these blocks must have access to this file. If both are provided then the payload will be rejected. Currently only `png`, `jpg`, `jpeg`, and `gif` Slack image files are supported. #### Fields[​](https://docs.slack.dev/reference/block-kit/composition-objects/slack-file-object/#fields "Direct link to Fields") | Field | Type | Description | Required? | | --- | --- | --- | --- | | `url` | string | This URL can be the `url_private` or the `permalink` of the Slack file. | Optional | | `id` | string | Slack ID of the file. | Optional | #### Example[​](https://docs.slack.dev/reference/block-kit/composition-objects/slack-file-object/#example "Direct link to Example") { "slack_file": { "url": "https://files.slack.com/files-pri/T0123456-F0123456/xyz.png", }} { "slack_file": { "id": "F0123456", }} --- # Markdown block | Slack Developer Docs [Skip to main content](https://docs.slack.dev/reference/block-kit/blocks/markdown-block/#__docusaurus_skipToContent_fallback) On this page Fields[​](https://docs.slack.dev/reference/block-kit/blocks/markdown-block/#fields "Direct link to Fields") ------------------------------------------------------------------------------------------------------------ | Field | Type | Description | Required? | | --- | --- | --- | --- | | `type` | String | The type of block. For a markdown block, `type` is always `markdown`. | Required | | `text` | String | The standard markdown-formatted text. Limit 12,000 characters max. | Required | | `block_id` | String | The `block_id` is ignored in markdown blocks and will not be retained. | Optional | The following are supported `markdown` types. | Markdown Type | Example | Result | | --- | --- | --- | | Bold | `**this is bold**` or
`__this is bold__` | **this is bold** | | Italic | `*this text is italicized*` or
`_this text is italicized_` | _this text is italicized_ | | Bold and nested italic | `**this text is _extremely_ important**` | **this text is _extremely_ important** | | All bold and italic | `***all of this is important***` | _**all of this is important**_ | | Links | `[my text](https://www.google.com)` | [my text](https://google.com/) | | Lists (unordered) | \- first item in list
\- second item in a list
\- third item in a list | * first item in a list
* second item in a list
* third item in a list | | Lists (ordered) | 1\. first item in a list
2\. second item in a list
3\. third item in a list | 1. first item in a list
2. second item in a list
3. third item in a list | | Strikethrough | `~~this is strikethrough text~~` | ~this is strikethrough text~ | | Headers (level 1) | `# Header 1` | This text will be bolded, i.e. **Header 1** | | Headers (level 2+) | \## Header 2
\## Header #
etc. | This text will be bolded, i.e. **Header 2** | | In-line code | `` `this is my code` `` | `this is my code` | | Block quote | `> this is a block quote` | > this is a block quote | | Code blocks | \`\`\`
this is a code block
\`\`\` | this is a code block | | Images | `![Logo](https://example.com/logo.png)` | This is translated as hyperlink text, i.e. [Logo](https://example.com/logo.png) | | Escaping special characters:
* \\ backslash
* \` backtick
* \* asterisk
* \_ underscore
* curly braces
* \[\] square brackets
* () parentheses
* \# hash mark
* \+ plus sign
* \- minus sign (hypen)
* . dot
* ! exclamation mark
* ampersand | `\*This is special text\*` | \*This is special text\* | Usage info[​](https://docs.slack.dev/reference/block-kit/blocks/markdown-block/#usage-info "Direct link to Usage info") ------------------------------------------------------------------------------------------------------------------------ This block can be used with [apps that use platform AI features](https://docs.slack.dev/ai/) when you expect a markdown response from an LLM that can get lost in translation rendering in Slack. Providing it in a markdown block leaves the translating to Slack to ensure your message appears as intended. Note that passing a single block may result in multiple blocks after translation. The markdown types that are not supported are code block with syntax highlighting, horizontal lines, tables, and task list. Example[​](https://docs.slack.dev/reference/block-kit/blocks/markdown-block/#example "Direct link to Example") --------------------------------------------------------------------------------------------------------------- ![An example of an markdown block](data:image/png;base64,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) A markdown block: { "type": "markdown", "text": "**Lots of information here!!**", } * [Fields](https://docs.slack.dev/reference/block-kit/blocks/markdown-block/#fields) * [Usage info](https://docs.slack.dev/reference/block-kit/blocks/markdown-block/#usage-info) * [Example](https://docs.slack.dev/reference/block-kit/blocks/markdown-block/#example) --- # Conversation filter object | Slack Developer Docs [Skip to main content](https://docs.slack.dev/reference/block-kit/composition-objects/conversation-filter-object/#__docusaurus_skipToContent_fallback) On this page **Defines a filter for the list of options in a conversation selector menu.** The menu can be either a [conversations select menu](https://docs.slack.dev/reference/block-kit/block-elements/select-menu-element#conversations_select) or a [conversations multi-select menu](https://docs.slack.dev/reference/block-kit/block-elements/multi-select-menu-element) . #### Fields[​](https://docs.slack.dev/reference/block-kit/composition-objects/conversation-filter-object/#fields "Direct link to Fields") | Field | Type | Description | Required? | | --- | --- | --- | --- | | `include` | String\[\] | Indicates which type of conversations should be _included_ in the list. When this field is provided, any conversations that do not match will be excludedYou should provide an array of strings from the following options: `im`, `mpim`, `private`, and `public`. The array cannot be empty. | Optional | | `exclude_external_shared_channels` | Boolean | Indicates whether to exclude external [shared channels](https://docs.slack.dev/apis/slack-connect/)
from conversation lists. This field will not exclude users from shared channels. Defaults to `false`. | Optional | | `exclude_bot_users` | Boolean | Indicates whether to exclude bot users from conversation lists. Defaults to `false`. | Optional | Please note that while none of the fields above are individually required, **you must supply at least one of these fields**. #### Example[​](https://docs.slack.dev/reference/block-kit/composition-objects/conversation-filter-object/#example "Direct link to Example") { "type": "conversations_select", "placeholder": { "type": "plain_text", "text": "Select a conversation", "emoji": true }, "filter": { "include": [ "public", "mpim" ], "exclude_bot_users": true }} [View in Block Kit Builder](https://api.slack.com/tools/block-kit-builder?mode=modal&view=%7B%22type%22%3A%22modal%22%2C%22title%22%3A%7B%22type%22%3A%22plain_text%22%2C%22text%22%3A%22My%20App%22%2C%22emoji%22%3Atrue%7D%2C%22submit%22%3A%7B%22type%22%3A%22plain_text%22%2C%22text%22%3A%22Submit%22%2C%22emoji%22%3Atrue%7D%2C%22close%22%3A%7B%22type%22%3A%22plain_text%22%2C%22text%22%3A%22Cancel%22%2C%22emoji%22%3Atrue%7D%2C%22blocks%22%3A%5B%7B%22type%22%3A%22input%22%2C%22element%22%3A%7B%22type%22%3A%22conversations_select%22%2C%22placeholder%22%3A%7B%22type%22%3A%22plain_text%22%2C%22text%22%3A%22Select%20a%20conversation%22%2C%22emoji%22%3Atrue%7D%2C%22filter%22%3A%7B%22include%22%3A%5B%22public%22%2C%22mpim%22%5D%2C%22exclude_bot_users%22%3Atrue%7D%7D%2C%22label%22%3A%7B%22type%22%3A%22plain_text%22%2C%22text%22%3A%22Choose%20the%20conversation%20to%20publish%20your%20result%20to%3A%22%2C%22emoji%22%3Atrue%7D%7D%5D%7D) #### Known issues[​](https://docs.slack.dev/reference/block-kit/composition-objects/conversation-filter-object/#known-issues "Direct link to Known issues") * In iOS, the placeholder text is replaced with "0 selected" when there are no selected conversations. * In iOS, there are UI inconsistencies when users select items in multi-select menus. * * * --- # Image element | Slack Developer Docs [Skip to main content](https://docs.slack.dev/reference/block-kit/block-elements/image-element/#__docusaurus_skipToContent_fallback) On this page Example: ![An example of an image element](https://docs.slack.dev/assets/images/bk_image_ele_example-d61cca570d7c3ef997f8ea9b226f228d.png) Fields[​](https://docs.slack.dev/reference/block-kit/block-elements/image-element/#fields "Direct link to Fields") ------------------------------------------------------------------------------------------------------------------- | Field | Type | Description | Required? | | --- | --- | --- | --- | | `type` | String | The type of element. In this case `type` is always `image`. | Required | | `alt_text` | String | A plain-text summary of the image. This should not contain any markup. | Required | | `image_url` | String | The URL for a publicly hosted image. You must provide either an `image_url` or `slack_file`. Maximum length for this field is 3000 characters. | Optional | | `slack_file` | Object | A [Slack image file object](https://docs.slack.dev/reference/block-kit/composition-objects/slack-file-object)
that defines the source of the image. | Optional | Usage info[​](https://docs.slack.dev/reference/block-kit/block-elements/image-element/#usage-info "Direct link to Usage info") ------------------------------------------------------------------------------------------------------------------------------- Use the [`image`](https://docs.slack.dev/reference/block-kit/blocks/image-block) block if you want a block with _only_ an image in it. Example[​](https://docs.slack.dev/reference/block-kit/block-elements/image-element/#example "Direct link to Example") ---------------------------------------------------------------------------------------------------------------------- { "type": "image", "image_url": "http://placekitten.com/700/500", "alt_text": "Multiple cute kittens"} [View in Block Kit Builder](https://api.slack.com/tools/block-kit-builder?blocks=%5B%0A%09%7B%0A%09%09%22type%22%3A%20%22section%22%2C%0A%09%09%22block_id%22%3A%20%22section567%22%2C%0A%09%09%22text%22%3A%20%7B%0A%09%09%09%22type%22%3A%20%22mrkdwn%22%2C%0A%09%09%09%22text%22%3A%20%22This%20is%20a%20section%20block%20with%20an%20accessory%20image.%22%0A%09%09%7D%2C%0A%09%09%22accessory%22%3A%20%7B%0A%09%09%09%22type%22%3A%20%22image%22%2C%0A%09%09%09%22image_url%22%3A%20%22https%3A%2F%2Fpbs.twimg.com%2Fprofile_images%2F625633822235693056%2FlNGUneLX_400x400.jpg%22%2C%0A%09%09%09%22alt_text%22%3A%20%22cute%20cat%22%0A%09%09%7D%0A%09%7D%0A%5D) An image block using `slack_file` with a `url`: { "type": "image", "slack_file": { "url": "https://files.slack.com/files-pri/T0123456-F0123456/xyz.png" }, "alt_text": "Slack file object."} An image block using `slack_file` with a `id`: { "type": "image", "slack_file": { "id": "F0123456", }, "alt_text": "Slack file object."} * [Fields](https://docs.slack.dev/reference/block-kit/block-elements/image-element/#fields) * [Usage info](https://docs.slack.dev/reference/block-kit/block-elements/image-element/#usage-info) * [Example](https://docs.slack.dev/reference/block-kit/block-elements/image-element/#example) --- # Table block | Slack Developer Docs [Skip to main content](https://docs.slack.dev/reference/block-kit/blocks/table-block/#__docusaurus_skipToContent_fallback) On this page Fields[​](https://docs.slack.dev/reference/block-kit/blocks/table-block/#fields "Direct link to Fields") --------------------------------------------------------------------------------------------------------- | Field | Type | Description | Required? | | --- | --- | --- | --- | | `type` | string | Always "table". | Required | | `block_id` | string | A unique identifier for a block. If not specified, a `block_id` will be generated. You can use this `block_id` when you receive an interaction payload to identify the source of the action. Maximum length for this field is 255 characters. `block_id` should be unique for each message and each iteration of a message. If a message is updated, use a new `block_id`. | Optional | | `rows` | array | An array consisting of table rows. Maximum 100 rows. Each row object is an array with a max of 20 table cells. Table cells can have a type of `raw_text` or `rich_text`. | Required | | `column_settings` | array | An array describing column behavior. If there are fewer items in the `column_settings` array than there are columns in the table, then the items in the the `column_settings` array will describe the same number of columns in the table as there are in the array itself. Any additional columns will have the default behavior. Maximum 20 items. See below for column settings schema. | Optional | ### Schema for `column_settings`[​](https://docs.slack.dev/reference/block-kit/blocks/table-block/#schema-for-column_settings "Direct link to schema-for-column_settings") | Field | Type | Description | Required? | | --- | --- | --- | --- | | `align` | string | The alignment for items in this column. Can be `left`, `center`, or `right`. Defaults to `left` if not defined. | Optional | | `is_wrapped` | boolean | Whether the contents of this column should be wrapped or not. Defaults to `false` if not defined. | Optional | Usage info[​](https://docs.slack.dev/reference/block-kit/blocks/table-block/#usage-info "Direct link to Usage info") --------------------------------------------------------------------------------------------------------------------- Apps can programmatically publish messages that include a table by providing a table block in the [attachments](https://docs.slack.dev/reference/methods/chat.postMessage#arguments) field of a [`chat.postMessage`](https://docs.slack.dev/reference/methods/chat.postMessage) request. You must include a value for one of either the top-level blocks or text arguments in the message payload. The `column_settings` property lets you change text alignment and text wrapping behavior for table columns. In the example below, the first column has text wrapping enabled and the second column right aligned. Use null to skip a column. Tables may include formatted text (bold text, emoji, mentions, hyperlinks, etc.) by replacing the `raw_text` element with a standard `rich_text` block type. One table is allowed per message, which is appended as an attachment to the bottom of the message. Sending more than one table block will result in the error `invalid_attachments` with response metadata indicating `only_one_table_allowed`. Below is an example attachments value that you should send as a URL-encoded string in your request inside the `blocks` array. Examples[​](https://docs.slack.dev/reference/block-kit/blocks/table-block/#example "Direct link to Examples") -------------------------------------------------------------------------------------------------------------- { "type": "table", "column_settings": [ { "is_wrapped": true }, { "align": "right" } ], "rows": [ [ { "type": "raw_text", "text": "Header A" }, { "type": "raw_text", "text": "Header B" } ], [ { "type": "raw_text", "text": "Data 1A" }, { "type": "rich_text", "elements": [ { "type": "rich_text_section", "elements": [ { "text": "Data 1B", "type": "link", "url": "https://slack.com" } ] } ] } ], [ { "type": "raw_text", "text": "Data 2A" }, { "type": "rich_text", "elements": [ { "type": "rich_text_section", "elements": [ { "text": "Data 2B", "type": "link", "url": "https://slack.com" } ] } ] } ] ]} [View in Block Kit Builder](https://app.slack.com/block-kit-builder/T024BE7LD#%7B%22blocks%22:%5B%7B%22type%22:%22table%22,%22column_settings%22:%5B%7B%22is_wrapped%22:true%7D,%7B%22align%22:%22right%22%7D%5D,%22rows%22:%5B%5B%7B%22type%22:%22raw_text%22,%22text%22:%22Header%20A%22%7D,%7B%22type%22:%22raw_text%22,%22text%22:%22Header%20B%22%7D%5D,%5B%7B%22type%22:%22raw_text%22,%22text%22:%22Data%201A%22%7D,%7B%22type%22:%22rich_text%22,%22elements%22:%5B%7B%22type%22:%22rich_text_section%22,%22elements%22:%5B%7B%22text%22:%22Data%201B%22,%22type%22:%22link%22,%22url%22:%22https://slack.com%22%7D%5D%7D%5D%7D%5D,%5B%7B%22type%22:%22raw_text%22,%22text%22:%22Data%202A%22%7D,%7B%22type%22:%22rich_text%22,%22elements%22:%5B%7B%22type%22:%22rich_text_section%22,%22elements%22:%5B%7B%22text%22:%22Data%202B%22,%22type%22:%22link%22,%22url%22:%22https://slack.com%22%7D%5D%7D%5D%7D%5D%5D%7D%5D%7D) * [Fields](https://docs.slack.dev/reference/block-kit/blocks/table-block/#fields) * [Schema for `column_settings`](https://docs.slack.dev/reference/block-kit/blocks/table-block/#schema-for-column_settings) * [Usage info](https://docs.slack.dev/reference/block-kit/blocks/table-block/#usage-info) * [Examples](https://docs.slack.dev/reference/block-kit/blocks/table-block/#example) --- # Option group object | Slack Developer Docs [Skip to main content](https://docs.slack.dev/reference/block-kit/composition-objects/option-group-object/#__docusaurus_skipToContent_fallback) On this page **Defines a way to group options in a menu.** The menu can be a [select menu](https://docs.slack.dev/reference/block-kit/block-elements/select-menu-element) or a [multi-select menu](https://docs.slack.dev/reference/block-kit/block-elements/multi-select-menu-element) . An `option_groups` array can have a maximum number of 100 option groups with a maximum of 100 options. #### Fields[​](https://docs.slack.dev/reference/block-kit/composition-objects/option-group-object/#fields "Direct link to Fields") | Field | Type | Description | Required? | | --- | --- | --- | --- | | `label` | Object | A [`plain_text`](https://docs.slack.dev/reference/block-kit/composition-objects/option-group-object/#text)
text object that defines the label shown above this group of options. Maximum length for the `text` in this field is 75 characters. | Required | | `options` | Object\[\] | An array of [option objects](https://docs.slack.dev/reference/block-kit/composition-objects/option-group-object/#option)
that belong to this specific group. Maximum of 100 items. | Required | #### Example[​](https://docs.slack.dev/reference/block-kit/composition-objects/option-group-object/#example "Direct link to Example") "option_groups": [ { "label": { "type": "plain_text", "text": "Group 1" }, "options": [ { "text": { "type": "plain_text", "text": "*this is plain_text text*" }, "value": "value-0" }, { "text": { "type": "plain_text", "text": "*this is plain_text text*" }, "value": "value-1" }, { "text": { "type": "plain_text", "text": "*this is plain_text text*" }, "value": "value-2" } ] }, { "label": { "type": "plain_text", "text": "Group 2" }, "options": [ { "text": { "type": "plain_text", "text": "*this is plain_text text*" }, "value": "value-3" } ] }] [View in Block Kit Builder](https://api.slack.com/tools/block-kit-builder?mode=message&blocks=%5B%7B%22type%22%3A%22section%22%2C%22text%22%3A%7B%22type%22%3A%22mrkdwn%22%2C%22text%22%3A%22%3Amag%3A%20Search%20results%20for%20*Cata*%22%7D%7D%2C%7B%22type%22%3A%22divider%22%7D%2C%7B%22type%22%3A%22section%22%2C%22text%22%3A%7B%22type%22%3A%22mrkdwn%22%2C%22text%22%3A%22*%3CfakeLink.toYourApp.com%7CUse%20Case%20Catalogue%3E*%5CnUse%20Case%20Catalogue%20for%20the%20following%20departments%2Froles...%22%7D%2C%22accessory%22%3A%7B%22type%22%3A%22static_select%22%2C%22placeholder%22%3A%7B%22type%22%3A%22plain_text%22%2C%22emoji%22%3Atrue%2C%22text%22%3A%22Manage%22%7D%2C%22option_groups%22%3A%5B%7B%22label%22%3A%7B%22type%22%3A%22plain_text%22%2C%22text%22%3A%22Group%201%22%7D%2C%22options%22%3A%5B%7B%22text%22%3A%7B%22type%22%3A%22plain_text%22%2C%22text%22%3A%22*this%20is%20plain_text%20text*%22%7D%2C%22value%22%3A%22value-0%22%7D%2C%7B%22text%22%3A%7B%22type%22%3A%22plain_text%22%2C%22text%22%3A%22*this%20is%20plain_text%20text*%22%7D%2C%22value%22%3A%22value-1%22%7D%2C%7B%22text%22%3A%7B%22type%22%3A%22plain_text%22%2C%22text%22%3A%22*this%20is%20plain_text%20text*%22%7D%2C%22value%22%3A%22value-2%22%7D%5D%7D%2C%7B%22label%22%3A%7B%22type%22%3A%22plain_text%22%2C%22text%22%3A%22Group%202%22%7D%2C%22options%22%3A%5B%7B%22text%22%3A%7B%22type%22%3A%22plain_text%22%2C%22text%22%3A%22*this%20is%20plain_text%20text*%22%7D%2C%22value%22%3A%22value-3%22%7D%5D%7D%5D%7D%7D%5D) * * * --- # Workflow object | Slack Developer Docs [Skip to main content](https://docs.slack.dev/reference/block-kit/composition-objects/workflow-object/#__docusaurus_skipToContent_fallback) On this page **Defines an object containing workflow information.** #### Fields[​](https://docs.slack.dev/reference/block-kit/composition-objects/workflow-object/#fields "Direct link to Fields") | Field | Type | Description | Required? | | --- | --- | --- | --- | | `trigger` | Object | A [`trigger`](https://docs.slack.dev/reference/block-kit/composition-objects/workflow-object/#trigger)
object that contains information about a workflow's trigger. | Required | #### Example[​](https://docs.slack.dev/reference/block-kit/composition-objects/workflow-object/#example "Direct link to Example") { "trigger": { "url": "https://slack.com/shortcuts/Ft0123ABC456/321...zyx", "customizable_input_parameters": [ { "name": "input_parameter_a", "value": "Value for input param A" }, { "name": "input_parameter_b", "value": "Value for input param B" } ] }} --- # Image block | Slack Developer Docs [Skip to main content](https://docs.slack.dev/reference/block-kit/blocks/image-block/#__docusaurus_skipToContent_fallback) On this page Fields[​](https://docs.slack.dev/reference/block-kit/blocks/image-block/#fields "Direct link to Fields") --------------------------------------------------------------------------------------------------------- | Field | Type | Description | Required? | | --- | --- | --- | --- | | `type` | String | The type of block. For an image block, `type` is always `image`. | Required | | `alt_text` | String | A plain-text summary of the image. This should not contain any markup. Maximum length for this field is 2000 characters. | Required | | `image_url` | String | The URL for a publicly hosted image. You must provide either an `image_url` or `slack_file`. Maximum length for this field is 3000 characters. | Optional | | `slack_file` | Object | A [Slack image file object](https://docs.slack.dev/reference/block-kit/composition-objects/slack-file-object)
that defines the source of the image. | Optional | | `title` | Object | An optional title for the image in the form of a [text object](https://docs.slack.dev/reference/block-kit/composition-objects/text-object)
that can only be of `type: plain_text`. Maximum length for the `text` in this field is 2000 characters. | Optional | | `block_id` | String | A unique identifier for a block. If not specified, one will be generated. Maximum length for this field is 255 characters. `block_id` should be unique for each message and each iteration of a message. If a message is updated, use a new `block_id`. | Optional | Usage info[​](https://docs.slack.dev/reference/block-kit/blocks/image-block/#usage-info "Direct link to Usage info") --------------------------------------------------------------------------------------------------------------------- An image block, designed to make those cat photos really pop. Supported file types include `png`, `jpg`, `jpeg`, and `gif`. Examples[​](https://docs.slack.dev/reference/block-kit/blocks/image-block/#example "Direct link to Examples") -------------------------------------------------------------------------------------------------------------- The following three examples show different ways to get the following result: ![An example of an image block](https://docs.slack.dev/assets/images/bk_image_example-25632bf5e02841c5bae12828571829c4.png) An image block using `image_url`: [View in Block Kit Builder](https://app.slack.com/block-kit-builder/#%7B%22blocks%22:%5B%7B%22type%22:%22image%22,%22title%22:%7B%22type%22:%22plain_text%22,%22text%22:%22Please%20enjoy%20this%20photo%20of%20a%20kitten%22%7D,%22block_id%22:%22image4%22,%22image_url%22:%22https://pbs.twimg.com/profile_images/625633822235693056/lNGUneLX_400x400.jpg%22,%22alt_text%22:%22An%20incredibly%20cute%20kitten.%22%7D%5D%7D) { "type": "image", "title": { "type": "plain_text", "text": "Please enjoy this photo of a kitten" }, "block_id": "image4", "image_url": "http://placekitten.com/500/500", "alt_text": "An incredibly cute kitten."} An image block using `slack_file` with a `url`: [View in Block Kit Builder](https://app.slack.com/block-kit-builder/#%7B%22blocks%22:%5B%7B%22type%22:%22image%22,%22title%22:%7B%22type%22:%22plain_text%22,%22text%22:%22Please%20enjoy%20this%20photo%20of%20a%20kitten%22%7D,%22block_id%22:%22image4%22,%22slack_file%22:%7B%22url%22:%22https://files.slack.com/files-pri/T0123456-F0123456/xyz.png%22%7D,%22alt_text%22:%22An%20incredibly%20cute%20kitten.%22%7D%5D%7D) { "type": "image", "title": { "type": "plain_text", "text": "Please enjoy this photo of a kitten" }, "block_id": "image4", "slack_file": { "url": "https://files.slack.com/files-pri/T0123456-F0123456/xyz.png" }, "alt_text": "An incredibly cute kitten."} An image block using `slack_file` with a `id`: [View in Block Kit Builder](https://app.slack.com/block-kit-builder/#%7B%22blocks%22:%5B%7B%22type%22:%22image%22,%22title%22:%7B%22type%22:%22plain_text%22,%22text%22:%22Please%20enjoy%20this%20photo%20of%20a%20kitten%22%7D,%22block_id%22:%22image4%22,%22slack_file%22:%7B%22id%22:%22F0123456%22%7D,%22alt_text%22:%22An%20incredibly%20cute%20kitten.%22%7D%5D%7D) { "type": "image", "title": { "type": "plain_text", "text": "Please enjoy this photo of a kitten" }, "block_id": "image4", "slack_file": { "id": "F0123456", }, "alt_text": "An incredibly cute kitten."} * [Fields](https://docs.slack.dev/reference/block-kit/blocks/image-block/#fields) * [Usage info](https://docs.slack.dev/reference/block-kit/blocks/image-block/#usage-info) * [Examples](https://docs.slack.dev/reference/block-kit/blocks/image-block/#example) --- # Number input element | Slack Developer Docs [Skip to main content](https://docs.slack.dev/reference/block-kit/block-elements/number-input-element/#__docusaurus_skipToContent_fallback) On this page Example: ![An example of a Number input element](https://docs.slack.dev/assets/images/bk_numberinput_example-859b039c87ee7656bd0ef4bdf8cb1413.svg) Fields[​](https://docs.slack.dev/reference/block-kit/block-elements/number-input-element/#fields "Direct link to Fields") -------------------------------------------------------------------------------------------------------------------------- | Fields | Type | Description | Required? | | --- | --- | --- | --- | | `type` | String | The type of element. In this case `type` is always `number_input`. | Required | | `is_decimal_allowed` | Boolean | Decimal numbers are allowed if `is_decimal_allowed`\= `true`, set the value to `false` otherwise. | Required | | `action_id` | String | An identifier for the input value when the parent modal is submitted. You can use this when you receive a `view_submission` payload [to identify the value of the input element](https://docs.slack.dev/surfaces/modals#interactions)
. Should be unique among all other `action_id`s in the containing block. Maximum length is 255 characters. | Optional | | `initial_value` | String | The initial value in the plain-text input when it is loaded. | Optional | | `min_value` | String | The minimum value, cannot be greater than `max_value`. | Optional | | `max_value` | String | The maximum value, cannot be less than `min_value`. | Optional | | `dispatch_action_config` | Object | A [dispatch configuration object](https://docs.slack.dev/reference/block-kit/composition-objects/dispatch-action-configuration-object)
that determines when during text input the element returns a [`block_actions` payload](https://docs.slack.dev/reference/interaction-payloads/block_actions-payload)
. | Optional | | `focus_on_load` | Boolean | Indicates whether the element will be set to auto focus within the [`view object`](https://docs.slack.dev/reference/views)
. Only one element can be set to `true`. Defaults to `false`. | Optional | | `placeholder` | Object | A [`plain_text`](https://docs.slack.dev/reference/block-kit/composition-objects/text-object)
only text object that defines the placeholder text shown in the number input. Maximum length for the `text` in this field is 150 characters. | Optional | Usage info[​](https://docs.slack.dev/reference/block-kit/block-elements/number-input-element/#usage-info "Direct link to Usage info") -------------------------------------------------------------------------------------------------------------------------------------- _Interactive component_ - see our [guide to enabling interactivity](https://docs.slack.dev/interactivity/handling-user-interaction) . The number input element accepts both whole and decimal numbers. For example, 0.25, 5.5, and -10 are all valid input values. Decimal numbers are only allowed when `is_decimal_allowed` is equal to `true`. Example[​](https://docs.slack.dev/reference/block-kit/block-elements/number-input-element/#example "Direct link to Example") ----------------------------------------------------------------------------------------------------------------------------- {"type": "input", "element": { "type": "number_input", "is_decimal_allowed": false, "action_id": "number_input-action" }, "label": { "type": "plain_text", "text": "Label", "emoji": true }} * [Fields](https://docs.slack.dev/reference/block-kit/block-elements/number-input-element/#fields) * [Usage info](https://docs.slack.dev/reference/block-kit/block-elements/number-input-element/#usage-info) * [Example](https://docs.slack.dev/reference/block-kit/block-elements/number-input-element/#example) --- # Video block | Slack Developer Docs [Skip to main content](https://docs.slack.dev/reference/block-kit/blocks/video-block/#__docusaurus_skipToContent_fallback) On this page Fields[​](https://docs.slack.dev/reference/block-kit/blocks/video-block/#fields "Direct link to Fields") --------------------------------------------------------------------------------------------------------- | Property | Type | Description | Required? | | --- | --- | --- | --- | | `type` | string | The type of block. For a video block, type will always be `video`. | Required | | `alt_text` | string | A tooltip for the video. Required for accessibility | Required | | `author_name` | string | Author name to be displayed. Must be less than 50 characters. | Optional | | `block_id` | string | A unique identifier for a block. If not specified, one will be generated. Maximum length for this field is 255 characters. `block_id` should be unique for each message and each iteration of a message. If a message is updated, use a new `block_id`. | Optional | | `description` | Object | Description for video in the form of a [text object](https://docs.slack.dev/reference/block-kit/composition-objects/text-object)
that must have `type` of `plain_text`. `text` within must be less than 200 characters. | Preferred | | `provider_icon_url` | string | Icon for the video provider, e.g. YouTube icon. | Optional | | `provider_name` | string | The originating application or domain of the video, e.g. YouTube. | Optional | | `title` | Object | Video title in the form of a [text object](https://docs.slack.dev/reference/block-kit/composition-objects/text-object)
that must have `type` of `plain_text`. `text` within must be less than 200 characters. | Required | | `title_url` | string | Hyperlink for the title text. Must correspond to the non-embeddable URL for the video. Must go to an HTTPS URL. | Preferred | | `thumbnail_url` | string | The thumbnail image URL | Required | | `video_url` | string | The URL to be embedded. Must match any existing [unfurl domains](https://docs.slack.dev/messaging/unfurling-links-in-messages#configuring_domains)
within the app and point to a HTTPS URL. | Required | Usage info[​](https://docs.slack.dev/reference/block-kit/blocks/video-block/#usage-info "Direct link to Usage info") --------------------------------------------------------------------------------------------------------------------- A `video` block is designed to embed videos in all app surfaces (e.g. link unfurls, messages, modals, App Home) — anywhere you can put blocks! To use the video block within your app, you must have the [`links.embed:write`](https://docs.slack.dev/reference/scopes/links.embed.write) scope. The metadata received in the block payload will be used to construct the description, provider, and title of the video in all clients. Developers have the flexibility to leave non-mandatory fields null and use other blocks to format this content. ### Requirements[​](https://docs.slack.dev/reference/block-kit/blocks/video-block/#requirements "Direct link to Requirements") * Video blocks can only be posted by apps; users are not allowed to post embedded videos directly from Block Kit Builder. * Your app must have the the [`links.embed:write`](https://docs.slack.dev/reference/scopes/links.embed.write) scope for both user and bot tokens. * `video_url` has to be included in the [unfurl domains](https://docs.slack.dev/messaging/unfurling-links-in-messages#configuring_domains) specified in your app. * `video_url` should be publicly accessible, unless the app relies on information received from the [Events API](https://docs.slack.dev/apis/events-api/) payloads to make a decision on whether the viewer(s) of the content should have access. If so, the service could create a unique URL accessible only via Slack. * `video_url` must be compatible with an embeddable iFrame. * `video_url` must return a 2xx code OR 3xx with less than 5 redirects and an eventual 2xx. * `video_url` must not point to any Slack-related domain. ### Constraints[​](https://docs.slack.dev/reference/block-kit/blocks/video-block/#constraints "Direct link to Constraints") * Embeddable video players only (audio-only permitted) * Navigation, scrolling and overlays are not allowed within the iFrame. * Interactivity (e.g. likes, comments, and reactions) are allowed within your player but shouldn't completely overlay or navigate away from the content being embedded. These interactions will be anonymous since no user data is transferred to the embedded view. Example[​](https://docs.slack.dev/reference/block-kit/blocks/video-block/#examples "Direct link to Example") ------------------------------------------------------------------------------------------------------------- ![An example of a video block for web](https://docs.slack.dev/assets/images/bk_video_example-0d491e1017405d0bd158f675523b7a18.png) [View in Block Kit Builder](https://app.slack.com/block-kit-builder/#%7B%22blocks%22:%5B%7B%22type%22:%22video%22,%22title%22:%7B%22type%22:%22plain_text%22,%22text%22:%22Use%20the%20Events%20API%20to%20create%20a%20dynamic%20App%20Home%20.%22,%22emoji%22:true%7D,%22title_url%22:%22https://www.youtube.com/watch?v=8876OZV_Yy0%22,%22description%22:%7B%22type%22:%22plain_text%22,%22text%22:%22Slack%20sure%20is%20nifty!.%22,%22emoji%22:true%7D,%22video_url%22:%22https://www.youtube.com/embed/8876OZV_Yy0?feature=oembed&autoplay=1%22,%22alt_text%22:%22Use%20the%20Events%20API%20to%20create%20a%20dynamic%20App%20Home%22,%22thumbnail_url%22:%22https://i.ytimg.com/vi/8876OZV_Yy0/hqdefault.jpg%22%7D%5D%7D) { "type": "video", "title": { "type": "plain_text", "text": "Use the Events API to create a dynamic App Home", "emoji": true }, "title_url": "https://www.youtube.com/watch?v=8876OZV_Yy0", "description": { "type": "plain_text", "text": "Slack sure is nifty!", "emoji": true }, "video_url": "https://www.youtube.com/embed/8876OZV_Yy0?feature=oembed&autoplay=1", "alt_text": "Use the Events API to create a dynamic App Home", "thumbnail_url": "https://i.ytimg.com/vi/8876OZV_Yy0/hqdefault.jpg",} * [Fields](https://docs.slack.dev/reference/block-kit/blocks/video-block/#fields) * [Usage info](https://docs.slack.dev/reference/block-kit/blocks/video-block/#usage-info) * [Requirements](https://docs.slack.dev/reference/block-kit/blocks/video-block/#requirements) * [Constraints](https://docs.slack.dev/reference/block-kit/blocks/video-block/#constraints) * [Example](https://docs.slack.dev/reference/block-kit/blocks/video-block/#examples) --- # Actions block | Slack Developer Docs [Skip to main content](https://docs.slack.dev/reference/block-kit/blocks/actions-block/#__docusaurus_skipToContent_fallback) On this page Fields[​](https://docs.slack.dev/reference/block-kit/blocks/actions-block/#fields "Direct link to Fields") ----------------------------------------------------------------------------------------------------------- | Field | Type | Description | Required? | | --- | --- | --- | --- | | `type` | String | The type of block. For an actions block, `type` is always `actions`. | Required | | `elements` | Object\[\] | An array of interactive [element objects](https://docs.slack.dev/reference/block-kit/block-elements)
- [buttons](https://docs.slack.dev/reference/block-kit/block-elements/button-element)
, [select menus](https://docs.slack.dev/reference/block-kit/block-elements/select-menu-element)
, [overflow menus](https://docs.slack.dev/reference/block-kit/block-elements/overflow-menu-element)
, or [date pickers](https://docs.slack.dev/reference/block-kit/block-elements/date-picker-element)
. There is a maximum of 25 elements in each action block. | Required | | `block_id` | String | A unique identifier for a block. If not specified, a `block_id` will be generated. You can use this `block_id` when you receive an interaction payload to [identify the source of the action](https://docs.slack.dev/interactivity/handling-user-interaction#payloads)
. Maximum length for this field is 255 characters. `block_id` should be unique for each message and each iteration of a message. If a message is updated, use a new `block_id`. | Optional | Examples[​](https://docs.slack.dev/reference/block-kit/blocks/actions-block/#examples "Direct link to Examples") ----------------------------------------------------------------------------------------------------------------- An actions block with a select menu and a button: ![An action block containing multiple interactive elements](https://docs.slack.dev/assets/images/bk_actions_example-3dcb84f6dc9f2b560dd6a74ef2b4c7e9.png) [View in Block Kit Builder](https://app.slack.com/block-kit-builder/#%7B%22blocks%22:%5B%7B%22type%22:%22actions%22,%22block_id%22:%22actions1%22,%22elements%22:%5B%7B%22type%22:%22static_select%22,%22placeholder%22:%7B%22type%22:%22plain_text%22,%22text%22:%22Which%20witch%20is%20the%20witchiest%20witch?%22%7D,%22action_id%22:%22select_2%22,%22options%22:%5B%7B%22text%22:%7B%22type%22:%22plain_text%22,%22text%22:%22Matilda%22%7D,%22value%22:%22matilda%22%7D,%7B%22text%22:%7B%22type%22:%22plain_text%22,%22text%22:%22Glinda%22%7D,%22value%22:%22glinda%22%7D,%7B%22text%22:%7B%22type%22:%22plain_text%22,%22text%22:%22Granny%20Weatherwax%22%7D,%22value%22:%22grannyWeatherwax%22%7D,%7B%22text%22:%7B%22type%22:%22plain_text%22,%22text%22:%22Hermione%22%7D,%22value%22:%22hermione%22%7D%5D%7D,%7B%22type%22:%22button%22,%22text%22:%7B%22type%22:%22plain_text%22,%22text%22:%22Cancel%22%7D,%22value%22:%22cancel%22,%22action_id%22:%22button_1%22%7D%5D%7D%5D%7D) { "type": "actions", "block_id": "actions1", "elements": [ { "type": "static_select", "placeholder":{ "type": "plain_text", "text": "Which witch is the witchiest witch?" }, "action_id": "select_2", "options": [ { "text": { "type": "plain_text", "text": "Matilda" }, "value": "matilda" }, { "text": { "type": "plain_text", "text": "Glinda" }, "value": "glinda" }, { "text": { "type": "plain_text", "text": "Granny Weatherwax" }, "value": "grannyWeatherwax" }, { "text": { "type": "plain_text", "text": "Hermione" }, "value": "hermione" } ] }, { "type": "button", "text": { "type": "plain_text", "text": "Cancel" }, "value": "cancel", "action_id": "button_1" } ]} An actions block with a datepicker, an overflow, and a button: ![An action block containing multiple interactive elements](https://docs.slack.dev/assets/images/bk_actions_example_datepicker-8b1313d9698abcdf1a34cb4c930a16ae.png) [View in Block Kit Builder](https://app.slack.com/block-kit-builder/#%7B%22blocks%22:%5B%7B%22type%22:%22actions%22,%22block_id%22:%22actionblock789%22,%22elements%22:%5B%7B%22type%22:%22datepicker%22,%22action_id%22:%22datepicker123%22,%22initial_date%22:%221990-04-28%22,%22placeholder%22:%7B%22type%22:%22plain_text%22,%22text%22:%22Select%20a%20date%22%7D%7D,%7B%22type%22:%22overflow%22,%22options%22:%5B%7B%22text%22:%7B%22type%22:%22plain_text%22,%22text%22:%22*this%20is%20plain_text%20text*%22%7D,%22value%22:%22value-0%22%7D,%7B%22text%22:%7B%22type%22:%22plain_text%22,%22text%22:%22*this%20is%20plain_text%20text*%22%7D,%22value%22:%22value-1%22%7D,%7B%22text%22:%7B%22type%22:%22plain_text%22,%22text%22:%22*this%20is%20plain_text%20text*%22%7D,%22value%22:%22value-2%22%7D,%7B%22text%22:%7B%22type%22:%22plain_text%22,%22text%22:%22*this%20is%20plain_text%20text*%22%7D,%22value%22:%22value-3%22%7D,%7B%22text%22:%7B%22type%22:%22plain_text%22,%22text%22:%22*this%20is%20plain_text%20text*%22%7D,%22value%22:%22value-4%22%7D%5D,%22action_id%22:%22overflow%22%7D,%7B%22type%22:%22button%22,%22text%22:%7B%22type%22:%22plain_text%22,%22text%22:%22Click%20Me%22%7D,%22value%22:%22click_me_123%22,%22action_id%22:%22button%22%7D%5D%7D%5D%7D) { "type": "actions", "block_id": "actionblock789", "elements": [ { "type": "datepicker", "action_id": "datepicker123", "initial_date": "1990-04-28", "placeholder": { "type": "plain_text", "text": "Select a date" } }, { "type": "overflow", "options": [ { "text": { "type": "plain_text", "text": "*this is plain_text text*" }, "value": "value-0" }, { "text": { "type": "plain_text", "text": "*this is plain_text text*" }, "value": "value-1" }, { "text": { "type": "plain_text", "text": "*this is plain_text text*" }, "value": "value-2" }, { "text": { "type": "plain_text", "text": "*this is plain_text text*" }, "value": "value-3" }, { "text": { "type": "plain_text", "text": "*this is plain_text text*" }, "value": "value-4" } ], "action_id": "overflow" }, { "type": "button", "text": { "type": "plain_text", "text": "Click Me" }, "value": "click_me_123", "action_id": "button" } ]} * [Fields](https://docs.slack.dev/reference/block-kit/blocks/actions-block/#fields) * [Examples](https://docs.slack.dev/reference/block-kit/blocks/actions-block/#examples) --- # Overflow menu element | Slack Developer Docs [Skip to main content](https://docs.slack.dev/reference/block-kit/block-elements/overflow-menu-element/#__docusaurus_skipToContent_fallback) On this page Usage info[​](https://docs.slack.dev/reference/block-kit/block-elements/overflow-menu-element/#usage-info "Direct link to Usage info") --------------------------------------------------------------------------------------------------------------------------------------- _Interactive component_ - see our [guide to enabling interactivity](https://docs.slack.dev/interactivity/handling-user-interaction) . Unlike the select menu, there is no typeahead field, and the button always appears with an ellipsis ("…") rather than customizable text. As such, it is usually used if you want a more compact layout than a select menu, or to supply a list of less visually important actions after a row of buttons. You can also specify URL links as overflow menu options, instead of actions. Example: ![An example of an overflow element](https://docs.slack.dev/assets/images/bk_overflow_example-2d76b6deb2af654867cca38193ea66bc.png) Fields[​](https://docs.slack.dev/reference/block-kit/block-elements/overflow-menu-element/#fields "Direct link to Fields") --------------------------------------------------------------------------------------------------------------------------- | Field | Type | Description | Required? | | --- | --- | --- | --- | | `type` | String | The type of element. In this case `type` is always `overflow`. | Required | | `action_id` | String | An identifier for the action triggered when a menu option is selected. You can use this when you receive an interaction payload to [identify the source of the action](https://docs.slack.dev/interactivity/handling-user-interaction#payloads)
. Should be unique among all other `action_id`s in the containing block. Maximum length is 255 characters. | Optional | | `options` | Object\[\] | An array of up to five [option objects](https://docs.slack.dev/reference/block-kit/composition-objects/option-object)
to display in the menu. | Required | | `confirm` | Object | A [confirm object](https://docs.slack.dev/reference/block-kit/composition-objects/confirmation-dialog-object)
that defines an optional confirmation dialog that appears after a menu item is selected. | Optional | Example[​](https://docs.slack.dev/reference/block-kit/block-elements/overflow-menu-element/#example "Direct link to Example") ------------------------------------------------------------------------------------------------------------------------------ A section block with an overflow menu: { "type": "section", "block_id": "section 890", "text": { "type": "mrkdwn", "text": "This is a section block with an overflow menu." }, "accessory": { "type": "overflow", "options": [ { "text": { "type": "plain_text", "text": "*this is plain_text text*" }, "value": "value-0" }, { "text": { "type": "plain_text", "text": "*this is plain_text text*" }, "value": "value-1" }, { "text": { "type": "plain_text", "text": "*this is plain_text text*" }, "value": "value-2" }, { "text": { "type": "plain_text", "text": "*this is plain_text text*" }, "value": "value-3" }, { "text": { "type": "plain_text", "text": "*this is plain_text text*" }, "value": "value-4" } ], "action_id": "overflow" }} [View in Block Kit Builder](https://api.slack.com/tools/block-kit-builder?blocks=%5B%0A%09%7B%0A%09%09%22type%22%3A%20%22section%22%2C%0A%09%09%22block_id%22%3A%20%22section%20890%22%2C%0A%09%09%22text%22%3A%20%7B%0A%09%09%09%22type%22%3A%20%22mrkdwn%22%2C%0A%09%09%09%22text%22%3A%20%22This%20is%20a%20section%20block%20with%20an%20overflow%20menu.%22%0A%09%09%7D%2C%0A%09%09%22accessory%22%3A%20%7B%0A%09%09%09%22type%22%3A%20%22overflow%22%2C%0A%09%09%09%22options%22%3A%20%5B%0A%09%09%09%09%7B%0A%09%09%09%09%09%22text%22%3A%20%7B%0A%09%09%09%09%09%09%22type%22%3A%20%22plain_text%22%2C%0A%09%09%09%09%09%09%22text%22%3A%20%22*this%20is%20plain_text%20text*%22%0A%09%09%09%09%09%7D%2C%0A%09%09%09%09%09%22value%22%3A%20%22value-0%22%0A%09%09%09%09%7D%2C%0A%09%09%09%09%7B%0A%09%09%09%09%09%22text%22%3A%20%7B%0A%09%09%09%09%09%09%22type%22%3A%20%22plain_text%22%2C%0A%09%09%09%09%09%09%22text%22%3A%20%22*this%20is%20plain_text%20text*%22%0A%09%09%09%09%09%7D%2C%0A%09%09%09%09%09%22value%22%3A%20%22value-1%22%0A%09%09%09%09%7D%2C%0A%09%09%09%09%7B%0A%09%09%09%09%09%22text%22%3A%20%7B%0A%09%09%09%09%09%09%22type%22%3A%20%22plain_text%22%2C%0A%09%09%09%09%09%09%22text%22%3A%20%22*this%20is%20plain_text%20text*%22%0A%09%09%09%09%09%7D%2C%0A%09%09%09%09%09%22value%22%3A%20%22value-2%22%0A%09%09%09%09%7D%2C%0A%09%09%09%09%7B%0A%09%09%09%09%09%22text%22%3A%20%7B%0A%09%09%09%09%09%09%22type%22%3A%20%22plain_text%22%2C%0A%09%09%09%09%09%09%22text%22%3A%20%22*this%20is%20plain_text%20text*%22%0A%09%09%09%09%09%7D%2C%0A%09%09%09%09%09%22value%22%3A%20%22value-3%22%0A%09%09%09%09%7D%2C%0A%09%09%09%09%7B%0A%09%09%09%09%09%22text%22%3A%20%7B%0A%09%09%09%09%09%09%22type%22%3A%20%22plain_text%22%2C%0A%09%09%09%09%09%09%22text%22%3A%20%22*this%20is%20plain_text%20text*%22%0A%09%09%09%09%09%7D%2C%0A%09%09%09%09%09%22value%22%3A%20%22value-4%22%0A%09%09%09%09%7D%0A%09%09%09%5D%2C%0A%09%09%09%22action_id%22%3A%20%22overflow%22%0A%09%09%7D%0A%09%7D%0A%5D) * [Usage info](https://docs.slack.dev/reference/block-kit/block-elements/overflow-menu-element/#usage-info) * [Fields](https://docs.slack.dev/reference/block-kit/block-elements/overflow-menu-element/#fields) * [Example](https://docs.slack.dev/reference/block-kit/block-elements/overflow-menu-element/#example) --- # Input block | Slack Developer Docs [Skip to main content](https://docs.slack.dev/reference/block-kit/blocks/input-block/#__docusaurus_skipToContent_fallback) On this page Fields[​](https://docs.slack.dev/reference/block-kit/blocks/input-block/#fields "Direct link to Fields") --------------------------------------------------------------------------------------------------------- | Field | Type | Description | Required? | | --- | --- | --- | --- | | `type` | String | The type of block. For an input block, `type` is always `input`. | Required | | `label` | Object | A label that appears above an input element in the form of a [text object](https://docs.slack.dev/reference/block-kit/composition-objects/text-object)
that must have `type` of `plain_text`. Maximum length for the `text` in this field is 2000 characters. | Required | | `element` | Object | A block element. See [above](https://docs.slack.dev/reference/block-kit/blocks/input-block/#input)
for full list. | Required | | `dispatch_action` | Boolean | A boolean that indicates whether or not the use of elements in this block should dispatch a [`block_actions`](https://docs.slack.dev/reference/interaction-payloads/block_actions-payload)
payload. Defaults to `false`. This field is incompatible with the [`file_input`](https://docs.slack.dev/reference/block-kit/block-elements/file-input-element)
block element. If `dispatch_action` is set to `true` and a `file_input` block element is provided, an unsupported type error will be raised. | Optional | | `block_id` | String | A unique identifier for a block. If not specified, one will be generated. Maximum length for this field is 255 characters. `block_id` should be unique for each message or view and each iteration of a message or view. If a message or view is updated, use a new `block_id`. | Optional | | `hint` | Object | An optional hint that appears below an input element in a lighter grey. It must be a [text object](https://docs.slack.dev/reference/block-kit/composition-objects/text-object)
with a `type` of `plain_text`. Maximum length for the `text` in this field is 2000 characters. | Optional | | `optional` | Boolean | A boolean that indicates whether the input element may be empty when a user submits the modal. Defaults to `false`. | Optional | Usage info[​](https://docs.slack.dev/reference/block-kit/blocks/input-block/#usage-info "Direct link to Usage info") --------------------------------------------------------------------------------------------------------------------- Read our guides to collecting input [in modals](https://docs.slack.dev/surfaces/modals#gathering_input) or [in Home tabs](https://docs.slack.dev/surfaces/app-home#gathering_input) to learn how input blocks pass information to your app. Example[​](https://docs.slack.dev/reference/block-kit/blocks/input-block/#examples "Direct link to Example") ------------------------------------------------------------------------------------------------------------- An input block containing a [plain-text input element](https://docs.slack.dev/reference/block-kit/block-elements/plain-text-input-element) : ![An example of an input block](https://docs.slack.dev/assets/images/bk_input_example-8354f3ebbad6ac2d8eb8b3c25ffc6ad5.png) [View in Block Kit Builder](https://app.slack.com/block-kit-builder/#%7B%22blocks%22:%5B%7B%22type%22:%22input%22,%22element%22:%7B%22type%22:%22plain_text_input%22%7D,%22label%22:%7B%22type%22:%22plain_text%22,%22text%22:%22Label%22,%22emoji%22:true%7D%7D%5D%7D) { "type": "input", "element": { "type": "plain_text_input" }, "label": { "type": "plain_text", "text": "Label", "emoji": true }} * [Fields](https://docs.slack.dev/reference/block-kit/blocks/input-block/#fields) * [Usage info](https://docs.slack.dev/reference/block-kit/blocks/input-block/#usage-info) * [Example](https://docs.slack.dev/reference/block-kit/blocks/input-block/#examples) --- # Section block | Slack Developer Docs [Skip to main content](https://docs.slack.dev/reference/block-kit/blocks/section-block/#__docusaurus_skipToContent_fallback) On this page Fields[​](https://docs.slack.dev/reference/block-kit/blocks/section-block/#fields "Direct link to Fields") ----------------------------------------------------------------------------------------------------------- | Field | Type | Description | Required? | | --- | --- | --- | --- | | `type` | String | The type of block. For a section block, type will always be `section`. | Required | | `text` | Object | The text for the block, in the form of a [text object](https://docs.slack.dev/reference/block-kit/composition-objects/text-object)
. Minimum length for the `text` in this field is 1 and maximum length is 3000 characters. This field is not _required_ if a valid array of `fields` objects is provided instead. | **Preferred** | | `block_id` | String | A unique identifier for a block. If not specified, one will be generated. You can use this `block_id` when you receive an interaction payload to [identify the source of the action](https://docs.slack.dev/interactivity/handling-user-interaction#payloads)
. Maximum length for this field is 255 characters. `block_id` should be unique for each message and each iteration of a message. If a message is updated, use a new `block_id`. | Optional | | `fields` | Object\[\] | Required if no `text` is provided. An array of [text objects](https://docs.slack.dev/reference/block-kit/composition-objects/text-object)
. Any text objects included with `fields` will be rendered in a compact format that allows for 2 columns of side-by-side text. Maximum number of items is 10. Maximum length for the `text` in each item is 2000 characters. [Click here for an example](https://api.slack.com/tools/block-kit-builder?blocks=%5B%0A%09%7B%0A%09%09%22type%22%3A%20%22section%22%2C%0A%09%09%22text%22%3A%20%7B%0A%09%09%09%22text%22%3A%20%22A%20message%20*with%20some%20bold%20text*%20and%20_some%20italicized%20text_.%22%2C%0A%09%09%09%22type%22%3A%20%22mrkdwn%22%0A%09%09%7D%2C%0A%09%09%22fields%22%3A%20%5B%0A%09%09%09%7B%0A%09%09%09%09%22type%22%3A%20%22mrkdwn%22%2C%0A%09%09%09%09%22text%22%3A%20%22*Priority*%22%0A%09%09%09%7D%2C%0A%09%09%09%7B%0A%09%09%09%09%22type%22%3A%20%22mrkdwn%22%2C%0A%09%09%09%09%22text%22%3A%20%22*Type*%22%0A%09%09%09%7D%2C%0A%09%09%09%7B%0A%09%09%09%09%22type%22%3A%20%22plain_text%22%2C%0A%09%09%09%09%22text%22%3A%20%22High%22%0A%09%09%09%7D%2C%0A%09%09%09%7B%0A%09%09%09%09%22type%22%3A%20%22plain_text%22%2C%0A%09%09%09%09%22text%22%3A%20%22String%22%0A%09%09%09%7D%0A%09%09%5D%0A%09%7D%0A%5D)
. | _Maybe_ | | `accessory` | Object | One of the compatible [element objects](https://docs.slack.dev/reference/block-kit/blocks/section-block)
noted above. Be sure to confirm the desired element works with `section`. | Optional | | `expand` | Boolean | Whether or not this section block's text should always expand when rendered. If false or not provided, it may be rendered with a 'see more' option to expand and show the full text. For [AI Assistant apps](https://docs.slack.dev/ai)
, this allows the app to post long messages without users needing to click 'see more' to expand the message. | Optional | Usage info[​](https://docs.slack.dev/reference/block-kit/blocks/section-block/#usage-info "Direct link to Usage info") ----------------------------------------------------------------------------------------------------------------------- A `section` can be used as a text block, in combination with text fields, or side-by-side with certain [block elements](https://docs.slack.dev/reference/block-kit/block-elements) . Examples[​](https://docs.slack.dev/reference/block-kit/blocks/section-block/#examples "Direct link to Examples") ----------------------------------------------------------------------------------------------------------------- A text section block: ![An example of a section block](https://docs.slack.dev/assets/images/bk_section_example-59ef52f9a5a815428804542a16f59f64.png) [View in Block Kit Builder](https://app.slack.com/block-kit-builder/#%7B%22blocks%22:%5B%7B%22type%22:%22section%22,%22text%22:%7B%22text%22:%22A%20message%20*with%20some%20bold%20text*%20and%20_some%20italicized%20text_.%22,%22type%22:%22mrkdwn%22%7D,%22fields%22:%5B%7B%22type%22:%22mrkdwn%22,%22text%22:%22*Priority*%22%7D,%7B%22type%22:%22mrkdwn%22,%22text%22:%22*Type*%22%7D,%7B%22type%22:%22plain_text%22,%22text%22:%22High%22%7D,%7B%22type%22:%22plain_text%22,%22text%22:%22String%22%7D%5D%7D%5D%7D) { "type": "section", "text": { "type": "mrkdwn", "text": "A message *with some bold text* and _some italicized text_." }} A section block containing text fields: ![An example of a section block](https://docs.slack.dev/assets/images/bk_section_text_field_example-58698e338146d0be75af4757e95e930c.png) [View in Block Kit Builder](https://app.slack.com/block-kit-builder/#%7B%22blocks%22:%5B%7B%22type%22:%22section%22,%22text%22:%7B%22text%22:%22A%20message%20*with%20some%20bold%20text*%20and%20_some%20italicized%20text_.%22,%22type%22:%22mrkdwn%22%7D,%22fields%22:%5B%7B%22type%22:%22mrkdwn%22,%22text%22:%22*Priority*%22%7D,%7B%22type%22:%22mrkdwn%22,%22text%22:%22*Type*%22%7D,%7B%22type%22:%22plain_text%22,%22text%22:%22High%22%7D,%7B%22type%22:%22plain_text%22,%22text%22:%22Silly%22%7D%5D%7D%5D%7D) { "type": "section", "text": { "text": "A message *with some bold text* and _some italicized text_.", "type": "mrkdwn" }, "fields": [ { "type": "mrkdwn", "text": "High" }, { "type": "plain_text", "emoji": true, "text": "Silly" } ]} A section block containing a datepicker element: ![An example of a section block](https://docs.slack.dev/assets/images/bk_section_example-59ef52f9a5a815428804542a16f59f64.png) [View in Block Kit Builder](https://app.slack.com/block-kit-builder/#%7B%22blocks%22:%5B%7B%22type%22:%22section%22,%22text%22:%7B%22text%22:%22*Haley*%20has%20requested%20you%20set%20a%20deadline%20for%20finding%20a%20house%22,%22type%22:%22mrkdwn%22%7D,%22accessory%22:%7B%22type%22:%22datepicker%22%7D%7D%5D%7D) { "type": "section", "text": { "text": "*Haley* has requested you set a deadline for finding a house", "type": "mrkdwn" }, "accessory": { "type": "datepicker", "action_id": "datepicker123", "initial_date": "1990-04-28", "placeholder": { "type": "plain_text", "text": "Select a date" } }} * [Fields](https://docs.slack.dev/reference/block-kit/blocks/section-block/#fields) * [Usage info](https://docs.slack.dev/reference/block-kit/blocks/section-block/#usage-info) * [Examples](https://docs.slack.dev/reference/block-kit/blocks/section-block/#examples) --- # Plain-text input element | Slack Developer Docs [Skip to main content](https://docs.slack.dev/reference/block-kit/block-elements/plain-text-input-element/#__docusaurus_skipToContent_fallback) On this page Example: ![An example of a plain-text element](https://docs.slack.dev/assets/images/bk_textinput_example-f56da84c9b85f86c284fae2e576ce1da.png) Fields[​](https://docs.slack.dev/reference/block-kit/block-elements/plain-text-input-element/#fields "Direct link to Fields") ------------------------------------------------------------------------------------------------------------------------------ | Field | Type | Description | Required? | | --- | --- | --- | --- | | `type` | String | The type of element. In this case `type` is always `plain_text_input`. | Required | | `action_id` | String | An identifier for the input value when the parent modal is submitted. You can use this when you receive a `view_submission` payload [to identify the value of the input element](https://docs.slack.dev/surfaces/modals#interactions)
. Should be unique among all other `action_id`s in the containing block. Maximum length is 255 characters. | Optional | | `initial_value` | String | The initial value in the plain-text input when it is loaded. | Optional | | `multiline` | Boolean | Indicates whether the input will be a single line (`false`) or a larger textarea (`true`). Defaults to `false`. | Optional | | `min_length` | Integer | The minimum length of input that the user must provide. If the user provides less, they will receive an error. Acceptable values for this field are between 0 and 3000, inclusive. | Optional | | `max_length` | Integer | The maximum length of input that the user can provide. If the user provides more, they will receive an error. Acceptable values for this field are between 1 and 3000, inclusive. | Optional | | `dispatch_action_config` | Object | A [dispatch configuration object](https://docs.slack.dev/reference/block-kit/composition-objects/dispatch-action-configuration-object)
that determines when during text input the element returns a [`block_actions` payload](https://docs.slack.dev/reference/interaction-payloads/block_actions-payload)
. | Optional | | `focus_on_load` | Boolean | Indicates whether the element will be set to auto focus within the [`view object`](https://docs.slack.dev/reference/views)
. Only one element can be set to `true`. Defaults to `false`. | Optional | | `placeholder` | Object | A [`plain_text`](https://docs.slack.dev/reference/block-kit/composition-objects/text-object)
only text object that defines the placeholder text shown in the plain-text input. Maximum length for the `text` in this field is 150 characters. | Optional | Example[​](https://docs.slack.dev/reference/block-kit/block-elements/plain-text-input-element/#example "Direct link to Example") --------------------------------------------------------------------------------------------------------------------------------- An input block containing a plain-text input element. { "type": "input", "block_id": "input123", "label": { "type": "plain_text", "text": "Label of input" }, "element": { "type": "plain_text_input", "action_id": "plain_input", "placeholder": { "type": "plain_text", "text": "Enter some plain text" } }} [View in Block Kit Builder](https://api.slack.com/tools/block-kit-builder?blocks=#%7B%22blocks%22:%5B%7B%22type%22:%22input%22,%22element%22:%7B%22type%22:%22plain_text_input%22,%22action_id%22:%22plain_text_input-action%22%7D,%22label%22:%7B%22type%22:%22plain_text%22,%22text%22:%22Label%22,%22emoji%22:true%7D%7D%5D,%22type%22:%22home%22%7D) * [Fields](https://docs.slack.dev/reference/block-kit/block-elements/plain-text-input-element/#fields) * [Example](https://docs.slack.dev/reference/block-kit/block-elements/plain-text-input-element/#example) --- # Radio button group element | Slack Developer Docs [Skip to main content](https://docs.slack.dev/reference/block-kit/block-elements/radio-button-group-element/#__docusaurus_skipToContent_fallback) On this page Example: ![An example of a radio button element](data:image/png;base64,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) Fields[​](https://docs.slack.dev/reference/block-kit/block-elements/radio-button-group-element/#fields "Direct link to Fields") -------------------------------------------------------------------------------------------------------------------------------- | Field | Type | Description | Required? | | --- | --- | --- | --- | | `type` | String | The type of element. In this case `type` is always `radio_buttons`. | Required | | `action_id` | String | An identifier for the action triggered when the radio button group is changed. You can use this when you receive an interaction payload to [identify the source of the action](https://docs.slack.dev/interactivity/handling-user-interaction#payloads)
. Should be unique among all other `action_id`s in the containing block. Maximum length is 255 characters. | Optional | | `options` | Object\[\] | An array of [option objects](https://docs.slack.dev/reference/block-kit/composition-objects/option-object)
. A maximum of 10 options are allowed. | Required | | `initial_option` | Object | An [option object](https://docs.slack.dev/reference/block-kit/composition-objects/option-object)
that exactly matches one of the options within `options`. This option will be selected when the radio button group initially loads. | Optional | | `confirm` | Object | A [confirm object](https://docs.slack.dev/reference/block-kit/composition-objects/confirmation-dialog-object)
that defines an optional confirmation dialog that appears after clicking one of the radio buttons in this element. | Optional | | `focus_on_load` | Boolean | Indicates whether the element will be set to auto focus within the [`view object`](https://docs.slack.dev/reference/views)
. Only one element can be set to `true`. Defaults to `false`. | Optional | Example[​](https://docs.slack.dev/reference/block-kit/block-elements/radio-button-group-element/#example "Direct link to Example") ----------------------------------------------------------------------------------------------------------------------------------- A section block containing a set of radio buttons: { "type": "modal", "title": { "type": "plain_text", "text": "My App", "emoji": true }, "submit": { "type": "plain_text", "text": "Submit", "emoji": true }, "close": { "type": "plain_text", "text": "Cancel", "emoji": true }, "blocks": [ { "type": "section", "text": { "type": "plain_text", "text": "Check out these rad radio buttons" }, "accessory": { "type": "radio_buttons", "action_id": "this_is_an_action_id", "initial_option": { "value": "A1", "text": { "type": "plain_text", "text": "Radio 1" } }, "options": [ { "value": "A1", "text": { "type": "plain_text", "text": "Radio 1" } }, { "value": "A2", "text": { "type": "plain_text", "text": "Radio 2" }, "description": { "type": "mrkdwn", "text": "*Option two*" }, } ] } } ]} [View in Block Kit Builder](https://api.slack.com/tools/block-kit-builder?blocks=%5B%7B%22type%22%3A%22section%22%2C%22text%22%3A%7B%22type%22%3A%22plain_text%22%2C%22text%22%3A%22Check%20out%20these%20rad%20radio%20buttons%22%7D%2C%22accessory%22%3A%7B%22type%22%3A%22radio_buttons%22%2C%22action_id%22%3A%22this_is_an_action_id%22%2C%22initial_option%22%3A%7B%22value%22%3A%22A1%22%2C%22text%22%3A%7B%22type%22%3A%22plain_text%22%2C%22text%22%3A%22Radio%201%22%7D%7D%2C%22options%22%3A%5B%7B%22value%22%3A%22A1%22%2C%22text%22%3A%7B%22type%22%3A%22plain_text%22%2C%22text%22%3A%22Radio%201%22%7D%7D%2C%7B%22value%22%3A%22A2%22%2C%22text%22%3A%7B%22type%22%3A%22plain_text%22%2C%22text%22%3A%22Radio%202%22%7D%7D%5D%7D%7D%5D&mode=appHome) * * * * [Fields](https://docs.slack.dev/reference/block-kit/block-elements/radio-button-group-element/#fields) * [Example](https://docs.slack.dev/reference/block-kit/block-elements/radio-button-group-element/#example) --- # Rich text input element | Slack Developer Docs [Skip to main content](https://docs.slack.dev/reference/block-kit/block-elements/rich-text-input-element/#__docusaurus_skipToContent_fallback) On this page ![An example of a rich text input element](https://docs.slack.dev/assets/images/bk_richtext_modal-3c112fedb8472663068342fcb8272dd1.png) Fields[​](https://docs.slack.dev/reference/block-kit/block-elements/rich-text-input-element/#fields "Direct link to Fields") ----------------------------------------------------------------------------------------------------------------------------- | Field | Type | Description | Required? | | --- | --- | --- | --- | | `type` | String | The type of element. In this case `type` is always `rich_text_input`. | Required | | `action_id` | String | An identifier for the input value when the parent modal is submitted. You can use this when you receive a `view_submission` payload [to identify the value of the input element](https://docs.slack.dev/surfaces/modals#interactions)
. Should be unique in the containing block. Maximum length is 255 characters. | Required | | `initial_value` | [Rich text](https://docs.slack.dev/reference/block-kit/blocks/rich-text-block) | The initial value in the rich text input when it is loaded. | Optional | | `dispatch_action_config` | Object | A [dispatch configuration object](https://docs.slack.dev/reference/block-kit/composition-objects/dispatch-action-configuration-object)
that determines when during text input the element returns a [`block_actions`](https://docs.slack.dev/reference/interaction-payloads/block_actions-payload)
payload. | Optional | | `focus_on_load` | Boolean | Indicates whether the element will be set to auto focus within the [`view object`](https://docs.slack.dev/reference/views)
. Only one element can be set to `true`. Defaults to `false`. | Optional | | `placeholder` | Object | A [`plain_text`](https://docs.slack.dev/reference/block-kit/composition-objects/text-object)
object that defines the placeholder text shown in the plain-text input. Maximum length for the `text` in this field is 150 characters. | Optional | Example[​](https://docs.slack.dev/reference/block-kit/block-elements/rich-text-input-element/#example "Direct link to Example") -------------------------------------------------------------------------------------------------------------------------------- An input block containing a rich text input element. { "type": "rich_text_input", "action_id": "rich_text_input-action", "dispatch_action_config": { "trigger_actions_on": [ "on_character_entered" ] }, "focus_on_load": true, "placeholder": { "type": "plain_text", "text": "Enter text" }} * * * * [Fields](https://docs.slack.dev/reference/block-kit/block-elements/rich-text-input-element/#fields) * [Example](https://docs.slack.dev/reference/block-kit/block-elements/rich-text-input-element/#example) --- # URL input element | Slack Developer Docs [Skip to main content](https://docs.slack.dev/reference/block-kit/block-elements/url-input-element/#__docusaurus_skipToContent_fallback) On this page Fields[​](https://docs.slack.dev/reference/block-kit/block-elements/url-input-element/#fields "Direct link to Fields") ----------------------------------------------------------------------------------------------------------------------- | Fields | Type | Description | Required? | | --- | --- | --- | --- | | `type` | String | The type of element. In this case `type` is always `url_text_input`. | Required | | `action_id` | String | An identifier for the input value when the parent modal is submitted. You can use this when you receive a `view_submission` payload [to identify the value of the input element](https://docs.slack.dev/surfaces/modals#interactions)
. Should be unique among all other `action_id`s in the containing block. Maximum length is 255 characters. | Optional | | `initial_value` | String | The initial value in the URL input when it is loaded. | Optional | | `dispatch_action_config` | Object | A [dispatch configuration object](https://docs.slack.dev/reference/block-kit/composition-objects/dispatch-action-configuration-object)
that determines when during text input the element returns a [`block_actions` payload](https://docs.slack.dev/reference/interaction-payloads/block_actions-payload)
. | Optional | | `focus_on_load` | Boolean | Indicates whether the element will be set to auto focus within the [`view object`](https://docs.slack.dev/reference/views)
. Only one element can be set to `true`. Defaults to `false`. | Optional | | `placeholder` | Object | A [`plain_text`](https://docs.slack.dev/reference/block-kit/composition-objects/text-object)
only text object that defines the placeholder text shown in the URL input. Maximum length for the `text` in this field is 150 characters. | Optional | Example[​](https://docs.slack.dev/reference/block-kit/block-elements/url-input-element/#example "Direct link to Example") -------------------------------------------------------------------------------------------------------------------------- An input block containing a URL-text input element. { "type": "input", "element": { "type": "url_text_input", "action_id": "url_text_input-action" }, "label": { "type": "plain_text", "text": "Label", "emoji": true }} * [Fields](https://docs.slack.dev/reference/block-kit/block-elements/url-input-element/#fields) * [Example](https://docs.slack.dev/reference/block-kit/block-elements/url-input-element/#example) --- # Time picker element | Slack Developer Docs [Skip to main content](https://docs.slack.dev/reference/block-kit/block-elements/time-picker-element/#__docusaurus_skipToContent_fallback) On this page Usage info[​](https://docs.slack.dev/reference/block-kit/block-elements/time-picker-element/#usage-info "Direct link to Usage info") ------------------------------------------------------------------------------------------------------------------------------------- _Interactive component_ - see our [guide to enabling interactivity](https://docs.slack.dev/interactivity/handling-user-interaction) . On desktop clients, this time picker will take the form of a dropdown list with free-text entry for precise choices. On mobile clients, the time picker will use native time picker UIs. Fields[​](https://docs.slack.dev/reference/block-kit/block-elements/time-picker-element/#fields "Direct link to Fields") ------------------------------------------------------------------------------------------------------------------------- | Field | Type | Description | Required? | | --- | --- | --- | --- | | `type` | String | The type of element. In this case `type` is always `timepicker`. | Required | | `action_id` | String | An identifier for the action triggered when a time is selected. You can use this when you receive an interaction payload to [identify the source of the action](https://docs.slack.dev/interactivity/handling-user-interaction#payloads)
. Should be unique among all other `action_id`s in the containing block. Maximum length is 255 characters. | Optional | | `initial_time` | String | The initial time that is selected when the element is loaded. This should be in the format `HH:mm`, where `HH` is the 24-hour format of an hour (00 to 23) and `mm` is minutes with leading zeros (00 to 59), for example `22:25` for 10:25pm. | Optional | | `confirm` | Object | A [confirm object](https://docs.slack.dev/reference/block-kit/composition-objects/confirmation-dialog-object)
that defines an optional confirmation dialog that appears after a time is selected. | Optional | | `focus_on_load` | Boolean | Indicates whether the element will be set to auto focus within the [`view object`](https://docs.slack.dev/reference/views)
. Only one element can be set to `true`. Defaults to `false`. | Optional | | `placeholder` | Object | A [`plain_text`](https://docs.slack.dev/reference/block-kit/composition-objects/text-object)
only text object that defines the placeholder text shown on the time picker. Maximum length for the `text` in this field is 150 characters. | Optional | | `timezone` | String | A string in the IANA format, e.g. "America/Chicago". The timezone is displayed to end users as hint text underneath the time picker. It is also passed to the app upon certain interactions, such as `view_submission`. | Optional | Example[​](https://docs.slack.dev/reference/block-kit/block-elements/time-picker-element/#example "Direct link to Example") ---------------------------------------------------------------------------------------------------------------------------- A section block containing a time picker element, with the initial time set to 11:40am: { "type": "section", "block_id": "section1234", "text": { "type": "mrkdwn", "text": "Pick a date for the deadline." }, "accessory": { "type": "timepicker", "timezone": "America/Los_Angeles", "action_id": "timepicker123", "initial_time": "11:40", "placeholder": { "type": "plain_text", "text": "Select a time" } }} [View in Block Kit Builder](https://api.slack.com/block-kit-builder#%7B%22type%22:%22modal%22,%22title%22:%7B%22type%22:%22plain_text%22,%22text%22:%22My%20App%22,%22emoji%22:true%7D,%22submit%22:%7B%22type%22:%22plain_text%22,%22text%22:%22Submit%22,%22emoji%22:true%7D,%22close%22:%7B%22type%22:%22plain_text%22,%22text%22:%22Cancel%22,%22emoji%22:true%7D,%22blocks%22:%5B%7B%22type%22:%22section%22,%22block_id%22:%22section1234%22,%22text%22:%7B%22type%22:%22mrkdwn%22,%22text%22:%22Pick%20a%20date%20for%20the%20deadline.%22%7D,%22accessory%22:%7B%22type%22:%22timepicker%22,%22action_id%22:%22timepicker123%22,%22initial_time%22:%2211:40%22,%22placeholder%22:%7B%22type%22:%22plain_text%22,%22text%22:%22Select%20a%20time%22%7D%7D%7D%5D%7D) * [Usage info](https://docs.slack.dev/reference/block-kit/block-elements/time-picker-element/#usage-info) * [Fields](https://docs.slack.dev/reference/block-kit/block-elements/time-picker-element/#fields) * [Example](https://docs.slack.dev/reference/block-kit/block-elements/time-picker-element/#example) --- # Option object | Slack Developer Docs [Skip to main content](https://docs.slack.dev/reference/block-kit/composition-objects/option-object/#__docusaurus_skipToContent_fallback) On this page **Defines a single item in a number of item selection elements.** An object that represents a single selectable item in a [select menu](https://docs.slack.dev/reference/block-kit/block-elements/select-menu-element) , [multi-select menu](https://docs.slack.dev/reference/block-kit/block-elements/multi-select-menu-element) , [checkbox group](https://docs.slack.dev/reference/block-kit/block-elements/checkboxes-element) , [radio button group](https://docs.slack.dev/reference/block-kit/block-elements/radio-button-group-element) , or [overflow menu](https://docs.slack.dev/reference/block-kit/block-elements/overflow-menu-element) . #### Fields[​](https://docs.slack.dev/reference/block-kit/composition-objects/option-object/#fields "Direct link to Fields") | Field | Type | Description | Required? | | --- | --- | --- | --- | | `text` | Object | A [text object](https://docs.slack.dev/reference/block-kit/composition-objects/option-object/#text)
that defines the text shown in the option on the menu. Overflow, select, and multi-select menus can only use `plain_text` objects, while radio buttons and checkboxes can use `mrkdwn` text objects. Maximum length for the `text` in this field is 75 characters. | Required | | `value` | String | A unique string value that will be passed to your app when this option is chosen. Maximum length for this field is 150 characters. | Required | | `description` | Object | A [`plain_text`](https://docs.slack.dev/reference/block-kit/composition-objects/option-object/#text)
text object that defines a line of descriptive text shown below the `text` field beside a single selectable item in a [select menu](https://docs.slack.dev/reference/block-kit/block-elements/select-menu-element)
, [multi-select menu](https://docs.slack.dev/reference/block-kit/block-elements/multi-select-menu-element)
, [checkbox group](https://docs.slack.dev/reference/block-kit/block-elements/checkboxes-element)
, [radio button group](https://docs.slack.dev/reference/block-kit/block-elements/radio-button-group-element)
, or [overflow menu](https://docs.slack.dev/reference/block-kit/block-elements/overflow-menu-element)
. [Checkbox group](https://docs.slack.dev/reference/block-kit/block-elements/checkboxes-element)
and [radio button group](https://docs.slack.dev/reference/block-kit/block-elements/radio-button-group-element)
items can also use [`mrkdwn`](https://docs.slack.dev/messaging/formatting-message-text#basic-formatting)
formatting. Maximum length for the `text` within this field is 75 characters. | Optional | | `url` | String | A URL to load in the user's browser when the option is clicked. **The `url` attribute is only available in [overflow menus](https://docs.slack.dev/reference/block-kit/block-elements/overflow-menu-element)
**. Maximum length for this field is 3000 characters. If you're using `url`, you'll still receive an [interaction payload](https://docs.slack.dev/interactivity/handling-user-interaction#payloads)
and will need to [send an acknowledgement response](https://docs.slack.dev/interactivity/handling-user-interaction#acknowledgment_response)
. | Optional | #### Example[​](https://docs.slack.dev/reference/block-kit/composition-objects/option-object/#example "Direct link to Example") { "text": { "type": "plain_text", "text": "Maru" }, "value": "maru"} [View in Block Kit Builder](https://api.slack.com/tools/block-kit-builder?mode=message&blocks=%5B%7B%22type%22%3A%22section%22%2C%22text%22%3A%7B%22type%22%3A%22mrkdwn%22%2C%22text%22%3A%22%3Amag%3A%20Search%20results%20for%20*Cata*%22%7D%7D%2C%7B%22type%22%3A%22divider%22%7D%2C%7B%22type%22%3A%22section%22%2C%22text%22%3A%7B%22type%22%3A%22mrkdwn%22%2C%22text%22%3A%22*%3CfakeLink.toYourApp.com%7CUse%20Case%20Catalogue%3E*%5CnUse%20Case%20Catalogue%20for%20the%20following%20departments%2Froles...%22%7D%2C%22accessory%22%3A%7B%22type%22%3A%22static_select%22%2C%22placeholder%22%3A%7B%22type%22%3A%22plain_text%22%2C%22emoji%22%3Atrue%2C%22text%22%3A%22Manage%22%7D%2C%22options%22%3A%5B%7B%22text%22%3A%7B%22type%22%3A%22plain_text%22%2C%22emoji%22%3Atrue%2C%22text%22%3A%22Edit%20it%22%7D%2C%22value%22%3A%22value-0%22%7D%2C%7B%22text%22%3A%7B%22type%22%3A%22plain_text%22%2C%22emoji%22%3Atrue%2C%22text%22%3A%22Read%20it%22%7D%2C%22value%22%3A%22value-1%22%7D%2C%7B%22text%22%3A%7B%22type%22%3A%22plain_text%22%2C%22emoji%22%3Atrue%2C%22text%22%3A%22Save%20it%22%7D%2C%22value%22%3A%22value-2%22%7D%5D%7D%7D%5D) * * * --- # Workflow button element | Slack Developer Docs [Skip to main content](https://docs.slack.dev/reference/block-kit/block-elements/workflow-button-element/#__docusaurus_skipToContent_fallback) On this page Example: ![Three buttons showing default, primary, and danger color style](data:image/png;base64,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) Fields[​](https://docs.slack.dev/reference/block-kit/block-elements/workflow-button-element/#fields "Direct link to Fields") ----------------------------------------------------------------------------------------------------------------------------- | Field | Type | Description | Required? | | --- | --- | --- | --- | | `type` | String | The type of element. In this case `type` is always `workflow_button`. | Required | | `text` | Object | A [text object](https://docs.slack.dev/reference/block-kit/composition-objects/text-object)
that defines the button's text. Can only be of `type: plain_text`. `text` may truncate with ~30 characters. Maximum length for the `text` in this field is 75 characters. | Required | | `workflow` | Object | A [workflow object](https://docs.slack.dev/reference/block-kit/composition-objects/workflow-object)
that contains details about the workflow that will run when the button is clicked. | Required | | `action_id` | String | An identifier for the action. Use this when you receive an interaction payload to [identify the source of the action](https://docs.slack.dev/interactivity/handling-user-interaction#payloads)
. Every `action_id` in a block should be unique. Maximum length is 255 characters. | Required | | `style` | String | Decorates buttons with alternative visual color schemes. Use this option with restraint.`primary` gives buttons a green outline and text, ideal for affirmation or confirmation actions. `primary` should only be used for one button within a set.`danger` gives buttons a red outline and text, and should be used when the action is destructive. Use `danger` even more sparingly than `primary`.If you don't include this field, the default button style will be used. | Optional | | `accessibility_label` | String | A label for longer descriptive text about a button element. This label will be read out by screen readers _instead of_ the button [`text` object](https://docs.slack.dev/reference/block-kit/composition-objects/text-object)
. Maximum length is 75 characters. | Optional | Example[​](https://docs.slack.dev/reference/block-kit/block-elements/workflow-button-element/#example "Direct link to Example") -------------------------------------------------------------------------------------------------------------------------------- { "type": "workflow_button", "text": { "type": "plain_text", "text": "Run Workflow" }, "action_id": "workflowbutton123", "workflow": { "trigger": { "url": "https://slack.com/shortcuts/Ft0123ABC456/xyz...zyx", "customizable_input_parameters": [ { "name": "input_parameter_a", "value": "Value for input param A" }, { "name": "input_parameter_b", "value": "Value for input param B" } ] } }} * [Fields](https://docs.slack.dev/reference/block-kit/block-elements/workflow-button-element/#fields) * [Example](https://docs.slack.dev/reference/block-kit/block-elements/workflow-button-element/#example) --- # Multi-select menu element | Slack Developer Docs [Skip to main content](https://docs.slack.dev/reference/block-kit/block-elements/multi-select-menu-element/#__docusaurus_skipToContent_fallback) On this page Usage info[​](https://docs.slack.dev/reference/block-kit/block-elements/multi-select-menu-element/#usage-info "Direct link to Usage info") ------------------------------------------------------------------------------------------------------------------------------------------- _Interactive component_ - see our [guide to enabling interactivity](https://docs.slack.dev/interactivity/handling-user-interaction) . Just like regular [select menus](https://docs.slack.dev/reference/block-kit/block-elements/multi-select-menu-element/#select) , multi-select menus also include type-ahead functionality, where a user can type a part or all of an option string to filter the list. There are different types of multi-select menu that depend on different data sources for their lists of options: * [Menu with static options](https://docs.slack.dev/reference/block-kit/block-elements/multi-select-menu-element/#static_multi_select) * [Menu with external data source](https://docs.slack.dev/reference/block-kit/block-elements/multi-select-menu-element/#external_multi_select) * [Menu with user list](https://docs.slack.dev/reference/block-kit/block-elements/multi-select-menu-element/#users_multi_select) * [Menu with conversations list](https://docs.slack.dev/reference/block-kit/block-elements/multi-select-menu-element/#conversation_multi_select) * [Menu with channels list](https://docs.slack.dev/reference/block-kit/block-elements/multi-select-menu-element/#channel_multi_select) Example: ![An example of a multi-select element](https://docs.slack.dev/assets/images/bk_multiselect_example-a45c62b28d931e66439dfaf052170d70.png) * * * Static options[​](https://docs.slack.dev/reference/block-kit/block-elements/multi-select-menu-element/#static_multi_select "Direct link to Static options") ------------------------------------------------------------------------------------------------------------------------------------------------------------ This is the most basic form of select menu, with a static list of options passed in when defining the element. ### Fields[​](https://docs.slack.dev/reference/block-kit/block-elements/multi-select-menu-element/#fields "Direct link to Fields") | Field | Type | Description | Required? | | --- | --- | --- | --- | | `type` | String | The type of element. In this case `type` is always `multi_static_select`. | Required | | `action_id` | String | An identifier for the action triggered when a menu option is selected. You can use this when you receive an interaction payload to [identify the source of the action](https://docs.slack.dev/messaging/creating-interactive-messages#understanding_payloads)
. Should be unique among all other `action_id`s in the containing block. Maximum length is 255 characters. | Optional | | `options` | Object\[\] | An array of [option objects](https://docs.slack.dev/reference/block-kit/composition-objects/option-object)
. Maximum number of options is 100. Each option must be less than 76 characters. If `option_groups` is specified, this field should not be. | Required | | `option_groups` | Object\[\] | An array of [option group objects](https://docs.slack.dev/reference/block-kit/composition-objects/option-group-object)
. Maximum number of option groups is 100. If `options` is specified, this field should not be. | Optional | | `initial_options` | Object\[\] | An array of [option objects](https://docs.slack.dev/reference/block-kit/composition-objects/option-object)
that exactly match one or more of the options within `options` or `option_groups`. These options will be selected when the menu initially loads. | Optional | | `confirm` | Object | A [confirm object](https://docs.slack.dev/reference/block-kit/composition-objects/confirmation-dialog-object)
that defines an optional confirmation dialog that appears before the multi-select choices are submitted. | Optional | | `max_selected_items` | Integer | Specifies the maximum number of items that can be selected in the menu. Minimum number is 1. | Optional | | `focus_on_load` | Boolean | Indicates whether the element will be set to auto focus within the [`view object`](https://docs.slack.dev/reference/views)
. Only one element can be set to `true`. Defaults to `false`. | Optional | | `placeholder` | Object | A [`plain_text` only text object](https://docs.slack.dev/reference/block-kit/composition-objects/text-object)
that defines the placeholder text shown on the menu. Maximum length for the `text` in this field is 150 characters. | Optional | ### Example[​](https://docs.slack.dev/reference/block-kit/block-elements/multi-select-menu-element/#example "Direct link to Example") A static multi-select menu [ { "type": "section", "block_id": "section678", "text": { "type": "mrkdwn", "text": "Pick items from the list" }, "accessory": { "action_id": "text1234", "type": "multi_static_select", "placeholder": { "type": "plain_text", "text": "Select items" }, "options": [ { "text": { "type": "plain_text", "text": "*this is plain_text text*" }, "value": "value-0" }, { "text": { "type": "plain_text", "text": "*this is plain_text text*" }, "value": "value-1" }, { "text": { "type": "plain_text", "text": "*this is plain_text text*" }, "value": "value-2" } ] } }] [View in Block Kit Builder](https://api.slack.com/tools/block-kit-builder?blocks=%5B%7B%22type%22%3A%22section%22%2C%22block_id%22%3A%22section678%22%2C%22text%22%3A%7B%22type%22%3A%22mrkdwn%22%2C%22text%22%3A%22Pick%20items%20from%20the%20list%22%7D%2C%22accessory%22%3A%7B%22action_id%22%3A%22text1234%22%2C%22type%22%3A%22multi_static_select%22%2C%22placeholder%22%3A%7B%22type%22%3A%22plain_text%22%2C%22text%22%3A%22Select%20items%22%7D%2C%22options%22%3A%5B%7B%22text%22%3A%7B%22type%22%3A%22plain_text%22%2C%22text%22%3A%22*this%20is%20plain_text%20text*%22%7D%2C%22value%22%3A%22value-0%22%7D%2C%7B%22text%22%3A%7B%22type%22%3A%22plain_text%22%2C%22text%22%3A%22*this%20is%20plain_text%20text*%22%7D%2C%22value%22%3A%22value-1%22%7D%2C%7B%22text%22%3A%7B%22type%22%3A%22plain_text%22%2C%22text%22%3A%22*this%20is%20plain_text%20text*%22%7D%2C%22value%22%3A%22value-2%22%7D%5D%7D%7D%5D) * * * External data source[​](https://docs.slack.dev/reference/block-kit/block-elements/multi-select-menu-element/#external_multi_select "Direct link to External data source") -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- This menu will load its options from an external data source, allowing for a dynamic list of options. ### Setup[​](https://docs.slack.dev/reference/block-kit/block-elements/multi-select-menu-element/#setup "Direct link to Setup") To use this menu type, you'll need to configure your app first: 1. Go to your [app's settings page](https://api.slack.com/apps) and select **Interactivity & Shortcuts** from the sidebar. 2. Add a URL to the **Options Load URL** under Select Menus. 3. Save changes. Each time a menu of this type is opened or the user starts typing in the typeahead field, we'll send a request to your specified URL. Your app should return an HTTP 200 OK response, along with an `application/json` post body with an object containing either: * an [`options`](https://docs.slack.dev/reference/block-kit/composition-objects/option-object) array * an [`option_groups`](https://docs.slack.dev/reference/block-kit/composition-objects/option-group-object) array The `option_groups` array can have a maximum number of 100 option groups with a maximum of 100 options. Here's an example response: { "options": [ { "text": { "type": "plain_text", "text": "*this is plain_text text*" }, "value": "value-0" }, { "text": { "type": "plain_text", "text": "*this is plain_text text*" }, "value": "value-1" }, { "text": { "type": "plain_text", "text": "*this is plain_text text*" }, "value": "value-2" } ]} ### Making the element optional[​](https://docs.slack.dev/reference/block-kit/block-elements/multi-select-menu-element/#multi-select-optional "Direct link to Making the element optional") By default, external multi-select menu elements require a user to select at least one option from the drop-down menu. However, there is a way to make a selection from this element optional. This is done by containing the element within an [input block](https://docs.slack.dev/reference/block-kit/blocks/input-block) , and using its `optional` field to designate the input element as an optional element. (In fact, any Block Kit element can be made optional this way!) ### Fields[​](https://docs.slack.dev/reference/block-kit/block-elements/multi-select-menu-element/#fields-1 "Direct link to Fields") | Field | Type | Description | Required? | | --- | --- | --- | --- | | `type` | String | The type of element. In this case `type` is always `multi_external_select`. | Required | | `action_id` | String | An identifier for the action triggered when a menu option is selected. You can use this when you receive an interaction payload to [identify the source of the action](https://docs.slack.dev/interactivity/handling-user-interaction#payloads)
. Should be unique among all other `action_id`s in the containing block. Maximum length is 255 characters. | Optional | | `min_query_length` | Integer | When the typeahead field is used, a request will be sent on every character change. If you prefer fewer requests or more fully ideated queries, use the `min_query_length` attribute to tell Slack the fewest number of typed characters required before dispatch. The default value is `3`. | Optional | | `initial_options` | Object\[\] | An array of [option objects](https://docs.slack.dev/reference/block-kit/composition-objects/option-object)
that exactly match one or more of the options within `options` or `option_groups`. These options will be selected when the menu initially loads. | Optional | | `confirm` | Object | A [confirm object](https://docs.slack.dev/reference/block-kit/composition-objects/confirmation-dialog-object)
that defines an optional confirmation dialog that appears before the multi-select choices are submitted. | Optional | | `max_selected_items` | Integer | Specifies the maximum number of items that can be selected in the menu. Minimum number is 1. | Optional | | `focus_on_load` | Boolean | Indicates whether the element will be set to auto focus within the [`view object`](https://docs.slack.dev/reference/views)
. Only one element can be set to `true`. Defaults to `false`. | Optional | | `placeholder` | Object | A [`plain_text`](https://docs.slack.dev/reference/block-kit/composition-objects/text-object)
only text object that defines the placeholder text shown on the menu. Maximum length for the `text` in this field is 150 characters. | Optional | ### Example[​](https://docs.slack.dev/reference/block-kit/block-elements/multi-select-menu-element/#example-1 "Direct link to Example") A multi-select menu in a section block with an external data source: [ { "type": "section", "block_id": "section678", "text": { "type": "mrkdwn", "text": "Pick items from the list" }, "accessory": { "action_id": "text1234", "type": "multi_external_select", "placeholder": { "type": "plain_text", "text": "Select items" }, "min_query_length": 3 } }] * * * User list[​](https://docs.slack.dev/reference/block-kit/block-elements/multi-select-menu-element/#users_multi_select "Direct link to User list") ------------------------------------------------------------------------------------------------------------------------------------------------- This multi-select menu will populate its options with a list of Slack users visible to the current user in the active workspace. ### Fields[​](https://docs.slack.dev/reference/block-kit/block-elements/multi-select-menu-element/#fields-2 "Direct link to Fields") | Field | Type | Description | Required? | | --- | --- | --- | --- | | `type` | String | The type of element. In this case `type` is always `multi_users_select`. | Required | | `action_id` | String | An identifier for the action triggered when a menu option is selected. You can use this when you receive an interaction payload to [identify the source of the action](https://docs.slack.dev/interactivity/handling-user-interaction#payloads)
. Should be unique among all other `action_id`s in the containing block. Maximum length is 255 characters. | Optional | | `initial_users` | String\[\] | An array of user IDs of any valid users to be pre-selected when the menu loads. | Optional | | `confirm` | Object | A [confirm object](https://docs.slack.dev/reference/block-kit/composition-objects/confirmation-dialog-object)
that defines an optional confirmation dialog that appears before the multi-select choices are submitted. | Optional | | `max_selected_items` | Integer | Specifies the maximum number of items that can be selected in the menu. Minimum number is 1. | Optional | | `focus_on_load` | Boolean | Indicates whether the element will be set to auto focus within the [`view object`](https://docs.slack.dev/reference/views)
. Only one element can be set to `true`. Defaults to `false`. | Optional | | `placeholder` | Object | A [`plain_text`](https://docs.slack.dev/reference/block-kit/composition-objects/text-object)
only text object that defines the placeholder text shown on the menu. Maximum length for the `text` in this field is 150 characters. | Optional | ### Example[​](https://docs.slack.dev/reference/block-kit/block-elements/multi-select-menu-element/#example-2 "Direct link to Example") A multi-select menu in a section block showing a list of users: [ { "type": "section", "block_id": "section678", "text": { "type": "mrkdwn", "text": "Pick users from the list" }, "accessory": { "action_id": "text1234", "type": "multi_users_select", "placeholder": { "type": "plain_text", "text": "Select users" } } }] * * * Conversations list[​](https://docs.slack.dev/reference/block-kit/block-elements/multi-select-menu-element/#conversation_multi_select "Direct link to Conversations list") -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- This multi-select menu will populate its options with a list of public and private channels, DMs, and MPIMs visible to the current user in the active workspace. ### Fields[​](https://docs.slack.dev/reference/block-kit/block-elements/multi-select-menu-element/#fields-3 "Direct link to Fields") | Field | Type | Description | Required? | | --- | --- | --- | --- | | `type` | String | The type of element. In this case `type` is always `multi_conversations_select`. | Required | | `action_id` | String | An identifier for the action triggered when a menu option is selected. You can use this when you receive an interaction payload to [identify the source of the action](https://docs.slack.dev/interactivity/handling-user-interaction#payloads)
. Should be unique among all other `action_id`s in the containing block. Maximum length is 255 characters. | Optional | | `initial_conversations` | String\[\] | An array of one or more IDs of any valid conversations to be pre-selected when the menu loads. If `default_to_current_conversation` is also supplied, `initial_conversations` will be ignored. | Optional | | `default_to_current_conversation` | Boolean | Pre-populates the select menu with the conversation that the user was viewing when they opened the modal, if available. Default is `false`. | Optional | | `confirm` | Object | A [confirm object](https://docs.slack.dev/reference/block-kit/composition-objects/confirmation-dialog-object)
that defines an optional confirmation dialog that appears before the multi-select choices are submitted. | Optional | | `max_selected_items` | Integer | Specifies the maximum number of items that can be selected in the menu. Minimum number is 1. | Optional | | `filter` | Object | A [filter object](https://docs.slack.dev/reference/block-kit/composition-objects/conversation-filter-object)
that reduces the list of available conversations using the specified criteria. | Optional | | `focus_on_load` | Boolean | Indicates whether the element will be set to auto focus within the [`view object`](https://docs.slack.dev/reference/views)
. Only one element can be set to `true`. Defaults to `false`. | Optional | | `placeholder` | Object | A [`plain_text`](https://docs.slack.dev/reference/block-kit/composition-objects/text-object)
only text object that defines the placeholder text shown on the menu. Maximum length for the `text` in this field is 150 characters. | Optional | ### Example[​](https://docs.slack.dev/reference/block-kit/block-elements/multi-select-menu-element/#example-3 "Direct link to Example") A multi-select menu in a section block showing a list of conversations: [ { "type": "section", "block_id": "section678", "text": { "type": "mrkdwn", "text": "Pick conversations from the list" }, "accessory": { "action_id": "text1234", "type": "multi_conversations_select", "placeholder": { "type": "plain_text", "text": "Select conversations" } } }] * * * Public channels select[​](https://docs.slack.dev/reference/block-kit/block-elements/multi-select-menu-element/#channel_multi_select "Direct link to Public channels select") ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- This multi-select menu will populate its options with a list of public channels visible to the current user in the active workspace. ### Fields[​](https://docs.slack.dev/reference/block-kit/block-elements/multi-select-menu-element/#fields-4 "Direct link to Fields") | Field | Type | Description | Required? | | --- | --- | --- | --- | | `type` | String | The type of element. In this case `type` is always `multi_channels_select`. | Required | | `action_id` | String | An identifier for the action triggered when a menu option is selected. You can use this when you receive an interaction payload to [identify the source of the action](https://docs.slack.dev/interactivity/handling-user-interaction#payloads)
. Should be unique among all other `action_id`s in the containing block. Maximum length is 255 characters. | Optional | | `initial_channels` | String\[\] | An array of one or more IDs of any valid public channel to be pre-selected when the menu loads. | Optional | | `confirm` | Object | A [confirm object](https://docs.slack.dev/reference/block-kit/composition-objects/confirmation-dialog-object)
that defines an optional confirmation dialog that appears before the multi-select choices are submitted. | Optional | | `max_selected_items` | Integer | Specifies the maximum number of items that can be selected in the menu. Minimum number is 1. | Optional | | `focus_on_load` | Boolean | Indicates whether the element will be set to auto focus within the [`view object`](https://docs.slack.dev/reference/views)
. Only one element can be set to `true`. Defaults to `false`. | Optional | | `placeholder` | Object | A [`plain_text`](https://docs.slack.dev/reference/block-kit/composition-objects/text-object)
only text object that defines the placeholder text shown on the menu. Maximum length for the `text` in this field is 150 characters. | Optional | ### Example[​](https://docs.slack.dev/reference/block-kit/block-elements/multi-select-menu-element/#example-4 "Direct link to Example") A multi-select menu in a section block showing a list of channels: [ { "type": "section", "block_id": "section678", "text": { "type": "mrkdwn", "text": "Pick channels from the list" }, "accessory": { "action_id": "text1234", "type": "multi_channels_select", "placeholder": { "type": "plain_text", "text": "Select channels" } } }] * [Usage info](https://docs.slack.dev/reference/block-kit/block-elements/multi-select-menu-element/#usage-info) * [Static options](https://docs.slack.dev/reference/block-kit/block-elements/multi-select-menu-element/#static_multi_select) * [Fields](https://docs.slack.dev/reference/block-kit/block-elements/multi-select-menu-element/#fields) * [Example](https://docs.slack.dev/reference/block-kit/block-elements/multi-select-menu-element/#example) * [External data source](https://docs.slack.dev/reference/block-kit/block-elements/multi-select-menu-element/#external_multi_select) * [Setup](https://docs.slack.dev/reference/block-kit/block-elements/multi-select-menu-element/#setup) * [Making the element optional](https://docs.slack.dev/reference/block-kit/block-elements/multi-select-menu-element/#multi-select-optional) * [Fields](https://docs.slack.dev/reference/block-kit/block-elements/multi-select-menu-element/#fields-1) * [Example](https://docs.slack.dev/reference/block-kit/block-elements/multi-select-menu-element/#example-1) * [User list](https://docs.slack.dev/reference/block-kit/block-elements/multi-select-menu-element/#users_multi_select) * [Fields](https://docs.slack.dev/reference/block-kit/block-elements/multi-select-menu-element/#fields-2) * [Example](https://docs.slack.dev/reference/block-kit/block-elements/multi-select-menu-element/#example-2) * [Conversations list](https://docs.slack.dev/reference/block-kit/block-elements/multi-select-menu-element/#conversation_multi_select) * [Fields](https://docs.slack.dev/reference/block-kit/block-elements/multi-select-menu-element/#fields-3) * [Example](https://docs.slack.dev/reference/block-kit/block-elements/multi-select-menu-element/#example-3) * [Public channels select](https://docs.slack.dev/reference/block-kit/block-elements/multi-select-menu-element/#channel_multi_select) * [Fields](https://docs.slack.dev/reference/block-kit/block-elements/multi-select-menu-element/#fields-4) * [Example](https://docs.slack.dev/reference/block-kit/block-elements/multi-select-menu-element/#example-4) --- # Rich text block | Slack Developer Docs [Skip to main content](https://docs.slack.dev/reference/block-kit/blocks/rich-text-block/#__docusaurus_skipToContent_fallback) On this page Fields[​](https://docs.slack.dev/reference/block-kit/blocks/rich-text-block/#fields "Direct link to Fields") ------------------------------------------------------------------------------------------------------------- | Field | Type | Description | Required? | | --- | --- | --- | --- | | `type` | String | The type of block. For a rich text block, `type` is always `rich_text`. | Required | | `elements` | Object\[\] | An array of rich text objects - [`rich_text_section`](https://docs.slack.dev/reference/block-kit/blocks/rich-text-block#section)
, [`rich_text_list`](https://docs.slack.dev/reference/block-kit/blocks/rich-text-block#list)
, [`rich_text_preformatted`](https://docs.slack.dev/reference/block-kit/blocks/rich-text-block#preformatted)
, and [`rich_text_quote`](https://docs.slack.dev/reference/block-kit/blocks/rich-text-block#quote)
. See your specific desired element below for more details. | Required | | `block_id` | String | A unique identifier for a block. If not specified, one will be generated. Maximum length for this field is 255 characters. `block_id` should be unique for each message or view and each iteration of a message or view. If a message or view is updated, use a new `block_id`. | Optional | Usage info[​](https://docs.slack.dev/reference/block-kit/blocks/rich-text-block/#usage-info "Direct link to Usage info") ------------------------------------------------------------------------------------------------------------------------- It is also the output of the Slack client's WYSIWYG message composer, so all messages sent by end-users will have this format. Use this block to include user-defined formatted text in your Block Kit payload. While it is possible to format text with `mrkdwn`, `rich_text` is strongly preferred and allows greater flexibility. You might encounter a `rich_text` block in a message payload, as a built-in type in apps created with the Deno Slack SDK, or as output of the [`rich_text_input`](https://docs.slack.dev/reference/block-kit/block-elements/rich-text-input-element) block element. Rich text blocks can be deeply nested. For instance: a `rich_text_list` can contain a `rich_text_section` which can contain bold style text. More details on how that works is shown in the examples. Sub-elements are what comprise the `elements` array in a rich text block. There are four available rich text object sub-elements.: `rich_text_section`, `rich_text_list`, `rich_text_preformatted`, and `rich_text_quote`. Because many of the elements include a section block, the details of that element are listed first, followed by the others. ### Section element: `rich_text_section`[​](https://docs.slack.dev/reference/block-kit/blocks/rich-text-block/#rich_text_section "Direct link to rich_text_section") | Field | Type | Description | Required? | | --- | --- | --- | --- | | `type` | String | The type of sub-element; in this case, `rich_text_section`. | Required | | `elements` | Object \[\] | An array of [rich text elements](https://docs.slack.dev/reference/block-kit/blocks/rich-text-block/#element-types)
. | Required | `rich_text_section` example ![An example of a rich_text_section block](https://docs.slack.dev/assets/images/bk_rich_text_section_example-40fcdf4ecccdf877de5fbaf5ac925957.png) [View in Block Kit Builder](https://app.slack.com/block-kit-builder/#%7B%22blocks%22:%5B%7B%22type%22:%22rich_text%22,%22elements%22:%5B%7B%22type%22:%22rich_text_section%22,%22elements%22:%5B%7B%22type%22:%22text%22,%22text%22:%22Hello%20there,%20I%20am%20a%20basic%20rich%20text%20block!%22%7D%5D%7D%5D%7D,%7B%22type%22:%22rich_text%22,%22elements%22:%5B%7B%22type%22:%22rich_text_section%22,%22elements%22:%5B%7B%22type%22:%22text%22,%22text%22:%22Hello%20there,%20%22%7D,%7B%22type%22:%22text%22,%22text%22:%22I%20am%20a%20bold%20rich%20text%20block!%22,%22style%22:%7B%22bold%22:true%7D%7D%5D%7D%5D%7D,%7B%22type%22:%22rich_text%22,%22elements%22:%5B%7B%22type%22:%22rich_text_section%22,%22elements%22:%5B%7B%22type%22:%22text%22,%22text%22:%22Hello%20there,%20%22%7D,%7B%22type%22:%22text%22,%22text%22:%22I%20am%20an%20italic%20rich%20text%20block!%22,%22style%22:%7B%22italic%22:true%7D%7D%5D%7D%5D%7D,%7B%22type%22:%22rich_text%22,%22elements%22:%5B%7B%22type%22:%22rich_text_section%22,%22elements%22:%5B%7B%22type%22:%22text%22,%22text%22:%22Hello%20there,%20%22%7D,%7B%22type%22:%22text%22,%22text%22:%22I%20am%20a%20strikethrough%20rich%20text%20block!%22,%22style%22:%7B%22strike%22:true%7D%7D%5D%7D%5D%7D%5D%7D) {"type": "rich_text", "elements": [ { "type": "rich_text_section", "elements": [ { "type": "text", "text": "Hello there, I am a basic rich text block!" } ] } ]},{ "type": "rich_text", "elements": [ { "type": "rich_text_section", "elements": [ { "type": "text", "text": "Hello there, " }, { "type": "text", "text": "I am a bold rich text block!", "style": { "bold": true } } ] } ]},{ "type": "rich_text", "elements": [ { "type": "rich_text_section", "elements": [ { "type": "text", "text": "Hello there, " }, { "type": "text", "text": "I am an italic rich text block!", "style": { "italic": true } } ] } ]},{ "type": "rich_text", "elements": [ { "type": "rich_text_section", "elements": [ { "type": "text", "text": "Hello there, " }, { "type": "text", "text": "I am a strikethrough rich text block!", "style": { "strike": true } } ] } ]} ### List element: `rich_text_list`[​](https://docs.slack.dev/reference/block-kit/blocks/rich-text-block/#rich_text_list "Direct link to rich_text_list") | Field | Type | Description | Required? | | --- | --- | --- | --- | | `type` | String | The type of sub-element; in this case, `rich_text_list`. | Required | | `style` | String | Either `bullet` or `ordered`, the latter meaning a numbered list. | Required | | `elements` | Object \[\] | An array of [`rich_text_section`](https://docs.slack.dev/reference/block-kit/blocks/rich-text-block#section)
objects containing two properties: `type`, which is "rich\_text\_section", and `elements`, which is an array of [rich text element objects](https://docs.slack.dev/reference/block-kit/blocks/rich-text-block/#element-types)
. | Required | | `indent` | Number | Number of pixels to indent the list. | Optional | | `offset` | Number | Number of pixels to offset the list. | Optional | | `border` | Number | Number of pixels of border thickness. | Optional | `rich_text_list` example ![An example of a rich_text_list block](https://docs.slack.dev/assets/images/bk_rich_text_list_example-0200b3e8b7d91d6764ce960536e43536.png) [View in Block Kit Builder](https://app.slack.com/block-kit-builder/T024BE7LD#%7B%22blocks%22:%5B%7B%22type%22:%22rich_text%22,%22block_id%22:%22block1%22,%22elements%22:%5B%7B%22type%22:%22rich_text_section%22,%22elements%22:%5B%7B%22type%22:%22text%22,%22text%22:%22My%20favorite%20Slack%20features%20(in%20no%20particular%20order):%22%7D%5D%7D,%7B%22type%22:%22rich_text_list%22,%22elements%22:%5B%7B%22type%22:%22rich_text_section%22,%22elements%22:%5B%7B%22type%22:%22text%22,%22text%22:%22Huddles%22%7D%5D%7D,%7B%22type%22:%22rich_text_section%22,%22elements%22:%5B%7B%22type%22:%22text%22,%22text%22:%22Canvas%22%7D%5D%7D,%7B%22type%22:%22rich_text_section%22,%22elements%22:%5B%7B%22type%22:%22text%22,%22text%22:%22Developing%20with%20Block%20Kit%22%7D%5D%7D%5D,%22style%22:%22bullet%22,%22indent%22:0,%22border%22:1%7D%5D%7D%5D%7D) { "type": "rich_text", "block_id": "block1", "elements": [ { "type": "rich_text_section", "elements": [ { "type": "text", "text": "My favorite Slack features (in no particular order):" } ] }, { "type": "rich_text_list", "elements": [ { "type": "rich_text_section", "elements": [ { "type": "text", "text": "Huddles" } ] }, { "type": "rich_text_section", "elements": [ { "type": "text", "text": "Canvas" } ] }, { "type": "rich_text_section", "elements": [ { "type": "text", "text": "Developing with Block Kit" } ] } ], "style": "bullet", "indent": 0, "border": 1 }, ],} Let's say we want to create a nested list, for example something that looks like this: Breakfast foods I enjoy: * Hashbrowns * Eggs * Scrambled * Over easy * Pancakes, extra syrup To create that in rich text, create three instances of `rich_text_list`, the middle one using the `indent` property to indent the types of eggs into that sub-list. [View in Block Kit Builder](https://app.slack.com/block-kit-builder/T024BE7LD#%7B%22blocks%22:%5B%7B%22type%22:%22rich_text%22,%22block_id%22:%22block1%22,%22elements%22:%5B%7B%22type%22:%22rich_text_section%22,%22elements%22:%5B%7B%22type%22:%22text%22,%22text%22:%22Breakfast%20foods%20I%20enjoy:%22%7D%5D%7D,%7B%22type%22:%22rich_text_list%22,%22style%22:%22bullet%22,%22elements%22:%5B%7B%22type%22:%22rich_text_section%22,%22elements%22:%5B%7B%22type%22:%22text%22,%22text%22:%22Hashbrowns%22%7D%5D%7D,%7B%22type%22:%22rich_text_section%22,%22elements%22:%5B%7B%22type%22:%22text%22,%22text%22:%22Eggs%22%7D%5D%7D%5D%7D,%7B%22type%22:%22rich_text_list%22,%22style%22:%22bullet%22,%22indent%22:1,%22elements%22:%5B%7B%22type%22:%22rich_text_section%22,%22elements%22:%5B%7B%22type%22:%22text%22,%22text%22:%22Scrambled%22%7D%5D%7D,%7B%22type%22:%22rich_text_section%22,%22elements%22:%5B%7B%22type%22:%22text%22,%22text%22:%22Over%20easy%22%7D%5D%7D%5D%7D,%7B%22type%22:%22rich_text_list%22,%22style%22:%22bullet%22,%22elements%22:%5B%7B%22type%22:%22rich_text_section%22,%22elements%22:%5B%7B%22type%22:%22text%22,%22text%22:%22Pancakes,%20extra%20syrup%22%7D%5D%7D%5D%7D%5D%7D%5D%7D) { "type": "rich_text", "block_id": "block1", "elements": [ { "type": "rich_text_section", "elements": [ { "type": "text", "text": "Breakfast foods I enjoy:" } ] }, { "type": "rich_text_list", "style": "bullet", "elements": [ { "type": "rich_text_section", "elements": [ { "type": "text", "text": "Hashbrowns" } ] }, { "type": "rich_text_section", "elements": [ { "type": "text", "text": "Eggs" } ] } ] }, { "type": "rich_text_list", "style": "bullet", "indent": 1, "elements": [ { "type": "rich_text_section", "elements": [ { "type": "text", "text": "Scrambled" } ] }, { "type": "rich_text_section", "elements": [ { "type": "text", "text": "Over easy" } ] } ] }, { "type": "rich_text_list", "style": "bullet", "elements": [ { "type": "rich_text_section", "elements": [ { "type": "text", "text": "Pancakes, extra syrup" } ] } ] } ]} ### Preformatted code block element: `rich_text_preformatted`[​](https://docs.slack.dev/reference/block-kit/blocks/rich-text-block/#rich_text_preformatted "Direct link to rich_text_preformatted") | Field | Type | Description | Required? | | --- | --- | --- | --- | | `type` | String | The type of the sub-element; in this case, `rich_text_preformatted`. | Required | | `elements` | Object \[\] | An array of [rich text elements](https://docs.slack.dev/reference/block-kit/blocks/rich-text-block/#element-types)
. | Required | | `border` | Number | Number of pixels of border thickness. | Optional | `rich_text_preformatted` example ![An example of a rich_text_preformatted block](https://docs.slack.dev/assets/images/bk_rich_text_preformatted_example-8f1d4745941ffcdbea4f1400a7213728.png) [View in Block Kit Builder](https://app.slack.com/block-kit-builder/T024BE7LD#%7B%22blocks%22:%5B%7B%22type%22:%22rich_text%22,%22elements%22:%5B%7B%22type%22:%22rich_text_preformatted%22,%22elements%22:%5B%7B%22type%22:%22text%22,%22text%22:%22%7B%5Cn%20%20%5C%22object%5C%22:%20%7B%5Cn%20%20%20%20%5C%22description%5C%22:%20%5C%22this%20is%20an%20example%20of%20a%20json%20object%5C%22%5Cn%20%20%7D%5Cn%7D%22%7D%5D,%22border%22:0%7D%5D%7D%5D%7D) { "type": "rich_text", "elements": [ { "type": "rich_text_preformatted", "elements": [ { "type": "text", "text": "{\n \"object\": {\n \"description\": \"this is an example of a json object\"\n }\n}" }, ], "border": 0 } ]} ### Quote element: `rich_text_quote`[​](https://docs.slack.dev/reference/block-kit/blocks/rich-text-block/#rich_text_quote "Direct link to rich_text_quote") | Field | Type | Description | Required? | | --- | --- | --- | --- | | `type` | String | The type of the sub-element; in this case, `rich_text_quote`. | Required | | `elements` | Object \[\] | An array of [rich text elements](https://docs.slack.dev/reference/block-kit/blocks/rich-text-block/#element-types)
. | Required | | `border` | Number | Number of pixels of border thickness. | Optional | `rich_text_quote` example ![An example of a rich_text_quote block](https://docs.slack.dev/assets/images/bk_rich_text_quote_example-f7ab107bb766d74fbfbed501d7825af2.png) [View in Block Kit Builder](https://app.slack.com/block-kit-builder/T024BE7LD#%7B%22blocks%22:%5B%7B%22type%22:%22rich_text%22,%22block_id%22:%22Vrzsu%22,%22elements%22:%5B%7B%22type%22:%22rich_text_quote%22,%22elements%22:%5B%7B%22type%22:%22text%22,%22text%22:%22What%20we%20need%20is%20good%20examples%20in%20our%20documentation.%22%7D%5D%7D,%7B%22type%22:%22rich_text_section%22,%22elements%22:%5B%7B%22type%22:%22text%22,%22text%22:%22Yes%20-%20I%20completely%20agree,%20Luke!%22%7D%5D%7D%5D%7D%5D%7D) { "type": "rich_text", "block_id": "Vrzsu", "elements": [ { "type": "rich_text_quote", "elements": [ { "type": "text", "text": "What we need is good examples in our documentation." } ] }, { "type": "rich_text_section", "elements": [ { "type": "text", "text": "Yes - I completely agree, Luke!" } ] } ]} ### Rich text element types[​](https://docs.slack.dev/reference/block-kit/blocks/rich-text-block/#element-types "Direct link to Rich text element types") For the rich text elements that have a field of `elements`, the following types are possible. #### `broadcast`[​](https://docs.slack.dev/reference/block-kit/blocks/rich-text-block/#broadcast-element-type "Direct link to broadcast-element-type") The following are the properties of the `broadcast` object type in the `elements` array. | Field | Type | Description | Required? | | --- | --- | --- | --- | | `type` | String | The type of object; in this case, "broadcast". | Required | | `range` | String | The range of the broadcast; value can be `here`, `channel`, or `everyone`. Using `here` notifies only the active members of a channel; `channel` notifies all members of a channel; `everyone` notifies every person in the #general channel. | Required | `broadcast` example [View in Block Kit Builder](https://app.slack.com/block-kit-builder/T024BE7LD#%7B%22blocks%22:%5B%7B%22type%22:%22rich_text%22,%22elements%22:%5B%7B%22type%22:%22rich_text_section%22,%22elements%22:%5B%7B%22type%22:%22broadcast%22,%22range%22:%22everyone%22%7D%5D%7D%5D%7D%5D%7D) { "type": "rich_text", "elements": [ { "type": "rich_text_section", "elements": [ { "type": "broadcast", "range": "everyone" } ] } ]} #### `color`[​](https://docs.slack.dev/reference/block-kit/blocks/rich-text-block/#color-element-type "Direct link to color-element-type") The following are the properties of the `color` object type in the `elements` array. | Field | Type | Description | Required? | | --- | --- | --- | --- | | `type` | String | The type of object; in this case, "color". | Required | | `value` | String | The hex value for the color. | Required | `color` example [View in Block Kit Builder](https://app.slack.com/block-kit-builder/T024BE7LD#%7B%22blocks%22:%5B%7B%22type%22:%22rich_text%22,%22elements%22:%5B%7B%22type%22:%22rich_text_section%22,%22elements%22:%5B%7B%22type%22:%22color%22,%22value%22:%22#F405B3%22%7D%5D%7D%5D%7D%5D%7D) { "type": "rich_text", "elements": [ { "type": "rich_text_section", "elements": [ { "type": "color", "value": "#F405B3" } ] } ]} #### `channel`[​](https://docs.slack.dev/reference/block-kit/blocks/rich-text-block/#channel-element-type "Direct link to channel-element-type") The following are the properties of the `channel` object type in the `elements` array. | Field | Type | Description | Required? | | --- | --- | --- | --- | | `type` | String | The type of object; in this case, "channel". | Required | | `channel_id` | String | The ID of the channel to be mentioned. | Required | | `style` | Object | An object of six optional boolean properties that dictate style: `bold`, `italic`, `strike`, `highlight`, `client_highlight`, and `unlink`. | Optional | `channel` example [View in Block Kit Builder](https://app.slack.com/block-kit-builder/#%7B%2522blocks%2522%3A%255B%257B%2522type%2522%3A%2522rich_text%2522%2C%2522elements%2522%3A%255B%257B%2522type%2522%3A%2522rich_text_section%2522%2C%2522elements%2522%3A%255B%257B%2522type%2522%3A%2522channel%2522%2C%2522channel_id%2522%3A%2522C123ABC456%2522%257D%255D%257D%255D%257D%255D%257D) { "type": "rich_text", "elements": [ { "type": "rich_text_section", "elements": [ { "type": "channel", "channel_id": "C123ABC456" } ] } ]} #### `date`[​](https://docs.slack.dev/reference/block-kit/blocks/rich-text-block/#date-element-type "Direct link to date-element-type") The following are the properties of the `date` object type in the `elements` array. | Field | Type | Description | Required? | | --- | --- | --- | --- | | `type` | String | The type of object; in this case "date". | Required | | `timestamp` | Number | A Unix timestamp for the date to be displayed in seconds. | Required | | `format` | String | A template string containing curly-brace-enclosed tokens to substitute your provided `timestamp`. See details below. | Required | | `url` | String | URL to link the entire `format` string to. | Optional | | `fallback` | String | Text to display in place of the date should parsing, formatting or displaying fail. | Optional | #### Date format strings[​](https://docs.slack.dev/reference/block-kit/blocks/rich-text-block/#date-format-strings "Direct link to Date format strings") The following are the template strings allowed by the `format` property of the `date` element type. * `{day_divider_pretty}`: Shows `today`, `yesterday` or `tomorrow` if applicable. Otherwise, if the date is in current year, uses the `{date_long}` format without the year. Otherwise, falls back to using the `{date_long}` format. * `{date_num}`: Shows date as YYYY-MM-DD. * `{date_slash}`: Shows date as DD/MM/YYYY (subject to locale preferences). * `{date_long}`: Shows date as a long-form sentence including day-of-week, e.g. `Monday, December 23rd, 2013`. * `{date_long_full}`: Shows date as a long-form sentence without day-of-week, e.g. `August 9, 2020`. * `{date_long_pretty}`: Shows `yesterday`, `today` or `tomorrow`, otherwise uses the `{date_long}` format. * `{date}`: Same as `{date_long_full}` but without the year. * `{date_pretty}`: Shows `today`, `yesterday` or `tomorrow` if applicable, otherwise uses the `{date}` format. * `{date_short}`: Shows date using short month names without day-of-week, e.g. `Aug 9, 2020`. * `{date_short_pretty}`: Shows `today`, `yesterday` or `tomorrow` if applicable, otherwise uses the `{date_short}` format. * `{time}`: Depending on user preferences, shows just the time-of-day portion of the timestamp using either 12 or 24 hour clock formats, e.g. `2:34 PM` or `14:34`. * `{time_secs}`: Depending on user preferences, shows just the time-of-day portion of the timestamp using either 12 or 24 hour clock formats, including seconds, e.g. `2:34:56 PM` or `14:34:56`. * `{ago}`: A human-readable period of time, e.g. `3 minutes ago`, `4 hours ago`, `2 days ago`. `date` example [View in Block Kit Builder](https://app.slack.com/block-kit-builder/T024BE7LD#%7B%22blocks%22:%5B%7B%22type%22:%22rich_text%22,%22elements%22:%5B%7B%22type%22:%22rich_text_section%22,%22elements%22:%5B%7B%22type%22:%22date%22,%22timestamp%22:1720710212,%22format%22:%22%7Bdate_num%7D%20at%20%7Btime%7D%22,%22fallback%22:%22timey%22%7D%5D%7D%5D%7D%5D%7D) { "type": "rich_text", "elements": [ { "type": "rich_text_section", "elements": [ { "type": "date", "timestamp": 1720710212, "format": "{date_num} at {time}", "fallback": "timey" } ] } ]} #### `emoji`[​](https://docs.slack.dev/reference/block-kit/blocks/rich-text-block/#emoji-element-type "Direct link to emoji-element-type") The following are the properties of the `emoji` object type in the `elements` array. | Field | Type | Description | Required? | | --- | --- | --- | --- | | `type` | String | The type of object; in this case, "emoji". | Required | | `name` | String | The name of the emoji; i.e. "wave" or "wave::skin-tone-2". | Required | | `unicode` | String | Represents the unicode code point of the emoji, where applicable. | Optional | `emoji` example [View in Block Kit Builder](https://app.slack.com/block-kit-builder/#%7B%2522blocks%2522%3A%255B%257B%2522type%2522%3A%2522rich_text%2522%2C%2522elements%2522%3A%255B%257B%2522type%2522%3A%2522rich_text_section%2522%2C%2522elements%2522%3A%255B%257B%2522type%2522%3A%2522emoji%2522%2C%2522name%2522%3A%2522basketball%2522%257D%2C%257B%2522type%2522%3A%2522text%2522%2C%2522text%2522%3A%2522%2520%2522%257D%2C%257B%2522type%2522%3A%2522emoji%2522%2C%2522name%2522%3A%2522snowboarder%2522%257D%2C%257B%2522type%2522%3A%2522text%2522%2C%2522text%2522%3A%2522%2520%2522%257D%2C%257B%2522type%2522%3A%2522emoji%2522%2C%2522name%2522%3A%2522checkered_flag%2522%257D%255D%257D%255D%257D%255D%257D) { "type": "rich_text", "elements": [ { "type": "rich_text_section", "elements": [ { "type": "emoji", "name": "basketball" }, { "type": "text", "text": " " }, { "type": "emoji", "name": "snowboarder" }, { "type": "text", "text": " " }, { "type": "emoji", "name": "checkered_flag" } ] } ]} #### `link`[​](https://docs.slack.dev/reference/block-kit/blocks/rich-text-block/#link-element-type "Direct link to link-element-type") The following are the properties of the `link` object type in the `elements` array. | Field | Type | Description | Required? | | --- | --- | --- | --- | | `type` | String | The type of object; in this case "link". | Required | | `url` | String | The link's url. | Required | | `text` | String | The text shown to the user (instead of the url). If no text is provided, the url is used. | Optional | | `unsafe` | Boolean | Indicates whether the link is safe. | Optional | | `style` | Object | An object containing four boolean properties: `bold`, `italic`, `strike`, and `code`. | Optional | `link` example [View in Block Kit Builder](https://app.slack.com/block-kit-builder/#%7B%2522blocks%2522%3A%255B%257B%2522type%2522%3A%2522rich_text%2522%2C%2522elements%2522%3A%255B%257B%2522type%2522%3A%2522rich_text_section%2522%2C%2522elements%2522%3A%255B%257B%2522type%2522%3A%2522link%2522%2C%2522url%2522%3A%2522https%3A%2F%2Fapi.slack.com%2522%257D%255D%257D%255D%257D%255D%257D) { "type": "rich_text", "elements": [ { "type": "rich_text_section", "elements": [ { "type": "link", "url": "https://api.slack.com" } ] } ]} #### `text`[​](https://docs.slack.dev/reference/block-kit/blocks/rich-text-block/#text-element-type "Direct link to text-element-type") The following are the properties of the `text` object type in the `elements` array. | Field | Type | Description | Required? | | --- | --- | --- | --- | | `type` | String | The type of object; in this case, "text". | Required | | `text` | String | The text shown to the user. | Required | | `style` | Object | An object containing four boolean fields, none of which are required: `bold`, `italic`, `strike`, and `code`. | Optional | `text` example [View in Block Kit Builder](https://app.slack.com/block-kit-builder/#%7B%2522blocks%2522%3A%255B%257B%2522type%2522%3A%2522rich_text%2522%2C%2522elements%2522%3A%255B%257B%2522type%2522%3A%2522rich_text_section%2522%2C%2522elements%2522%3A%255B%257B%2522type%2522%3A%2522text%2522%2C%2522text%2522%3A%2522Hello%2520there%2C%2520%2522%257D%2C%257B%2522type%2522%3A%2522text%2522%2C%2522text%2522%3A%2522I%2520am%2520a%2520bold%2520rich%2520text%2520block%21%2522%2C%2522style%2522%3A%257B%2522bold%2522%3Atrue%257D%257D%255D%257D%255D%257D%255D%257D) { "type": "rich_text", "elements": [ { "type": "rich_text_section", "elements": [ { "type": "text", "text": "Hello there, " }, { "type": "text", "text": "I am a bold rich text block!", "style": { "bold": true } } ] } ]} #### `user`[​](https://docs.slack.dev/reference/block-kit/blocks/rich-text-block/#user-element-type "Direct link to user-element-type") The following are the properties of the `user` object type in the `elements` array. | Field | Type | Description | Required? | | --- | --- | --- | --- | | `type` | String | The type of object; in this case, "user". | Required | | `user_id` | String | The ID of the user to be mentioned. | Required | | `style` | Object | An object of six optional boolean properties that dictate style: `bold`, `italic`, `strike`, `highlight`, `client_highlight`, and `unlink`. | Optional | `user` example [View in Block Kit Builder](https://app.slack.com/block-kit-builder/#%7B%2522blocks%2522%3A%255B%257B%2522type%2522%3A%2522rich_text%2522%2C%2522elements%2522%3A%255B%257B%2522type%2522%3A%2522rich_text_section%2522%2C%2522elements%2522%3A%255B%257B%2522type%2522%3A%2522user%2522%2C%2522user_id%2522%3A%2522U123ABC456%2522%257D%255D%257D%255D%257D%255D%257D) { "type": "rich_text", "elements": [ { "type": "rich_text_section", "elements": [ { "type": "user", "user_id": "U123ABC456" } ] } ]} #### `usergroup`[​](https://docs.slack.dev/reference/block-kit/blocks/rich-text-block/#user-group-element-type "Direct link to user-group-element-type") The following ar the properties of the `usergroup` object type in the `elements` array. | Field | Type | Description | Required? | | --- | --- | --- | --- | | `type` | String | The type of object; in this case "usergroup". | Required | | `usergroup_id` | String | The ID of the user group to be mentioned. | Required | | `style` | Object | An object of six optional boolean properties that dictate style: `bold`, `italic`, `strike`, `highlight`, `client_highlight`, and `unlink`. | Optional | `usergroup` example [View in Block Kit Builder](https://app.slack.com/block-kit-builder/#%7B%2522blocks%2522%3A%255B%257B%2522type%2522%3A%2522rich_text%2522%2C%2522elements%2522%3A%255B%257B%2522type%2522%3A%2522rich_text_section%2522%2C%2522elements%2522%3A%255B%257B%2522type%2522%3A%2522usergroup%2522%2C%2522usergroup_id%2522%3A%2522G123ABC456%2522%257D%255D%257D%255D%257D%255D%257D) { "type": "rich_text", "elements": [ { "type": "rich_text_section", "elements": [ { "type": "usergroup", "usergroup_id": "G123ABC456" } ] } ]} * [Fields](https://docs.slack.dev/reference/block-kit/blocks/rich-text-block/#fields) * [Usage info](https://docs.slack.dev/reference/block-kit/blocks/rich-text-block/#usage-info) * [Section element: `rich_text_section`](https://docs.slack.dev/reference/block-kit/blocks/rich-text-block/#rich_text_section) * [List element: `rich_text_list`](https://docs.slack.dev/reference/block-kit/blocks/rich-text-block/#rich_text_list) * [Preformatted code block element: `rich_text_preformatted`](https://docs.slack.dev/reference/block-kit/blocks/rich-text-block/#rich_text_preformatted) * [Quote element: `rich_text_quote`](https://docs.slack.dev/reference/block-kit/blocks/rich-text-block/#rich_text_quote) * [Rich text element types](https://docs.slack.dev/reference/block-kit/blocks/rich-text-block/#element-types) --- # Select menu element | Slack Developer Docs [Skip to main content](https://docs.slack.dev/reference/block-kit/block-elements/select-menu-element/#__docusaurus_skipToContent_fallback) On this page Usage info[​](https://docs.slack.dev/reference/block-kit/block-elements/select-menu-element/#usage-info "Direct link to Usage info") ------------------------------------------------------------------------------------------------------------------------------------- _Interactive component_ - see our [guide to enabling interactivity](https://docs.slack.dev/interactivity/handling-user-interaction) . The select menu also includes type-ahead functionality, where a user can type a part or all of an option string to filter the list. There are different types of select menu elements that depend on different data sources for their lists of options: * [Select menu of static options](https://docs.slack.dev/reference/block-kit/block-elements/select-menu-element/#static_select) * [Select menu of external data source](https://docs.slack.dev/reference/block-kit/block-elements/select-menu-element/#external_select) * [Select menu of users](https://docs.slack.dev/reference/block-kit/block-elements/select-menu-element/#users_select) * [Select menu of conversations](https://docs.slack.dev/reference/block-kit/block-elements/select-menu-element/#conversations_select) * [Select menu of public channels](https://docs.slack.dev/reference/block-kit/block-elements/select-menu-element/#channels_select) ![An example of a select menu element](https://docs.slack.dev/assets/images/bk_select_example-3d89d079245c7e6aaa4572a6c2625dd9.png) * * * Select menu of static options[​](https://docs.slack.dev/reference/block-kit/block-elements/select-menu-element/#static_select "Direct link to Select menu of static options") ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ This is the most basic form of select menu, with a static list of options passed in when defining the element. ### Fields[​](https://docs.slack.dev/reference/block-kit/block-elements/select-menu-element/#fields "Direct link to Fields") | Field | Type | Description | Required? | | --- | --- | --- | --- | | `type` | String | The type of element. In this case `type` is always `static_select`. | Required | | `action_id` | String | An identifier for the action triggered when a menu option is selected. You can use this when you receive an interaction payload to [identify the source of the action](https://docs.slack.dev/interactivity/handling-user-interaction#payloads)
. Should be unique among all other `action_id`s in the containing block. Maximum length is 255 characters. | Optional | | `options` | Object\[\] | An array of [option objects](https://docs.slack.dev/reference/block-kit/composition-objects/option-object)
. Maximum number of options is 100. If `option_groups` is specified, this field should not be. | Required | | `option_groups` | Object\[\] | An array of [option group objects](https://docs.slack.dev/reference/block-kit/composition-objects/option-group-object)
. Maximum number of option groups is 100. If `options` is specified, this field should not be. | Optional | | `initial_option` | Object | A single option that exactly matches one of the options within `options` or `option_groups`. This option will be selected when the menu initially loads. | Optional | | `confirm` | Object | A [confirm object](https://docs.slack.dev/reference/block-kit/composition-objects/confirmation-dialog-object)
that defines an optional confirmation dialog that appears after a menu item is selected. | Optional | | `focus_on_load` | Boolean | Indicates whether the element will be set to auto focus within the [`view object`](https://docs.slack.dev/reference/views)
. Only one element can be set to `true`. Defaults to `false`. | Optional | | `placeholder` | Object | A [`plain_text`](https://docs.slack.dev/reference/block-kit/composition-objects/text-object)
only text object that defines the placeholder text shown on the menu. Maximum length for the `text` in this field is 150 characters. | Optional | ### Example[​](https://docs.slack.dev/reference/block-kit/block-elements/select-menu-element/#example "Direct link to Example") A static select menu [ { "type": "section", "block_id": "section678", "text": { "type": "mrkdwn", "text": "Pick an item from the dropdown list" }, "accessory": { "action_id": "text1234", "type": "static_select", "placeholder": { "type": "plain_text", "text": "Select an item" }, "options": [ { "text": { "type": "plain_text", "text": "*this is plain_text text*" }, "value": "value-0" }, { "text": { "type": "plain_text", "text": "*this is plain_text text*" }, "value": "value-1" }, { "text": { "type": "plain_text", "text": "*this is plain_text text*" }, "value": "value-2" } ] } }] * * * Select menu of external data source[​](https://docs.slack.dev/reference/block-kit/block-elements/select-menu-element/#external_select "Direct link to Select menu of external data source") -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- This select menu will load its options from an external data source, allowing for a dynamic list of options. ### Setup[​](https://docs.slack.dev/reference/block-kit/block-elements/select-menu-element/#setup "Direct link to Setup") If you don't have [Socket Mode](https://docs.slack.dev/apis/events-api/using-socket-mode) enabled, you'll need to configure your app to use this menu type: 1. Go to your [app's settings page](https://api.slack.com/apps) and select **Interactivity & Shortcuts** from the sidebar. 2. Add a URL to the **Options Load URL** under Select Menus. 3. Save changes. Each time a select menu of this type is opened or the user starts typing in the typeahead field, we'll send a request to your specified URL. Your app should return an HTTP 200 OK response, along with an `application/json` post body with an object containing either: * an [`options`](https://docs.slack.dev/reference/block-kit/composition-objects/option-object) array * an [`option_groups`](https://docs.slack.dev/reference/block-kit/composition-objects/option-group-object) array The `options` array can have a maximum number of 100 options. The `option_groups` array can have a maximum number of 100 option groups, with each option group allowing up to 100 options. Here's an example response: { "options": [ { "text": { "type": "plain_text", "text": "*this is plain_text text*" }, "value": "value-0" }, { "text": { "type": "plain_text", "text": "*this is plain_text text*" }, "value": "value-1" }, { "text": { "type": "plain_text", "text": "*this is plain_text text*" }, "value": "value-2" } ]} Refer to [`options`](https://docs.slack.dev/reference/block-kit/composition-objects/option-object) and [`option_groups`](https://docs.slack.dev/reference/block-kit/composition-objects/option-group-object) for more information about their related fields. ### Fields[​](https://docs.slack.dev/reference/block-kit/block-elements/select-menu-element/#fields-1 "Direct link to Fields") | Field | Type | Description | Required? | | --- | --- | --- | --- | | `type` | String | The type of element. In this case `type` is always `external_select`. | Required | | `action_id` | String | An identifier for the action triggered when a menu option is selected. You can use this when you receive an interaction payload to [identify the source of the action](https://docs.slack.dev/interactivity/handling-user-interaction#payloads)
. Should be unique among all other `action_id`s in the containing block. Maximum length is 255 characters. | Optional | | `initial_option` | Object | A single option that exactly matches one of the options within the `options` or `option_groups` loaded from the external data source. This option will be selected when the menu initially loads. | Optional | | `min_query_length` | Integer | When the typeahead field is used, a request will be sent on every character change. If you prefer fewer requests or more fully ideated queries, use the `min_query_length` attribute to tell Slack the fewest number of typed characters required before dispatch. The default value is `3`. | Optional | | `confirm` | Object | A [confirm object](https://docs.slack.dev/reference/block-kit/composition-objects/confirmation-dialog-object)
that defines an optional confirmation dialog that appears after a menu item is selected. | Optional | | `focus_on_load` | Boolean | Indicates whether the element will be set to auto focus within the [`view object`](https://docs.slack.dev/reference/views)
. Only one element can be set to `true`. Defaults to `false`. | Optional | | `placeholder` | Object | A [`plain_text`](https://docs.slack.dev/reference/block-kit/composition-objects/text-object)
only text object that defines the placeholder text shown on the menu. Maximum length for the `text` in this field is 150 characters. | Optional | ### Example[​](https://docs.slack.dev/reference/block-kit/block-elements/select-menu-element/#example-1 "Direct link to Example") A select menu in a section block with an external data source: [ { "type": "section", "block_id": "section678", "text": { "type": "mrkdwn", "text": "Pick an item from the dropdown list" }, "accessory": { "action_id": "text1234", "type": "external_select", "placeholder": { "type": "plain_text", "text": "Select an item" }, "min_query_length": 3 } }] * * * Select menu of users[​](https://docs.slack.dev/reference/block-kit/block-elements/select-menu-element/#users_select "Direct link to Select menu of users") ----------------------------------------------------------------------------------------------------------------------------------------------------------- This select menu will populate its options with a list of Slack users visible to the current user in the active workspace. ### Fields[​](https://docs.slack.dev/reference/block-kit/block-elements/select-menu-element/#fields-2 "Direct link to Fields") | Field | Type | Description | Required? | | --- | --- | --- | --- | | `type` | String | The type of element. In this case `type` is always `users_select`. | Required | | `action_id` | String | An identifier for the action triggered when a menu option is selected. You can use this when you receive an interaction payload to [identify the source of the action](https://docs.slack.dev/interactivity/handling-user-interaction#payloads)
. Should be unique among all other `action_id`s in the containing block. Maximum length is 255 characters. | Optional | | `initial_user` | String | The user ID of any valid user to be pre-selected when the menu loads. | Optional | | `confirm` | Object | A [confirm object](https://docs.slack.dev/reference/block-kit/composition-objects/confirmation-dialog-object)
that defines an optional confirmation dialog that appears after a menu item is selected. | Optional | | `focus_on_load` | Boolean | Indicates whether the element will be set to auto focus within the [`view object`](https://docs.slack.dev/reference/views)
. Only one element can be set to `true`. Defaults to `false`. | Optional | | `placeholder` | Object | A [`plain_text`](https://docs.slack.dev/reference/block-kit/composition-objects/text-object)
only text object that defines the placeholder text shown on the menu. Maximum length for the `text` in this field is 150 characters. | Optional | ### Example[​](https://docs.slack.dev/reference/block-kit/block-elements/select-menu-element/#example-2 "Direct link to Example") A select menu in a section block showing a list of users: [ { "type": "section", "block_id": "section678", "text": { "type": "mrkdwn", "text": "Pick a user from the dropdown list" }, "accessory": { "action_id": "text1234", "type": "users_select", "placeholder": { "type": "plain_text", "text": "Select an item" } } }] * * * Select menu of conversations[​](https://docs.slack.dev/reference/block-kit/block-elements/select-menu-element/#conversations_select "Direct link to Select menu of conversations") ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- This select menu will populate its options with a list of public and private channels, DMs, and MPIMs visible to the current user in the active workspace. ### Fields[​](https://docs.slack.dev/reference/block-kit/block-elements/select-menu-element/#fields-3 "Direct link to Fields") | Field | Type | Description | Required? | | --- | --- | --- | --- | | `type` | String | The type of element. In this case `type` is always `conversations_select`. | Required | | `action_id` | String | An identifier for the action triggered when a menu option is selected. You can use this when you receive an interaction payload to [identify the source of the action](https://docs.slack.dev/interactivity/handling-user-interaction#payloads)
. Should be unique among all other `action_id`s in the containing block. Maximum length is 255 characters. | Optional | | `initial_conversation` | String | The ID of any valid conversation to be pre-selected when the menu loads. If `default_to_current_conversation` is also supplied, `initial_conversation` will take precedence. | Optional | | `default_to_current_conversation` | Boolean | Pre-populates the select menu with the conversation that the user was viewing when they opened the modal, if available. Default is `false`. | Optional | | `confirm` | Object | A [confirm object](https://docs.slack.dev/reference/block-kit/composition-objects/confirmation-dialog-object)
that defines an optional confirmation dialog that appears after a menu item is selected. | Optional | | `response_url_enabled` | Boolean | **This field only works with menus in [input blocks](https://docs.slack.dev/reference/block-kit/blocks/input-block)
in [modals](https://docs.slack.dev/surfaces/modals)
.** When set to `true`, the [`view_submission` payload](https://docs.slack.dev/reference/interaction-payloads/view-interactions-payload#view_submission)
from the menu's parent view will contain a `response_url`. This `response_url` can be used for [message responses](https://docs.slack.dev/interactivity/handling-user-interaction#message_responses)
. The target conversation for the message will be determined by the value of this select menu. | Optional | | `filter` | Object | A [filter object](https://docs.slack.dev/reference/block-kit/composition-objects/conversation-filter-object)
that reduces the list of available conversations using the specified criteria. | Optional | | `focus_on_load` | Boolean | Indicates whether the element will be set to auto focus within the [`view object`](https://docs.slack.dev/reference/views)
. Only one element can be set to `true`. Defaults to `false`. | Optional | | `placeholder` | Object | A [`plain_text`](https://docs.slack.dev/reference/block-kit/composition-objects/text-object)
only text object that defines the placeholder text shown on the menu. Maximum length for the `text` in this field is 150 characters. | Optional | ### Example[​](https://docs.slack.dev/reference/block-kit/block-elements/select-menu-element/#example-3 "Direct link to Example") A select menu in a section block showing a list of conversations: [ { "type": "section", "block_id": "section678", "text": { "type": "mrkdwn", "text": "Pick a conversation from the dropdown list" }, "accessory": { "action_id": "text1234", "type": "conversations_select", "placeholder": { "type": "plain_text", "text": "Select an item" } } }] * * * Select menu of public channels[​](https://docs.slack.dev/reference/block-kit/block-elements/select-menu-element/#channels_select "Direct link to Select menu of public channels") ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- This select menu will populate its options with a list of public channels visible to the current user in the active workspace. ### Fields[​](https://docs.slack.dev/reference/block-kit/block-elements/select-menu-element/#fields-4 "Direct link to Fields") | Field | Type | Description | Required? | | --- | --- | --- | --- | | `type` | String | The type of element. In this case `type` is always `channels_select`. | Required | | `action_id` | String | An identifier for the action triggered when a menu option is selected. You can use this when you receive an interaction payload to [identify the source of the action](https://docs.slack.dev/interactivity/handling-user-interaction#payloads)
. Should be unique among all other `action_id`s in the containing block. Maximum length is 255 characters. | Optional | | `initial_channel` | String | The ID of any valid public channel to be pre-selected when the menu loads. | Optional | | `confirm` | Object | A [confirm object](https://docs.slack.dev/reference/block-kit/composition-objects/confirmation-dialog-object)
that defines an optional confirmation dialog that appears after a menu item is selected. | Optional | | `response_url_enabled` | Boolean | **This field only works with menus in [input blocks](https://docs.slack.dev/reference/block-kit/blocks/input-block)
in [modals](https://docs.slack.dev/surfaces/modals)
.** When set to `true`, the [`view_submission` payload](https://docs.slack.dev/reference/interaction-payloads/view-interactions-payload#view_submission)
from the menu's parent view will contain a `response_url`. This `response_url` can be used for [message responses](https://docs.slack.dev/interactivity/handling-user-interaction#message_responses)
. The target channel for the message will be determined by the value of this select menu. | Optional | | `focus_on_load` | Boolean | Indicates whether the element will be set to auto focus within the [`view object`](https://docs.slack.dev/reference/views)
. Only one element can be set to `true`. Defaults to `false`. | Optional | | `placeholder` | Object | A [`plain_text`](https://docs.slack.dev/reference/block-kit/composition-objects/text-object)
only text object that defines the placeholder text shown on the menu. Maximum length for the `text` in this field is 150 characters. | Optional | ### Example[​](https://docs.slack.dev/reference/block-kit/block-elements/select-menu-element/#example-4 "Direct link to Example") A select menu in a section block showing a list of channels: [ { "type": "section", "block_id": "section678", "text": { "type": "mrkdwn", "text": "Pick a channel from the dropdown list" }, "accessory": { "action_id": "text1234", "type": "channels_select", "placeholder": { "type": "plain_text", "text": "Select an item" } } }] * [Usage info](https://docs.slack.dev/reference/block-kit/block-elements/select-menu-element/#usage-info) * [Select menu of static options](https://docs.slack.dev/reference/block-kit/block-elements/select-menu-element/#static_select) * [Fields](https://docs.slack.dev/reference/block-kit/block-elements/select-menu-element/#fields) * [Example](https://docs.slack.dev/reference/block-kit/block-elements/select-menu-element/#example) * [Select menu of external data source](https://docs.slack.dev/reference/block-kit/block-elements/select-menu-element/#external_select) * [Setup](https://docs.slack.dev/reference/block-kit/block-elements/select-menu-element/#setup) * [Fields](https://docs.slack.dev/reference/block-kit/block-elements/select-menu-element/#fields-1) * [Example](https://docs.slack.dev/reference/block-kit/block-elements/select-menu-element/#example-1) * [Select menu of users](https://docs.slack.dev/reference/block-kit/block-elements/select-menu-element/#users_select) * [Fields](https://docs.slack.dev/reference/block-kit/block-elements/select-menu-element/#fields-2) * [Example](https://docs.slack.dev/reference/block-kit/block-elements/select-menu-element/#example-2) * [Select menu of conversations](https://docs.slack.dev/reference/block-kit/block-elements/select-menu-element/#conversations_select) * [Fields](https://docs.slack.dev/reference/block-kit/block-elements/select-menu-element/#fields-3) * [Example](https://docs.slack.dev/reference/block-kit/block-elements/select-menu-element/#example-3) * [Select menu of public channels](https://docs.slack.dev/reference/block-kit/block-elements/select-menu-element/#channels_select) * [Fields](https://docs.slack.dev/reference/block-kit/block-elements/select-menu-element/#fields-4) * [Example](https://docs.slack.dev/reference/block-kit/block-elements/select-menu-element/#example-4) ---