René's URL Explorer Experiment


Title: Modals | Slack Developer Docs

Open Graph Title: Modals | Slack Developer Docs

Description: A modal is the Slack app equivalent of an alert box, pop-up, or dialog box. Modals capture and maintain focus within Slack until the user submits or dismisses the modal. This makes them a powerful piece of app functionality for engaging with users. Modals are available for both Bolt apps and Deno Slack SDK apps.

Open Graph Description: A modal is the Slack app equivalent of an alert box, pop-up, or dialog box. Modals capture and maintain focus within Slack until the user submits or dismisses the modal. This makes them a powerful piece of app functionality for engaging with users. Modals are available for both Bolt apps and Deno Slack SDK apps.

Opengraph URL: https://docs.slack.dev/surfaces/modals

Generator: Docusaurus v3.10.1

direct link

Domain: docs.slack.dev


Hey, it has json ld scripts:
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","item":"https://docs.slack.dev/surfaces/","name":"Surfaces","position":1},{"@type":"ListItem","item":"https://docs.slack.dev/surfaces/modals","name":"Modals","position":2}]}

twitter:cardsummary_large_image
og:localeen
docusaurus_localeen
docsearch:languageen
docusaurus_versioncurrent
docusaurus_tagdocs-default-current
docsearch:versioncurrent
docsearch:docusaurus_tagdocs-default-current

Links:

