organization_location.created Event

Emitted when a new organization location (a physical site / office) is
created for a client.

PropertyValue
Typeorganization_location.created
Data version1
Entityentity.type = "organizationLocation", entity.id = data.organizationLocationId
Fan-outOne 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

FieldTypeDescription
organizationLocationIdstringPublic organization location ID (lglsoolc_…). Same value as entity.id.
clientIdstringPublic client ID this location belongs to (lglsocli_…).
namestringLocation display name. Snapshot at emit time.
countrystringCountry.
citystringCity.
addressstring | nullStreet address, or null.
createdAtISO-8601 UTCWhen the location was created in Listo.
links.selfstringPath to the client's organization-structure resource (no per-location endpoint). See note below.

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


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 on organizationLocationId rather 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.


Did this page help you?