Light Dark

Functions

dnd-end-dnd

fn (request: DndEndDndRequest): DndEndDndResponse

POST /dnd.endDnd - End the current user's Do Not Disturb session immediately.

dnd-end-snooze

fn (request: DndEndSnoozeRequest): DndEndSnoozeResponse

POST /dnd.endSnooze - End the current user's snooze mode. Returns the updated DND schedule.

dnd-info

fn (request: DndInfoRequest): DndInfoResponse

GET /dnd.info - Retrieve a user's current DND status. Returns whether DND is enabled, next scheduled DND times, and snooze state.

dnd-set-snooze

fn (request: DndSetSnoozeRequest): DndSetSnoozeResponse

POST /dnd.setSnooze - Turn on Do Not Disturb mode for the current user. Specify num_minutes for the snooze duration.

dnd-team-info

fn (request: DndTeamInfoRequest): DndTeamInfoResponse

GET /dnd.teamInfo - Retrieve DND status for users on a team. Pass a comma-separated list of user IDs.

usergroups-create

fn (request: UsergroupsCreateRequest): UsergroupsCreateResponse

POST /usergroups.create - Create a user group. Provide a name and optionally a handle (mention name), description, and default channels.

usergroups-disable

fn (request: UsergroupsDisableRequest): UsergroupsDisableResponse

POST /usergroups.disable - Disable an existing user group. Disabled groups can no longer be mentioned or used.

usergroups-enable

fn (request: UsergroupsEnableRequest): UsergroupsEnableResponse

POST /usergroups.enable - Re-enable a disabled user group. The group can be mentioned and used again.

usergroups-list

fn (request: UsergroupsListRequest): UsergroupsListResponse

GET /usergroups.list - List all user groups in a workspace. Set include_disabled: true to include disabled groups and include_users: true to include member lists.

usergroups-update

fn (request: UsergroupsUpdateRequest): UsergroupsUpdateResponse

POST /usergroups.update - Update an existing user group. Change the name, handle, description, or default channels.

usergroups-users-list

fn (request: UsergroupsUsersListRequest): UsergroupsUsersListResponse

GET /usergroups.users.list - List users in a user group. Returns a Vec of user IDs. Set include_disabled: true to include deactivated users.

usergroups-users-update

fn (request: UsergroupsUsersUpdateRequest): UsergroupsUsersUpdateResponse

POST /usergroups.users.update - Update the list of users in a user group. Pass a comma-separated list of user IDs in users. This replaces the entire member list.

users-conversations

fn (request: UsersConversationsRequest): UsersConversationsResponse

GET /users.conversations - List conversations the calling user may access. Filter by types (e.g., "public_channel,private_channel") and exclude_archived. Supports cursor-based pagination.

users-delete-photo

fn (request: UsersDeletePhotoRequest): UsersDeletePhotoResponse

POST /users.deletePhoto - Delete the user profile photo. Resets to the default avatar.

users-get-presence

fn (request: UsersGetPresenceRequest): UsersGetPresenceResponse

GET /users.getPresence - Get user presence information. Returns the user's current presence status ("active" or "away") and connection details.

users-identity

fn (): UsersIdentityResponse

GET /users.identity - Get a user's identity (Sign in with Slack). Requires the identity.basic scope. Returns user name, email, and team info.

users-info

fn (request: UsersInfoRequest): UsersInfoResponse

GET /users.info - Get information about a user. Returns the full user object with profile, status, and admin details.

Example

response ::slack::users/users-info(::slack::users/UsersInfoRequest({
  user: "U1234567"
}))
response.user.id           // => "U1234567"
response.user.name         // => "johndoe"
response.user.real_name    // => "John Doe"

users-list

fn (request: UsersListRequest): UsersListResponse

GET /users.list - List all users in a workspace. Returns member objects with id, name, and profile. Supports cursor-based pagination.

Example

response ::slack::users/users-list(::slack::users/UsersListRequest({
  limit: 50
}))
user first(response.members)
user.id    // => "U1234567"
user.name  // => "johndoe"

users-lookup-by-email

