# A person changed. Carries the id only; re-read for their new state.

event `hr/people/updated`

Group: People Management › People · Operation ID: `hr_people_updated`

Delivered when the person's own employment record changes — status, start, end and probation dates, employment category, entity, location and custom fields; when their primary job changes, which is what moves `jobId`, `departmentName`, `positionName` and `managerName`; when their compensation changes; and when an external identifier is added, changed or removed.

`firstName`, `lastName`, `middleName`, the preferred names, `name` and `email` are held on a separate person record and projected onto the employment record rather than stored on it. A write to either record publishes this event, so a rename arrives however it was made.

This is a change notification rather than a description of the change. The payload names the person but not what moved, and there is no before-and-after, so re-read and take the current state from there.

Changes to what the person merely references are not reported: the department, position and manager behind `departmentName`, `positionName` and `managerName` are their own records, as are the entity, the location, the employment category and the compensation type. Renaming any of them changes what this API returns but publishes nothing, because the person did not change.

Expect more than one delivery for a single business action — assigning a job and setting a salary are separate writes to the same person — and a re-read after the first may already show the last. Deduplicate on `event.uuid` and treat the read as the source of truth.

[Open in the interactive reference](https://docs.api.lensing.ai/?op=hr_people_updated)

Delivered as `POST` to the webhook endpoint of a subscription to `hr/people/updated`.

## Payload

Required, `application/json`: object.

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `subscription` | object | yes | The subscription this delivery was made for. |
| `subscription.uuid` | string | yes | Stable identifier of the subscription. |
| `subscription.type` | string | yes | Transport the subscription delivers through; `webhook` for deliveries carried by this request. |
| `subscription.name` | string | yes | Authored name of the subscription. |
| `event` | object | yes | The emitted event being delivered. |
| `event.uuid` | string | yes | Stable identifier of this emission — the idempotency key for a receiver, since a delivery may be retried. |
| `event.identifier` | `"hr/people/updated"` | yes | Public identifier of the event type. |
| `event.emittedAt` | string (date-time) | yes | When the event was emitted (ISO 8601). |
| `event.data` | hr_people_updatedPayload | yes |  |
| `event.data.id` | string | yes |  |

Example:

```json
{
  "subscription": {
    "uuid": "<uuid>",
    "type": "<type>",
    "name": "<name>"
  },
  "event": {
    "uuid": "<uuid>",
    "identifier": "hr/people/updated",
    "emittedAt": "2026-01-15T09:30:00.000Z",
    "data": {
      "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
    }
  }
}
```
