EvoLusha 2026 | Driving Growth with Data in the Agentic Age

Watch now »

Seven workflows for HubSpot Breeze teams — auto-enrich contacts, score by ICP fit, monitor key contacts, surface deal signals, and build a fully autonomous inbound contact agent with Lusha. Each workflow stands alone. Build one or all seven.

Seven workflows. From a stale contact record to a fully autonomous inbound agent — built on Lusha’s verified data inside HubSpot Breeze. Each workflow stands alone. Build one or build all seven. Together they give you a fully automated Lusha-powered HubSpot stack.

This playbook is the Lusha Data Framework inside HubSpot. The two-layer architecture — verified data and live intelligence — running autonomously, without a human in the loop.

#WorkflowDifficultyBuild time
1Auto-enrich new contacts automaticallyEasy30 min
2Score and route contacts by ICP fitMedium45 min
3Alert reps when a key contact changes rolesMedium45 min
4Surface buying signals on open dealsMedium45 min
5Enrich and score companies on a scheduled cadenceMedium45 min
6Enrich contacts before a HubSpot email sendEasy30 min
7Build the full Breeze inbound contact agentAdvanced2 hours

What you need to start: A Lusha API key (Settings → API in your Lusha account), HubSpot Professional or Enterprise, and access to HubSpot Workflows. Workflow 7 additionally requires HubSpot Breeze AI.

Full API documentation: docs.lusha.com/guides


Workflow 1 — Auto-enrich new contacts with Lusha inside HubSpot Breeze

Every new contact that hits HubSpot arrives with a name, an email, and a company — and not much else. This workflow fixes that automatically. The moment a new Contact record is created, a HubSpot Workflow fires a webhook to the Lusha API to enrich it — verified email, direct dial, current title, seniority, and full company firmographics — and writes everything back to the record before the rep opens it.

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

How it works

1

Trigger — New Contact created in HubSpot

The Workflow fires the moment a new Contact record is created — from a form submission, manual entry, CRM import, or inbound integration. Set enrollment trigger to “Contact is created” with no filters to run on every new contact regardless of source.

2

Action — Fire webhook to Lusha contact search

Add a “Send a webhook” action. POST to https://api.lusha.com/v2/contacts/search with the contact email in the request body. Lusha returns the verified contact profile — current title, seniority, department, verified email, and direct dial.

3

Action — Fire webhook to Lusha company search

A second webhook action calls https://api.lusha.com/v2/companies/search with the company name. Lusha returns industry, employee count, revenue range, funding stage, and HQ location.

4

Action — Write enriched data back to HubSpot

Use “Set property value” actions to map Lusha response fields to your custom HubSpot contact and company properties. Set each action to only update if the property is currently empty — existing data is not overwritten.

5

Output — Enriched Contact record, ready for the rep

The Contact record now contains verified contact and company data. A custom property logs the Lusha enrichment date so you always know when data was last confirmed. The rep opens a complete record, not a blank one.

API reference

POST https://api.lusha.com/v2/contacts/search
Headers: api_key: YOUR_LUSHA_API_KEY
Body: { "emailAddress": "{{contact.email}}" }

Map response to HubSpot contact properties:
  data.jobTitle        → lusha_job_title
  data.seniority       → lusha_seniority
  data.department      → lusha_department
  data.phoneNumbers[0] → lusha_direct_dial
  data.phoneNumbers[1] → lusha_mobile

POST https://api.lusha.com/v2/companies/search
Body: { "name": "{{contact.company}}" }

Map response to HubSpot company properties:
  data.industry        → lusha_industry
  data.employeeCount   → lusha_employee_count
  data.revenueRange    → lusha_revenue_range
  data.fundingStage    → lusha_funding_stage

Contact properties to create

Property labelTypeInternal name
Lusha — Direct dialPhone numberlusha_direct_dial
Lusha — MobilePhone numberlusha_mobile
Lusha — SenioritySingle-line textlusha_seniority
Lusha — DepartmentSingle-line textlusha_department
Lusha — Enriched dateDate pickerlusha_enriched_date

Company properties to create

Property labelTypeInternal name
Lusha — Funding stageSingle-line textlusha_funding_stage
Lusha — Employee countNumberlusha_employee_count
Lusha — Revenue rangeSingle-line textlusha_revenue_range
Lusha — Industry verifiedSingle-line textlusha_industry
Lusha — Enriched dateDate pickerlusha_enriched_date

Contact record before and after

Contact record after Lusha enrichment

PropertyBeforeAfter
Job titleVP of Sales ✓
SeniorityVP
Direct dial+1 512 555 ••••
IndustryRevenue Intelligence / SaaS
Employees280–320
Funding stageSeries B
Lusha enriched date[date] ✓

Workflow 2 — Score and route contacts by ICP fit

