The Leads report tracks lead generation performance — volume, value, and breakdown by category, type, and source. It populates from any event you send with lead-specific fields, typically generate_lead.
How it works
Hardal reads lead data from events that include lead_id. The report groups leads by category, type, label, and geographic fields.
What your events need
hardal.track("generate_lead", {
lead_id: "LEAD-12345", // required — unique identifier, prevents duplicates
name: "Alex Smith",
category: "Enterprise", // e.g. Enterprise, SMB, Individual
type: "demo_request", // e.g. demo_request, contact_form, trial
label: "Summer Campaign", // custom qualifier or source label
value: 500, // estimated lead value
currency: "USD",
country: "US",
city: "New York",
district: "NY"
});
Parameters
| Field | Required | Description |
|---|
lead_id | Yes | Unique lead identifier — prevents duplicate counting |
name | No | Lead or contact name |
category | No | Lead segment (e.g. Enterprise, SMB) |
type | No | Lead type (e.g. demo_request, contact_form) |
label | No | Custom qualifier or campaign label |
value | No | Estimated monetary value of the lead |
currency | No | Currency code (required if value is set) |
country | No | Country code |
city | No | City name |
district | No | Region, state, or district |
Always pass lead_id. Without it, the same form submission can be counted multiple times if the user reloads the page or the event fires more than once.
Common setup issues
| Symptom | Likely cause | Fix |
|---|
| Leads report is empty | Wrong event name | Use generate_lead — check spelling exactly |
| Duplicate lead counts | No lead_id | Add a unique ID from your CRM or form submission |
| Value shows $0 | value missing | Add value and currency to the event |
| No category breakdown | category not passed | Add category to segment leads by type |
View Sessions report
Track the sessions that lead to your lead events