admin.users.*: list, invite, assign and remove users; change roles (admin, owner, regular); manage guest expiration; and list, reset or invalidate sessions and session settings.

Example

::users ::slack::admin::users

// Sign a compromised account out everywhere
::users/session-reset(::users/SessionResetRequest({user_id: "U0123ABCDEF"}))

// Deactivated users across the org
gone ::users/list-all(::users/ListRequest({is_active: false}), 2000)

Functions

assign

fn (request: AssignRequest): Map
fn (request: AssignRequest, opts: Map): Map

admin.users.assign - Add an existing org user to a workspace.

Scope: admin.users:write. Returns Slack's response body; ok: false comes back as an Err(SlackError).

get-expiration

fn (): Map
fn (request: GetExpirationRequest): Map
fn (request: GetExpirationRequest, opts: Map): Map

admin.users.getExpiration - Get a guest's expiration timestamp.

Scope: admin.users:read. Returns Slack's response body; ok: false comes back as an Err(SlackError).

invite

fn (request: InviteRequest): Map
fn (request: InviteRequest, opts: Map): Map

admin.users.invite - Invite someone to a workspace, joining channel_ids. is_restricted / is_ultra_restricted invite a multi- or single-channel guest; guest_expiration_ts sets a guest's expiry.

Scope: admin.users:write. Returns Slack's response body; ok: false comes back as an Err(SlackError).

list

fn (): Map
fn (request: ListRequest): Map
fn (request: ListRequest, opts: Map): Map

admin.users.list - List users (users). Pass team_id for one workspace, or omit it with an org token to list the whole org.

Scope: admin.users:read. Returns Slack's response body; ok: false comes back as an Err(SlackError). Cursor-paginated: pass cursor from response_metadata.next_cursor, or use list-all.

list-all

fn (): Vec
fn (request: ListRequest): Vec
fn (request: ListRequest, max-items: Int): Vec
fn (request: ListRequest, max-items: Int, opts: Map): Vec

Every users entry from admin.users.list, following next_cursor until the last page or max-items (default 1000). request sets the filters; its cursor is the starting point.

remove-user

fn (request: RemoveUserRequest): Map
fn (request: RemoveUserRequest, opts: Map): Map

admin.users.remove - Remove a user from a workspace.

Scope: admin.users:write. Returns Slack's response body; ok: false comes back as an Err(SlackError).

session-clear-settings

fn (request: SessionClearSettingsRequest): Map
fn (request: SessionClearSettingsRequest, opts: Map): Map

admin.users.session.clearSettings - Clear per-user session settings so the org defaults apply.

Scope: admin.users:write. Returns Slack's response body; ok: false comes back as an Err(SlackError).

session-get-settings

fn (request: SessionGetSettingsRequest): Map
fn (request: SessionGetSettingsRequest, opts: Map): Map

admin.users.session.getSettings - Get per-user session settings (duration, quit-on-close).

Scope: admin.users:read. Returns Slack's response body; ok: false comes back as an Err(SlackError).

session-invalidate

fn (request: SessionInvalidateRequest): Map
fn (request: SessionInvalidateRequest, opts: Map): Map

admin.users.session.invalidate - Invalidate one session by id.

Scope: admin.users:write. Returns Slack's response body; ok: false comes back as an Err(SlackError).

session-list

fn (): Map
fn (request: SessionListRequest): Map
fn (request: SessionListRequest, opts: Map): Map

admin.users.session.list - List active sessions (active_sessions). Pass both team_id and user_id, or neither for the whole org.

Scope: admin.users:read. Returns Slack's response body; ok: false comes back as an Err(SlackError). Cursor-paginated: pass cursor from response_metadata.next_cursor, or use session-list-all.

session-list-all

fn (): Vec
fn (request: SessionListRequest): Vec
fn (request: SessionListRequest, max-items: Int): Vec
fn (request: SessionListRequest, max-items: Int, opts: Map): Vec

Every active_sessions entry from admin.users.session.list, following next_cursor until the last page or max-items (default 1000). request sets the filters; its cursor is the starting point.

session-reset

fn (request: SessionResetRequest): Map
fn (request: SessionResetRequest, opts: Map): Map

admin.users.session.reset - Sign a user out of every session (or only mobile/web ones).

Scope: admin.users:write. Returns Slack's response body; ok: false comes back as an Err(SlackError).

session-reset-bulk

fn (request: SessionResetBulkRequest): Map
fn (request: SessionResetBulkRequest, opts: Map): Map

admin.users.session.resetBulk - Sign up to 1000 users out of their sessions (background job).

