organization_location.created Event
Emitted when a new organization location (a physical site / office) is
created for a client.
| Property | Value |
|---|---|
| Type | organization_location.created |
| Data version | 1 |
| Entity | entity.type = "organizationLocation", entity.id = data.organizationLocationId |
| Fan-out | One delivery per matching subscription on the client |
The payload shape is shared with
organization_location.deleted
— the two events differ in semantics, not in shape.
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_uZS8wTYzGO3NfCkI7
webhook-timestamp: 1746538200
webhook-signature: v1,Cr9pW6sD9eQtZMn1cIJzPFgbLHwsGPiKN1bUQ7cXfCd=
{
"id": "lglsoevt_uZS8wTYzGO3NfCkI7",
"type": "organization_location.created",
"specVersion": 1,
"dataVersion": 1,
"occurredAt": "2026-05-06T15:20:11.184Z",
"entity": { "type": "organizationLocation", "id": "lglsoolc_uZIIHfKqYBwyaRGGs" },
"data": {
"organizationLocationId": "lglsoolc_uZIIHfKqYBwyaRGGs",
"clientId": "lglsocli_uZIIHfKqYBwyaRGGs",
"name": "New York Office",
"country": "United States",
"city": "New York",
"address": "123 Main St",
"createdAt": "2026-05-06T15:20:11.184Z",
"links": {
"self": "/v1/instance-integrations/inst_abc123xyz/clients/lglsocli_uZIIHfKqYBwyaRGGs/organization-structure"
}
}
}data schema
data schema| Field | Type | Description |
|---|---|---|
organizationLocationId | string | Public organization location ID (lglsoolc_…). Same value as entity.id. |
clientId | string | Public client ID this location belongs to (lglsocli_…). |
name | string | Location display name. Snapshot at emit time. |
country | string | Country. |
city | string | City. |
address | string | null | Street address, or null. |
createdAt | ISO-8601 UTC | When the location was created in Listo. |
links.self | string | Path to the client's organization-structure resource (no per-location endpoint). See note below. |
🛈 No per-location public endpoint.
links.selfpoints at the
client'sorganization-structureresource, which lists every location.
Fetch it and find the matching location byid. The link will swap to a
dedicated endpoint later without bumpingdataVersion.
Snapshot semantics
name, country, city, and address are a snapshot at emit time.
If the location is edited 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. This event may arrive before the parent
client.created.
Upsert onorganizationLocationIdrather than insisting the client
already exists.
Common patterns
"Mirror client locations"
1. Verify signature, dedupe on webhook-id.
2. UPSERT INTO org_locations (id, client_id, name, country, city, address, ...)
keyed by organizationLocationId.
3. Respond 200."React to new sites"
Pair this with
organization_location.deleted
to keep a live list of a client's active sites. Note that worker
location assignments flow through
worker.updated
(organizationLocation), not this event.
Updated about 1 month ago
