# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand. overlay: 1.0.0 info: title: API Evangelist conversational phrasing for Slack Admin Administrative API version: 1.0.0 extends: openapi/slack-administrative-api-openapi.yml actions: - target: $.info update: x-apievangelist-phrasing: method: generated generated: '2026-09-26' generator: build-phrasing.py label: Generated by API Evangelist operations: 55 - target: $.paths['/admin.apps.approve'].post update: x-apievangelist-phrasing: intent: Approve an app for a workspace effect: write questions: - How can an org admin approve a pending app install request in Slack? - Can I approve an app for one specific workspace rather than the whole org? instructions: - text: Approve app {app_id} for installation on workspace {team_id}. slots: app_id: requestBody.app_id team_id: requestBody.team_id - text: Approve the pending app request {request_id}. slots: request_id: requestBody.request_id method: generated generated: '2026-09-26' - target: $.paths['/admin.apps.approved.list'].get update: x-apievangelist-phrasing: intent: List approved apps effect: read questions: - Which apps have already been approved for our org? - Can I see the approved apps for just one workspace in the enterprise? instructions: - text: List the apps that are approved on workspace {team_id}. slots: team_id: query.team_id - text: Show every approved app across enterprise {enterprise_id}. slots: enterprise_id: query.enterprise_id method: generated generated: '2026-09-26' - target: $.paths['/admin.apps.requests.list'].get update: x-apievangelist-phrasing: intent: List pending app install requests effect: read questions: - Which app installs are users waiting on an admin to review? - Is there a way to page through app requests people submitted on a workspace? instructions: - text: List the pending app requests on workspace {team_id}. slots: team_id: query.team_id - text: Show the first {limit} outstanding app install requests. slots: limit: query.limit method: generated generated: '2026-09-26' - target: $.paths['/admin.apps.restrict'].post update: x-apievangelist-phrasing: intent: Restrict an app on a workspace effect: write questions: - How do I block an app from being installed on a workspace? - Can I restrict an app in response to a user's install request? instructions: - text: Restrict app {app_id} from installation on workspace {team_id}. slots: app_id: requestBody.app_id team_id: requestBody.team_id - text: Deny install request {request_id} by restricting the app. slots: request_id: requestBody.request_id method: generated generated: '2026-09-26' - target: $.paths['/admin.apps.restricted.list'].get update: x-apievangelist-phrasing: intent: List restricted apps effect: read questions: - Which apps are blocked from installation in our org? - Can I list restricted apps for one workspace only? instructions: - text: List the restricted apps on workspace {team_id}. slots: team_id: query.team_id - text: Show every app restricted across enterprise {enterprise_id}. slots: enterprise_id: query.enterprise_id method: generated generated: '2026-09-26' - target: $.paths['/admin.conversations.archive'].post update: x-apievangelist-phrasing: intent: Archive a channel as an admin effect: write questions: - Can an org admin archive a private channel they aren't a member of? - How do I archive a channel from the admin side? instructions: - text: As an admin, archive channel {channel_id}. slots: channel_id: requestBody.channel_id - text: Use admin rights to archive the channel {channel_id} across the org. slots: channel_id: requestBody.channel_id method: generated generated: '2026-09-26' - target: $.paths['/admin.conversations.convertToPrivate'].post update: x-apievangelist-phrasing: intent: Convert a public channel to private effect: write questions: - Is it possible to turn a public channel into a private one? - What happens when an admin converts a channel to private? instructions: - text: Convert public channel {channel_id} into a private channel. slots: channel_id: requestBody.channel_id - text: Make channel {channel_id} private. slots: channel_id: requestBody.channel_id method: generated generated: '2026-09-26' - target: $.paths['/admin.conversations.create'].post update: x-apievangelist-phrasing: intent: Create a channel as an admin effect: write questions: - Can an admin create an org-wide channel in an Enterprise org? - What do I need to create a private channel through the admin API? instructions: - text: Create a channel named {name} with private set to {is_private}. slots: name: requestBody.name is_private: requestBody.is_private - text: Create public channel {name} on workspace {team_id} with private set to {is_private}. slots: name: requestBody.name team_id: requestBody.team_id is_private: requestBody.is_private - text: Create an org-wide channel {name}, private {is_private}, described as {description}. slots: name: requestBody.name is_private: requestBody.is_private description: requestBody.description method: generated generated: '2026-09-26' - target: $.paths['/admin.conversations.delete'].post update: x-apievangelist-phrasing: intent: Delete a channel permanently effect: destructive questions: - Can an admin permanently delete a channel instead of archiving it? - Is deleting a private channel through the admin API reversible? instructions: - text: Permanently delete channel {channel_id}. slots: channel_id: requestBody.channel_id - text: Remove the channel {channel_id} for good, messages and all. slots: channel_id: requestBody.channel_id method: generated generated: '2026-09-26' - target: $.paths['/admin.conversations.disconnectShared'].post update: x-apievangelist-phrasing: intent: Disconnect a shared channel from workspaces effect: destructive questions: - How do I stop sharing a connected channel with other workspaces? - Can I disconnect a shared channel from only some of the workspaces it reaches? instructions: - text: Disconnect shared channel {channel_id} from every connected workspace. slots: channel_id: requestBody.channel_id - text: Disconnect channel {channel_id} from workspaces {leaving_team_ids}. slots: channel_id: requestBody.channel_id leaving_team_ids: requestBody.leaving_team_ids method: generated generated: '2026-09-26' - target: $.paths['/admin.conversations.ekm.listOriginalConnectedChannelInfo'].get update: x-apievangelist-phrasing: intent: List disconnected channels' original IDs effect: read questions: - Which channels were once shared with other workspaces and later disconnected? - Where can I find the original channel IDs for disconnected channels, for EKM? instructions: - text: List the original connected channel info for channels {channel_ids}. slots: channel_ids: query.channel_ids - text: Show disconnected channels and their original IDs for workspaces {team_ids}. slots: team_ids: query.team_ids method: generated generated: '2026-09-26' - target: $.paths['/admin.conversations.getConversationPrefs'].get update: x-apievangelist-phrasing: intent: Get a channel's posting preferences effect: read questions: - Who is allowed to post in this channel right now? - Can I check the current conversation preferences on a private channel? instructions: - text: Get the conversation preferences for channel {channel_id}. slots: channel_id: query.channel_id - text: Show who can post and thread in channel {channel_id}. slots: channel_id: query.channel_id method: generated generated: '2026-09-26' - target: $.paths['/admin.conversations.getTeams'].get update: x-apievangelist-phrasing: intent: List workspaces a channel is connected to effect: read questions: - Which workspaces in our Enterprise org is this channel shared into? - How do I see every workspace connected to a given channel? instructions: - text: List the workspaces channel {channel_id} is connected to. slots: channel_id: query.channel_id - text: Show up to {limit} workspaces sharing channel {channel_id}. slots: limit: query.limit channel_id: query.channel_id method: generated generated: '2026-09-26' - target: $.paths['/admin.conversations.invite'].post update: x-apievangelist-phrasing: intent: Invite users to a channel as an admin effect: write questions: - Can an admin add several people to a private channel at once? - Is it possible to invite users into a channel I'm not a member of? instructions: - text: Invite users {user_ids} to channel {channel_id}. slots: user_ids: requestBody.user_ids channel_id: requestBody.channel_id - text: Add user {user_ids} to the channel {channel_id} using admin rights. slots: user_ids: requestBody.user_ids channel_id: requestBody.channel_id method: generated generated: '2026-09-26' - target: $.paths['/admin.conversations.rename'].post update: x-apievangelist-phrasing: intent: Rename a channel as an admin effect: write questions: - Can an org admin rename any public or private channel? - What's the admin way to change a channel's name? instructions: - text: Rename channel {channel_id} to {name}. slots: channel_id: requestBody.channel_id name: requestBody.name - text: Change the name of channel {channel_id} to {name} as an admin. slots: channel_id: requestBody.channel_id name: requestBody.name method: generated generated: '2026-09-26' - target: $.paths['/admin.conversations.restrictAccess.addGroup'].post update: x-apievangelist-phrasing: intent: Allow an IDP group into a channel effect: write questions: - How do I restrict a private channel so only one IDP group can access it? - Can I add an identity provider group to a channel's allowlist? instructions: - text: Add IDP group {group_id} to the access allowlist of channel {channel_id}. slots: group_id: requestBody.group_id channel_id: requestBody.channel_id - text: Allow group {group_id} into channel {channel_id} on workspace {team_id}. slots: group_id: requestBody.group_id channel_id: requestBody.channel_id team_id: requestBody.team_id method: generated generated: '2026-09-26' - target: $.paths['/admin.conversations.restrictAccess.listGroups'].get update: x-apievangelist-phrasing: intent: List IDP groups linked to a channel effect: read questions: - Which IDP groups are allowed to access this channel? - Can I check a channel's group allowlist before changing it? instructions: - text: List the IDP groups linked to channel {channel_id}. slots: channel_id: query.channel_id - text: Show the access groups on channel {channel_id} in workspace {team_id}. slots: channel_id: query.channel_id team_id: query.team_id method: generated generated: '2026-09-26' - target: $.paths['/admin.conversations.restrictAccess.removeGroup'].post update: x-apievangelist-phrasing: intent: Remove an IDP group from a private channel effect: write questions: - How do I unlink an IDP group from a private channel's allowlist? - Can I revoke a group's access to a private channel? instructions: - text: Remove IDP group {group_id} from private channel {channel_id} on workspace {team_id}. slots: group_id: requestBody.group_id channel_id: requestBody.channel_id team_id: requestBody.team_id - text: Unlink group {group_id} from channel {channel_id} in team {team_id}. slots: group_id: requestBody.group_id channel_id: requestBody.channel_id team_id: requestBody.team_id method: generated generated: '2026-09-26' - target: $.paths['/admin.conversations.search'].get update: x-apievangelist-phrasing: intent: Search channels across an Enterprise org effect: read questions: - How can an admin find channels by name across the whole Enterprise org? - Can I filter a channel search by channel type and sort the results? instructions: - text: Search the org for channels matching {query}. slots: query: query.query - text: Find channels matching {query} in workspaces {team_ids}. slots: query: query.query team_ids: query.team_ids - text: Search for channels of type {search_channel_types}, sorted by {sort}. slots: search_channel_types: query.search_channel_types sort: query.sort method: generated generated: '2026-09-26' - target: $.paths['/admin.conversations.setConversationPrefs'].post update: x-apievangelist-phrasing: intent: Set a channel's posting permissions effect: write questions: - Can I make a channel announcement-only so just admins can post? - How are posting permissions for a channel changed? instructions: - text: Set the posting preferences on channel {channel_id} to {prefs}. slots: channel_id: requestBody.channel_id prefs: requestBody.prefs - text: Apply prefs {prefs} to restrict who can post in channel {channel_id}. slots: prefs: requestBody.prefs channel_id: requestBody.channel_id method: generated generated: '2026-09-26' - target: $.paths['/admin.conversations.setTeams'].post update: x-apievangelist-phrasing: intent: Set which workspaces share a channel effect: write questions: - How do I share a channel with several workspaces in our Enterprise grid? - Can I turn an existing channel into an org-wide channel? instructions: - text: Share channel {channel_id} with workspaces {target_team_ids}. slots: channel_id: requestBody.channel_id target_team_ids: requestBody.target_team_ids - text: 'Convert channel {channel_id} to an org channel: {org_channel}.' slots: channel_id: requestBody.channel_id org_channel: requestBody.org_channel method: generated generated: '2026-09-26' - target: $.paths['/admin.conversations.unarchive'].post update: x-apievangelist-phrasing: intent: Unarchive a channel effect: write questions: - Can an archived channel be brought back? - How do I restore a private channel someone archived? instructions: - text: Unarchive channel {channel_id}. slots: channel_id: requestBody.channel_id - text: Restore the archived channel {channel_id} so people can post again. slots: channel_id: requestBody.channel_id method: generated generated: '2026-09-26' - target: $.paths['/admin.emoji.addAlias'].post update: x-apievangelist-phrasing: intent: Add an alias for a custom emoji effect: write questions: - Can one custom emoji answer to two different names? - What's needed to add an emoji alias org-wide? instructions: - text: Add alias {name} for the emoji {alias_for}. slots: name: requestBody.name alias_for: requestBody.alias_for - text: 'Make :{name}: point to the existing emoji {alias_for}.' slots: name: requestBody.name alias_for: requestBody.alias_for method: generated generated: '2026-09-26' - target: $.paths['/admin.emoji.list'].get update: x-apievangelist-phrasing: intent: List custom emoji across the org effect: read questions: - Which custom emoji exist across our Enterprise Grid organization? - Can an admin page through all org emoji? instructions: - text: List the custom emoji in the Enterprise Grid org. - text: Show {limit} org emoji per page. slots: limit: query.limit method: generated generated: '2026-09-26' - target: $.paths['/admin.emoji.remove'].post update: x-apievangelist-phrasing: intent: Remove a custom emoji org-wide effect: destructive questions: - How do I delete a custom emoji from every workspace in the org? - Can an admin take down an offensive emoji? instructions: - text: Remove the emoji {name} across the organization. slots: name: requestBody.name - text: Delete custom emoji {name} org-wide. slots: name: requestBody.name method: generated generated: '2026-09-26' - target: $.paths['/admin.emoji.rename'].post update: x-apievangelist-phrasing: intent: Rename a custom emoji effect: write questions: - Can a custom emoji be renamed without re-uploading it? - What happens to messages when an admin renames an emoji? instructions: - text: Rename emoji {name} to {new_name}. slots: name: requestBody.name new_name: requestBody.new_name - text: Change the emoji called {name} so it's now {new_name}. slots: name: requestBody.name new_name: requestBody.new_name method: generated generated: '2026-09-26' - target: $.paths['/admin.inviteRequests.approve'].post update: x-apievangelist-phrasing: intent: Approve a workspace invite request effect: write questions: - Can an admin approve someone's request to invite a new member? - How do I say yes to a pending workspace invite request? instructions: - text: Approve invite request {invite_request_id}. slots: invite_request_id: requestBody.invite_request_id - text: Approve invite request {invite_request_id} on workspace {team_id}. slots: invite_request_id: requestBody.invite_request_id team_id: requestBody.team_id method: generated generated: '2026-09-26' - target: $.paths['/admin.inviteRequests.approved.list'].get update: x-apievangelist-phrasing: intent: List approved invite requests effect: read questions: - Which workspace invite requests have been approved so far? - Can I audit approved invites for one workspace? instructions: - text: List the approved invite requests on workspace {team_id}. slots: team_id: query.team_id - text: Show all invite requests that were approved. method: generated generated: '2026-09-26' - target: $.paths['/admin.inviteRequests.denied.list'].get update: x-apievangelist-phrasing: intent: List denied invite requests effect: read questions: - Which invite requests did admins turn down? - Is there a record of denied workspace invites I can page through? instructions: - text: List the denied invite requests on workspace {team_id}. slots: team_id: query.team_id - text: Show every invite request that was rejected. method: generated generated: '2026-09-26' - target: $.paths['/admin.inviteRequests.deny'].post update: x-apievangelist-phrasing: intent: Deny a workspace invite request effect: write questions: - How can an admin reject a request to invite someone? - Can I deny an invite request on a particular workspace? instructions: - text: Deny invite request {invite_request_id}. slots: invite_request_id: requestBody.invite_request_id - text: Reject invite request {invite_request_id} on workspace {team_id}. slots: invite_request_id: requestBody.invite_request_id team_id: requestBody.team_id method: generated generated: '2026-09-26' - target: $.paths['/admin.inviteRequests.list'].get update: x-apievangelist-phrasing: intent: List pending invite requests effect: read questions: - Which workspace invite requests are still waiting for review? - Are there pending invites I need to approve or deny? instructions: - text: List the pending invite requests on workspace {team_id}. slots: team_id: query.team_id - text: Show the invite requests nobody has acted on yet. method: generated generated: '2026-09-26' - target: $.paths['/admin.teams.admins.list'].get update: x-apievangelist-phrasing: intent: List a workspace's admins effect: read questions: - Who are the admins on a given workspace? - Can I get the admin roster for one workspace in our Enterprise org? instructions: - text: List the admins of workspace {team_id}. slots: team_id: query.team_id - text: Show up to {limit} admins on workspace {team_id}. slots: limit: query.limit team_id: query.team_id method: generated generated: '2026-09-26' - target: $.paths['/admin.teams.create'].post update: x-apievangelist-phrasing: intent: Create a workspace in an Enterprise org effect: write questions: - How do I spin up a new workspace inside our Enterprise Grid org? - Can a new workspace be created as invite-only from the start? instructions: - text: Create a workspace named {team_name} with domain {team_domain}. slots: team_name: requestBody.team_name team_domain: requestBody.team_domain - text: Create workspace {team_name} at {team_domain} with discoverability {team_discoverability}. slots: team_name: requestBody.team_name team_domain: requestBody.team_domain team_discoverability: requestBody.team_discoverability method: generated generated: '2026-09-26' - target: $.paths['/admin.teams.list'].get update: x-apievangelist-phrasing: intent: List workspaces in an Enterprise org effect: read questions: - Which workspaces belong to our Enterprise organization? - Can I page through every team in the org? instructions: - text: List all workspaces in the Enterprise org. - text: Show the next {limit} workspaces from cursor {cursor}. slots: limit: query.limit cursor: query.cursor method: generated generated: '2026-09-26' - target: $.paths['/admin.teams.owners.list'].get update: x-apievangelist-phrasing: intent: List a workspace's owners effect: read questions: - Who owns a particular workspace? - Can I list the workspace owners separately from the admins? instructions: - text: List the owners of workspace {team_id}. slots: team_id: query.team_id - text: Show who holds owner role on workspace {team_id}. slots: team_id: query.team_id method: generated generated: '2026-09-26' - target: $.paths['/admin.teams.settings.info'].get update: x-apievangelist-phrasing: intent: Get a workspace's settings effect: read questions: - What are the current settings on one of our workspaces? - Can I check a workspace's name, icon and discoverability in one call? instructions: - text: Get the settings for workspace {team_id}. slots: team_id: query.team_id - text: Fetch settings info for team {team_id}. slots: team_id: query.team_id method: generated generated: '2026-09-26' - target: $.paths['/admin.teams.settings.setDefaultChannels'].post update: x-apievangelist-phrasing: intent: Set a workspace's default channels effect: write questions: - How do I choose which channels new members join automatically? - Can I change the default channels for a workspace? instructions: - text: Set the default channels of workspace {team_id} to {channel_ids}. slots: team_id: requestBody.team_id channel_ids: requestBody.channel_ids - text: Make {channel_ids} the channels everyone joins on workspace {team_id}. slots: channel_ids: requestBody.channel_ids team_id: requestBody.team_id method: generated generated: '2026-09-26' - target: $.paths['/admin.teams.settings.setDescription'].post update: x-apievangelist-phrasing: intent: Set a workspace's description effect: write questions: - Can an admin update the description shown for a workspace? - Where is a workspace's description changed? instructions: - text: Set the description of workspace {team_id} to {description}. slots: team_id: requestBody.team_id description: requestBody.description - text: Describe workspace {team_id} as {description}. slots: team_id: requestBody.team_id description: requestBody.description method: generated generated: '2026-09-26' - target: $.paths['/admin.teams.settings.setDiscoverability'].post update: x-apievangelist-phrasing: intent: Set who can find and join a workspace effect: write questions: - How do I make a workspace unlisted so people can't discover it? - Which discoverability options can a workspace have? instructions: - text: Set discoverability of workspace {team_id} to {discoverability}. slots: team_id: requestBody.team_id discoverability: requestBody.discoverability - text: Make workspace {team_id} invite-only by setting discoverability {discoverability}. slots: team_id: requestBody.team_id discoverability: requestBody.discoverability method: generated generated: '2026-09-26' - target: $.paths['/admin.teams.settings.setIcon'].post update: x-apievangelist-phrasing: intent: Set a workspace's icon effect: write questions: - Can I change a workspace icon from an image URL? - How is a workspace's logo updated by an admin? instructions: - text: Set the icon of workspace {team_id} to the image at {image_url}. slots: team_id: requestBody.team_id image_url: requestBody.image_url - text: Use {image_url} as the icon for team {team_id}. slots: image_url: requestBody.image_url team_id: requestBody.team_id method: generated generated: '2026-09-26' - target: $.paths['/admin.teams.settings.setName'].post update: x-apievangelist-phrasing: intent: Rename a workspace effect: write questions: - Can an admin rename a workspace in the Enterprise org? - What's required to change a workspace's display name? instructions: - text: Rename workspace {team_id} to {name}. slots: team_id: requestBody.team_id name: requestBody.name - text: Set the name of team {team_id} to {name}. slots: team_id: requestBody.team_id name: requestBody.name method: generated generated: '2026-09-26' - target: $.paths['/admin.usergroups.addChannels'].post update: x-apievangelist-phrasing: intent: Add default channels to an IDP group effect: write questions: - How do I make members of an IDP group automatically join certain channels? - Can I link more default channels to an existing user group? instructions: - text: Add channels {channel_ids} as defaults for IDP group {usergroup_id}. slots: channel_ids: requestBody.channel_ids usergroup_id: requestBody.usergroup_id - text: Link channels {channel_ids} to user group {usergroup_id} on workspace {team_id}. slots: channel_ids: requestBody.channel_ids usergroup_id: requestBody.usergroup_id team_id: requestBody.team_id method: generated generated: '2026-09-26' - target: $.paths['/admin.usergroups.addTeams'].post update: x-apievangelist-phrasing: intent: Associate workspaces with an org IDP group effect: write questions: - Can an org-wide IDP group be tied to specific workspaces? - Is there a way to auto-provision group members into the workspaces I add? instructions: - text: Associate workspaces {team_ids} with IDP group {usergroup_id}. slots: team_ids: requestBody.team_ids usergroup_id: requestBody.usergroup_id - text: Add workspaces {team_ids} to group {usergroup_id} with auto-provision {auto_provision}. slots: team_ids: requestBody.team_ids usergroup_id: requestBody.usergroup_id auto_provision: requestBody.auto_provision method: generated generated: '2026-09-26' - target: $.paths['/admin.usergroups.listChannels'].get update: x-apievangelist-phrasing: intent: List channels linked to an IDP group effect: read questions: - Which channels are linked to a given org-level user group? - Can I include member counts when listing a group's channels? instructions: - text: List the channels linked to IDP group {usergroup_id}. slots: usergroup_id: query.usergroup_id - text: Show group {usergroup_id}'s channels with member counts {include_num_members}. slots: usergroup_id: query.usergroup_id include_num_members: query.include_num_members method: generated generated: '2026-09-26' - target: $.paths['/admin.usergroups.removeChannels'].post update: x-apievangelist-phrasing: intent: Remove default channels from an IDP group effect: write questions: - How do I stop an IDP group from auto-joining a channel? - Can I unlink several default channels from a user group at once? instructions: - text: Remove channels {channel_ids} from IDP group {usergroup_id}. slots: channel_ids: requestBody.channel_ids usergroup_id: requestBody.usergroup_id - text: Unlink the default channels {channel_ids} from user group {usergroup_id}. slots: channel_ids: requestBody.channel_ids usergroup_id: requestBody.usergroup_id method: generated generated: '2026-09-26' - target: $.paths['/admin.users.assign'].post update: x-apievangelist-phrasing: intent: Add an Enterprise user to a workspace effect: write questions: - How do I add someone who's already in our Enterprise org to another workspace? - Can I assign a user to a workspace as a guest and drop them into channels? instructions: - text: Assign user {user_id} to workspace {team_id}. slots: user_id: requestBody.user_id team_id: requestBody.team_id - text: Add user {user_id} to workspace {team_id} and channels {channel_ids}. slots: user_id: requestBody.user_id team_id: requestBody.team_id channel_ids: requestBody.channel_ids - text: 'Assign {user_id} to team {team_id} as a restricted guest: {is_restricted}.' slots: user_id: requestBody.user_id team_id: requestBody.team_id is_restricted: requestBody.is_restricted method: generated generated: '2026-09-26' - target: $.paths['/admin.users.invite'].post update: x-apievangelist-phrasing: intent: Invite someone to a workspace by email effect: write questions: - How do I invite a new person to a workspace by their email address? - Can an invited guest have an expiration date? - Is it possible to resend an invite with a custom message? instructions: - text: Invite {email} to workspace {team_id} and add them to channels {channel_ids}. slots: email: requestBody.email team_id: requestBody.team_id channel_ids: requestBody.channel_ids - text: Invite {email} to team {team_id}, channels {channel_ids}, with the note {custom_message}. slots: email: requestBody.email team_id: requestBody.team_id channel_ids: requestBody.channel_ids custom_message: requestBody.custom_message - text: Invite guest {email} to {team_id} in {channel_ids}, expiring at {guest_expiration_ts}. slots: email: requestBody.email team_id: requestBody.team_id channel_ids: requestBody.channel_ids guest_expiration_ts: requestBody.guest_expiration_ts method: generated generated: '2026-09-26' - target: $.paths['/admin.users.list'].get update: x-apievangelist-phrasing: intent: List users on a workspace effect: read questions: - Who are the members of a particular workspace? - Can an admin page through every user on a workspace? instructions: - text: List the users on workspace {team_id}. slots: team_id: query.team_id - text: Show {limit} members of workspace {team_id} per page. slots: limit: query.limit team_id: query.team_id method: generated generated: '2026-09-26' - target: $.paths['/admin.users.remove'].post update: x-apievangelist-phrasing: intent: Remove a user from a workspace effect: destructive questions: - How do I take someone off a workspace without deactivating their org account? - Can an admin remove a user from just one workspace? instructions: - text: Remove user {user_id} from workspace {team_id}. slots: user_id: requestBody.user_id team_id: requestBody.team_id - text: Kick {user_id} out of team {team_id}. slots: user_id: requestBody.user_id team_id: requestBody.team_id method: generated generated: '2026-09-26' - target: $.paths['/admin.users.session.invalidate'].post update: x-apievangelist-phrasing: intent: Invalidate one user session effect: destructive questions: - Can I sign a user out of one specific session instead of all of them? - What do I need to kill a single session by its ID? instructions: - text: Invalidate session {session_id} on workspace {team_id}. slots: session_id: requestBody.session_id team_id: requestBody.team_id - text: End the single login session {session_id} in team {team_id}. slots: session_id: requestBody.session_id team_id: requestBody.team_id method: generated generated: '2026-09-26' - target: $.paths['/admin.users.session.reset'].post update: x-apievangelist-phrasing: intent: Sign a user out of all devices effect: destructive questions: - How do I force a user to log out everywhere, like after a lost laptop? - Can I wipe only a user's mobile sessions? instructions: - text: Reset all sessions for user {user_id} on every device. slots: user_id: requestBody.user_id - text: 'Wipe only the mobile sessions of user {user_id}: {mobile_only}.' slots: user_id: requestBody.user_id mobile_only: requestBody.mobile_only - text: 'Log user {user_id} out of web sessions only: {web_only}.' slots: user_id: requestBody.user_id web_only: requestBody.web_only method: generated generated: '2026-09-26' - target: $.paths['/admin.users.setAdmin'].post update: x-apievangelist-phrasing: intent: Make a user a workspace admin effect: write questions: - How do I promote a member to admin on a workspace? - Can a guest be made an admin directly? instructions: - text: Make user {user_id} an admin on workspace {team_id}. slots: user_id: requestBody.user_id team_id: requestBody.team_id - text: Promote {user_id} to admin in team {team_id}. slots: user_id: requestBody.user_id team_id: requestBody.team_id method: generated generated: '2026-09-26' - target: $.paths['/admin.users.setExpiration'].post update: x-apievangelist-phrasing: intent: Set an expiration for a guest effect: write questions: - Can a guest account expire automatically on a certain date? - What's needed to schedule when a guest loses access? instructions: - text: Expire guest {user_id} on workspace {team_id} at {expiration_ts}. slots: user_id: requestBody.user_id team_id: requestBody.team_id expiration_ts: requestBody.expiration_ts - text: Set guest user {user_id}'s access in {team_id} to end at {expiration_ts}. slots: user_id: requestBody.user_id team_id: requestBody.team_id expiration_ts: requestBody.expiration_ts method: generated generated: '2026-09-26' - target: $.paths['/admin.users.setOwner'].post update: x-apievangelist-phrasing: intent: Make a user a workspace owner effect: write questions: - How can an existing admin be promoted to workspace owner? - Is it possible to give someone owner rights on a workspace? instructions: - text: Make user {user_id} an owner of workspace {team_id}. slots: user_id: requestBody.user_id team_id: requestBody.team_id - text: Grant owner role to {user_id} on team {team_id}. slots: user_id: requestBody.user_id team_id: requestBody.team_id method: generated generated: '2026-09-26' - target: $.paths['/admin.users.setRegular'].post update: x-apievangelist-phrasing: intent: Make a user a regular member effect: write questions: - How do I demote an admin or owner back to a regular member? - Can I convert a guest into a full regular user? instructions: - text: Set user {user_id} to a regular member on workspace {team_id}. slots: user_id: requestBody.user_id team_id: requestBody.team_id - text: Demote {user_id} to regular user in team {team_id}. slots: user_id: requestBody.user_id team_id: requestBody.team_id method: generated generated: '2026-09-26'