Scope: admin.users:write. Returns Slack's response body; ok: false comes back as an Err(SlackError).

session-set-settings

fn (request: SessionSetSettingsRequest): Map
fn (request: SessionSetSettingsRequest, opts: Map): Map

admin.users.session.setSettings - Set session duration (seconds, 28800 to 315569520) or quit-on-close for users.

Scope: admin.users:write. Returns Slack's response body; ok: false comes back as an Err(SlackError).

set-admin

fn (request: SetAdminRequest): Map
fn (request: SetAdminRequest, opts: Map): Map

admin.users.setAdmin - Make a user a workspace admin.

Scope: admin.users:write. Returns Slack's response body; ok: false comes back as an Err(SlackError).

set-expiration

fn (request: SetExpirationRequest): Map
fn (request: SetExpirationRequest, opts: Map): Map

admin.users.setExpiration - Set when a guest account expires (Unix seconds).

Scope: admin.users:write. Returns Slack's response body; ok: false comes back as an Err(SlackError).

set-owner

fn (request: SetOwnerRequest): Map
fn (request: SetOwnerRequest, opts: Map): Map

admin.users.setOwner - Make a user a workspace owner.

Scope: admin.users:write. Returns Slack's response body; ok: false comes back as an Err(SlackError).

set-regular

fn (request: SetRegularRequest): Map
fn (request: SetRegularRequest, opts: Map): Map

admin.users.setRegular - Make a user a regular member (drops admin/owner, or converts a guest).

Scope: admin.users:write. Returns Slack's response body; ok: false comes back as an Err(SlackError).

unsupported-versions-export

fn (): Map
fn (request: UnsupportedVersionsExportRequest): Map
fn (request: UnsupportedVersionsExportRequest, opts: Map): Map

admin.users.unsupportedVersions.export - Ask Slackbot to send a CSV of users on unsupported Slack client versions.

Scope: admin.users:read. Returns Slack's response body; ok: false comes back as an Err(SlackError).

Types

AssignRequest

AssignRequest type {
    team_id: Str,
    user_id: Str,
    channel_ids: Vec<Str>?,
    is_restricted: Bool?,
    is_ultra_restricted: Bool?
}

GetExpirationRequest

GetExpirationRequest type {
    user_id: Str?,
    target_team: Str?
}

InviteRequest

InviteRequest type {
    team_id: Str,
    email: Str,
    channel_ids: Vec<Str>,
    real_name: Str?,
    custom_message: Str?,
    is_restricted: Bool?,
    is_ultra_restricted: Bool?,
    guest_expiration_ts: Str?,
    email_password_policy_enabled: Bool?,
    resend: Bool?
}

ListRequest

ListRequest type {
    team_id: Str?,
    include_deactivated_user_workspaces: Bool?,
    is_active: Bool?,
    cursor: Str?,
    limit: Int?
}

RemoveUserRequest

RemoveUserRequest type {
    team_id: Str,
    user_id: Str
}

SessionClearSettingsRequest

SessionClearSettingsRequest type {
    user_ids: Vec<Str>
}

SessionGetSettingsRequest

SessionGetSettingsRequest type {
    user_ids: Vec<Str>
}

SessionInvalidateRequest

SessionInvalidateRequest type {
    session_id: Str,
    team_id: Str
}

SessionListRequest

SessionListRequest type {
    team_id: Str?,
    user_id: Str?,
    cursor: Str?,
    limit: Int?
}

SessionResetBulkRequest

SessionResetBulkRequest type {
    user_ids: Vec<Str>,
    mobile_only: Bool?,
    web_only: Bool?
}

SessionResetRequest

SessionResetRequest type {
    user_id: Str,
    mobile_only: Bool?,
    web_only: Bool?
}

SessionSetSettingsRequest

SessionSetSettingsRequest type {
    user_ids: Vec<Str>,
    duration: Int?,
    desktop_app_browser_quit: Bool?
}

SetAdminRequest

SetAdminRequest type {
    team_id: Str,
    user_id: Str
}

SetExpirationRequest

SetExpirationRequest type {
    user_id: Str,
    expiration_ts: Int,
    team_id: Str?
}

SetOwnerRequest

SetOwnerRequest type {
    team_id: Str,
    user_id: Str
}

SetRegularRequest

SetRegularRequest type {
    team_id: Str,
    user_id: Str
}

UnsupportedVersionsExportRequest

UnsupportedVersionsExportRequest type {
    date_end_of_support: Int?,
    date_sessions_started: Int?
}