Score and route leads by ICP fit — Lusha in Salesforce Agentforce

Example outputs in this workflow are illustrative — they reflect the structure, fields, and format of real Lusha API output, but were not pulled from a live session. Build this workflow with your own Lusha API key and Salesforce org to see live results.

Enrichment solves half the problem. A rep who opens a Lead record and sees a verified title, a direct dial, and a company profile knows who they’re dealing with. But they still don’t know whether this lead is worth calling before the five other leads already in their queue. ICP scoring solves the second half. This workflow takes every lead enriched by Lusha, scores it against your ICP criteria — industry, company size, funding stage, seniority — assigns a score to the Salesforce record, and routes it automatically to the right rep or queue. High-fit leads go to senior AEs. Medium-fit leads go to SDRs. Low-fit leads go to nurture. No manual triage. No rep making judgment calls on incomplete data.

Requires: Lusha API key · Lusha enrichment workflow live (Workflow 1) · Salesforce Flow Builder · Salesforce admin access

How it works

This workflow runs immediately after the enrichment workflow completes. It reads the Lusha-enriched fields on the Lead record, scores the lead against your ICP criteria, writes the score back to Salesforce, and routes the lead to the correct rep or queue automatically.

1
Trigger — Lead enriched by Lusha
The Flow fires when the Lusha_Enriched_Date__c field is populated on a Lead record — meaning the enrichment workflow has completed and verified data is available to score against.
2
Action — Score the lead against ICP criteria
The Flow evaluates the enriched fields against your ICP scoring rules — must-have criteria first, then weighted scoring across industry, company size, funding stage, seniority, and geography. Each criterion that matches adds points. Must-have failures immediately assign a Low score regardless of other criteria.
3
Action — Write ICP score to Lead record
The Flow writes the ICP score — High / Medium / Low — and the individual criterion scores to custom fields on the Lead record. Reps can see exactly why a lead scored the way it did, not just what the score is.
4
Action — Route lead to correct rep or queue
Based on the ICP score, the Flow assigns the Lead to the correct owner — High-fit leads to senior AEs, Medium-fit to SDRs, Low-fit to a nurture queue. Routing rules are fully configurable to match your team structure.
5
Output — Scored, routed Lead ready for the rep
The rep opens a Lead that is enriched, scored, and already assigned to their queue. They know immediately whether this is a priority call, a qualifying conversation, or a nurture touch — without opening a single other tool.

What you’ll get back

A Lead record that looks like this when the rep opens it:

Salesforce fieldValue
TitleVP of Sales ✓ Lusha verified
SeniorityVP
IndustryRevenue Intelligence / SaaS
Employees280–320
Funding stageSeries B
HQAustin, TX
Lusha ICP scoreHigh
ICP — Industry match✓ SaaS — matches ICP
ICP — Size match✓ 280–320 employees — matches ICP
ICP — Funding match✓ Series B — matches ICP
ICP — Seniority match✓ VP — matches target buyer
ICP — Geography match✓ North America — matches ICP
Lead owner[Senior AE name] — auto-assigned
Lusha enriched[date] ✓

Build it

Step 1 — Add ICP scoring fields to the Lead object

In Salesforce Setup, go to Object Manager → Lead → Fields & Relationships. Add the following custom fields:

Field labelField typeAPI name
Lusha — ICP scorePicklist (High / Medium / Low)Lusha_ICP_Score__c
Lusha — Industry matchCheckboxLusha_Industry_Match__c
Lusha — Size matchCheckboxLusha_Size_Match__c
Lusha — Funding matchCheckboxLusha_Funding_Match__c
Lusha — Seniority matchCheckboxLusha_Seniority_Match__c
Lusha — Geography matchCheckboxLusha_Geography_Match__c
Lusha — Score reasonText areaLusha_Score_Reason__c

Step 2 — Define your ICP scoring rules

Before building the Flow, define your ICP criteria and weights. A simple starting framework:

CriterionMust-havePoints if met
Industry matches ICPYes — Low score if failsPass / Fail
Employee count in ICP rangeYes — Low score if failsPass / Fail
Seniority matches target buyerNo+3
Funding stage matches ICPNo+2
Geography matches ICPNo+1

Score interpretation: 5–6 = High · 3–4 = Medium · 0–2 or must-have fail = Low. Adjust thresholds to match your qualification standards.

Step 3 — Build the scoring Flow

