---
title: "Change my agent"
method: PUT
path: "/v1/me/agent"
tags: ["Users"]
---

# Change my agent

`PUT /v1/me/agent`

## Request

- Base URL: `https://api.openworklabs.com`
- URL: `https://api.openworklabs.com/v1/me/agent`
- Auth: one of:
  - API key in header `x-api-key`
  - HTTP bearer

Changes the signed-in member's own agent, as they would say it: turn it on or off (`on`), snooze it until the next working morning or resume (`snooze: "tomorrow"` or null), stop or restart one kind of message (`mute` / `unmute`: morning_brief, meeting_prep, calendar_changes, waiting_on_you). With My agent on (workbotAgentLibrary) also: what they want in their own words (`preferences.always`, `.never`, `.when`, `.how`; plain text, an empty string clears one), narrower working hours (`hours: {startHour, endHour}`, null for the admin's), a lower daily limit (`dailyCap`, null for the admin's), hours inside the day when only urgent messages go out (`quietWindow: {startHour, endHour}`, null removes it), and `undo`: "last" reverts the member's last save, a change id reverts one change (send undo on its own). For "between 12 and 2 only urgent stuff, stop telling me about calendar changes" send preferences.when, quietWindow 12–14 and mute calendar_changes in one call. A member can only narrow the admin's limits: wider hours or a higher limit answer 400 limit_wider_than_admin with a message to relay. The response's `saved.reply` says exactly what was saved, "Reply \"undo\" to revert." and the link to My agent: reply with it as is, in plain text. Organization settings and limits still apply. Requires the workbotProactive feature and Workbot on this deployment.

## Request body

- MemberAgentInput
  - `on` boolean
  - `snooze` 'tomorrow', nullable
  - `mute` string[]
  - `unmute` string[]
  - `preferences` object
    - `always` string
    - `never` string
    - `when` string
    - `how` string
  - `hours` object, nullable
    - `startHour` integer, required
    - `endHour` integer, required
  - `dailyCap` integer, nullable
  - `quietWindow` object, nullable
    - `startHour` integer, required
    - `endHour` integer, required
  - `undo` string

## Response `200`

The member's agent after the change.

- MemberAgentSaved
  - `available` boolean, required
  - `on` boolean, required
  - `snoozedUntil` string, date-time, nullable, required
  - `responsibilities` object[], required
    - `id` 'morning_brief' | 'meeting_prep' | 'calendar_changes' | 'waiting_on_you', required
    - `label` string, required
    - `tells` string, required
    - `enabled` boolean, required
    - `muted` boolean, required
  - `destination` object, nullable, required
    - `kind` 'workbot_dm', required
    - `name` string, required
    - `blocked` 'slack_app_not_installed' | 'member_not_linked', nullable, required
  - `workingHours` object, required
    - `workingDays` 'weekdays' | 'everyday', required
    - `startHour` number, required
    - `endHour` number, required
    - `dailyCap` number, required
  - `nextCheckAt` string, date-time, nullable, required
  - `timeZone` string
  - `lastCheck` object, nullable
    - `id` string, required
    - `at` string, date-time, required
    - `kind` 'morning' | 'scheduled' | 'calendar', required
    - `outcome` 'sent' | 'quiet' | 'waited' | 'failed', required
    - `reason` 'sent' | 'nothing_new' | 'already_told' | 'unreadable_reply' | 'daily_limit' | 'nothing_to_check' | 'outside_hours' | 'quiet_window' | 'snoozed' | 'google_disconnected' | 'slack_app_not_installed' | 'member_not_linked' | 'no_destination' | 'send_failed' | 'agent_unavailable', required
    - `headline` string, required
    - `summary` string, required
    - `responsibilities` string[], required
    - `slackUrl` string, nullable, required
    - `fix` 'reconnect_google' | 'link_slack' | 'ask_admin', nullable, required
  - `todayChecks` object[]
    - `id` string, required
    - `at` string, date-time, required
    - `kind` 'morning' | 'scheduled' | 'calendar', required
    - `outcome` 'sent' | 'quiet' | 'waited' | 'failed', required
    - `reason` 'sent' | 'nothing_new' | 'already_told' | 'unreadable_reply' | 'daily_limit' | 'nothing_to_check' | 'outside_hours' | 'quiet_window' | 'snoozed' | 'google_disconnected' | 'slack_app_not_installed' | 'member_not_linked' | 'no_destination' | 'send_failed' | 'agent_unavailable', required
    - `headline` string, required
    - `summary` string, required
    - `responsibilities` string[], required
    - `slackUrl` string, nullable, required
    - `fix` 'reconnect_google' | 'link_slack' | 'ask_admin', nullable, required
  - `sentToday` integer
  - `preferences` object
    - `always` string, required
    - `never` string, required
    - `when` string, required
    - `how` string, required
  - `limits` object
    - `workingDays` 'weekdays' | 'everyday', required
    - `startHour` integer, required
    - `endHour` integer, required
    - `dailyCap` integer, required
    - `quietWindow` object, nullable, required
      - `startHour` integer, required
      - `endHour` integer, required
    - `admin` object, required
      - `startHour` integer, required
      - `endHour` integer, required
      - `dailyCap` integer, required
    - `narrowed` object, required
      - `hours` boolean, required
      - `dailyCap` boolean, required
  - `changes` object[]
    - `id` string, required
    - `field` 'always' | 'never' | 'when' | 'how' | 'hours' | 'dailyCap' | 'quietWindow' | 'morning_brief' | 'meeting_prep' | 'calendar_changes' | 'waiting_on_you', required
    - `summary` string, required
    - `source` 'chat' | 'page', required
    - `at` string, date-time, required
    - `undone` boolean, required
  - `link` string
  - `saved` object
    - `changes` string[], required
    - `reply` string, required
    - `link` string, required

## Other responses

- `400`: The request was invalid, or asked for more than the admin allows.
- `401`: The caller must be signed in.
- `404`: Agents, or My agent's fields, are off for this organization.
- `409`: There is nothing to undo, or the change was changed again since.

## Changes

- **2026-10-27** `9fa47a73a88e`: 2 breaking, 1 warning, 16 info
  - the `error` response property const value `invalid_request` was removed for the status `400`
  - removed the required property `details` from the response with the `400` status
  - removed the optional property `capability` from the response with the `400` status
  - added the new optional request property `dailyCap`
  - …15 more
- **2026-10-27** `2badfe0bc939`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/openworklabs/apis/den-api/changes/v1/me/agent/put.md)

---

[API](https://skmtc.dev/openworklabs/apis/den-api.md) - [All operations](https://skmtc.dev/openworklabs/apis/den-api/llms.txt) - [OpenAPI document](https://skmtc.dev/openworklabs/apis/den-api/revisions/8117bc7c5626?raw)
