v1.3.1 | Organization & User Webhook Events, Org-Structure Fields, and User.manager Fix

Additive release with five new webhook events (organization units, unit types, locations, and user.updated), enriched user/worker payloads, two newly-documented REST fields, and a non-breaking User.manager correction. No breaking changes and no new endpoints.

Release date: 2026-06-30

Release type: Additive. No breaking changes versus 1.3.0, and no new REST
endpoints. One REST schema was corrected to match the live API (see
Fixed) — the wire format is unchanged, so no running integration is
affected. All new webhook payload fields and event types are additive, with no
specVersion or dataVersion bumps.

Added

Webhook event types

Five new outbound webhook events (Standard Webhooks v1), wired into
components.schemas.DomainEvent (oneOf + discriminator):

  • user.updated (entity user, UserUpdatedEvent) — fires when a
    user's profile data or status (ACTIVE/INACTIVE/INVITED/DELETED)
    changes, or on manager/role (re)assignment.
  • organization_unit_type.created (entity organizationUnitType,
    OrganizationUnitTypeCreatedEvent) — a new unit type (category); embeds
    the units created with it.
  • organization_unit.created (entity organizationUnit,
    OrganizationUnitCreatedEvent) — a new unit (division, department,
    sub-department, or sub-category).
  • organization_location.created (entity organizationLocation,
    OrganizationLocationCreatedEvent) — a new organization location.
  • organization_location.deleted (entity organizationLocation,
    OrganizationLocationDeletedEvent) — a location was removed. The payload
    is a snapshot captured at deletion time; its links.self points at the
    organization-structure resource (which no longer lists the deleted
    location), so rely on the embedded data.

New supporting schemas: UserUpdatedData, UserManagerReference,
UserRoleReference, OrganizationUnitTypeCreatedData,
OrganizationUnitCreatedData, and OrganizationLocationData (shared by the
location created/deleted events), plus each event wrapper.

REST response fields (documentation only — already returned by the API)

  • WorkerV2.organizationUnits[] — the worker's many-to-many organization-unit
    assignments, each { id, name }. Returned by GET /v2/.../workers and
    GET /v2/.../workers/{workerId}; was missing from the 1.3.0 spec.
  • OrganizationStructure.locations[] — the client's organization locations,
    each { id, name }. Returned by the organization-structure endpoint; was
    missing from the 1.3.0 spec.

Changed

  • Webhook — worker.onboarded / worker.updated (WorkerSnapshotData):
    payloads now include organizationUnits[] (many-to-many assignments, each
    { id, name }) alongside the existing single organizationUnit, which is
    now described as the primary assignment.
  • Webhook — user.created / user.updated: payloads now carry status,
    manager, and role in addition to the core user fields.
  • Webhook — worker.updated triggers: deleting an organization location
    now detaches its assigned workers (their location is cleared) and emits a
    worker.updated for each.
  • DomainEventEnvelope.entity.type enum extended with
    organizationUnitType, organizationUnit, and organizationLocation.

Fixed

  • User.manager was documented as an array — corrected to a single nullable
    object ({ id, firstName, lastName, fullName, email }). The users
    endpoints (GET /v1/.../users, GET /v1/.../users/USERID) have always
    returned a single object; the 1.3.0 spec modeled it as an array in error.
    The wire format is unchanged. clientId, createdAt, status, and
    manager are now marked required on the User schema.

Migration notes

No action is required for live integrations — request and response payloads on
the wire are identical to 1.3.0.

If you generated a typed client from the 1.3.0 spec and relied on the
(incorrect) array shape of User.manager, regenerate it against 1.3.1; the
field is now a single object.