Create and version modals
modals:read and modals:write are available to members, admins and owners. Validate before saving:
blocks, the builder-compatible placeholder_mapping, and a
compiled_view. It uses the same compiler as slack-modal-open, calls no external service and
spends no credits. For creation, add name and POST the same content to /v1/modals, optionally
with activate: true. Definition and first version commit together or neither exists. The default
is a current draft version, so the web editor can load it. Current does not mean active: activate it before referencing it from an interactive
button; a foreign, draft, inactive or missing modal is rejected during template authoring.
GET /v1/modalslists definitions;GET /v1/modals/{id}includes the current version.PATCH /v1/modals/{id}edits name, description, title and labels; omitted fields stay unchanged.GET /v1/modals/{id}/versionslists newest first.POST /v1/modals/{id}/versionsappendsblocks,sample_data, and optionalactivate.POST /v1/modals/{id}/versions/{version_id}/activateatomically selects an existing version.
if directive tests a truthy dot path; it does not support the message compiler’s operator conditions
or elseChildren. Validate representative sample data for every branch. Dynamic data can still
produce an invalid Slack view later; local validation does not call Slack. There is no API endpoint to open a modal independently of a Slack interaction. Test by sending a message with an Open Modal button.
See Data binding and Submissions to complete the workflow.