Enrichment tells you who the contact is. ICP scoring tells you whether they are worth calling. 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. No manual triage. No rep making judgment calls on incomplete data.

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

How it works

1

Trigger — Contact enriched by Lusha

Set enrollment trigger to “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 for each ICP criterion. Check must-have criteria first — if industry or company size fails, branch directly to the Low score path. For contacts that pass, evaluate weighted criteria and accumulate the score.

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 individual criterion results to checkbox properties so reps can see exactly why a contact scored the way it did.

4

Output — Contact routed to correct rep or queue

High → senior AE via “Set contact owner” by territory. Medium → SDR queue via “Rotate contact owner.” Low → nurture sequence + lifecycle stage set to Subscriber.

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

Contact properties to create

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

Workflow 3 — Alert reps when a key contact changes roles

A champion who left five weeks ago and nobody noticed is a deal risk that shows up at the worst possible moment. This workflow runs a daily check on every monitored contact, detects departures and role changes in real time, and alerts the owning rep before the situation affects a deal.

Requires: Lusha API key · HubSpot Workflows (Professional or Enterprise) · Slack (optional)

How it works

1

Trigger — Scheduled Workflow runs daily at 6am

Set enrollment trigger to “Lusha monitor contact is equal to true.” Enable re-enrollment. Tag contacts on open deals, champions, and economic buyers with this property to bring them into the monitoring scope.

2

Action — Fire webhook to verify contact via Lusha

POST to https://api.lusha.com/v2/contacts/search with the contact email. Lusha returns their current status — confirmed in seat, departed, or promoted — along with current title and company.

3

Decision — Detect departure or role change

Compare Lusha response company against the contact’s associated Company in HubSpot. Company changed = departure. Title changed at same company = promotion. No change = update lusha_last_verified only.

4

Action — Update contact record and create task

Departure: set lusha_contact_status to Departed, log new company, create high-priority task. Promotion: update job title, log previous title, create standard task.

5

Output — Rep alerted within 24 hours of any change

Optional Slack notification fires to the rep and manager for departures on open deals — with contact name, company, departure date, and a link to the HubSpot contact record.

Example Slack alert on departure

⚠ Champion departure detected — action required

Contact: R.M. — VP of Sales
Company: [Company A]
Open deal: [Deal name] — Deal stage 3 — $42K
Departed: [date]
New company: [New Company]

Find the new owner at [Company A] before this deal goes cold.
View contact in HubSpot →

Contact properties to create

Property labelTypeInternal name
Lusha — Contact statusDropdown (Active / Departed / Promoted / Unverified)lusha_contact_status
Lusha — Previous companySingle-line textlusha_previous_company
Lusha — New companySingle-line textlusha_new_company
Lusha — Previous titleSingle-line textlusha_previous_title
Lusha — Departure dateDate pickerlusha_departure_date
Lusha — Last verifiedDate pickerlusha_last_verified
Lusha — Monitor contactSingle checkboxlusha_monitor_contact

Workflow 4 — Surface buying signals on open deals

An account in your pipeline just closed a Series B. A new CRO joined two weeks ago. The SDR headcount doubled. Every one of those signals is relevant to the deal — and none of them are in HubSpot because nobody was watching the account between calls. This workflow runs a daily signal check on every company associated with an open deal and surfaces new signals directly on the HubSpot deal record.

Requires: Lusha API key · HubSpot Workflows (Professional or Enterprise) · Slack (optional)

How it works

1

Trigger — Scheduled Workflow runs daily at 5am

Set enrollment trigger to “Deal stage is not Closed Won or Closed Lost.” Enable re-enrollment. For each deal, retrieve the associated Company to use as the Lusha signal lookup identifier.

2

Action — Fire webhook to Lusha signals endpoint

GET request to https://api.lusha.com/v2/companies/signals?domain={{company.domain}}. Returns all active buying signals — funding events, executive moves, hiring surges, and intent signals — scored and dated.

3

Action — Filter for new signals only

Compare signal dates against lusha_last_signal_check on the deal record. Only signals that appeared since the last check are processed — so the rep sees what’s new, not a repeat of what’s already logged.

4

Action — Write signals to the deal record

Write latest signal summary to lusha_latest_signal, score to lusha_signal_score, and append to lusha_signal_log. Update lusha_last_signal_check to today.

5

Output — High-priority signals create a task and Slack alert

Signals scoring above 65 create a high-priority task for the deal owner and optionally fire a Slack notification via webhook with signal details and a link to the HubSpot deal record.

Example deal record after signal check

Live signals on open deal

PropertyValue
Lusha — Latest signalSeries B closed — $22M — 8 days ago
Lusha — Signal scoreHigh
Lusha — Signal logSeries B $22M (8 days) · New CRO (14 days) · 8 SDR roles (11 days)
Alert fired✓ Task created · Slack sent

