Intent Scorer Agent: Real-Time Lead Scoring Engine
Intent Scorer Agent: Real-Time Lead Scoring Engine
Available from: v1.0.61
The Intent Scorer is an AI agent built into NurtureHub that automatically scores every contact based on how they engage with your emails. It runs in the background, processes each engagement event as it happens, and maintains a single live score per contact — no configuration required to get started.
How It Works
1. Engagement Events Are Captured
Every time a contact interacts with a NurtureHub email, an engagement event is recorded. The four scored event types are:
- Open — the contact opened an email
- Click — the contact clicked a link in an email
- Booking link click — the contact clicked a booking or calendar link
- Reply — the contact replied to an email
2. Base Score Is Applied
Each event type carries a base score delta:
| Event | Base Score |
|---|---|
| Open | +5 |
| Click | +15 |
| Booking link click | +30 |
| Reply | +25 |
These defaults reflect the relative signal strength of each action — a reply or booking link click is a much stronger intent signal than a passive open.
3. Category Multiplier Is Applied
The base score delta is multiplied by the contact's category weight before being added to their cumulative score:
| Contact Category | Multiplier |
|---|---|
| Active Seller | 1.5× |
| Seller | 1.3× |
| Buy-to-Let Investor | 1.2× |
| All other categories | 1.0× |
Example: An Active Seller who clicks a booking link receives +30 × 1.5 = +45 points in a single event.
4. Cumulative Score Is Maintained
Each contact has a single live cumulative score. Every qualifying event increments it. The score is used by downstream features including hot lead alerts and CRM sync to surface high-intent contacts at the right moment.
5. Score Decay for Inactive Contacts
Contacts who stop engaging don't hold their score indefinitely. The decay rules are:
- Idle threshold: 30 days without a scored event
- Decay rate: 10% reduction per week after the idle threshold is reached
- Both values are configurable per tenant (see Tenant Configuration)
Decay ensures your hottest leads are genuinely the most recently active ones, not contacts who engaged heavily months ago.
score.updated Event
Every change to a contact's score — whether from a new engagement event or a decay cycle — emits a score.updated event. This is the integration point for all downstream behaviour:
- Hot lead alerts — trigger notifications when a score crosses a threshold
- CRM sync — write the updated score back to the connected CRM (agentOS, Reapit, Alto, Street, Loop)
- Dashboards — reflect live scores in the NurtureHub UI
Event Payload
{
"event": "score.updated",
"contact_id": "<uuid>",
"tenant_id": "<uuid>",
"previous_score": 45,
"new_score": 90,
"delta": 45,
"trigger": "engagement",
"engagement_type": "booking_link_click",
"category": "active_seller",
"category_multiplier": 1.5,
"timestamp": "2025-01-01T12:00:00Z"
}
trigger values:
engagement— score changed due to a new engagement eventdecay— score changed due to the weekly decay cycle
Tenant Configuration
Scoring rules are per-tenant. Defaults are applied automatically when an agency is onboarded. The following parameters can be overridden:
| Parameter | Default | Description |
|---|---|---|
score_open | 5 | Base score for an email open |
score_click | 15 | Base score for a link click |
score_booking_click | 30 | Base score for a booking link click |
score_reply | 25 | Base score for a reply |
multiplier_active_seller | 1.5 | Category multiplier for Active Seller |
multiplier_seller | 1.3 | Category multiplier for Seller |
multiplier_btl_investor | 1.2 | Category multiplier for Buy-to-Let Investor |
decay_idle_days | 30 | Days of inactivity before decay begins |
decay_rate_weekly | 0.10 | Fractional score reduction applied per week during decay |
Scoring Example
A contact categorised as Seller receives the following interactions over one week:
| Event | Base Score | Multiplier (1.3×) | Points Awarded | Cumulative Score |
|---|---|---|---|---|
| Email open | +5 | 1.3× | +6.5 | 6.5 |
| Link click | +15 | 1.3× | +19.5 | 26 |
| Booking link click | +30 | 1.3× | +39 | 65 |
If the contact then goes 37 days without any engagement, decay begins:
- After week 1 of decay:
65 × 0.90 = 58.5 - After week 2 of decay:
58.5 × 0.90 = 52.7
Notes
- Scores are non-negative; decay will not reduce a score below zero.
- All twelve NurtureHub contact categories are supported; categories without an explicit multiplier default to
1.0×. - The scoring agent is event-driven and processes engagement events in real time — there is no polling delay.