跳到主要内容
Docs/Features/Lead Scoring

Lead Scoring

A 0-100 score per lead computed from intent signals, fit signals, and engagement signals. Drives Sequence enrollment, AI Employee task priority, and your own routing rules.

![Lead Scoring](/docs-img/lead-scoring.png)

What It Does

  • Combines fit (ICP match) + intent (engagement) + recency into a single score.
  • Updates the score in real-time as new activities arrive.
  • Emits `lead.score_changed` webhooks when the score crosses a configured threshold.
  • Tiers leads (`HOT`, `WARM`, `NURTURE`, `COLD`) for one-glance triage.
  • When to Use

    Always — the score is the single most useful column in your CRM. Sort by score descending to focus your day.

    Score Components

    ComponentWeightExample signals
    Fit30%Industry match, employee count, country
    Intent50%Replies, opens, web visits, pricing-page hits
    Recency20%Days since last interaction (decays exponentially)

    Each component is itself the output of a sub-model — you can override weights per-tenant in **Settings > AI > Scoring**.

    Tier Mapping

    ScoreTier
    80-100HOT
    60-79WARM
    30-59NURTURE
    0-29COLD

    API Endpoints

  • `GET /api/v1/leads/:id` — score + tier in the response.
  • `POST /api/v1/leads/:id/recompute-score` — force a recompute (rare; the engine recomputes on every activity).
  • `GET /api/v1/leads?minScore=80` — filter by score.
  • Pricing & Limits

    PlanReal-time scoringCustom weights
    FreeDaily batchNo
    StarterHourlyNo
    ProReal-timeYes
    EnterpriseReal-timeYes

    Gotchas

  • Cold-start: brand new leads with no activity score around 35-45 (fit-only). Don't read too much into low early scores.
  • The recency decay is tenant-configurable; default half-life is 14 days.
  • Score changes have a 30-second debounce — don't expect a webhook fire for every micro-event.