---
title: "Employee Updated"
method: POST
path: "employee.updated"
tags: ["Webhook Events", "Public API"]
---

# Employee Updated

`POST employee.updated` (webhook)

Triggered when an employee record is updated and at least one of the monitored fields has changed.

### Behavior & Constraints
- **Monitoring**: At least one `monitorField` is required when subscribing to this event via `POST /api/v1/webhooks`.
- **Permissions**: For API-created webhooks, this event will not fire if the webhook creator lacks access to all monitored fields being changed.

### Detailed Description
- **Creation Sequence**: When an employee is created, both `employee.created` and `employee.updated` events fire sequentially due to the create-then-initialize pattern.
- **Field Consolidation**: When multiple fields change simultaneously, they may be consolidated into a single event. Currently, custom field updates and standard field updates are grouped separately and may fire as two events.
- **Effective Dates**: For history-tracked fields (e.g., `jobTitle`, `payRate`), events fire only when changes take effect, not when future-dated changes are created.
- **Changed Fields**: The `changedFields` array contains the API aliases for fields that changed and are monitored by this webhook. Aliases match those returned by `GET /api/v1/webhooks/monitor_fields`.

### Deprecation Notice
**Note:** This event is the modern replacement for the legacy `employee_with_fields.updated` event. While the legacy event is deprecated, it will remain available for the foreseeable future to support existing integrations. We encourage using this new event for all new development.

**Important:** You cannot subscribe to both this new event and the legacy `employee_with_fields` events on the same webhook. Webhooks created without specifying any events will default to the legacy behavior, effectively subscribing to the `employee_with_fields` events automatically.

## Payload

- EmployeeUpdatedWebhookPayload — Webhook payload sent when an employee is updated.
  - `type` 'employee.updated' — The event type identifier
  - `timestamp` string, date-time — ISO 8601 timestamp (UTC) when the event was fired
  - `data` object — Event data containing employee and change information
    - `companyId` string — The company ID
    - `employeeId` string — The employee ID that was updated
    - `changedFields` string[] — Array of API aliases for fields that changed and are monitored by this webhook

## Acknowledgement `200`

Webhook received successfully (200-299 status code).

## Other responses

- `400` — Client error (400-499 status code) - the webhook endpoint intentionally rejected the request. BambooHR will not retry webhooks that return 4xx status codes.
- `500` — Server error (500+ status code). BambooHR will automatically retry this webhook up to 5 times using exponential backoff (5min, 10min, 20min, 40min, 80min intervals).

---

[API](https://skmtc.net/bamboohr/apis/bamboohr-api.md) · [All operations](https://skmtc.net/bamboohr/apis/bamboohr-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/bamboohr/bamboohr-api/revisions/19ebf391a399/schema)
