This agent runs autonomously inside HubSpot. It triggers on every new inbound contact, executes a complete intelligence pass via the Lusha API, makes routing decisions based on ICP fit, generates a pre-call brief using Breeze AI, and delivers a fully contextualized contact to the right rep — all without human intervention.
1
Trigger — New Contact created in HubSpot
The Workflow fires the moment a new Contact record is created — from a form submission, an inbound integration, a live chat, or a manual entry. Set enrollment trigger to “Contact is created” with no additional filters to run on every new contact regardless of source.
2
Action — Enrich contact via Lusha
Send a webhook to https://api.lusha.com/v2/contacts/search with the contact email. Lusha returns the verified contact profile — current title, seniority, department, verified email, direct dial, and mobile. If the contact has departed their listed company, set lusha_contact_status to Departed and route to manual review immediately.
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. Both calls run back to back — company enrichment first, signals second. Write all results to the Contact and associated Company records.
4
Action — Score contact against ICP
Using the enriched firmographic data, add If/Then branches to evaluate each ICP criterion. Must-have failures assign Low immediately. Passing contacts are scored High, Medium, or Low based on weighted criteria. Write the score and individual criterion results to the Contact record.
5
Action — Route contact to correct rep or queue
Based on ICP score, assign the Contact owner. High → senior AE by territory using “Set contact owner” or “Rotate contact owner.” Medium → SDR queue. Low → nurture sequence. Set lifecycle stage accordingly — High to Sales Qualified Lead, Medium to Marketing Qualified Lead, Low to Subscriber.
6
Action — Generate pre-call brief using Breeze AI
Add a “Breeze AI” action using HubSpot’s AI-powered property generation. Pass the enriched contact profile, company data, ICP score, and top signal as inputs. Breeze generates a 60-word pre-call brief and writes it to lusha_pre_call_brief on the Contact record — ready for the rep before they make the first call.
7
Output — Rep notified via Slack with full context
A final webhook action fires a Slack notification to the assigned rep with the 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 to Slack notification.
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 →
Additional custom properties for Workflow 7
| Property label | Type | Internal name |
|---|
| Lusha — Pre-call brief | Multi-line text | lusha_pre_call_brief |
| Lusha — Latest signal | Single-line text | lusha_latest_signal |
| Lusha — Agent run time | Number | lusha_agent_run_time |
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 steps
1
Confirm Workflows 1 and 2 are live
This agent consolidates the enrichment and scoring motions from Workflows 1 and 2 into a single automated flow. Confirm all custom properties from those workflows exist on your Contact and Company objects before building this workflow. The property names must match exactly.
2
Create the additional Workflow 7 properties
In HubSpot → Settings → Properties, add lusha_pre_call_brief, lusha_latest_signal, and lusha_agent_run_time to the Contact object. These are the write targets for the Breeze AI output and signal summary.
3
Build the Contact-based Workflow
In HubSpot → Automation → Workflows → Create Workflow → Contact-based. Set enrollment trigger to “Contact is created.” Re-enrollment off. This is the master inbound workflow — it replaces Workflows 1 and 2 for net-new contacts.
4
Add enrichment webhooks in sequence
Add three webhook actions in sequence: (1) POST to /v2/contacts/search for contact enrichment, (2) POST to /v2/companies/search for company enrichment, (3) GET /v2/companies/signals for buying signals. Map all response fields to the corresponding custom properties after each webhook.
5
Add ICP scoring and routing branches
Add If/Then branches for must-have criteria first, then weighted criteria. Write the score to lusha_icp_score. Add a second set of If/Then branches on the score value to assign the contact owner, set lifecycle stage, and enroll in the correct sequence or queue.
6
Add the Breeze AI pre-call brief action
Add action → Breeze AI → Generate property value. Select lusha_pre_call_brief as the target property. Use the prompt template above, referencing the enriched contact and company properties as inputs. Breeze writes the generated brief directly to the contact record.
7
Add the Slack notification webhook
Add a final webhook action to your Slack incoming webhook URL. Build the message body using contact token references — name, company, ICP score, top signal, direct dial, pre-call brief, and a deep link to the HubSpot contact record. Fire only on High ICP score contacts to avoid notification fatigue for SDR queue contacts.
8
Test end to end
Submit a test form with a known email address. Monitor the Workflow history tab to confirm each action completes in sequence. Verify the Contact record is fully enriched, the ICP score is correct, the Breeze brief reads naturally, and the Slack notification arrives within 90 seconds. Full troubleshooting guidance at docs.lusha.com/guides.
The full Lusha for HubSpot Breeze series
This agent is the seventh and final workflow in the series. Each workflow stands alone — build one or build all seven. Together they give you a fully autonomous Lusha-powered HubSpot stack.
- Auto-enrich new contacts with Lusha inside HubSpot Breeze →
- Score and route contacts by ICP fit →
- Alert reps when a key contact changes roles →
- Surface buying signals on open deals →
- Enrich and score companies on a scheduled cadence →
- Enrich contacts before a HubSpot email send →
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.