Your CRM can tell Sightwick when a lead became a meeting, a qualified lead, a won deal or a lost deal. Copy the webhook URL from Leads, under Advanced, in your dashboard, and send a POST with JSON to it. Zapier (paid plan), Make or a HubSpot workflow (Data Hub Professional) can post to it.
Example request
POST <webhook URL from Leads>
Content-Type: application/json
{
"stage": "won",
"ref": "K7Q2M9",
"email": "jan@example.com",
"value": 1250.00,
"currency": "EUR",
"deal_id": "HS-8841",
"occurred_at": "2026-09-25T10:00:00Z"
}
Fields
stage is meeting, qualified, won or lost, in upper or lower case. Give at least one of ref (the code from the first WhatsApp message), email, phone or visitor_id; they only serve to find the lead. value is required with won, as a number or as text with a dot ("1250.00"), without a comma or currency sign; currency is a three-letter ISO code such as EUR and defaults to your site's currency. Each stage counts once per lead; with deal_id (up to 100 characters) one lead can win more than one deal, each once. deal_id and phone may also be numbers. occurred_at defaults to the moment it arrives. Send one object, or a list of up to 100.
For a WhatsApp lead use the ref code. Email or phone only find a lead who gave them on your site; never send the sender number from a WhatsApp inbox.
Response codes
Answers: 202 with the number received means saved, not yet matched; whether a visit was found shows on Leads. 400 with hook_stage, hook_key_missing, hook_value, hook_json (also for an occurred_at that is not a date or a deal_id that is too long), or hook_too_many above 100 items, saves nothing of that request: one wrong item in a list refuses the whole list. 401 hook_token: the URL is wrong or was replaced with New URL. 413 above 64 KB and 429 above 60 requests a minute, both with hook_too_many; a 429 carries Retry-After. 503 hook_off: the webhook is not available.