organization_unit.created Event

Emitted when a new organization unit is created for a client. An
organization unit is any node in the client's org hierarchy — a division,
department, sub-department, or a sub-category created under a unit type.

Fires once per unit created. This is the single choke point for individual
unit creation, so it covers every path that creates a unit — including the
sub-categories created alongside a new unit type (see
organization_unit_type.created).

PropertyValue
Typeorganization_unit.created
Data version1
Entityentity.type = "organizationUnit", entity.id = data.organizationUnitId
Fan-outOne delivery per matching subscription on the client

Sample delivery

POST /your/webhook/path HTTP/1.1
Host: hooks.your-domain.com
Content-Type: application/json
User-Agent: ListoGlobal-Gateway/1.0
webhook-id: lglsoevt_uZR7vSXyFN2NeBjH6
webhook-timestamp: 1746534600
webhook-signature: v1,Bq8oV5rC8dPsYLm0bHIyOEfaKGvrFOhJM0aTP6bWeBc=

{
  "id": "lglsoevt_uZR7vSXyFN2NeBjH6",
  "type": "organization_unit.created",
  "specVersion": 1,
  "dataVersion": 1,
  "occurredAt": "2026-05-06T14:03:42.512Z",
  "entity": { "type": "organizationUnit", "id": "lglsooun_uZIIHfKqYBwyaRGGs" },
  "data": {
    "organizationUnitId": "lglsooun_uZIIHfKqYBwyaRGGs",
    "clientId": "lglsocli_uZIIHfKqYBwyaRGGs",
    "name": "Engineering",
    "unitCode": "ENG01",
    "description": "Engineering department",
    "unitType": {
      "id": "lglsoout_3pQ7rMkA1n",
      "name": "Department"
    },
    "parentUnit": {
      "id": "lglsooun_8xK2wErTy5",
      "name": "Technology"
    },
    "createdAt": "2026-05-06T14:03:42.512Z",
    "links": {
      "self": "/v1/instance-integrations/inst_abc123xyz/clients/lglsocli_uZIIHfKqYBwyaRGGs/organization-structure"
    }
  }
}

data schema

FieldTypeDescription
organizationUnitIdstringPublic organization unit ID (lglsooun_…). Same value as entity.id.
clientIdstringPublic client ID this unit belongs to (lglsocli_…).
namestringUnit display name. Snapshot at emit time.
unitCodestring | nullClient-supplied external code for the unit, or null.
descriptionstring | nullUnit description, or null.
unitTypeobjectThe unit type this unit belongs to, as { id, name }. id is lglsoout_….
parentUnitobject | nullParent unit in the hierarchy as { id, name }, or null for a top-level unit. id is lglsooun_….
createdAtISO-8601 UTCWhen the unit was created in Listo.
links.selfstringPath to the client's organization-structure resource (no per-unit endpoint). See note below.

🛈 No per-unit public endpoint. links.self points at the client's
organization-structure resource, which lists the full unit hierarchy.
Fetch it and find the matching unit by id. The link will swap to a
dedicated endpoint later without bumping dataVersion.


Snapshot semantics

name, unitCode, description, unitType, and parentUnit are a
snapshot at emit time. If the unit is edited (renamed, re-parented)
between emit and your handler running, the snapshot may be stale. Refetch
via links.self for current state:

GET https://gateway.listoglobal.com{links.self}
x-api-key: <your-key>

Ordering and duplication

  • Duplicates are normal. Dedupe on webhook-id.
  • Order is not guaranteed. When a unit is created together with its
    type, you receive both this event and an
    organization_unit_type.created,
    in any order. A child unit's event may arrive before its parent unit's or
    before organization_unit_type.created — build your hierarchy tolerant
    of out-of-order arrival (store parentUnit.id / unitType.id and resolve
    lazily).

Common patterns

"Mirror the org-unit hierarchy"

1. Verify signature, dedupe on webhook-id.
2. UPSERT INTO org_units (id, client_id, name, unit_type_id, parent_unit_id, ...)
   keyed by organizationUnitId.
3. Resolve parentUnit.id / unitType.id lazily — they may arrive after the child.
4. Respond 200.

"Detect a new categorization node"

Hook this when you maintain your own copy of the client's org structure and
need near-real-time updates as divisions / departments are added, instead
of polling the organization-structure endpoint.


Did this page help you?