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
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
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?
}