Auto-enrich new contacts with Lusha inside 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.

Every new contact that hits HubSpot arrives with a name, an email, and a company — and not much else. A rep opens the record, sees three populated fields and a dozen empty ones, and spends the next ten minutes researching what should have been there from the start. This workflow removes that entirely. The moment a new Contact record is created in HubSpot, a Workflow fires a webhook to the Lusha API to enrich it — verified email, direct dial, current title, seniority, department, and full company firmographics — and writes everything back to the HubSpot record before the rep opens it.

Requires: Lusha API key · HubSpot Workflows · HubSpot admin access

How it works

This workflow triggers the moment a new Contact is created in HubSpot. It calls the Lusha API via a webhook action to enrich the contact and company, then writes verified data back to the HubSpot record before a rep opens it.

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 the enrollment trigger to “Contact is created” with no additional filters to run on every new contact regardless of source.

2

Action — Fire webhook to Lusha contact search

Add a “Send a webhook” action. Set the method to POST, URL to https://api.lusha.com/v2/contacts/search, and pass 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 from the contact record. 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
  Content-Type: application/json

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
  data.emailAddress    → email (if empty)

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
  data.hqLocation.city → city

Custom properties to create in HubSpot

In HubSpot, go to Settings → Properties → Create property. Add these to the Contact object:

 

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

 

Add these to the Company object:

 

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
Number of employees280–320
Funding stageSeries B
Lusha enriched date[date] ✓

Build steps

 

  1. Get your Lusha API key. Log in to Lusha → Settings → API. Copy your key. Full documentation at docs.lusha.com/guides.
  2. Create custom properties. In HubSpot Settings → Properties, add the Contact and Company properties listed above.
  3. Build the Workflow. In HubSpot → Automation → Workflows → Create Workflow → Contact-based. Set enrollment trigger to “Contact is created.”
  4. Add the contact webhook action. Add action → Send a webhook. Method: POST. URL: https://api.lusha.com/v2/contacts/search. Add header: api_key: YOUR_LUSHA_API_KEY. Request body: { "emailAddress": "{% raw %}{{contact.email}}{% endraw %}" }.
  5. Add Set property actions for contact fields. For each Lusha response field, add a “Set property value” action and map the webhook response to the corresponding custom property.
  6. Add the company webhook action. Repeat for /v2/companies/search with the company name. Map response fields to Company properties.
  7. Set the enrichment date. Add a final “Set property value” action to write today’s date to lusha_enriched_date.
  8. Test with a live contact. Create a test contact with a known email. Confirm all Lusha properties populate within 30 seconds. Check the Workflow history tab if properties are empty.

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: 30 min
Difficulty: Easy
Tools: HubSpot, Lusha
Type: Template

FAQ

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

    Webhook actions in HubSpot Workflows require a Professional or Enterprise plan. If you’re on Starter, you can still enrich contacts manually using the Lusha Chrome Extension or the Lusha native HubSpot integration from the App Marketplace — but the automated workflow approach requires Professional or above. If you’re unsure which plan you’re on, go to HubSpot → Settings → Account → Account & Billing.

  • What happens if Lusha can't find a match for the contact?

    If Lusha returns no match for the email address, the webhook response comes back empty and no properties are updated. The contact record stays as-is and the enrichment date is not set — so you can identify un-enriched contacts later by filtering for records where <code>lusha_enriched_date</code> is unknown. No credits are consumed for a no-match result. For contacts that couldn’t be matched, a manual lookup in Lusha Workspace using the contact’s name and company often returns a result that the email search missed.

  • Will this overwrite data a rep has already entered manually?

    Not if you configure each “Set property value” action correctly. In HubSpot, set the action to “Set property value” and check the option “Only set if property is currently empty.” This ensures Lusha only fills in blank fields — it won’t overwrite a job title a rep entered manually or a phone number already on file. If you want Lusha-verified data to always take precedence, remove that condition — but for most teams the empty-only default is the right starting point.

  • How many Lusha credits does this workflow consume?

    Each successful contact enrichment consumes one Lusha credit. Company enrichment is included and does not consume an additional credit. For a team receiving 300 new contacts per month, this workflow consumes up to 300 credits monthly. If you want to limit credit consumption to high-priority contacts only, add an enrollment filter to the Workflow — for example, only enrich contacts where the source is “form submission” or where the company name is not empty. This prevents the workflow from running on contacts imported in bulk from low-quality lists.

  • Can I run this on existing contacts, not just new ones?

    Yes — change the enrollment trigger from “Contact is created” to “Contact property — Lusha enriched date — is unknown” and enable re-enrollment. This re-runs the workflow on any contact where enrichment hasn’t happened yet. For a full backfill on a large contact database, turn on the workflow, let it run in batches, then switch back to the “Contact is created” trigger once the backfill is complete. HubSpot processes Workflow enrollments in batches so a large backfill may take a few hours depending on your contact volume and plan limits.

Ready to run this?

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