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

# lead.captured

> Outbound webhook when a new lead/contact is created.

# `lead.captured`

## What this event means

`lead.captured` is emitted whenever a new contact is created in Klipy and the record is eligible for outbound webhook delivery.

## Webhook `type`

`lead.captured`

## Internal source mapping

| Internal event    | Trigger path                                |
| ----------------- | ------------------------------------------- |
| `contact.created` | Contact was created and persisted in Klipy. |

## Payload example

All outbound webhook payloads use the standard envelope:

```json theme={null}
{
  "type": "lead.captured",
  "object": "event",
  "data": {
    "id": "h7w8y2f1",
    "first_name": "Jordan",
    "last_name": "Patel",
    "email": "jordan.patel@acmeanalytics.com",
    "title": "Head of Growth",
    "company_name": "Acme Analytics",
    "company_domain": "acmeanalytics.com",
    "industry": "SaaS",
    "employee_count": 350,
    "estimated_revenue": 1200000,
    "city": "Austin",
    "state": "TX",
    "country": "US",
    "linkedin": "https://linkedin.com/jordan-patel"
  }
}
```

## Delivery and idempotency handling

* Keep processing idempotent. Klipy can retry deliveries when endpoint acknowledgements are not observed.
* For dedupe keys, prefer `data.id` for this event. This maps to the created contact identifier.
* Return `2xx` only after persisting side effects (for example, lead upserts).
* Ignore unknown keys to preserve forward compatibility.

## Related links

* [Webhook introduction](/docs/webhooks/introduction)
* [Webhook event types](/docs/webhooks/event-types)