Deal properties to create

Property labelTypeInternal name
Lusha — Latest signalSingle-line textlusha_latest_signal
Lusha — Signal scoreDropdown (High / Medium / Low / None)lusha_signal_score
Lusha — Signal logMulti-line textlusha_signal_log
Lusha — Last signal checkDate pickerlusha_last_signal_check
Lusha — Alert firedSingle checkboxlusha_alert_fired

Workflow 5 — Enrich and score companies on a scheduled cadence

HubSpot company records decay at the same rate as any other CRM data — 30% per year. A company that had 150 employees when the record was created might have 350 now. A funding stage that was Series A is Series B. None of that shows up in HubSpot unless someone manually updates it — and nobody does. This workflow runs a weekly enrichment pass on every company automatically and rescores against your ICP with current data.

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

How it works

1

Trigger — Scheduled Workflow runs every Monday at 5am

Set enrollment trigger to “Lusha enriched date is unknown OR is more than 30 days ago.” Enable re-enrollment. Companies enriched more recently are skipped to avoid unnecessary credit consumption.

2

Action — Fire webhook to refresh company firmographics

POST to https://api.lusha.com/v2/companies/search with the company domain or name. Lusha returns the current verified profile — industry, employee count, revenue range, funding stage, HQ, and tech stack — refreshed as of today.

3

Action — Detect and flag significant changes

Add If/Then branches comparing Lusha’s response against existing HubSpot company properties. Employee count variance above 20%, funding stage changes, and HQ changes are flagged by setting lusha_flagged_for_review to true and appending to lusha_change_log.

4

Action — Recalculate ICP score with current data

After firmographic refresh, re-evaluate the ICP criteria using updated properties. Write the new score to lusha_icp_score on the Company record. Log the score change and date to lusha_change_log.

5

Output — Current, verified, scored company database

Every company in your HubSpot portal reflects current reality. Reps, campaigns, and Breeze agents running on this data work from verified firmographics — not records that haven’t been touched since the account first entered the CRM.

Example weekly enrichment summary

Weekly run results

MetricThis week
Companies processed138
Firmographic updates applied41
ICP score changes14 — 9 upgraded, 5 downgraded
Contacts verified138
Departures detected7
Companies flagged for review16

Company properties to create

Property labelTypeInternal name
Lusha — Enriched dateDate pickerlusha_enriched_date
Lusha — Employee countNumberlusha_employee_count
Lusha — Revenue rangeSingle-line textlusha_revenue_range
Lusha — Funding stageSingle-line textlusha_funding_stage
Lusha — Tech stackMulti-line textlusha_tech_stack
Lusha — ICP scoreDropdown (High / Medium / Low)lusha_icp_score
Lusha — Change logMulti-line textlusha_change_log
Lusha — Flagged for reviewSingle checkboxlusha_flagged_for_review

Workflow 6 — Enrich contacts before a HubSpot email send

A campaign that goes out to stale contacts damages your sending domain, inflates your bounce rate, and reaches people who can’t act on it. This workflow runs a Lusha verification pass on every contact enrolled in a HubSpot list before the campaign is activated — flags bounced emails, marks departed contacts for suppression, and updates stale titles before the first email sends.

Requires: Lusha API key · HubSpot Workflows (Professional or Enterprise) · HubSpot Marketing Hub

How it works

1

Trigger — Contact added to campaign verification list

Set enrollment trigger to “Contact is member of list — Lusha Pre-Send Verification.” Add contacts to this list when building every campaign audience. The Workflow fires immediately for each contact added.

2

Action — Verify contact via Lusha

POST to https://api.lusha.com/v2/contacts/search with the contact email. Returns current verified status — confirmed in seat, departed, or not found — along with current title and verified email.

3

Decision — Route by verification result

Three paths: Departed — contact has left the company. Email changed — contact is in seat but email has changed. Confirmed — contact is verified in seat with current email. Each path triggers a different action.

4

Action — Suppress departed contacts

On the Departed path: set lusha_contact_status to Departed, set lusha_send_suppressed to true, and remove the contact from the campaign send list. Contact remains in HubSpot for reporting but is excluded from the send.

5

Output — Verified send list ready for campaign activation

Every contact on the campaign list is verified, updated, or suppressed. Review the suppressed count in the list view before activating the send. Build your actual campaign audience from the verified list — filtered by lusha_send_suppressed = false.

Example verification summary

Q3 Outbound — Series B Companies

MetricResult
Original list size284 contacts
Confirmed in seat251 ✓
Suppressed (departed)18
Emails updated9
Titles updated24
Net sendable list257 verified contacts

Contact properties to create

Property labelTypeInternal name
Lusha — Send suppressedSingle checkboxlusha_send_suppressed
Lusha — Verification resultDropdown (Confirmed / Departed / Email updated / Not found)lusha_verification_result
Lusha — Verification dateDate pickerlusha_verification_date

