The full JSON body sent to webhook and Zapier destinations on every lead.created
event. Same payload shape across every integration — only the destination-side mapping differs.
Headers
| Header | Example |
Content-Type | application/json |
X-Innkept-Event | lead.created |
X-Innkept-Signature | sha256=2b9c…f43a |
User-Agent | Innkept/1.0 |
Body
{
"event": "lead.created",
"version": "v1",
"lead": {
"uuid": "01j8h6kqh4yg3xr8rwm6t6xfqe",
"name": "Ada Thorne",
"email": "ada@example.com",
"phone": "+447700900123",
"event_type": "wedding",
"event_date": "2026-09-12",
"guest_count": 80,
"gdpr_consent": true,
"source_url": "https://fettlewoodbarn.co.uk/book",
"utm": {
"source": "google",
"medium": "cpc",
"campaign": "summer_weddings_2026"
}
},
"quote": {
"uuid": "01j8h6kqh5gqp8m8t9wnf8c2y0",
"proposal_url": "https://innkept.co.uk/p/9f3aXjh2z6kQpTu1mVeR…",
"subtotal_pence": 920000,
"rules_pence": 138000,
"vat_pence": 211600,
"total_pence": 1269600,
"currency": "GBP",
"items": [
{
"name": "Exclusive venue hire",
"quantity": 1,
"unit_pence": 350000,
"total_pence": 350000
},
{
"name": "Wedding feast 2026 — main course",
"quantity": 80,
"unit_pence": 4500,
"total_pence": 360000
}
]
},
"viewing": {
"starts_at": "2026-06-04T14:00:00+01:00",
"ends_at": "2026-06-04T15:00:00+01:00"
},
"location": {
"id": 12,
"name": "Fettlewood Barn"
},
"company": {
"id": 7,
"name": "Fettlewood Barn"
}
}
Field reference
Top level
| Field | Type | Notes |
event | string | Currently always lead.created. More events coming. |
version | string | Schema version. We'll bump this if we ever break the shape. |
lead
| Field | Type | Notes |
uuid | string (ULID) | 26 chars. Use as your idempotency key. |
name | string | Full name as entered. |
email | string | Validated email. |
phone | string · null | Optional. International format if provided. |
event_type | string | One of: wedding, corporate, private_dining, birthday, other. |
event_date | string (ISO date) | YYYY-MM-DD. |
guest_count | integer | 1–5,000. |
gdpr_consent | boolean | Always true for widget submissions. |
source_url | string · null | The page the configurator was on. |
utm | object · null | Captured silently from URL params. |
quote
| Field | Type | Notes |
uuid | string (ULID) | — |
proposal_url | string | Magic link your guest can open. |
subtotal_pence | integer | Pre-VAT, pre-rules. |
rules_pence | integer | Positive surcharge or negative discount. |
vat_pence | integer | Total VAT across all items. |
total_pence | integer | subtotal + rules + vat. |
currency | string | Always GBP today. |
items | array | One entry per quote item. |
viewing
Optional — present only if the guest booked a viewing in step 7.
| Field | Type | Notes |
starts_at | string (ISO 8601) | Includes timezone offset. |
ends_at | string (ISO 8601) | Defaults to one hour after start. |
Versioning
Today: v1. We won't break v1. If we change the schema, we'll
introduce v2 and let you opt in per integration. Existing webhooks keep
receiving v1 until you switch them.