organization_unit_type.created Event
Emitted when a new organization unit type (a category, e.g.
"Division", "Department") is created for a client. The payload embeds the
units (sub-categories) that were created alongside the type.
| Property | Value |
|---|---|
| Type | organization_unit_type.created |
| Data version | 1 |
| Entity | entity.type = "organizationUnitType", entity.id = data.organizationUnitTypeId |
| Fan-out | One delivery per matching subscription on the client |
🛈 Paired with
organization_unit.created. When a type is created
together with sub-categories, Listo also fires one
organization_unit.created
per embedded unit. Those units appear both in this event's
organizationUnits[]and as their own standalone events. Dedupe on
webhook-idand treat the per-unit events as authoritative for unit
detail.
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_uZQ6uRWxEM1NdAiG5
webhook-timestamp: 1746531000
webhook-signature: v1,Ap7nU4qB7cOrXKl9aGHxNDeZJFuqENgILzSZO5aVdAb=
{
"id": "lglsoevt_uZQ6uRWxEM1NdAiG5",
"type": "organization_unit_type.created",
"specVersion": 1,
"dataVersion": 1,
"occurredAt": "2026-05-06T14:03:42.184Z",
"entity": { "type": "organizationUnitType", "id": "lglsoout_uZIIHfKqYBwyaRGGs" },
"data": {
"organizationUnitTypeId": "lglsoout_uZIIHfKqYBwyaRGGs",
"clientId": "lglsocli_uZIIHfKqYBwyaRGGs",
"name": "Department",
"unitTypeCode": "LSD1004",
"createdAt": "2026-05-06T14:03:42.184Z",
"organizationUnits": [
{ "id": "lglsooun_3pQ7rMkA1n", "name": "Engineering" },
{ "id": "lglsooun_8xK2wErTy5", "name": "Sales" }
],
"links": {
"self": "/v1/instance-integrations/inst_abc123xyz/clients/lglsocli_uZIIHfKqYBwyaRGGs/organization-structure"
}
}
}data schema
data schema| Field | Type | Description |
|---|---|---|
organizationUnitTypeId | string | Public organization unit type ID (lglsoout_…). Same value as entity.id. |
clientId | string | Public client ID this unit type belongs to (lglsocli_…). |
name | string | Display name of the unit type (e.g. Department). Snapshot at emit time. |
unitTypeCode | string | null | Client-supplied external code for the unit type, or null. |
createdAt | ISO-8601 UTC | When the unit type was created in Listo. |
organizationUnits | array | The units (sub-categories) created with this type, each { id, name }. Empty array if none. See below. |
links.self | string | Path to the client's organization-structure resource (no per-unit-type endpoint). See note below. |
organizationUnits[] element
organizationUnits[] element| Field | Type | Description |
|---|---|---|
id | string | Public organization unit ID (lglsooun_…). |
name | string | Unit display name at emit time. |
🛈 No per-unit-type public endpoint.
links.selfpoints at the
client'sorganization-structureresource, which lists every unit type
and the full org-unit hierarchy. Fetch that and find the matching type by
id. The link will swap to a dedicated endpoint later without bumping
dataVersion.
Snapshot semantics
name, unitTypeCode, and organizationUnits[] are a snapshot at emit
time. If the type or its units are edited between emit and your handler
running (typical for retries), 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. This event and the per-unit
organization_unit.createdevents for the same creation may arrive in
any order — and either may arrive before the parent
client.created.
Upsert onorganizationUnitTypeIdrather than insisting the client
already exists.
Common patterns
"Mirror the client's category structure"
1. Verify signature, dedupe on webhook-id.
2. UPSERT the unit type by organizationUnitTypeId.
3. For each entry in organizationUnits[], UPSERT the unit
(you will also receive a standalone organization_unit.created for each).
4. Respond 200."Trigger downstream sync when a category appears"
Use this event as the signal that a client has added a new categorization
dimension. Pair it with
organization_unit.created
to capture units added to the type later, after initial creation.
Updated about 1 month ago
