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.
| # | Workflow | Difficulty | Build time |
|---|---|---|---|
| 1 | Auto-enrich new contacts automatically | Easy | 30 min |
| 2 | Score and route contacts by ICP fit | Medium | 45 min |
| 3 | Alert reps when a key contact changes roles | Medium | 45 min |
| 4 | Surface buying signals on open deals | Medium | 45 min |
| 5 | Enrich and score companies on a scheduled cadence | Medium | 45 min |
| 6 | Enrich contacts before a HubSpot email send | Easy | 30 min |
| 7 | Build the full Breeze inbound contact agent | Advanced | 2 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
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_stageContact properties to create
| Property label | Type | Internal name |
|---|---|---|
| Lusha — Direct dial | Phone number | lusha_direct_dial |
| Lusha — Mobile | Phone number | lusha_mobile |
| Lusha — Seniority | Single-line text | lusha_seniority |
| Lusha — Department | Single-line text | lusha_department |
| Lusha — Enriched date | Date picker | lusha_enriched_date |
Company properties to create
| Property label | Type | Internal name |
|---|---|---|
| Lusha — Funding stage | Single-line text | lusha_funding_stage |
| Lusha — Employee count | Number | lusha_employee_count |
| Lusha — Revenue range | Single-line text | lusha_revenue_range |
| Lusha — Industry verified | Single-line text | lusha_industry |
| Lusha — Enriched date | Date picker | lusha_enriched_date |
Contact record before and after
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
Scoring framework
| Criterion | Must-have | Points |
|---|---|---|
| Industry matches ICP | Yes — Low if fails | Pass / Fail |
| Employee count in ICP range | Yes — Low if fails | Pass / Fail |
| Seniority matches target buyer | No | +3 |
| Funding stage matches ICP | No | +2 |
| Geography matches ICP | No | +1 |
Score interpretation: 5–6 = High · 3–4 = Medium · 0–2 or must-have fail = Low
Contact properties to create
| Property label | Type | Internal name |
|---|---|---|
| Lusha — ICP score | Dropdown (High / Medium / Low) | lusha_icp_score |
| Lusha — Industry match | Single checkbox | lusha_industry_match |
| Lusha — Size match | Single checkbox | lusha_size_match |
| Lusha — Funding match | Single checkbox | lusha_funding_match |
| Lusha — Seniority match | Single checkbox | lusha_seniority_match |
| Lusha — Score reason | Multi-line text | lusha_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
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 label | Type | Internal name |
|---|---|---|
| Lusha — Contact status | Dropdown (Active / Departed / Promoted / Unverified) | lusha_contact_status |
| Lusha — Previous company | Single-line text | lusha_previous_company |
| Lusha — New company | Single-line text | lusha_new_company |
| Lusha — Previous title | Single-line text | lusha_previous_title |
| Lusha — Departure date | Date picker | lusha_departure_date |
| Lusha — Last verified | Date picker | lusha_last_verified |
| Lusha — Monitor contact | Single checkbox | lusha_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
Example deal record after signal check
Deal properties to create
| Property label | Type | Internal name |
|---|---|---|
| Lusha — Latest signal | Single-line text | lusha_latest_signal |
| Lusha — Signal score | Dropdown (High / Medium / Low / None) | lusha_signal_score |
| Lusha — Signal log | Multi-line text | lusha_signal_log |
| Lusha — Last signal check | Date picker | lusha_last_signal_check |
| Lusha — Alert fired | Single checkbox | lusha_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
Example weekly enrichment summary
Company properties to create
| Property label | Type | Internal name |
|---|---|---|
| Lusha — Enriched date | Date picker | lusha_enriched_date |
| Lusha — Employee count | Number | lusha_employee_count |
| Lusha — Revenue range | Single-line text | lusha_revenue_range |
| Lusha — Funding stage | Single-line text | lusha_funding_stage |
| Lusha — Tech stack | Multi-line text | lusha_tech_stack |
| Lusha — ICP score | Dropdown (High / Medium / Low) | lusha_icp_score |
| Lusha — Change log | Multi-line text | lusha_change_log |
| Lusha — Flagged for review | Single checkbox | lusha_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
Example verification summary
Contact properties to create
| Property label | Type | Internal name |
|---|---|---|
| Lusha — Send suppressed | Single checkbox | lusha_send_suppressed |
| Lusha — Verification result | Dropdown (Confirmed / Departed / Email updated / Not found) | lusha_verification_result |
| Lusha — Verification date | Date picker | lusha_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
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.
What this agent replaces
| Manual step | Time saved per contact | Agent action |
|---|---|---|
| Rep enriches contact manually in Lusha | 3–5 minutes | Automatic on contact creation |
| Rep researches company in CRM and LinkedIn | 5–10 minutes | Automatic on contact creation |
| Manager triages and routes contact manually | 2–5 minutes | Automatic ICP scoring and routing |
| Rep checks for account signals before calling | 3–8 minutes | Automatic signal check |
| Rep writes pre-call notes before first call | 5–10 minutes | Automatic Breeze AI brief |
| Total per contact | 18–38 minutes | Under 90 seconds |
Build order recommendation
- Workflow 1 first — clean enriched data is the foundation everything else runs on.
- Workflow 2 immediately after — scoring without enrichment is guessing. Scoring with enrichment is signal.
- Workflow 3 before the next pipeline review — catch your first departed champion before it costs you a deal.
- Workflow 5 before the next quarter starts — a clean company database makes every other workflow more accurate.
- Workflow 4 once the company database is current — signals on stale accounts produce noise. Signals on verified accounts produce pipeline.
- Workflow 6 before the next campaign — one deployment saves your domain reputation permanently.
- 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