fn (request: UsersLookupByEmailRequest): UsersLookupByEmailResponse

GET /users.lookupByEmail - Find a user with an email address. Returns the matching user object or an error if not found.

users-profile-get

fn (request: UsersProfileGetRequest): UsersProfileGetResponse

GET /users.profile.get - Get a user's profile information. Returns display name, email, status, avatar, and custom fields.

Example

response ::slack::users/users-profile-get(::slack::users/UsersProfileGetRequest({
  user: "U1234567"
}))
response.profile  // => {real_name: "John Doe", email: "john@example.com", ...}

users-profile-set

fn (request: UsersProfileSetRequest): UsersProfileSetResponse

POST /users.profile.set - Set a user's profile information. Update a single field with name/value, or pass a full profile map to update multiple fields at once.

users-set-active

fn (request: UsersSetActiveRequest): UsersSetActiveResponse

POST /users.setActive - Mark the calling user as active. This updates the user's presence to "active".

users-set-photo

fn (request: UsersSetPhotoRequest): UsersSetPhotoResponse

POST /users.setPhoto - Set the user profile photo. Pass the image data and optional crop coordinates (crop_x, crop_y, crop_w).

users-set-presence

fn (request: UsersSetPresenceRequest): UsersSetPresenceResponse

POST /users.setPresence - Set the user presence. Pass presence: "auto" to let Slack manage presence, or "away" to manually set as away.

Types

DndEndDndRequest

DndEndDndRequest type Map

DndEndDndResponse

DndEndDndResponse type {
    ok: Bool?,
    error: Str?
}

DndEndSnoozeRequest

DndEndSnoozeRequest type Map

DndEndSnoozeResponse

DndEndSnoozeResponse type {
    ok: Bool?,
    error: Str?,
    dnd_enabled: Bool?,
    next_dnd_start_ts: Int?,
    next_dnd_end_ts: Int?,
    snooze_enabled: Bool?
}

DndInfoRequest

DndInfoRequest type {
    user: Str?
}

DndInfoResponse

DndInfoResponse type {
    ok: Bool?,
    error: Str?,
    dnd_enabled: Bool?,
    next_dnd_start_ts: Int?,
    next_dnd_end_ts: Int?,
    snooze_enabled: Bool?,
    snooze_endtime: Int?,
    snooze_remaining: Int?
}

DndSetSnoozeRequest

DndSetSnoozeRequest type {
    num_minutes: Int
}

DndSetSnoozeResponse

DndSetSnoozeResponse type {
    ok: Bool?,
    error: Str?,
    snooze_enabled: Bool?,
    snooze_endtime: Int?,
    snooze_remaining: Int?
}

DndTeamInfoRequest

DndTeamInfoRequest type {
    users: Str
}

DndTeamInfoResponse

DndTeamInfoResponse type {
    ok: Bool?,
    error: Str?,
    users: Map?
}

UsergroupsCreateRequest

UsergroupsCreateRequest type {
    name: Str,
    channels: Str?,
    description: Str?,
    handle: Str?,
    include_count: Bool?
}

UsergroupsCreateResponse

UsergroupsCreateResponse type {
    ok: Bool?,
    error: Str?,
    usergroup: Map?
}

UsergroupsDisableRequest

UsergroupsDisableRequest type {
    usergroup: Str,
    include_count: Bool?
}

UsergroupsDisableResponse

UsergroupsDisableResponse type {
    ok: Bool?,
    error: Str?,
    usergroup: Map?
}

UsergroupsEnableRequest

UsergroupsEnableRequest type {
    usergroup: Str,
    include_count: Bool?
}

UsergroupsEnableResponse

UsergroupsEnableResponse type {
    ok: Bool?,
    error: Str?,
    usergroup: Map?
}

UsergroupsListRequest

UsergroupsListRequest type {
    include_users: Bool?,
    include_count: Bool?,
    include_disabled: Bool?
}

UsergroupsListResponse

UsergroupsListResponse type {
    ok: Bool?,
    error: Str?,
    usergroups: Vec?
}

UsergroupsUpdateRequest

