Set a user's Will Return / Out of Roam
POST/user.status.set
Record an absence on a workspace member — the same Will Return Today /
Out of Roam field the desktop client writes, already readable via
user.info?expand=status and
user.status.update.
This is not external activity. Use
user.status.set for HR absences (sick leave, vacation, parental leave,
public holidays). Use user.activity.set for a short-lived on-map glow
/ emoji (phone call, browser meeting).
willReturn is last-writer-wins with the desktop client. Setting it
does not check the user out, does not enable Do Not Disturb, and
does not accept a status enum (checkedIn / checkedOut stay
read-only).
outOfRoam defaults to true (persistent Out of Roam, up to 2 years).
Pass outOfRoam: false for same-day Will Return Today (returnTime
must be less than 10 hours from now).
Identify the user with userId: a bare UUID, tagged U-… ID, or
ASCII email (same convention as group.create members). Third-party
systems that only have an email do not need a UUID lookup first.
See Will Return / Out of Roam for the two modes, persistence across check-in, and an HRIS example.
Access: Organization and Personal. Organization tokens may target any active member in the workspace. Personal tokens (OAuth or PAT) may target only the token owner.
Required scope: user:write.status. Personal Access Tokens skip
this check; personal-mode OAuth installs must still request the scope.
Reading the field back via user.info still needs user:read.status.
OpenAPI Spec: chat-v1.json
Request
Responses
- 200
- 400
- 401
- 403
- 404
- 405
- 500
Absence saved. willReturn echoes the written value (including
defaulted outOfRoam). status is the user's current check-in
(checkedIn / checkedOut) and is unchanged by this call. userId
is the canonical UUID.
Bad request. Common causes:
- Missing
userIdorwillReturn(missing_parameter) - Missing
willReturn.returnTime(missing_parameter) statussent (invalid_arguments)userIdis not a UUID, tagged ID, or ASCII emailwillReturn.returnTimein the past, more than 2 years out, or ≥ 10 hours out withoutOfRoam: false(invalid_parameter)willReturn.reasonlonger than 128 code points (invalid_parameter)
Presented invalid authentication credentials.
Forbidden. Common causes:
- Missing
user:write.status(OAuth / API key) - Personal token targeting a user other than the owner (
access_denied)
User not found, archived, or not in this workspace (user_not_found).
An unsupported method was requested.
An internal error occurred.