> ## Documentation Index
> Fetch the complete documentation index at: https://learn.biq.li/llms.txt
> Use this file to discover all available pages before exploring further.

# Event types

> Understand the webhook envelope and the six supported event contracts.

Subscribe each endpoint only to the events it needs.

| Event                                           | Data object                                 |
| :---------------------------------------------- | :------------------------------------------ |
| [`link.created`](/webhooks/events/link-created) | Current link                                |
| [`link.updated`](/webhooks/events/link-updated) | Current link after the update               |
| [`link.deleted`](/webhooks/events/link-deleted) | Final link state at deletion time           |
| [`link.clicked`](/webhooks/events/link-clicked) | Persisted click and link                    |
| [`lead.created`](/webhooks/events/lead-created) | Lead, customer, attribution click, and link |
| [`sale.created`](/webhooks/events/sale-created) | Sale, customer, attribution click, and link |

## Link object

Link events use this shape:

```json theme={null}
{
  "id": "biq_lnk_01M2EXAMPLE00000000000000",
  "externalId": "campaign_1842",
  "name": "Autumn campaign",
  "url": "https://example.com/autumn",
  "shortUrl": "https://biq.li/autumn",
  "key": "autumn",
  "description": "Autumn launch",
  "active": true,
  "expiresAt": null,
  "workspaceId": "biq_ws_01M2EXAMPLE000000000000000",
  "createdAt": "2026-09-14T12:00:00+00:00",
  "updatedAt": "2026-09-14T13:00:00+00:00"
}
```

Nullable profile or configuration fields may be `null`.

## Click object

```json theme={null}
{
  "id": "click_example_1842",
  "timestamp": "2026-09-14T13:00:00+00:00",
  "country": "US",
  "city": "San Francisco",
  "region": "California",
  "browser": "Chrome",
  "browserVersion": "128",
  "platform": "Mac OS",
  "platformVersion": "14",
  "device": "desktop",
  "referrer": "https://example.com",
  "source": null
}
```

`link.clicked` also includes `ip`. Conversion events omit `ip` from their click context.

## Customer object

```json theme={null}
{
  "id": "biq_cus_01M2EXAMPLE00000000000000",
  "externalId": "customer_1842",
  "email": "ada@example.com",
  "name": "Ada Lovelace",
  "avatar": null
}
```

## Deleted attribution links

Lead and sale payloads can reference a link that was deleted after attribution. The preserved link object then includes `"deleted": true`, `active` is false, and the historical URL fields remain available.

## Compatibility

Write receivers that ignore unknown fields. Biqli may add non-breaking fields in the future. Use `event` to choose a known parser, validate required fields your application relies on, and retain the original event ID for deduplication.
