Browse all guides
Webhooks and Zapier send each new lead, with its first and last touch, to another app as soon as it arrives. No hidden fields needed.
Zapier (no code)
- 1In Zapier, create a Zap with the trigger Webhooks by Zapier → Catch Hook and copy the URL it gives you.
- 2In HeyLead open Integrations → Zapier → Add Zapier hook URL, paste it and save.
- 3Send a test lead from your website, then click Test trigger in Zapier.
- 4Add an action (HubSpot Create Contact, Google Sheets Create Row…) and map the fields, e.g.
lastTouch.source→ UTM Source. - 5Turn the Zap on.
Webhooks (for developers)
Add your endpoint in Integrations → Webhooks. We send a POST request with JSON for each event you choose (lead.created, lead.updated, site.alert).
{
"event": "lead.created",
"createdAt": "2026-10-24T09:12:03.000Z",
"data": {
"id": "lead_8f2k…",
"name": "Sarah Mitchell",
"email": "sarah@example.com",
"phone": "+1 555 0100",
"form": "Request a quote",
"submittedPage": "/contact",
"firstTouch": { "channel": "organic_search", "source": "google", "medium": null, "campaign": null, "landingPage": "/boiler-repair" },
"lastTouch": { "channel": "paid_search", "source": "google", "medium": "cpc", "campaign": "spring-sale", "term": "boiler repair", "content": null, "clickId": "Cj0K…", "landingPage": "/offer" },
"fields": { "name": "Sarah Mitchell", "email": "sarah@example.com", "message": "…" },
"url": "https://heylead.io/dashboard/leads/lead_8f2k…"
}
}Each request has an x-heylead-signature: sha256=… header: the HMAC-SHA256 of the raw body using your webhook secret. Compare it before trusting the data.
import crypto from "node:crypto";
const expected = "sha256=" + crypto.createHmac("sha256", process.env.LEADORIGIN_SECRET).update(rawBody).digest("hex");
const valid = crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(req.headers["x-heylead-signature"]));CSV export
Leads → Export CSV downloads every lead with all attribution columns. Choose a site first to export just that site.
Did this guide answer your question?
Still need help?
A real person replies within one business day. Include your website address and what you've tried.