UsergroupsUpdateRequest type {
    usergroup: Str,
    name: Str?,
    channels: Str?,
    description: Str?,
    handle: Str?,
    include_count: Bool?
}

UsergroupsUpdateResponse

UsergroupsUpdateResponse type {
    ok: Bool?,
    error: Str?,
    usergroup: Map?
}

UsergroupsUsersListRequest

UsergroupsUsersListRequest type {
    usergroup: Str,
    include_disabled: Bool?
}

UsergroupsUsersListResponse

UsergroupsUsersListResponse type {
    ok: Bool?,
    error: Str?,
    users: Vec?
}

UsergroupsUsersUpdateRequest

UsergroupsUsersUpdateRequest type {
    usergroup: Str,
    users: Str,
    include_count: Bool?
}

UsergroupsUsersUpdateResponse

UsergroupsUsersUpdateResponse type {
    ok: Bool?,
    error: Str?,
    usergroup: Map?
}

UsersConversationsRequest

UsersConversationsRequest type {
    user: Str?,
    types: Str?,
    exclude_archived: Bool?,
    limit: Int?,
    cursor: Str?,
    team_id: Str?
}

UsersConversationsResponse

UsersConversationsResponse type {
    ok: Bool?,
    error: Str?,
    channels: Vec?,
    response_metadata: Map?
}

UsersDeletePhotoRequest

UsersDeletePhotoRequest type Map

UsersDeletePhotoResponse

UsersDeletePhotoResponse type {
    ok: Bool?,
    error: Str?
}

UsersGetPresenceRequest

UsersGetPresenceRequest type {
    user: Str
}

UsersGetPresenceResponse

UsersGetPresenceResponse type {
    ok: Bool?,
    error: Str?,
    presence: Str?,
    online: Bool?,
    auto_away: Bool?,
    manual_away: Bool?,
    connection_count: Int?,
    last_activity: Int?
}

UsersIdentityResponse

UsersIdentityResponse type {
    ok: Bool?,
    error: Str?,
    user: Map?,
    team: Map?
}

UsersInfoRequest

UsersInfoRequest type {
    user: Str,
    include_locale: Bool?
}

UsersInfoResponse

UsersInfoResponse type {
    ok: Bool?,
    error: Str?,
    user: Map?
}

UsersListRequest

UsersListRequest type {
    limit: Int?,
    cursor: Str?,
    include_locale: Bool?,
    team_id: Str?
}

UsersListResponse

UsersListResponse type {
    ok: Bool?,
    error: Str?,
    members: Vec?,
    cache_ts: Int?,
    response_metadata: Map?
}

UsersLookupByEmailRequest

UsersLookupByEmailRequest type {
    email: Str
}

UsersLookupByEmailResponse

UsersLookupByEmailResponse type {
    ok: Bool?,
    error: Str?,
    user: Map?
}

UsersProfileGetRequest

UsersProfileGetRequest type {
    user: Str?,
    include_labels: Bool?
}

UsersProfileGetResponse

UsersProfileGetResponse type {
    ok: Bool?,
    error: Str?,
    profile: Map?
}

UsersProfileSetRequest

UsersProfileSetRequest type {
    name: Str?,
    value: Str?,
    user: Str?,
    profile: Map?
}

UsersProfileSetResponse

UsersProfileSetResponse type {
    ok: Bool?,
    error: Str?,
    profile: Map?
}

UsersSetActiveRequest

UsersSetActiveRequest type Map

UsersSetActiveResponse

UsersSetActiveResponse type {
    ok: Bool?,
    error: Str?
}

UsersSetPhotoRequest

UsersSetPhotoRequest type {
    image: Str,
    crop_x: Int?,
    crop_y: Int?,
    crop_w: Int?
}

UsersSetPhotoResponse

UsersSetPhotoResponse type {
    ok: Bool?,
    error: Str?
}

UsersSetPresenceRequest

UsersSetPresenceRequest type {
    presence: Str
}

UsersSetPresenceResponse

UsersSetPresenceResponse type {
    ok: Bool?,
    error: Str?
}