Skip to main contenthttps://docs.slack.dev/surfaces/modals#__docusaurus_skipToContent_fallback
https://docs.slack.dev/
Guideshttps://docs.slack.dev/
Referencehttps://docs.slack.dev/reference
Sampleshttps://docs.slack.dev/samples
Toolshttps://docs.slack.dev/tools
Changeloghttps://docs.slack.dev/changelog
Dev Programhttps://api.slack.com/developer-program
MANAGE APPShttps://api.slack.com/apps
Welcome!https://docs.slack.dev/
Quickstarthttps://docs.slack.dev/quickstart
Resourceshttps://docs.slack.dev/developer-support
Slack platform conceptshttps://docs.slack.dev/concepts/overview
AI in Slackhttps://docs.slack.dev/ai/
APIshttps://docs.slack.dev/apis/
App managementhttps://docs.slack.dev/app-management/
App manifestshttps://docs.slack.dev/app-manifests/
Admin resourceshttps://docs.slack.dev/admins/
Authenticationhttps://docs.slack.dev/authentication/
Block Kithttps://docs.slack.dev/block-kit/
Enterprisehttps://docs.slack.dev/enterprise/
Enterprise Search for appshttps://docs.slack.dev/enterprise-search/
GovSlackhttps://docs.slack.dev/govslack
Interactivityhttps://docs.slack.dev/interactivity/
Messaginghttps://docs.slack.dev/messaging/
Slack Marketplacehttps://docs.slack.dev/slack-marketplace/
Surfaceshttps://docs.slack.dev/surfaces/
Overviewhttps://docs.slack.dev/surfaces/
App Homehttps://docs.slack.dev/surfaces/app-home
Canvaseshttps://docs.slack.dev/surfaces/canvases
Listshttps://docs.slack.dev/surfaces/lists
Modalshttps://docs.slack.dev/surfaces/modals
Split viewhttps://docs.slack.dev/surfaces/split-view
Workflowshttps://docs.slack.dev/workflows/
Legacyhttps://docs.slack.dev/legacy/
日本語版ページhttps://docs.slack.dev/ja-jp/
https://docs.slack.dev/
Surfaceshttps://docs.slack.dev/surfaces/
messageshttps://docs.slack.dev/messaging
Home tabshttps://docs.slack.dev/surfaces/app-home
buttonhttps://docs.slack.dev/reference/block-kit/block-elements/button-element
inputhttps://docs.slack.dev/reference/block-kit/blocks/input-block
plain texthttps://docs.slack.dev/reference/block-kit/block-elements/plain-text-input-element
select from a list of categorieshttps://docs.slack.dev/reference/block-kit/block-elements/select-menu-element
messagehttps://docs.slack.dev/messaging
View in Block Kit Builderhttps://api.slack.com/block-kit-builder?blocks=%5B%7B"type"%3A"input"%2C"element"%3A%7B"type"%3A"plain_text_input"%2C"action_id"%3A"sl_input"%2C"placeholder"%3A%7B"type"%3A"plain_text"%2C"text"%3A"Placeholder%20text%20for%20single-line%20input"%7D%7D%2C"label"%3A%7B"type"%3A"plain_text"%2C"text"%3A"Label"%7D%2C"hint"%3A%7B"type"%3A"plain_text"%2C"text"%3A"Hint%20text"%7D%7D%2C%7B"type"%3A"input"%2C"element"%3A%7B"type"%3A"plain_text_input"%2C"action_id"%3A"ml_input"%2C"multiline"%3Atrue%2C"placeholder"%3A%7B"type"%3A"plain_text"%2C"text"%3A"Placeholder%20text%20for%20multi-line%20input"%7D%7D%2C"label"%3A%7B"type"%3A"plain_text"%2C"text"%3A"Label"%7D%2C"hint"%3A%7B"type"%3A"plain_text"%2C"text"%3A"Hint%20text"%7D%7D%5D&mode=modal
Block Kithttps://docs.slack.dev/block-kit
guide to upgrading dialogs to modalshttps://docs.slack.dev/block-kit/upgrading-outmoded-dialogs-to-modals
https://docs.slack.dev/surfaces/modals#lifecycle
entry pointshttps://docs.slack.dev/interactivity
interaction payloadhttps://docs.slack.dev/reference/interaction-payloads
trigger_idhttps://docs.slack.dev/interactivity/handling-user-interaction#modal_responses
interactshttps://docs.slack.dev/interactivity
interactive componenthttps://docs.slack.dev/block-kit#making-things-interactive
interaction payloadhttps://docs.slack.dev/reference/interaction-payloads
update the currently visible view Ahttps://docs.slack.dev/surfaces/modals#updating_views
push a new view (view B) on to the modal's view stackhttps://docs.slack.dev/surfaces/modals#adding_views
input blockshttps://docs.slack.dev/surfaces/modals#gathering_user_input
different type of interaction payloadhttps://docs.slack.dev/surfaces/modals#interactions
handles the view submission and respondshttps://docs.slack.dev/surfaces/modals#interactions
clearing the view stackhttps://docs.slack.dev/surfaces/modals#close_all_views
Updating a viewhttps://docs.slack.dev/surfaces/modals#updating_views
inputshttps://docs.slack.dev/surfaces/modals#gathering_input
Adding a new view.https://docs.slack.dev/surfaces/modals#adding_views
push a new view onto the modal's view stackhttps://docs.slack.dev/surfaces/modals#adding_views
inputshttps://docs.slack.dev/surfaces/modals#gathering_input
Closing a view.https://docs.slack.dev/surfaces/modals#closing_views
inputshttps://docs.slack.dev/surfaces/modals#gathering_input
close that specific viewhttps://docs.slack.dev/surfaces/modals#closing_views
all views in the view stackhttps://docs.slack.dev/surfaces/modals#close_all_views
https://docs.slack.dev/surfaces/modals#gathering_input
Block Kit componenthttps://docs.slack.dev/block-kit
input blockhttps://docs.slack.dev/reference/block-kit/blocks/input-block
plain-text inputhttps://docs.slack.dev/reference/block-kit/block-elements/plain-text-input-element
select menuhttps://docs.slack.dev/reference/block-kit/block-elements/select-menu-element
multi-select menuhttps://docs.slack.dev/reference/block-kit/block-elements/multi-select-menu-element
input block referencehttps://docs.slack.dev/reference/block-kit/blocks/input-block
input blockshttps://docs.slack.dev/reference/block-kit/blocks/input-block
submit field when defining your viewhttps://docs.slack.dev/surfaces/modals#composing_views
https://docs.slack.dev/surfaces/modals#preparing_for_modals
Create an apphttps://api.slack.com/apps?new_app=1
access tokenhttps://docs.slack.dev/authentication/tokens
guide to app distributionhttps://docs.slack.dev/app-management/distribution
guide to handling user interactionhttps://docs.slack.dev/interactivity/handling-user-interaction
quickstart guidehttps://docs.slack.dev/tools/deno-slack-sdk/guides/getting-started
https://docs.slack.dev/surfaces/modals#composing_views
https://docs.slack.dev/surfaces/modals#defining-view-objects
Web APIhttps://docs.slack.dev/apis/web-api/
views.openhttps://docs.slack.dev/reference/methods/views.open
views.updatehttps://docs.slack.dev/reference/methods/views.update
views.pushhttps://docs.slack.dev/reference/methods/views.push
https://docs.slack.dev/surfaces/modals#view-object-fields
plain_text text elementhttps://docs.slack.dev/reference/block-kit/composition-objects/text-object
blockshttps://docs.slack.dev/reference/block-kit/blocks
plain_text elementhttps://docs.slack.dev/reference/block-kit/composition-objects/text-object
plain_text elementhttps://docs.slack.dev/reference/block-kit/composition-objects/text-object
configuration modalshttps://docs.slack.dev/changelog/2023-08-workflow-steps-from-apps-step-back
https://docs.slack.dev/surfaces/modals#example
Block Kithttps://docs.slack.dev/block-kit
View in Block Kit Builderhttps://app.slack.com/block-kit-builder/#%7B%22title%22:%7B%22type%22:%22plain_text%22,%22text%22:%22Modal%20title%22%7D,%22submit%22:%7B%22type%22:%22plain_text%22,%22text%22:%22Submit%22%7D,%22type%22:%22modal%22,%22blocks%22:%5B%7B%22type%22:%22section%22,%22text%22:%7B%22type%22:%22mrkdwn%22,%22text%22:%22It's%20Block%20Kit...but%20_in%20a%20modal_%22%7D,%22block_id%22:%22section1%22%7D%5D,%22private_metadata%22:%22Shhhhhhhh%22,%22callback_id%22:%22view_identifier_12%22%7D
comprehensive guide to composing layouts with Block Kithttps://docs.slack.dev/block-kit
returned in view_submission payloadshttps://docs.slack.dev/reference/interaction-payloads/view-interactions-payload#view_submission
input blockshttps://docs.slack.dev/reference/block-kit/blocks/input-block
https://docs.slack.dev/surfaces/modals#opening_modals
interaction payloadhttps://docs.slack.dev/interactivity/handling-user-interaction#payloads
app's entry pointshttps://docs.slack.dev/interactivity
entry point featureshttps://docs.slack.dev/interactivity
views.openhttps://docs.slack.dev/reference/methods/views.open
created abovehttps://docs.slack.dev/surfaces/modals#composing_views
receive a responsehttps://docs.slack.dev/reference/methods/views.open#response
views.openhttps://docs.slack.dev/reference/methods/views.open#response
update the contents of that viewhttps://docs.slack.dev/surfaces/modals#updating_views
https://docs.slack.dev/surfaces/modals#interactions
your modal's initial view was composedhttps://docs.slack.dev/surfaces/modals#composing_views
interactive componenthttps://docs.slack.dev/reference/block-kit/block-elements
block_actionshttps://docs.slack.dev/reference/interaction-payloads/block_actions-payload
inputhttps://docs.slack.dev/reference/block-kit/blocks/input-block
view_submission payloadhttps://docs.slack.dev/reference/interaction-payloads/view-interactions-payload#view_submission
view.state.valueshttps://docs.slack.dev/reference/interaction-payloads/view-interactions-payload#view_submission_fields
view_closedhttps://docs.slack.dev/reference/interaction-payloads/view-interactions-payload#view_closed
views.openhttps://docs.slack.dev/reference/methods/views.open
views.pushhttps://docs.slack.dev/reference/methods/views.push
multitude of responseshttps://docs.slack.dev/interactivity/handling-user-interaction#responses
return a required acknowledgment responsehttps://docs.slack.dev/interactivity/handling-user-interaction#acknowledgment_response
send the acknowledgment responsehttps://docs.slack.dev/interactivity/handling-user-interaction#acknowledgment_response
explained belowhttps://docs.slack.dev/surfaces/modals#modifying
acknowledgment responsehttps://docs.slack.dev/interactivity/handling-user-interaction#acknowledgment_response
belowhttps://docs.slack.dev/surfaces/modals#modifying
https://docs.slack.dev/surfaces/modals#updating_views
via response_actionhttps://docs.slack.dev/surfaces/modals#updating_response
via APIhttps://docs.slack.dev/surfaces/modals#updating_apis
https://docs.slack.dev/surfaces/modals#updating_response
view_submissionhttps://docs.slack.dev/surfaces/modals#handling_submissions
viewhttps://docs.slack.dev/surfaces/modals#composing_views
https://docs.slack.dev/surfaces/modals#updating_apis
included in the success responsehttps://docs.slack.dev/surfaces/modals#success_response
earlierhttps://docs.slack.dev/surfaces/modals#opening_modals
views.updatehttps://docs.slack.dev/reference/methods/views.update
https://docs.slack.dev/surfaces/modals#handling_race_conditions
block_actionshttps://docs.slack.dev/reference/interaction-payloads/block_actions-payload
views.updatehttps://docs.slack.dev/reference/methods/views.update
https://docs.slack.dev/surfaces/modals#adding_views
via response_actionhttps://docs.slack.dev/surfaces/modals#pushing_response
via APIhttps://docs.slack.dev/surfaces/modals#pushing_api
https://docs.slack.dev/surfaces/modals#add_response
view_submissionhttps://docs.slack.dev/surfaces/modals#handling_submissions
newly composed viewhttps://docs.slack.dev/surfaces/modals#composing_views
external_idhttps://docs.slack.dev/reference/methods/views.update#arg_external_id
views.updatehttps://docs.slack.dev/reference/methods/views.update
https://docs.slack.dev/surfaces/modals#add_api
views.pushhttps://docs.slack.dev/reference/methods/views.push
View in Block Kit Builderhttps://app.slack.com/block-kit-builder/#%7B%22title%22:%7B%22type%22:%22plain_text%22,%22text%22:%22Modal%20title%22%7D,%22submit%22:%7B%22type%22:%22plain_text%22,%22text%22:%22Save%22%7D,%22type%22:%22modal%22,%22blocks%22:%5B%7B%22type%22:%22input%22,%22block_id%22:%22edit-task-title%22,%22label%22:%7B%22type%22:%22plain_text%22,%22text%22:%22Task%20title%22%7D,%22element%22:%7B%22type%22:%22plain_text_input%22,%22action_id%22:%22task-title-value%22,%22initial_value%22:%22Block%20Kit%20documentation%22%7D%7D,%7B%22type%22:%22input%22,%22block_id%22:%22edit-ticket-desc%22,%22label%22:%7B%22type%22:%22plain_text%22,%22text%22:%22Ticket%20description%22%7D,%22element%22:%7B%22type%22:%22plain_text_input%22,%22multiline%22:true,%22action_id%22:%22ticket-desc-value%22,%22initial_value%22:%22Update%20Block%20Kit%20documentation%20to%20include%20Block%20Kit%20in%20new%20surface%20areas%20(like%20modals).%22%7D%7D%5D,%22close%22:%7B%22type%22:%22plain_text%22,%22text%22:%22Cancel%22%7D,%22private_metadata%22:%22Shhhhhhhh%22,%22callback_id%22:%22view_identifier_12%22%7D
views.pushhttps://docs.slack.dev/reference/methods/views.push
https://docs.slack.dev/surfaces/modals#closing_views
view_submissionhttps://docs.slack.dev/surfaces/modals#handling_submissions
Close the current viewhttps://docs.slack.dev/surfaces/modals#close_current_view
Close all viewhttps://docs.slack.dev/surfaces/modals#close_all_views
can optionally receive a notification if that happenshttps://docs.slack.dev/surfaces/modals#modal_cancellations
https://docs.slack.dev/surfaces/modals#close_current_view
acknowledgment responsehttps://docs.slack.dev/interactivity/handling-user-interaction#acknowledgment_response
https://docs.slack.dev/surfaces/modals#close_all_views
https://docs.slack.dev/surfaces/modals#displaying_errors
inputshttps://docs.slack.dev/surfaces/modals#gathering_input
composing viewshttps://docs.slack.dev/surfaces/modals#composing_views
https://docs.slack.dev/surfaces/modals#private_metadata
opens a modal with an initial viewhttps://docs.slack.dev/surfaces/modals#opening_modals
updates an existing viewhttps://docs.slack.dev/surfaces/modals#updating_views
Bolt for JavaScripthttps://docs.slack.dev/tools/bolt-js
Bolt for Pythonhttps://docs.slack.dev/tools/bolt-python
https://docs.slack.dev/surfaces/modals#modal_response_url
Web APIhttps://docs.slack.dev/messaging/sending-and-scheduling-messages#publishing
use a webhookhttps://docs.slack.dev/messaging/sending-messages-using-incoming-webhooks
shortcutshttps://docs.slack.dev/interactivity/implementing-shortcuts
Compose a modal viewhttps://docs.slack.dev/surfaces/modals#composing_views
conversations_selecthttps://docs.slack.dev/reference/block-kit/block-elements/select-menu-element#conversations_select
channels_selecthttps://docs.slack.dev/reference/block-kit/block-elements/select-menu-element#channels_select
input blockshttps://docs.slack.dev/reference/block-kit/blocks/input-block
default_to_current_conversationhttps://docs.slack.dev/reference/block-kit/block-elements/select-menu-element#conversations_select
view_submissionhttps://docs.slack.dev/surfaces/modals#handling_submissions
our guide to handling interactionshttps://docs.slack.dev/interactivity/handling-user-interaction#message_responses
https://docs.slack.dev/surfaces/modals#designing
invoke a modalhttps://docs.slack.dev/surfaces/modals
Handle these cancellationshttps://docs.slack.dev/surfaces/modals#modal_cancellations
https://docs.slack.dev/surfaces/modals#keep-modals-glanceable
https://docs.slack.dev/surfaces/modals#indicate-outcome
https://docs.slack.dev/surfaces/modals#show-progress
https://docs.slack.dev/surfaces/modals#dont-prompt-for-login-information
https://docs.slack.dev/surfaces/modals#use-cases
PreviousListshttps://docs.slack.dev/surfaces/lists
NextSplit viewhttps://docs.slack.dev/surfaces/split-view
Understanding the lifecycle of a modalhttps://docs.slack.dev/surfaces/modals#lifecycle
Gathering user inputhttps://docs.slack.dev/surfaces/modals#gathering_input
Preparing your apphttps://docs.slack.dev/surfaces/modals#preparing_for_modals
Composing modal viewshttps://docs.slack.dev/surfaces/modals#composing_views
Defining modal view objectshttps://docs.slack.dev/surfaces/modals#defining-view-objects
Opening modalshttps://docs.slack.dev/surfaces/modals#opening_modals
Handling and responding to interactionshttps://docs.slack.dev/surfaces/modals#interactions
Updating modal viewshttps://docs.slack.dev/surfaces/modals#updating_views
Update a view via response_actionhttps://docs.slack.dev/surfaces/modals#updating_response
Update a view via APIhttps://docs.slack.dev/surfaces/modals#updating_apis
Adding a new viewhttps://docs.slack.dev/surfaces/modals#adding_views
Add a new view via response_actionhttps://docs.slack.dev/surfaces/modals#add_response
Add a new view via APIhttps://docs.slack.dev/surfaces/modals#add_api
Closing viewshttps://docs.slack.dev/surfaces/modals#closing_views
Close the current viewhttps://docs.slack.dev/surfaces/modals#close_current_view
Close all viewshttps://docs.slack.dev/surfaces/modals#close_all_views
Display errors in viewshttps://docs.slack.dev/surfaces/modals#displaying_errors
Carry data between viewshttps://docs.slack.dev/surfaces/modals#private_metadata
Publishing messages after modals are submittedhttps://docs.slack.dev/surfaces/modals#modal_response_url
Designing modalshttps://docs.slack.dev/surfaces/modals#designing
Keep modals glanceablehttps://docs.slack.dev/surfaces/modals#keep-modals-glanceable
Indicate outcomehttps://docs.slack.dev/surfaces/modals#indicate-outcome
Show progresshttps://docs.slack.dev/surfaces/modals#show-progress
Don’t prompt for login informationhttps://docs.slack.dev/surfaces/modals#dont-prompt-for-login-information
https://docs.slack.dev/
Slack CLIhttps://docs.slack.dev/tools/slack-cli/
Bolt frameworkshttps://docs.slack.dev/tools/#bolt
Slack SDKshttps://docs.slack.dev/tools/#sdks
Block Kit Builderhttps://app.slack.com/block-kit-builder/
Developer programhttps://api.slack.com/developer-program
Code samples & tutorialshttps://docs.slack.dev/samples/
All toolshttps://docs.slack.dev/tools/
Learning pathshttps://slack.dev/learning-paths/
Workshopshttps://slack.dev/workshops
Slack certificationshttps://trailheadacademy.salesforce.com/all-offerings#f-assetType=Certification&f-products=Slack&f-siteLanguage=en_US
Trailheadhttps://trailhead.salesforce.com/
Resource libraryhttps://slack.dev/resource-library
All learning resourceshttps://slack.dev/learn
Slack communityhttps://slack.dev/community
Slack eventshttps://slack.dev/events
Docshttps://docs.slack.dev/
Bloghttps://slack.dev/blog
Slack marketplacehttps://slack.com/marketplace
Developer newsletterhttps://slack.dev/newsletter
Your appshttps://api.slack.com/apps
Statushttps://slack-status.com/
Privacyhttps://slack.com/trust/privacy/privacy-policy
Termshttps://slack.com/terms-of-service/api
Cookie Preferenceshttps://docs.slack.dev/surfaces/modals
Supporthttps://docs.slack.dev/developer-support
Changeloghttps://docs.slack.dev/changelog
Your Privacy Choiceshttps://www.salesforce.com/form/other/privacy-request/
https://www.linkedin.com/company/tiny-spec-inc/
https://bsky.app/profile/slack.dev
https://www.youtube.com/channel/UCY3YECgeBcLCzIrFLP4gblw

Viewport: width=device-width, initial-scale=1.0


URLs of crawlers that visited me.