Build the full Breeze inbound contact agent with Lusha

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.

Every workflow in this series has been building toward this one. Enrichment that runs the moment a contact arrives. ICP scoring that routes without human triage. Contact monitoring that catches departures before they affect deals. Buying signals that surface on open deals before the rep has to ask. Campaign verification that cleans every list before it sends.

This workflow combines all of it into a single autonomous Breeze agent — an AI agent inside HubSpot that handles the full inbound contact motion from form submission to rep notification. The contact arrives, gets enriched via Lusha, gets scored, gets routed, gets a pre-call brief generated by Breeze AI, and the right rep receives a Slack notification with everything they need to make an informed first call. No human touches the contact between arrival and rep notification. The agent does the work. The rep does the selling.

Target run time: under 90 seconds from form submission to Slack notification.

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

How it works

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 labelTypeInternal name
Lusha — Pre-call briefMulti-line textlusha_pre_call_brief
Lusha — Latest signalSingle-line textlusha_latest_signal
Lusha — Agent run timeNumberlusha_agent_run_time

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 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.

  1. Auto-enrich new contacts with Lusha inside HubSpot Breeze →
  2. Score and route contacts by ICP fit →
  3. Alert reps when a key contact changes roles →
  4. Surface buying signals on open deals →
  5. Enrich and score companies on a scheduled cadence →
  6. 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.

Built by: Lusha
Time to build: 90 min
Difficulty: Advanced
Tools: HubSpot, Lusha, Slack
Type: Template

FAQ

  • Do I need a specific HubSpot plan to use Breeze AI actions in Workflows?

    Breeze AI property generation in Workflows requires HubSpot Professional or Enterprise with the Breeze AI add-on enabled. If your portal doesn’t have Breeze AI actions available in the Workflow editor, you can replicate the pre-call brief generation using a webhook to the Anthropic API or OpenAI API instead — pass the same enriched contact properties as inputs and write the response to <code>lusha_pre_call_brief</code>. The Lusha enrichment, ICP scoring, routing, and Slack notification steps work identically regardless of which AI layer you use for brief generation. If you’re unsure whether Breeze AI is available in your portal, go to HubSpot → Settings → AI → Breeze AI.

  • How does this agent handle contacts that come in from multiple sources?

    The enrollment trigger “Contact is created” fires regardless of source — form submissions, live chat, CRM imports, API integrations, and manual entries all trigger the same flow. If you want to handle different sources differently — for example, apply a higher ICP score threshold for contacts from paid campaigns versus organic form fills — add an If/Then branch at the start of the Workflow that checks the contact’s original source property and routes to different scoring logic based on it. For contacts created via bulk import, add an enrollment filter excluding contacts where the original source is “Offline sources” to prevent the agent from running on large batch imports.

  • How is this different from HubSpot’s native Breeze Prospecting Agent?

    HubSpot’s Breeze Prospecting Agent researches companies and contacts using publicly available data — website content, news, LinkedIn profiles — and generates outreach suggestions. It’s an AI research layer built on web data. This workflow uses Lusha’s verified B2B database as the data foundation — confirmed contact details, live buying signals, and ICP scoring built from your closed-won patterns. The two are complementary: Breeze Prospecting Agent is strong on narrative research and outreach personalization, Lusha is strong on verified contact data, signal detection, and ICP scoring precision. This workflow uses Breeze AI for the brief generation step and Lusha for the data foundation underneath it.

  • What happens to Medium and Low scored contacts — do they get a Slack notification?

    By default this workflow only fires the Slack notification for High ICP score contacts — the ones that deserve an immediate call from a senior AE. Medium score contacts are routed to the SDR queue and the SDR receives a standard HubSpot task notification through the platform. Low score contacts are enrolled in a nurture sequence with no immediate notification. If you want your SDR team to also receive Slack notifications for Medium score contacts, add a second Slack webhook action on the Medium scoring path with a different message template — shorter, less urgent, with the task link rather than a call-to-action.

  • How does this agent relate to the other workflows in the Lusha for HubSpot Breeze series?

    This agent consolidates the inbound contact motion from Workflows 1 and 2 into a single autonomous flow that also adds signal detection and Breeze AI brief generation. Workflows 3 through 6 handle different motions that run alongside this agent rather than inside it — contact change monitoring runs daily across all monitored contacts, buying signal detection runs daily on open deals, scheduled enrichment refreshes the full company database weekly, and campaign verification runs before each email send. Build this agent for the inbound motion. Build the remaining workflows for the ongoing pipeline and data quality motions. Together they cover every point in the HubSpot lifecycle where Lusha data improves the output.

Ready to run this?

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