All Docs
FeaturesNurtureHubUpdated March 20, 2026

Real-Time Intent Scoring — How NurtureHub Knows When a Lead Is Ready

Real-Time Intent Scoring — How NurtureHub Knows When a Lead Is Ready

Introduced in v1.0.26


Overview

NurtureHub's intent scoring engine continuously evaluates contact engagement and produces a rolling 0–100 intent score for every lead in your account. The score updates automatically each time an email event occurs — no configuration required to get started.

When a score crosses a configurable threshold, NurtureHub fires the hot lead alert pipeline, so you're notified the moment a contact moves from passive to active interest.


How Scores Are Calculated

Scores are computed by a background Inngest function that is triggered by every email_event record. The function applies a weighted model to the contact's cumulative engagement history.

Positive signals

SignalPoints added
Email open+5
Link click+15
Multiple clicks on the same email+10 bonus
Reply detected+25
Sequence completion+10

Decay

ConditionEffect
Each day the contact is inactive−2 points

Decay prevents stale engagement from inflating scores indefinitely. A contact who opened emails two weeks ago but has had no recent activity will see their score gradually reduce over time.

Score storage

Calculated scores are written to the intent_scores table and are updated incrementally on every event — there is no batch recalculation window.


Alert Thresholds

When a contact's intent score crosses a threshold, NurtureHub automatically triggers the hot lead alert pipeline.

ScoreLabelDefault behaviour
≥ 70WarmWarm lead alert fired
≥ 85HotHot lead alert fired

Both thresholds are configurable per account. You can raise or lower them to match the typical engagement patterns of your market or contact category.

Tip: For high-volume landlord or investor nurture sequences, consider raising the hot threshold slightly — these contacts tend to click more before committing.


Example Score Progression

The following example shows how a contact's score might build during a standard three-email nurture sequence.

Day 0   Email 1 sent
Day 1   Email 1 opened            → score: 5
Day 2   Link clicked in Email 1   → score: 20
Day 2   Second link clicked       → score: 30  (+10 multi-click bonus)
Day 4   Email 2 opened            → score: 31  (−2 decay day 3, then +5 open day 4)
Day 5   Reply received            → score: 54  (+25 reply)
Day 6   Email 3 opened            → score: 57
Day 6   Link clicked in Email 3   → score: 72  ← crosses WARM threshold (70)
         ↳ warm lead alert fires
Day 6   Sequence completed        → score: 82
Day 7   Link clicked again        → score: 95  ← crosses HOT threshold (85)
         ↳ hot lead alert fires

What Happens When an Alert Fires

When the intent score crosses a threshold:

  1. The hot lead alert pipeline is triggered.
  2. The assigned agent receives a notification with the contact's name, category, current score, and the event that pushed them over the threshold.
  3. The contact's status in the CRM sync is updated to reflect the new intent level.

Alerts are not re-fired on subsequent score increases unless the score crosses the next threshold. A contact that has already triggered a warm alert will only fire the hot alert once, when the score first reaches 85.


Configuring Thresholds

Thresholds can be adjusted in your account settings under Lead Scoring → Alert Thresholds.

  • Warm threshold — default: 70 (range: 1–100)
  • Hot threshold — default: 85 (range: 1–100)

The hot threshold must always be set higher than the warm threshold.


Technical Reference

ComponentDetail
Triggeremail_event record insert/update
RuntimeInngest background function
Output tableintent_scores
Score range0–100
Decay rate−2 per inactive day
Default warm threshold70
Default hot threshold85