Workflow 7 — Build the full Breeze inbound contact agent with Lusha

Everything built in Workflows 1 through 6 — enrichment, ICP scoring, routing, contact monitoring, buying signals, campaign verification — combined into a single autonomous Breeze agent that handles the full inbound contact motion from form submission to rep notification without a human touching anything. Target run time: under 90 seconds.

Requires: Lusha API key · HubSpot Breeze (Professional or Enterprise) · HubSpot Workflows · Slack (recommended)

How it works

1

Trigger — New Contact created in HubSpot

Workflow fires the moment a new Contact record is created — from a form submission, live chat, inbound integration, or manual entry. Enrollment trigger: “Contact is created.” No additional filters.

2

Action — Enrich contact via Lusha

POST to /v2/contacts/search with the contact email. Returns verified title, seniority, direct dial. If contact has departed, set lusha_contact_status to Departed and route to manual review immediately — do not continue the automated flow.

3

Action — Enrich company and check buying signals

Two sequential webhook actions: POST to /v2/companies/search for firmographics, then GET /v2/companies/signals for active buying signals. Write all results to the Contact and associated Company records.

4

Action — Score contact against ICP

If/Then branches evaluate each ICP criterion using the enriched properties. Must-have failures assign Low immediately. Write score and criterion results to the Contact record.

5

Action — Route contact to correct rep or queue

High → senior AE by territory + lifecycle stage: Sales Qualified Lead. Medium → SDR queue + lifecycle stage: Marketing Qualified Lead. Low → nurture sequence + lifecycle stage: Subscriber.

6

Action — Generate pre-call brief using Breeze AI

Add a Breeze AI → Generate property value action. Target property: lusha_pre_call_brief. Pass the enriched contact profile, company data, ICP score, and top signal as inputs. Breeze writes a 60-word brief directly to the contact record.

7

Output — Rep notified via Slack with full context

Webhook fires a Slack notification to the assigned rep with contact name, company, ICP score, top signal, verified direct dial, pre-call brief, and a deep link to the HubSpot contact record. Target: under 90 seconds from form submission.

Breeze AI prompt for pre-call brief

Write a pre-call brief for a sales rep.
Under 60 words. Specific. No generic phrases.
Plain text only.

Contact: {{contact.firstname}} {{contact.lastname}},
  {{contact.lusha_seniority}} at {{contact.company}}
Company: {{contact.lusha_industry}},
  {{contact.lusha_employee_count}} employees,
  {{contact.lusha_funding_stage}}
ICP score: {{contact.lusha_icp_score}}
Top signal: {{contact.lusha_latest_signal}}
Score reason: {{contact.lusha_score_reason}}

Example rep notification — under 90 seconds from form submit

🟢 New high-fit inbound contact — assigned to you

Contact: R.M. — VP of Sales
Company: [Company A] — Revenue Intelligence / SaaS
Employees: 280–320 · Series B · Austin, TX
ICP score: High — matches 5 of 5 criteria
Top signal: Series B closed $22M — 11 days ago
Direct dial: +1 512 555 ••••

Brief: VP of Sales at a Series B Revenue Intelligence company that just closed $22M. 8 SDR roles posted. Intent on prospecting data at score 74. Strong ICP fit. Call today.

Open contact in HubSpot →

What this agent replaces

Manual stepTime saved per contactAgent action
Rep enriches contact manually in Lusha3–5 minutesAutomatic on contact creation
Rep researches company in CRM and LinkedIn5–10 minutesAutomatic on contact creation
Manager triages and routes contact manually2–5 minutesAutomatic ICP scoring and routing
Rep checks for account signals before calling3–8 minutesAutomatic signal check
Rep writes pre-call notes before first call5–10 minutesAutomatic Breeze AI brief
Total per contact18–38 minutesUnder 90 seconds

Build order recommendation

  1. Workflow 1 first — clean enriched data is the foundation everything else runs on.
  2. Workflow 2 immediately after — scoring without enrichment is guessing. Scoring with enrichment is signal.
  3. Workflow 3 before the next pipeline review — catch your first departed champion before it costs you a deal.
  4. Workflow 5 before the next quarter starts — a clean company database makes every other workflow more accurate.
  5. Workflow 4 once the company database is current — signals on stale accounts produce noise. Signals on verified accounts produce pipeline.
  6. Workflow 6 before the next campaign — one deployment saves your domain reputation permanently.
  7. Workflow 7 when Workflows 1 and 2 are stable — the full agent builds on their output. Don’t skip the foundation.

Full API documentation: docs.lusha.com/guides

Browse all Lusha Campus plays: lusha.com/campus/plays

Stay up-to-data on the latest in sales & marketing with our newsletter.

    Thank you for subscribing