Skip to Content
SimulatorsSlackWhat the verified UI supports

Simulators

What the verified UI supports

This page lists every part of the Slack client the verified UI draws. A test checks each Works row through the Web API, so write tasks against those rows; the Web API column names the methods each one calls, which a grader reads.

AreaWorksGapOut
shell1509
messages1406
reactions401
threads703
conversations2818
files905
pins & bookmarks700
people & status2011
scheduling801
search & navigation1414
apps & views258
sidebar1416
canvases & lists1634

Works.

AreaFeatureWeb API
shellapp load → current actor in the rail avatar and actor switchauth.test
shellworkspace name and icon at the top of the sidebarteam.info
shellserver holds the Socket Mode link; each event refreshes the open pageapps.connections.open
shellsimulator reset, scenario or seed load, or credential binding → every open page redraws to the new state; a reset also clears the drafts, saved items and sidebar state the browser kept for the old one—
shella customer’s Socket Mode bot beside the UI receives every envelope it would receive alone, and the open page still shows every writeapps.connections.open
shellURLs mirror Slack: /client/<team>/<conversation>[/thread/<ts>]—
shellrail avatar → switch actor (one bound token per seeded person)—
shellrail in Slack’s order: Home, DMs, Activity, Files, Later, Agents & tools, Admin; the control strip at its foot: Create new, Turn on focus mode, your avatar—
shellrail foot Create new (+) → Message → pick people → Go to conversationconversations.open
shellrail foot Create new (+) → Channel → name → Createconversations.create
shellrail foot Create new (+) → Canvas → title → Create → the canvas opens at /client/<team>/canvases/<id>; the Files sidebar’s Create new and the Canvases page’s + New open the same dialogcanvases.create
shellrail foot avatar (and every avatar) shows the person’s profile.image_*, the letter tile when there is noneusers.info
shell?theme=dark opens Slack’s dark theme (set it in the URL, as ?as= sets the person); light is the default—
shellat 1280×720 and 1024×768 every rail, top bar, header, tab, composer and thread pane control is on screen; shorter windows scroll the rail’s tabs and keep the control strip pinned—
shellrail foot Create new (+) → List → name, and whether it tracks to-dos → Create → the List opens at /client/<team>/lists/<id>; the Files sidebar’s Create new and the Lists page’s + New open the same dialogslackLists.create
messagescomposer → type → Enter or Send buttonchat.postMessage
messagesmessage list: mrkdwn, mentions, channel links, code blocks, Block Kit section/context, attachments, edited marker, day dividersconversations.history
messagescomposer formatting bar (bold, italic, strike, code, link, lists, quote, code block) and Show formatting togglechat.postMessage
messagescomposer → Emoji button → search → pick—
messagescomposer → @ → autocomplete → pick person; # → channelusers.list
messagescomposer Emoji → the picker’s Custom section after Frequently Used (aliases drawn as what they name), or search by name → pick → the image in the box; posts :name: and an emoji elementemoji.list
messagesmessage list: :name: and its aliases as the custom image, an alias of a standard emoji as that emoji, an image that can’t load as :name:emoji.list
messagesmessage list: as an @handle pill, the group’s handle now (else the label it was posted with) → click → card with name, description, members and View user groupusergroups.list, usergroups.users.list
messagescomposer → @ → user groups after people (up to three) → pick → @handle pill; posts and a usergroup elementusergroups.list
messagesown message hover → ⋯ → Edit message → change → Enterchat.update
messagesown message hover → ⋯ → Delete message → confirmchat.delete
messagescomposer → /me waves → Enter (italic me-message)chat.meMessage
messagesmessage hover → More actions → Copy link → clipboard + toastchat.getPermalink
messagesunsent composer text survives switching conversations; Drafts & sent lists drafts—
reactionsmessage hover → Add reaction… → search → pick; quick reaction (white_check_mark, eyes, raised_hands); click someone else’s pill; Add reaction… at the end of the pill rowreactions.add
reactionsreaction pill draws a custom emoji’s image; Add reaction… → the picker’s Custom section; picking an alias reuses the pill of its imageemoji.list, reactions.add
reactionsclick your own reaction pillreactions.remove
reactionshover or focus a reaction pill → who reactedreactions.get
threadsN replies → thread pane with root and repliesconversations.replies
threadsthread pane → Reply… → Enter; message hover → Reply in threadchat.postMessage
threadsthread composer → Also send to #channel → Enterchat.postMessage
threadssidebar Threads → /client/<team>/threads: every thread the viewer started or replied in, newest activity first; each card shows the root, the latest two replies (Show N more replies for the rest) and a reply boxconversations.history, conversations.replies
threadsthread pane header ⋮ → Copy link → the root’s permalinkchat.getPermalink
threadsThreads view → a card’s Reply… box → Enter (Also send to #channel as in the thread pane); the card moves to the topchat.postMessage
threadsThreads view → a card’s conversation name → the conversation with that thread’s pane openconversations.replies
conversationssidebar: Channels, Direct messages, sorted, archived hiddenusers.conversations
conversationsAdd channels → Browse channels → list with Join / Viewconversations.list
conversationschannel header (name, topic, member count) and channel details dialogconversations.info
conversationsopen a conversation → newest messages; scroll up loads older (cursor)conversations.history
conversationsheader member count → Members tabconversations.members
conversationsAdd channels → Create a new channel → name, private toggle → Createconversations.create
conversationspreview a channel you’re not in → Join channel; Browse → Joinconversations.join
conversationschannel details → Leave channel; sidebar item menu → Leaveconversations.leave
conversationschannel details → Members → Add peopleconversations.invite
conversationschannel details → Members → person → Remove from channelconversations.kick
conversationschannel details → Settings → Archive channel → confirmconversations.archive
conversationsarchived channel → details → Unarchive channelconversations.unarchive
conversationschannel details → Channel name → Edit → Saveconversations.rename
conversationschannel details → Topic → Edit → Save (header shows it)conversations.setTopic
conversationschannel details → Description → Edit → Saveconversations.setPurpose
conversationsopening a conversation marks it read; message hover → ⋯ → Mark unreadconversations.mark
conversationsbold sidebar item with count badge, New messages divider, unread pill—
conversationsNew message (compose) → pick people → DM or group DM; profile → Messageconversations.open
conversationssidebar DM item menu → Close conversation → the DM leaves the sidebar and the DMs list; New message to the person, or a new message from them, brings it backconversations.close
conversationschannel header Search in channel, or header ⋮ → Search in channel → the top bar’s field opens holding in:#<channel> (in:@<name> in a DM) → type → Enter → the results viewsearch.messages
conversationschannel header ⋮ → Open channel detailsconversations.info
conversationsDM header ⋮ → View full profileusers.info
conversationschannel header ⋮ → Star channel / Unstar channel → Starred section—
conversationschannel header ⋮ → Copy link → the conversation’s URL in this client—
conversationschannel header ⋮ → Leave channel (not in #general)conversations.leave
conversationsDM header ⋮ → Close conversationconversations.close
conversationsconversation tabs: Add canvas → the channel canvas, made and opened in its tab (titled Canvas while files.info can’t name it)conversations.canvases.create
conversationsconversation tabs: + → Link → the bookmark dialog → Save (bookmarks.add)bookmarks.add
filescomposer Attach → Upload from your computer → pick a file (uploads at once, shown in the composer tray)files.getUploadURLExternal
filescomposer tray: bytes POSTed to upload_url with progress; failed upload → Retryupload/v1/{ticket}
filesattach → Enter / Send (composer text is the initial comment; thread_ts in a thread) → message with the filefiles.completeUploadExternal
filesclick a file on a message → file viewer: name, type, size, uploader, date, shared infiles.info
filesrail Files → /client/<team>/files: type filter, Shared by me → click opens the viewerfiles.list
filesown file → More → Delete file → confirm (or the viewer’s Delete file)files.delete
filesimage files: inline preview on the message and in the viewer (url_private fetched with the bearer token)files-pri/{tf}/{name}
filesfile More → Download, or the viewer’s Download (url_private_download with the bearer token)files-pri/{tf}/download/{name}
filesrail Files → the Files sidebar’s Create new (+) → Canvas or List, the same dialogs as the rail’s Create newcanvases.create, slackLists.create
pins & bookmarksmessage hover → More actions → Pin to this conversation; pinned messages show “Pinned by <name>” and a highlightpins.add
pins & bookmarkspinned message → More actions → Un-pin from this conversation, or Pins tab → Un-pinpins.remove
pins & bookmarksconversation header → Pins tab → View message jumps to itpins.list
pins & bookmarksBookmarks tab → Add a bookmark → link, name → Savebookmarks.add
pins & bookmarksBookmarks tab → bookmark More → Edit → Savebookmarks.edit
pins & bookmarksconversation header → Bookmarks tab; a bookmark opens its link in a new tabbookmarks.list
pins & bookmarksBookmarks tab → bookmark More → Removebookmarks.remove
people & statusrail People → /client/<team>/people: search by name or title → click a person → profile paneusers.list
people & statusauthor name or directory entry → /client/<team>/<conv>/user_profile/<user>: name, display name, title, status, presence, local time, Messageusers.info
people & statusprofile pane: email, phone, pronouns; own Edit profile prefills from users.profile.getusers.profile.get
people & statusPeople directory → type an email → users.lookupByEmail → that personusers.lookupByEmail
people & statuspresence dot on DM sidebar items, directory avatars and the profile; Active / Away on the profileusers.getPresence
people & statusyour avatar menu → Set yourself as away / Set yourself as activeusers.setPresence
people & statusapp load calls users.setActive once per signed-in personusers.setActive
people & statusyour avatar menu → Profile → Edit profile → full name, display name, title → Save Changesusers.profile.set
people & statusyour avatar menu → Update your status → emoji, text or a suggestion, Remove status after → Save; Clear statususers.profile.set
people & statusEdit profile → Remove photousers.deletePhoto
people & statusyour avatar menu shows Pause notifications with the paused-until state (disabled); zZ and Paused until on a paused person’s avatar and profilednd.info
people & statusPeople directory: one dnd.teamInfo for the listed people → zZ on paused peoplednd.teamInfo
people & statuscustom profile field labels on the profile paneteam.profile.get
people & statussidebar Directories → User Groups tab: every group with its handle, member count and description; search; Show disabled groupsusergroups.list
people & statusUser Groups → a group → /client/<team>/people/usergroup/<id>: name, handle, description and members; a member opens their profileusergroups.users.list
people & statusUser Groups → Create User Group → name, handle, description → Create → the new group’s pane; a refusal (name or handle taken) stays in the dialogusergroups.create
people & statusgroup pane → Edit → name, handle, description → Save Changesusergroups.update
people & statusgroup pane → Edit members → tick and untick people (find by name) → Save; at least one memberusergroups.users.update
people & statusgroup pane → Disable group → confirm → Disabled, gone from the default listusergroups.disable
people & statusUser Groups → Show disabled groups → a disabled group → Enable groupusergroups.enable
schedulingcomposer send options → Tomorrow at 9:00 AM / Monday at 9:00 AM, or Custom time → date + time → Schedule Message; context bar above the composerchat.scheduleMessage
schedulingDrafts & sent → Scheduled (or the context bar’s See all scheduled messages)chat.scheduledMessages.list
schedulingDrafts & sent → Scheduled → item More → Delete message → Deletechat.deleteScheduledMessage
schedulingmessage More actions → Remind me (after Mark unread) → In 20 minutes, In 1 hour, In 3 hours, Tomorrow, Next week or Custom… (date and time) → a reminder whose text is the message’s permalinkreminders.add, chat.getPermalink
schedulingLater → New reminder (+) or Create Reminder → what and when (a choice or Custom… date and time) → Create Reminderreminders.add
schedulingrail Later → In progress: open reminders, due soonest first, before saved messages; one about a message draws that message as the simulator has it and links to it; Completed: done remindersreminders.list
schedulingLater → a reminder → Mark complete → it moves to Completedreminders.complete
schedulingLater → a reminder → Deletereminders.delete
search & navigationsidebar Find a conversation… → matching channels, DMs and people → arrows + Enter or click opens itusers.conversations
search & navigationtop bar back / forward through visited conversations—
search & navigationmessage hover → Save for later (flips to Remove from Later); rail Later → /client/<team>/later—
search & navigationconversation header Star channel / Remove from Starred → Starred section in the sidebar; drag a sidebar row onto Starred—
search & navigationtop bar Search → type → Enter → /client/<team>/search/search-<query>: Messages tab with its count, each match under its conversation with the query’s words lit, N results, Previous/Next pagessearch.messages
search & navigationrail Activity (between DMs and Files) → the sidebar column lists mentions of the viewer, others’ replies in the viewer’s threads and reactions to the viewer’s messages, newest first; filters All, Mentions, Threads, Reactionsconversations.history, conversations.replies
search & navigationActivity → Mentions: messages and replies by others with <@viewer>, newest firstconversations.history, conversations.replies
search & navigationActivity → Threads: others’ replies in threads the viewer started, or replied in (after their first reply)conversations.replies
search & navigationActivity → Reactions: one item per reaction by someone else on the viewer’s messagesconversations.history, conversations.replies
search & navigationActivity item → the conversation scrolled to the message (lit and focused), or its thread pane for a reply; the sidebar stays on Activity with the item selectedconversations.history, conversations.replies
search & navigationsearch results → Files tab with its count: each matching file by title, the query lit, its owner, date and type; a title opens the file viewersearch.files
search & navigationa message result → its conversation scrolled to the message, lit and focused, or its thread pane for a replysearch.messages, conversations.replies
search & navigationa query nothing matches → No results for “<query>”, with a tipsearch.messages
search & navigationtyped in:, from:, has:, before: and after: go to the simulator as typed, and the results view shows what they selectsearch.messages
apps & viewsa bot’s message → Block Kit button (actions block or section accessory) → the app gets block_actions; a button’s confirm dialog asks firstblocks.actions
apps & viewsa button press the app doesn’t ack (no app connected, no ack within 3 s, an error status) → Slack’s generic error beside the buttonblocks.actions
sidebarsidebar section caret → collapse/expand Starred, Channels, Direct messages, Agents & apps; remembered per person—
sidebarsidebar top: Threads, Huddles, Drafts & sent, Directories (Directories opens the People directory)—
sidebarDirect messages lists your own DM (‘you’) firstconversations.open
sidebarDirect messages sorted by most recent activityconversations.history
sidebarAgents & apps section lists DMs with bots, with app badgeusers.conversations
sidebarworkspace name ▾ → menu: workspace name, switch person; other items disabled with reasonteam.info
sidebarDM row hover × closes the conversationconversations.close
sidebarrail DMs → list of every DM with last message and timeusers.conversations, conversations.history
sidebartop bar clock → recently visited conversations—
sidebarfloating Unread mentions ↑/↓ pills scroll to badged rows off screen—
sidebarrail DMs button: count of DMs with unread messagesusers.conversations, conversations.info, conversations.history
sidebarcount beside Drafts & sent, from the local drafts—
sidebarsidebar item right-click / More: Open channel details, Copy link, Star/Unstar, Leave or Close; Mute and Move to new section disabled with reason—
sidebarAgents & apps row opens the DM; its ↗ open-in-new-window renders disabled with reasonusers.conversations
canvases & listsa canvas at /client/<team>/canvases/<id> or in a channel’s Canvas tab: headings, paragraphs, bulleted and numbered items, checklists, quotes, code, bold, italic, links and mentionscanvases.getContent
canvases & listsa canvas’s foot: Add to this canvas → type Markdown → Enter (insert_at_end)canvases.edit
canvases & listshover a block → Edit → change its Markdown → Save: canvases.sections.lookup by its text, then replace that section, or the whole document when no single section matchescanvases.sections.lookup, canvases.edit
canvases & listshover a block → Delete: the section deleted, or the whole document rewritten without it when no single section matchescanvases.sections.lookup, canvases.edit
canvases & listsa checklist item’s box: tick or untickcanvases.sections.lookup, canvases.edit
canvases & listscanvas ⋮ (More options) → Delete canvas → confirm, in the canvas view or the channel’s canvas tab; a Canvases page row’s ⋮ toocanvases.delete
canvases & listsa List at /client/<team>/lists/<id> or in a channel’s List tab: its title, the view toolbar, the table (a to-do List’s Completed circle first, the primary column bold, select pills, people chips, date tags, checkboxes, subtask counts)slackLists.items.list, slackLists.items.info
canvases & listsa row’s Open item, or its ⋮ → Open item → the Item panel over the table: the title, Mark Complete on a to-do List, every field with its control, the subtasks, and N of M with previous and nextslackLists.items.info
canvases & lists+ Add item → a new Untitled item with its title in edit → type → Enter commits it and starts the next (Escape stops)slackLists.items.create
canvases & listsa cell in the table or the Item panel: text (click, type, Enter), select and person (a picker), date (a date field), checkbox, and a to-do item’s Completed circle or the panel’s Mark CompleteslackLists.items.update
canvases & listsa row’s ⋯ → Delete item; or tick rows → Delete N items → confirm; a row’s subtasks go with itslackLists.items.delete, slackLists.items.deleteMultiple
canvases & listsrecord panel → Add subtask → type → Enter (parent_item_id); the subtask shows in the panel and under its rowslackLists.items.create
canvases & listsconversation tabs: one per List conversations.info names in properties.tabs, the List insideconversations.info, slackLists.items.list
canvases & listsList header ⋯ → Rename list → SaveslackLists.update
canvases & liststhe outline left of a canvas: a line per heading → the headings → one jumps to it—
canvases & listsList toolbar Search → type: the rows whose title matches; Escape clears—

Gap: the UI shows it, and it does not yet work as it does in the real service.

AreaFeatureWhy
conversationsconversation tabs: one per canvas conversations.info lists in properties.tabs, titled by the canvas → the canvas in the tab, with its outline and ⋮The simulator’s conversations.canvases.create adds no canvas tab to conversations.info’s properties.tabs, so a channel’s canvas shows only in the page that made it.
people & statusEdit profile → Upload photo (multipart image)The simulator’s users.setPhoto refuses a multipart/form-data body with invalid_form_data and an image sent as text with no_image, while Slack takes the image as a multipart file, so the upload shows that error.
search & navigationrail Files → the Files sidebar → Canvases: + New, a search box and All / Created by you / Shared with you over the viewer’s canvases (files.list types=canvases), each opening its canvas, a row’s ⋮ → Delete canvasThe simulator’s files.list lists no canvas that canvases.create made, so the browser shows none.
apps & viewsa button press → the app opens a modal → its title, blocks, text inputs, Cancel and SubmitWaits on the simulator: views.open does not yet take the trigger_id of a press, and the simulator does not yet tell a person’s client that an app opened a modal for them.
apps & viewsmodal → Submit → views.submit with the text inputs’ state; an empty or clear ack closes it, and an input left empty when required, malformed (email, URL, number) or outside its length or value limits says so under it firstWaits on the simulator: views.open does not yet take the trigger_id of a press, and the simulator does not yet tell a person’s client that an app opened a modal for them.
apps & viewsmodal → Submit → an errors ack → each message under its input block, the modal open with what was typedWaits on the simulator: views.open does not yet take the trigger_id of a press, and the simulator does not yet tell a person’s client that an app opened a modal for them.
apps & viewsmodal → Submit → an update ack → the modal swaps to the ack’s view, keeping what was typed into inputs it keepsWaits on the simulator: views.open does not yet take the trigger_id of a press, and the simulator does not yet tell a person’s client that an app opened a modal for them.
apps & viewsmodal → Submit the app doesn’t ack → Slack’s generic error at the top of the modal, the inputs as typedWaits on the simulator: views.open does not yet take the trigger_id of a press, and the simulator does not yet tell a person’s client that an app opened a modal for them.
sidebar‘you’ on your own DM, ‘invited you’ on a DM someone else openedThe simulator’s conversations.info on an IM names no creator, as Slack’s documented IM object names none, so the “invited you” suffix has nothing to read.
canvases & liststhe canvas view’s header: the canvas’s titleThe simulator’s files.info returns file_not_found for a canvas, so the header says its title can’t be read.
canvases & listsrail Files → the Files sidebar → Lists: + New, a search box and All / Created by you / Shared with you over the viewer’s Lists (files.list types=lists), each opening its ListThe simulator’s files.list lists no List that slackLists.create made, so the browser shows none.
canvases & listsList header ⋯ → Download as CSVThe simulator’s slackLists.download.get returns a link the simulator doesn’t serve, so the download says it’s unavailable.

Out: the UI leaves it out on purpose.

AreaFeatureWhy
shellapi.testConnectivity check; no screen in the Slack client calls it.
shellrail Agents & toolsDisabled, says why on click: the simulator serves no app, agent or workflow directory.
shellrail AdminDisabled, says why on click: needs admin.*, which the simulator doesn’t serve.
shellrail foot moon: Turn on focus modeDisabled, says why on click: the simulator models no focus mode (no users.prefs or dnd.setSnooze). Real Slack’s moon is focus mode, not a theme switch.
shelltop bar: Chat with Slackbot AI, right of SearchDisabled, says why on click: the simulator serves no Slack AI.
shelltop bar: Help (?) at the right endDisabled, says why on click: Slack’s help center and feedback aren’t part of the simulator.
shellrail foot Create new (+) → HuddleDisabled, says why on click: the simulator serves no huddle API.
shellrail foot Create new (+) → WorkflowDisabled, says why on click: the simulator serves no workflows.
shellrail foot Create new (+) → Invite peopleDisabled, says why on click: needs admin.users.invite, which the simulator doesn’t serve.
messageschat.postEphemeralNo client control sends one; showing a received one needs a client delivery the simulator keeps on the control plane.
messageschat.startStreamBot token only; the client never starts a stream, and renders a streamed message as any other.
messageschat.appendStreamBot token only; no client control.
messageschat.stopStreamBot token only; no client control.
messagescomposer toolbar: More options (…), after Mention someoneDisabled, says why on click: shortcuts and workflows come from apps, which the simulator doesn’t serve.
messagesmessage hover → Forward message…, between Reply in thread and Save for laterDisabled, says why on click: Slack forwards through a client method the Web API doesn’t publish; chat.postMessage with a permalink would post a different message than a forward.
reactionsreactions.listNo Slack client screen lists the items a person reacted to.
threadsthread pane header: Summarize threadDisabled, says why on click: the simulator serves no Slack AI.
threadsthread pane header ⋮ → Get notified about new repliesDisabled, says why on click: needs subscriptions.thread.*, which the simulator doesn’t serve.
threadsthread pane header ⋮ → Mark unreadDisabled, says why on click: a thread’s read mark needs subscriptions.thread.*, which the simulator doesn’t serve; conversations.mark would move the channel’s read mark instead.
conversationschannel header: Start huddle (headphones) and More Huddles options (chevron)Disabled, says why on click: the simulator serves no huddle API.
conversationschannel header bell (Edit notifications) and header ⋮ → Edit notificationsDisabled, says why on click: needs users.prefs, which the simulator doesn’t serve.
conversationschannel header ⋮ → Open in new windowDisabled, says why on click: this client is a single window.
conversationsconversation tabs: + → File, canvas, or list (New)Disabled, says why on click: Slack adds the tab with conversations.addTab, which the simulator doesn’t serve.
conversationsconversation tabs: + → WorkflowDisabled, says why on click: the simulator serves no workflows.
conversationsconversation tabs: + → FolderDisabled, says why on click: bookmark folders aren’t part of the simulator.
conversationsconversation tabs: + → Add template to channelDisabled, says why on click: the simulator serves no channel templates.
conversationsconversation tabs: + → Edit tabsDisabled, says why on click: no write reorders or removes a channel’s tabs.
filesupload/v1/{ticket} (PUT)The client POSTs the bytes; PUT is the same upload over another verb.
filesrail Files → the Files sidebar → DeletedDisabled, says why on click: the simulator serves no read of deleted canvases and Lists.
filesrail Files → the Files sidebar → StarredDisabled, says why on click: needs stars.list, which the simulator doesn’t serve.
filesrail Files → the Files sidebar’s More optionsDisabled, says why on click: the Files sidebar’s settings aren’t part of the simulator.
filesthe Canvases and Lists pages’ Templates row and See allNot drawn: the simulator serves no canvas or List templates.
people & statususers.identitySign in with Slack identity endpoint; the client has no screen for it.
schedulingreminders.infoLater draws each reminder from reminders.list; no screen reads one reminder alone.
search & navigationLater → Archived tabDisabled, says why on click: archiving a Later item is Slack’s saved.* state, which the simulator doesn’t serve.
search & navigationLater header → FilterDisabled, says why on click: Later’s filters read Slack’s saved.* state, which the simulator doesn’t serve.
search & navigationHuddlesNo huddle API in the simulator.
search & navigationsearch.allThe results view asks search.messages and search.files, one per tab, so each tab pages on its own; search.all returns the same two lists and no other screen needs it.
apps & viewsviews.publishBot write; the simulator exposes no read or event a client could render App Home from.
apps & viewsviews.updateBot write; same as views.open.
apps & viewsa message’s selects, overflow menus and date pickersDrawn disabled: the simulator’s blocks.actions presses buttons only.
apps & viewsa modal’s selects, date pickers, checkboxes and radio buttonsDrawn disabled: this client draws only a modal’s text inputs so far.
apps & viewsa button inside a modalDrawn disabled: the simulator’s blocks.actions presses a message’s buttons, not a modal’s.
apps & viewsa push ack → the pushed view over the open one, with BackThe simulator serves no views.push and mints no view for a pushed one, so the client could not submit it; a push ack closes the modal.
apps & viewsclosing a modal whose view sets notify_on_close → the app gets view_closedThe simulator delivers no view_closed, so closing a modal tells the app nothing.
apps & viewsa modal input whose conversation picker sets response_url_enabled → response_urls in the submissionThe simulator’s view_submission always carries an empty response_urls.
sidebarInvite people / Connect appsNeeds admin.*, which the simulator doesn’t serve; renders disabled.
sidebarsidebar gear (Manage my sidebar)Needs users.prefs, which the simulator doesn’t serve; renders disabled.
sidebarWelcome back / onboarding bannersNo backing data in the simulator.
sidebarsidebar item menu → MuteNeeds users.prefs, which the simulator doesn’t serve; renders disabled.
sidebarCreate a section / Move to new sectionSlack keeps sections in prefs the simulator doesn’t serve; Move to new section renders disabled.
sidebarsection options: show unreads only, sortShow unreads only / sort need users.prefs; not rendered.
canvases & listsList toolbar All items ▾Disabled, says why on click: the simulator serves no List views.
canvases & listsList toolbar Edit viewDisabled, says why on click: the simulator serves no List views.
canvases & listsItem panel → Add CommentDisabled, says why on click: comments on an item aren’t part of the simulator.
canvases & listsa standalone List’s header Share, Workflows and the info buttonNot drawn: the dialogs they open in Slack are not known yet, apart from a channel’s Share this list?, reached through conversations.addTab.
Last updated on