Skip to content

Signals & Scoring

Understand lead scoring — view score breakdowns, signal history, and campaign weight configuration.

Full name: campaignstack_get_lead_score_breakdown

leads:read Read-only Idempotent

Get a detailed breakdown of a lead’s score in a campaign. Shows ICP score, individual signal contributions with all multipliers (time decay, recency bonus, intent, topic alignment, connection degree), and the total computed score. Call this when the user asks why a lead scored high or low. It does not list signal detail, use campaignstack_list_lead_signals for that, or change scoring, use campaignstack_update_campaign_weight for that.

NameTypeRequiredDefaultDescription
campaignIdstringYes(min length: 1)
leadSourceglobal | privateNo"global"
leadIdstringYes(min length: 1)

Full name: campaignstack_list_lead_signals

leads:read Read-only Idempotent

List recent signals detected for a lead: job changes, engagement activity, and similar events. Signals are profile changes or engagement events that affect scoring. Sorted by detection time, newest first. Call this when the user asks what changed about a lead or why it moved in score recently. It lists the events only; for the scoring math itself use campaignstack_get_lead_score_breakdown.

NameTypeRequiredDefaultDescription
leadSourceglobal | privateNo"global"
leadIdstringYes(min length: 1)
limitintegerNo20(min: 1, max: 50)
cursornumberNo

Full name: campaignstack_get_campaign_weights

campaigns:read Read-only Idempotent

Get signal weight configuration for a campaign. Shows all signal types with their score impact, whether they’re enabled, and whether the weight is custom or default. Call this before tuning scoring, so current weights can be read back to the user. It only reads the configuration; campaignstack_update_campaign_weight changes it.

NameTypeRequiredDefaultDescription
campaignIdstringYes(min length: 1)

Full name: campaignstack_update_campaign_weight

campaigns:write

Update the weight (score impact) of a signal type for a campaign. Call this when the user names a signal type and a new score impact; read current weights first with campaignstack_get_campaign_weights. This changes future scoring only, not existing lead scores.

NameTypeRequiredDefaultDescription
campaignIdstringYes(min length: 1)
signalTypestringYes(min length: 1)
scoreImpactnumberYes(min: -100, max: 100)