Intent Scoring & Hot Lead Alerts — How It Works
Intent Scoring & Hot Lead Alerts
NurtureHub automatically scores every contact's intent in real time and fires a hot-lead alert the moment a contact crosses the threshold — no manual pipeline management required.
Overview
Three interconnected data structures work together to produce intent scores and alerts:
- Engagement Events — raw signals captured every time a contact interacts with a nurture email.
- Intent Scores — a computed 0–100 score derived from accumulated engagement events.
- Hot Lead Alerts — notifications fired when a contact's score reaches the hot-lead threshold, surfaced to the assigned agent.
Engagement Events
Every trackable interaction is recorded as an engagement event. Each event carries a weight that reflects how strongly that action signals intent.
event_type examples:
email.open
email.click
email.reply
Higher-weight events (e.g. a direct reply) contribute more to the intent score than lower-weight ones (e.g. an open).
Intent Score (0–100)
The intent score is a normalised value between 0 (no engagement) and 100 (maximum inferred intent). It is recalculated whenever a new engagement event is recorded for a contact.
Score Factors
The factors field stores a structured breakdown of every signal that contributed to the score. This means you can see exactly why a contact scored highly — useful for agent context before a follow-up call.
Example factors payload:
{
"email.open": { "count": 4, "contribution": 12 },
"email.click": { "count": 2, "contribution": 30 },
"email.reply": { "count": 1, "contribution": 45 }
}
Hot Lead Alerts
When a contact's intent score crosses the configured hot-lead threshold, NurtureHub fires a hot lead alert and notifies the responsible agent immediately.
Alert Lifecycle
| State | Description |
|---|---|
| Triggered | Score threshold crossed; alert created with triggeredAt timestamp. |
| Unacknowledged | Alert is visible in the agent's hot-leads queue. |
| Acknowledged | Agent has reviewed and dismissed the alert; acknowledgedAt and acknowledgedBy are recorded. |
What Agents See
- Contact name and category (e.g. Seller, Landlord).
- The intent score at the time the alert fired.
- A link directly into the contact's engagement timeline.
- Acknowledge button to clear the alert from the queue once actioned.
Data Isolation
All three tables are partitioned by orgId. Every query is scoped to the owning organisation, ensuring complete data isolation between agencies on the platform. Composite indexes on (orgId, contactId) keep lookups fast regardless of overall data volume.