Webhook: payload and fields
Reference for web developers. What the JSON message from the meetpiloot webhook looks like, which events exist and which fields to expect.
PlusFor developers1 min read
On this page3
Every message is a POST with a JSON body. Use the headers X-Meetpiloot-Signature and X-Meetpiloot-Timestamp to verify the message. The header X-Meetpiloot-Delivery is the fixed ID of the delivery, so you can recognise a repeated message (see delivery).
Events
| Event | When |
|---|---|
lead.created | A new lead has come in. |
lead.status_changed | A lead's status has changed, for example from quote sent to won. Also includes previous_status. |
lead.test | A test message from your dashboard. Do not create a record for it in your CRM. |
Example
JSON
{
"event": "lead.created",
"sent_at": "2026-09-22T10:00:00.000Z",
"company_id": "0c9f...",
"lead": {
"id": "8f2a...",
"reference_number": "MP-1042",
"created_at": "2026-09-22T09:59:00.000Z",
"status": "new",
"lead_source": "configurator",
"product_type": "veranda",
"customer_name": "John Smith",
"customer_email": "[email protected]",
"customer_phone": "+447700900123",
"customer_address": "1 High Street",
"customer_country": "GB",
"quoted_price": 7450.5,
"currency": "EUR",
"width_m": 4,
"depth_m": 3,
"calculated_area_sqm": 12
},
"attribution": {
"utm_source": "google",
"utm_medium": "cpc",
"utm_campaign": "veranda-autumn",
"utm_term": "made to measure veranda",
"utm_content": "ad-a",
"gclid": "Cj0KCQ...",
"landing_page_url": "https://yoursite.co.uk/quote?utm_source=google",
"referrer": "https://www.google.com/"
}
}Source fields
The keys in attribution sit flat next to each other, so you can map them one to one in Zapier or Make. Possible keys:
| Group | Keys |
|---|---|
| Click IDs | gclid, gbraid, wbraid, msclkid, fbclid, ttclid |
| Campaign | utm_source, utm_medium, utm_campaign, utm_term, utm_content |
| Context | landing_page_url, referrer |
A field that was not measured is left out. It is never sent as empty text. The fields in lead are always present and can be null.
Read next
Stuck?
Email us or open a ticket from your dashboard. We reply within 1 to 2 working days.