How to automate lead data with Make and Lusha
Learn how to automatically enrich every new lead with verified contact details and firmographics, route high-fit prospects instantly, and track when past buyers change jobs. All that by using Lusha's 1.2B+ data points in Make.

The best GTM scenarios on Make run on live, verified data. Lusha adds exactly that: 1.2B+ data points processed daily, including buying signals, business emails, direct dials, firmographics, job changes, lookalike recommendations, and ICP scoring, all of it refreshed continuously and accessible through Make.
Lusha has 11 modules in Make. In this article, you will learn how to connect them, which modules do what, and how to build two workflows from scratch: one that enriches every new HubSpot lead automatically, and one that tracks when your past buyers change jobs.
What Lusha brings to your Make scenarios
Lusha is a B2B data intelligence solution used by 1M+ sales, marketing, recruiting, and revenue operations professionals.
Lusha search is the world's most comprehensive, verified, and compliant B2B dataset. Contacts, companies, and real-time signals, including job changes, promotions, funding events, and hiring surges across 300M+ profiles and 40M+ companies. Fast, accurate, and available via API — this is the foundation most enrichment and prospecting workflows run on.
Lusha’s deep intelligence data layer learns your business and builds context from your configuration, usage patterns, and integrated systems to surface your highest-value leads, score opportunities by fit and signal strength, and deliver recommendations that get sharper the more you use it.
In Make, both layers are accessible through 11 purpose-built modules. The rest of this guide shows you how to use them based on context and real-time buying signals.
Lusha’s data is available wherever builders work: in Clay, in Claude, in ChatGPT, through the API and MCP, and here in Make.
See the full module reference
Quick start: Connect Lusha to Make
In Lusha:
- Sign up for free at lusha.com or log in as an admin
- Click API in the top navigation bar
- Click Generate Key, copy it, and store it somewhere safe
In Make:
- Log in to your Make account, add the Lusha module to your scenario, and click Create a connection
- In the API Key field, enter the API key you copied from your Lusha account
- Click Save
The connection works across every scenario you build from here on, so you only have to do this once.
The Lusha module map
One thing worth knowing: Find a Contact is for single-record, real-time lookups. Bulk Find Contacts is for any list. Calling Find a Contact inside a loop across hundreds of records is slower and less efficient. The bulk modules exist specifically for batch work.
Make gives revenue teams the flexibility to build exactly the enrichment logic their stack needs. This comprehensive guide walks you through two real workflows built with Lusha: inbound lead enrichment that runs automatically on every new HubSpot contact, and a weekly job-change tracker that alerts reps when past buyers move to new companies.
Workflow 1: Auto-enrich every inbound lead in HubSpot
Difficulty: Beginner to intermediate
Build time: 30-45 minutes
Best for: RevOps, marketing ops, sales ops, anyone managing inbound at scale
What it solves: Leads arrive with incomplete data. Reps spend time on manual research before they can work on a record. Routing decisions get made on bad inputs.
What this scenario does
Every time a new contact is created in HubSpot (from a form, a webinar sign-up, an import, or any other source), this scenario fires instantly. It calls Lusha to retrieve verified contact details and firmographic company data, then routes the lead based on ICP fit. High-fit contacts get a Slack alert with a direct dial. Everyone else gets updated quietly.
Scenario structure:
Trigger: HubSpot - Watch Contacts (new contact)
-> Lusha - Find a Contact
-> Router
Path A (ICP match): HubSpot - Update Contact + Slack - Create Message
Path B (all others): HubSpot - Update Contact
-> Error handler: Google Sheets - Add Row (unmatched contacts)
Step-by-step build
Module 1: HubSpot - Watch Contacts
Use an instant trigger (webhook-based). This fires the moment a contact is created, not on a polling schedule. Go to trigger settings, set the event to Contact Created, and make sure email is included in the output. Email is the primary identifier Lusha resolves against.
Why email over other identifiers? Lusha can also match on LinkedIn URL or full name plus company domain and/or name, but email is the most reliable starting point for inbound leads. It is usually the one field that arrives correctly, even when the title, company, and phone number are all missing.
Module 2: Lusha - Find a Contact
Map the email field from Module 1 into the Email input here.
Lusha returns a FULL enriched profile, including COMPREHENSIVE company data. A single call is a two-for-one: you get both contact and company information together, no separate company lookup needed.
Here is what a real response looks like (about me):
{
"contact": {
"error": null,
"isCreditCharged": true,
"data": {
"firstName": "Carolina",
"lastName": "Portela",
"fullName": "Carolina Portela",
"companyId": 33222678,
"contactTags": [],
"emailAddresses": [
{
"email": "[email protected]",
"emailType": "work",
"emailConfidence": "A+"
}
],
"phoneNumbers": [],
"personId": 4389064625,
"location": {
"country": "United States",
"country_iso2": "US",
"continent": "North America",
"is_eu_contact": false,
"non_accent_country": "United States"
},
"jobTitle": {
"title": "Senior Solutions Engineer",
"departments": [
"Engineering & Technical"
],
"seniority": "Senior"
},
"socialLinks": {
"linkedin": "https://www.linkedin.com/in/carolinaportela"
},
"jobStartDate": "2022-10-17",
"previousJob": {
"company": {},
"jobTitle": {}
},
"updateDate": "2026-04-16",
"company": {
"name": "Lusha",
"description": "Lusha is the B2B data intelligence layer that keeps your GTM foundation solid. 1M+ sales, marketing, recruiting, and revenue operations professionals use Lusha to find, enrich, and act on accurate data across 300M+ profiles and 40M+ companies worldwide. Not just verified, fresh business contact details, also firmographics, funding events, technology stack, job changes, promotions, headcount shifts, and buying signals that tell you who to reach, and when.
At the deeper intel level, Lusha uses machine learning models built around your own patterns to surface the accounts that look like your best customers, score opportunities before they surface in your CRM, and generate new pipeline from signals your team would never have caught manually.
All of it is accessible wherever your stack lives: directly through Lusha, via API and MCP, or through integrations with Clay, n8n, Make, Claude, and ChatGPT.
If you're building global go-to-market automations, Lusha is certified under GDPR and CCPA, independently audited by TrustArc and ISO 27701, and validated by ePrivacyseal.
Sign-up for free. Paid plans unlock higher volume, additional signal types, and the full depth of intelligence.
"domains": {
"homepage": "lusha.com",
"email": "lusha.com"
},
"homepageUrl": "https://lusha.com",
"fqdn": "www.lusha.com",
"location": {
"city": "London",
"continent": "Europe",
"country": "United Kingdom",
"state": "England"
},
"companySize": [
201,
500
],
"revenueRange": [],
"social": {
"linkedin": "https://www.linkedin.com/company/lushadata",
"crunchbase": "https://www.crunchbase.com/organization/lusha"
},
"specialities": [
"data accuracy",
"data enrichment",
"lead discovery",
"lead generation",
"prospecting",
"sales enablement",
"sales intelligence",
"software development"
],
"technologies": [
{
"name": "amazon"
},
{
"name": "google analytics"
}
],
"funding": {
"rounds": [
{
"currency": "USD",
"roundAmount": 205000000,
"roundType": "Private Equity Round",
"roundDate": "Nov 10, 2021"
},
{
"currency": "USD",
"roundAmount": 40000000,
"roundType": "Private Equity Round",
"roundDate": "Feb 10, 2021"
}
],
"totalRounds": 2,
"totalRoundsAmount": 245000000,
"currency": "USD",
"isIpo": false,
"lastRoundType": "Private Equity Round",
"lastRoundAmount": 205000000,
"lastRoundDate": "Nov 10, 2021"
},
"intent": null,
"mainIndustry": "Technology, Information & Media",
"subIndustry": "Software Development",
"industryPrimaryGroupDetails": {
"sics": [
{
"sic": 7371,
"description": "Custom computer programming services"
}
],
"naics": [
{
"naics": 541511,
"description": "Custom Computer Programming Services"
}
]
}
}
}
}
}
(Yes, that is the author being enriched by her own product. It works.)
Store the Lusha personId as your contact identifier. Map it to a custom HubSpot property called lusha_contact_id. This is Lusha's stable identifier for this contact. It persists even if the person changes jobs, companies, or email addresses. Signal queries and bulk lookups are more accurate when you use it instead of email.
Module 3: Router
Split the flow based on Lusha's output. Adjust these thresholds to match your actual ICP. Company size comes directly from the Find a Contact response under company.companySize, so no separate company lookup is needed.
- Path A (ICP fit): jobTitle.seniority = "vice president" OR "c-suite" OR "director" AND company.companySize[1] > 200
- Path B (everyone else): update the record, no alert
Module 4: HubSpot - Update Contact (both paths)
Module 5: Slack - Create Message (Path A only)
Drop this into whatever Slack channel your team actually checks:
New ICP lead: {{firstName}} {{lastName}}
{{jobTitle.title}} at {{company.name}}
Direct dial: {{phoneNumbers[0].number}}
Seniority: {{jobTitle.seniority}} | Employees: {{company.companySize[1]}}
HubSpot: {{contactUrl}}
Workflow 2: Weekly job-change tracker for past buyers
Difficulty: Intermediate
Build time: 45-60 minutes
Best for: RevOps, sales ops, AEs managing strategic relationships
What it solves: A past buyer who moves to a new company is your highest-converting outbound target. They know the product, they are building something new, and they are evaluating tools right now. Without tracking, you miss this window entirely.
Scenario structure:
Trigger: Schedule (weekly)
-> Google Sheets - Get Rows (champion list)
-> Iterator
-> Lusha - Get Contact Signals
-> Filter: companyChange array length > 0
-> Router
Path A (VP / C-suite / Founder): Slack alert (high priority) + CRM task
Path B (all other matches): Slack alert + CRM task
-> Google Sheets - Update Row (audit log)
Step-by-step build
Module 1: Schedule trigger
Set to run weekly, every Monday morning, to catch changes from the prior week before outreach begins.
Module 2: Google Sheets - Get Rows
Your champion list is the fuel for this scenario. At a minimum, include:
Don't have Lusha contact IDs yet? Run your champion list through a one-time enrichment scenario using Find a Contact (by email or LinkedIn URL) to retrieve and store the IDs in your sheet. Signal queries are faster and more reliable with the Lusha ID than with email alone.
Module 3: Tools - Iterator
Passes each row through individually. One Lusha call per contact.
Module 4: Lusha - Get Contact Signals
The startDate formula looks back exactly 7 days from each weekly run. You only see new signals each time it runs.
When a job change is detected, Lusha returns:
{
"companyChange": [
{
"personId": "115889",
"currentCompanyId": 8217,
"currentCompanyName": "Callaway Golf",
"currentDepartments": "R&D",
"currentSeniorityLabel": "c-suite",
"currentTitle": "Senior Manager, IT Solutions",
"signalDate": "2025-05-01",
"previousCompanyName": "Previous Corp",
"previousDomain": "nextgen.com",
"currentDomain": "vendavo.com"
}
]
}
Module 5: Filter
Condition: length(companyChange[]) > 0
Only contacts with a detected job change pass through. Everyone else is skipped, and the iterator moves to the next row.
Module 6: Router
- Path A: currentSeniorityLabel = "vice president" OR "c-suite" OR "founder" -> high-priority
- Path B: all other job changes -> standard alert
Module 7: Slack - Create Message
{{contact_name}} just moved.
From: {{companyChange[0].previousCompanyName}}
To: {{companyChange[0].currentTitle}} at {{companyChange[0].currentCompanyName}}
Signal date: {{companyChange[0].signalDate}} | Owner: {{owner_email}}
Path A adds: High priority: reach out within 48 hours.
Module 8: HubSpot or Salesforce - Create Task
- Assign to: owner_email
- Due date: {{formatDate(addDays(now; 2); "YYYY-MM-DD")}}
- Description: "{{contact_name}} moved to {{companyChange[0].currentTitle}} at {{companyChange[0].currentCompanyName}}. Follow up."
Module 9: Google Sheets - Update Row
Write back:
- last_signal_date = {{companyChange[0].signalDate}}
- new_company = {{companyChange[0].currentCompanyName}}
- new_title = {{companyChange[0].currentTitle}}
- signal_type = companyChange
This keeps the sheet current and prevents duplicates next week.
Ready to build?
Both workflows are available as pre-built templates in the Make x Lusha template library. Grab the template, drop in your field mappings, and you're running in under an hour.
- Get the Auto-Enrich HubSpot Contacts template
- Get the Auto-Track All Contact Signals template
- Sign up for Lusha for free and generate your API key
A few things that will save you time
1. Define the problem before you open the scenario builder. "Our reps spend 20 minutes manually enriching every lead before they can call" is a brief you can build from. "We should automate enrichment" is a direction that leads nowhere specific. The clearer the starting point, the faster the build.
2. Map your data model first. Know what fields you have, what fields you need, and what the scenario should do when a field comes back empty. Lusha returns null for unmatched fields within a record, and a 404 status when no record is found at all. Both need handling before production.
3. Test on real records, not placeholder data. [email protected] will not surface the edge cases that will break your scenario in production. Pull five real contacts from your CRM. The problems are already in your existing data.
4. Clone before you touch anything live. Make lets you duplicate a scenario in one click. Before editing anything running in production, clone it and add a date to the name.
5. Every alert needs an owner and a due date. A Slack message with no task assigned and no named owner is not a workflow. It fires and disappears. Decide who acts on it and by when before you build.
Lusha is an official Make partner. The Lusha app is verified and maintained by Lusha.
Related guides
Tool and strategies modern teams need to help their companies grow.

Sales
How to build an investment-grade company scoring system with Make and alternative data
Discover how to use Make to transform raw alternative data into a structured, explainable company scoring system for investing, corp dev, or GTM prioritization.

Robert Fon
March 4, 2026

Information Technology
How to build an AI agent to qualify your affiliates (and save 70% of your time)
Learn how to use Make AI Agents to create your own affiliate qualifying assistant. Save time, focus on building relationships, and capitalize on more opportunities.

Natalia Mrazova
September 17, 2025

How-to guides
From disorganized survey submissions to actionable insight with Make and Rows
Discover how to automatically transform open-ended survey responses into categorized insights, enrich feedback with company data, and trigger real-time notifications without spending hours on manual analysis.

Alberto Manassero
December 4, 2025

How-to guides
Client portal: How no-code tools can help you build one
Build a client portal that connects data, automations, and clients in a collaborative space that enhances transparency.

Madhan Kanagavel
December 17, 2025

.png)


