Skip to content

Implement external_select block kit for Slack#397

Open
Franz1241 wants to merge 4 commits intovercel:mainfrom
Franz1241:main
Open

Implement external_select block kit for Slack#397
Franz1241 wants to merge 4 commits intovercel:mainfrom
Franz1241:main

Conversation

@Franz1241
Copy link
Copy Markdown

@Franz1241 Franz1241 commented Apr 17, 2026

external_select as per Slack Docs

Summary

  • Adds <ExternalSelect> modal element backed by Slack's external_select block, so modals can populate dropdowns from a remote/large data source instead of being limited to static <Select> options
  • Adds onOptionsLoad(actionId, handler) for registering loaders. Handlers receive {actionId, query, user, adapter, raw} and return normalized {label, value}[]. Specific action IDs run before catch-all handlers; per-handler errors are isolated
  • Slack adapter now handles block_suggestion interactive payloads, calls chat.processOptionsLoad, and converts results into Slack option objects (capped at 100, per Slack's limit).
  • Loader execution is capped at 2.5s to stay inside Slack's 3s response budget — on timeout the adapter still returns 200 with an empty options array and logs a warning, rather than failing the request or leaving Slack hanging.
  • Documentation

Test plan

-pnpm validate runs 16/16

Closes #398

- block_suggestion handler for slack webgook
- new <ExternalSelect/> to chat modal jsx
- new .onOptionsLoad()
@vercel
Copy link
Copy Markdown
Contributor

vercel bot commented Apr 17, 2026

@Franz1241 is attempting to deploy a commit to the Vercel Labs Team on Vercel.

A member of the Team first needs to authorize it.

@Franz1241
Copy link
Copy Markdown
Author

Hey @dancer hope its okay to tag you. I noticed youve worked on some Slack-related PRs recently and thought you might be the right person to review this
Id appreciate it if you could take a look when you have time
This ft would help unblock my work

@dancer
Copy link
Copy Markdown
Contributor

dancer commented Apr 18, 2026

ping me anytime and will take a look later today

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement external_select block kit for Slack

2 participants