Score and route contacts by ICP fit — Lusha in HubSpot Breeze

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 HubSpot portal to see live results.

Enrichment solves half the problem. A rep who opens a Contact 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 contact is worth calling before the five others already in their queue. ICP scoring solves the second half. This workflow takes every contact enriched by Lusha, scores it against your ICP criteria — industry, company size, funding stage, seniority — assigns a score to the HubSpot record, and routes it to the right rep or queue automatically. High-fit contacts go to senior AEs. Medium-fit to SDRs. Low-fit to nurture. No manual triage. No rep making judgment calls on incomplete data.

Requires: Lusha API key · Workflow 1 live · HubSpot Workflows (Professional or Enterprise) · HubSpot admin access

How it works

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

1

Trigger — Contact enriched by Lusha

Set the enrollment trigger to “Contact property — Lusha enriched date — is known” AND “Lusha ICP score — is unknown.” This ensures the scoring workflow only fires on contacts that have been enriched and haven’t been scored yet.

2

Action — Evaluate ICP criteria using If/Then branches

Add an If/Then branch action for each ICP criterion. Check must-have criteria first — if industry or company size fails, branch directly to the Low score path without evaluating further. For contacts that pass must-have criteria, evaluate weighted criteria and accumulate the score using a HubSpot score property.

3

Action — Write ICP score to Contact record

Use “Set property value” to write the ICP score — High, Medium, or Low — to lusha_icp_score. Write the individual criterion results to their checkbox properties so reps can see exactly why a contact scored the way it did.

4

Action — Route contact to correct rep or queue

Add another If/Then branch based on lusha_icp_score. High → assign to senior AE using “Rotate contact owner” or “Set contact owner” by territory. Medium → assign to SDR queue. Low → enroll in nurture sequence or set lifecycle stage to “Subscriber.”

5

Output — Scored, routed contact ready for the rep

The rep opens a Contact that is enriched, scored, and already in their queue. They know immediately whether this is a priority call, a qualifying conversation, or a nurture touch — without opening a single other tool.

Scoring framework

CriterionMust-havePoints
Industry matches ICPYes — Low if failsPass / Fail
Employee count in ICP rangeYes — Low 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

Routing rules

 

ScoreRoute toHubSpot action
High (5–6)Senior AE — by territorySet contact owner · Create task · Send internal email
Medium (3–4)SDR queueRotate contact owner · Create task
Low (0–2)Nurture sequenceEnroll in sequence · Set lifecycle stage to Subscriber

Custom properties to add to the Contact object

 

Property labelTypeInternal name
Lusha — ICP scoreDropdown (High / Medium / Low)lusha_icp_score
Lusha — Industry matchSingle checkboxlusha_industry_match
Lusha — Size matchSingle checkboxlusha_size_match
Lusha — Funding matchSingle checkboxlusha_funding_match
Lusha — Seniority matchSingle checkboxlusha_seniority_match
Lusha — Score reasonMulti-line textlusha_score_reason

Contact record after scoring

 

ICP score applied — contact auto-routed

PropertyValue
Lusha ICP scoreHigh
Industry match✓ SaaS — matches ICP
Size match✓ 280–320 employees — matches ICP
Funding match✓ Series B — matches ICP
Seniority match✓ VP — matches target buyer
Contact owner[Senior AE] — auto-assigned
Lifecycle stageSales qualified lead

Build steps

1

Create the scoring properties

In HubSpot → Settings → Properties, add all scoring properties listed in the table above to the Contact object. Create lusha_icp_score as a Dropdown select with three options: High, Medium, Low.

2

Build the scoring Workflow

In HubSpot → Automation → Workflows → Create Workflow → Contact-based. Set enrollment trigger to “Lusha enriched date is known” AND “Lusha ICP score is unknown.” Enable re-enrollment off.

3

Add must-have criterion checks first

Add an If/Then branch: “Lusha industry — contains any of — [your ICP industries].” No branch = set lusha_icp_score to Low and exit. Yes branch = continue to size check. Repeat for employee count range.

4

Add weighted criterion checks

For each weighted criterion — seniority, funding stage, geography — add an If/Then branch. On the Yes branch, check the corresponding checkbox property. After all checks, use a final If/Then on the checkbox count to assign High, Medium, or Low to lusha_icp_score.

5

Add routing actions

After the score is set, add another If/Then branch on lusha_icp_score. High → Set contact owner by territory + create task. Medium → Rotate contact owner to SDR queue. Low → Enroll in nurture sequence + set lifecycle stage to Subscriber.

6

Test with known contacts

Create a test contact that matches your ICP exactly — confirm it scores High and routes to the correct owner. Create a second test contact with an out-of-ICP industry — confirm it scores Low. Check the Workflow history tab for each contact to verify every branch fired correctly.

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 HubSpot portal to see live results.

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

FAQ

  • How is this different from HubSpot's native lead scoring?

    HubSpot’s native lead scoring assigns points based on behavioral signals — page views, email opens, form submissions. It measures engagement, not fit. This workflow scores on verified firmographic data pulled live from Lusha — industry, company size, funding stage, seniority — which measures whether the contact matches the profile of your best customers regardless of how they’ve behaved in your marketing funnel. The two are complementary. Run HubSpot’s behavioral scoring alongside Lusha’s ICP scoring and you have both dimensions — fit and intent — on every contact record.

  • Can I use Lusha's own ICP scoring instead of building the If/Then logic myself?

    Yes. Lusha’s Deep Intelligence layer returns an ICP score via the API based on the ICP you’ve configured in your Lusha account. If your ICP is set up in Lusha, the score comes back in the contact or company API response and can be mapped directly to <code>lusha_icp_score</code> without building the If/Then branch logic in HubSpot Workflows. This is the faster build — the scoring intelligence lives in Lusha, HubSpot just reads the result and routes based on it. Check the <a href=”https://docs.lusha.com/guides” target=”_blank” rel=”noopener”>Lusha API documentation</a> for the ICP score field in the response schema.

  • What if most of my contacts are scoring Low?

    That’s useful data. It means your inbound contact mix doesn’t match your ICP — either the traffic sources are wrong, the forms are attracting the wrong audience, or the ICP definition needs revisiting. Before adjusting the scoring criteria, check whether the low-scoring contacts are genuinely out of ICP or whether the scoring logic is too strict. Run a manual review on ten Low-scored contacts — if most of them are genuinely bad fits, the scoring is working. If half of them look like good prospects, the criteria need loosening. The Build your ICP from your closed-won deals play is a useful starting point for getting the criteria right before you build the scoring logic.

  • Can I score existing contacts, not just new ones?

    Yes — change the enrollment trigger to “Lusha enriched date is known” AND “Lusha ICP score is unknown” and enable re-enrollment. Any contact that has been enriched but not yet scored will be enrolled and processed. For a large existing database, run this as a one-time backfill — let the Workflow process all un-scored enriched contacts, then leave the standard trigger in place for all new contacts going forward. HubSpot processes Workflow enrollments in batches so a large backfill may take a few hours.

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

    Open the Workflow in HubSpot → Automation → Workflows, click Edit, and update the If/Then branch conditions to reflect the new ICP criteria. Save and re-activate. Existing contacts that already have a score are not automatically rescored — to rescore them, add a filter for “Lusha ICP score is known” to a separate one-time Workflow that clears the score property, which will re-trigger the scoring Workflow on those contacts. Most teams revisit their ICP scoring criteria quarterly — the same cadence recommended for the Build your ICP from your closed-won deals play.

Ready to run this?

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