In Salesforce Flow Builder, create a new Record-Triggered Flow:

  • Object: Lead
  • Trigger: A record is updated
  • Entry condition: Lusha_Enriched_Date__c is not null AND Lusha_ICP_Score__c is null
  • Add Decision elements for each ICP criterion — evaluate the enriched fields against your ICP rules
  • Use Assignment elements to accumulate the score and set checkbox fields
  • Add a final Decision element that maps the total score to High / Medium / Low
  • Add an Update Records element to write the score and checkbox fields back to the Lead

Step 4 — Build the routing Flow

Add routing logic to the same Flow or as a separate triggered Flow:

  • High ICP score → assign to senior AE queue or specific rep based on territory
  • Medium ICP score → assign to SDR queue for qualification
  • Low ICP score → assign to nurture queue or mark as disqualified
  • Add an optional notification step — Task created for the assigned rep with the ICP score and top matching criteria

Step 5 — Test with a live lead

Create a test Lead that matches your ICP exactly and confirm it scores High and routes to the correct queue. Create a second test Lead with an out-of-ICP industry and confirm it scores Low. Check the Lusha_Score_Reason__c field on both records to verify the scoring logic is firing correctly. Full troubleshooting guidance at docs.lusha.com/guides.

Example outputs in this workflow are illustrative — they reflect the structure, fields, and format of real Lusha API output, but were not pulled from a live session. Build this workflow with your own Lusha API key and Salesforce org to see live results.

Built by: Lusha
Time to build: 45 min
Difficulty: Medium
Tools: Lusha, Salesforce
Type: Template

FAQ

  • Does this workflow require the enrichment workflow to run first?

    Yes — this workflow is designed to run after the enrichment workflow from Workflow 1 has completed. The scoring logic reads the Lusha-enriched fields on the Lead record, so if enrichment hasn’t run, there’s nothing to score against. The entry condition in the Flow — Lusha_Enriched_Date__c is not null AND Lusha_ICP_Score__c is null — ensures the scoring Flow only fires on records that have been enriched and haven’t been scored yet. If you want to run both enrichment and scoring in a single Flow, combine both workflows into one Record-Triggered Flow by adding the scoring logic after the enrichment callout steps.

  • How do I handle leads where Lusha couldn't enrich the company size or industry?

    Add a null-check condition before each scoring criterion in the Flow. If Lusha_Employee_Count__c is empty, the size criterion is skipped rather than failing the lead — the score is calculated from the criteria that did return data. For must-have criteria where the field is empty, you have two options: treat empty as a fail and score the lead Low, or route it to a manual review queue so a rep can qualify it without the data. Most teams choose the manual review route for must-have fields — it ensures no potentially good lead gets automatically disqualified just because Lusha didn’t have that specific data point.

  • Can I use Lusha's ICP scoring directly instead of building my own scoring logic in Flow?

    Yes — Lusha’s Deep Intelligence layer returns an ICP score via the API based on your configured ICP in the Lusha platform. If you’ve set up your ICP in Lusha, the score comes back in the API response and can be mapped directly to the Lusha_ICP_Score__c field without building the Decision logic in Flow yourself. This is the faster build — the scoring intelligence lives in Lusha, not in Salesforce. The Flow just reads the score and routes based on it. Check the Lusha API documentation for the ICP score field in the response schema.

  • How do I update the scoring rules when my ICP changes?

    If you’re using Lusha’s native ICP score, update your ICP definition in the Lusha platform and the score automatically reflects the change on every new enrichment. If you built custom scoring logic in Salesforce Flow, open the Flow in Flow Builder, update the Decision element conditions and point thresholds, and save and activate the new version. Salesforce keeps a version history so you can roll back if the new scoring logic produces unexpected results. Most teams revisit their ICP scoring rules quarterly — the same cadence recommended for the Build your ICP from closed-won deals play.

  • Can I apply this scoring to existing Lead records, not just new ones?

    Yes — build a Scheduled Flow that queries for Lead records where Lusha_Enriched_Date__c is not null and Lusha_ICP_Score__c is null, and runs the scoring logic on each one in batch. This is useful when you first deploy the workflow and want to back-score your existing enriched leads without waiting for new ones to come in. Run it once as a batch job, then let the Record-Triggered Flow handle all new leads going forward. For a full backfill on a large lead database, process in batches of 200 records to stay within Salesforce’s governor limits.

Ready to run this?

Connect once, run anywhere. Works in Claude, ChatGPT, n8n, Clay, or any agent connected to Lusha.