---
title: "Update workforce member"
method: PATCH
path: "/v1/people/{id}"
tags: ["People"]
---

# Update workforce member

`PATCH /v1/people/{id}`

Update a workforce member profile, role, department, or compliance metadata used for people-security controls.

## Path parameters

- `id` string, required

## Request body

- UpdatePeopleDto
  - `userId` string — User ID to associate with this member
  - `role` string — Role for the member (built-in role name or custom role ID)
  - `department` 'none' | 'admin' | 'gov' | 'hr' | 'it' | 'itsm' | 'qms' — Member department
  - `isActive` boolean — Whether to deactivate this member (soft delete)
  - `fleetDmLabelId` number — FleetDM label ID for member devices
  - `jobTitle` string — Job title for the member
  - `name` string — Name of the associated user
  - `email` string — Email of the associated user
  - `createdAt` string — Member join date (createdAt override)
  - `backgroundCheckExempt` boolean — When true, this member is exempt from the org-level background check requirement and will count as complete in people scores.
  - `backgroundCheckExemptReason` string — Reason code for the exemption (e.g. "contractor_with_vendor_check", "other"). Persisted alongside backgroundCheckExempt and cleared when the member becomes non-exempt.
  - `backgroundCheckExemptJustification` string — Free-text justification for the exemption, attached to the audit log. Cleared when the member becomes non-exempt.
  - `onboardDate` object — Employee onboard date
  - `offboardDate` object — Employee offboard date

## Response `200`

Member updated successfully

- PeopleResponseDto
  - `id` string, required — Member ID
  - `organizationId` string, required — Organization ID this member belongs to
  - `userId` string, required — User ID associated with member
  - `role` string, required — Member role
  - `createdAt` string, date-time, required — When the member was created
  - `department` 'none' | 'admin' | 'gov' | 'hr' | 'it' | 'itsm' | 'qms', required — Member department
  - `jobTitle` object, nullable, required — Job title for the member
  - `isActive` boolean, required — Whether member is active
  - `deactivated` boolean, required — Whether member is deactivated
  - `fleetDmLabelId` object, nullable, required — FleetDM label ID for member devices
  - `user` UserResponseDto, required
    - `id` string, required — User ID
    - `name` string, required — User name
    - `email` string, required — User email
    - `emailVerified` boolean, required — Whether email is verified
    - `image` object, nullable, required — User profile image URL
    - `createdAt` string, date-time, required — When the user was created
    - `updatedAt` string, date-time, required — When the user was last updated
    - `lastLogin` object, nullable, required — Last login time
    - `role` object, nullable, required — Platform role of the user (managed by Better Auth admin plugin)
  - `backgroundCheckRequests` BackgroundCheckSummaryDto[] — Background check requests for this member
    - `id` string, required — Background check request ID
    - `status` 'invited' | 'in_progress' | 'in_review' | 'completed' | 'completed_with_flags' | 'failed' | 'cancelled', required — Background check status

## Other responses

- `400` — Bad Request - Invalid update data or user conflict
- `401` — Unauthorized - Invalid authentication or insufficient permissions
- `404` — Organization, member, or user not found
- `500` — Internal server error

---

[API](https://skmtc.net/om-network/apis/betayum-api.md) · [All operations](https://skmtc.net/om-network/apis/betayum-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/om-network/betayum-api/versions/1c5403653ecf/schema)
