This article contains affiliate links. If you buy through them, we may earn a commission at no extra cost to you.
B2B Prospecting Automation: Enrich Leads and Push to Your CRM with Lusha and n8n
Manual prospecting is one of the biggest time drains in B2B sales. Copying names from LinkedIn, hunting for email addresses, verifying phone numbers, and then entering everything into a CRM by hand — it's slow, error-prone, and pulls your team away from actual selling. The good news: with the right automation stack, you can eliminate almost all of that friction.
This guide shows you how to build a workflow that pulls prospect data, enriches it with verified B2B contact details from Lusha — including GDPR-compliant email addresses and direct dials — and then pushes the finished records straight into your CRM, all orchestrated by n8n.
What You Need Before You Start
- A Lusha account with API access (available on paid plans)
- n8n — self-hosted or via n8n Cloud
- A CRM with an API — HubSpot, Pipedrive, Salesforce, or any CRM n8n supports natively
- A source list of target companies or LinkedIn URLs (CSV, Google Sheet, or Airtable table)
Why Lusha for Lead Enrichment?
Lusha is a B2B data provider that gives sales teams access to verified contact and company information — direct phone numbers, business email addresses, job titles, and firmographic data. Crucially for European teams, Lusha operates with a GDPR-compliant data model, meaning the data it surfaces is sourced and processed in accordance with applicable privacy regulations.
Instead of your SDRs spending hours researching each contact manually, Lusha's API lets you retrieve that data programmatically in seconds. Combined with n8n's workflow automation, every new prospect in your pipeline can be enriched and CRM-ready within moments of being identified.
The Workflow Architecture
Here's the high-level flow you'll build in n8n:
- Trigger — A schedule trigger runs the workflow (e.g., every morning at 8:00), or a webhook fires when a new row is added to a Google Sheet.
- Read source data — The workflow reads a list of target prospects (name + company, or LinkedIn URL) from a Google Sheet, Airtable, or Notion database.
- Call the Lusha API — For each prospect, an HTTP Request node calls Lusha's Person or Company API to retrieve verified contact data.
- Transform and validate — A Function node cleans the response, handles missing fields, and formats the data to match your CRM's schema.
- Push to CRM — A native n8n node (HubSpot, Pipedrive, Salesforce, etc.) creates or updates the contact record in your CRM.
- Log results — Optionally write enrichment results back to your source sheet so you always know what was processed.
Step-by-Step: Building the n8n Workflow
Step 1 — Set Up the Trigger
In n8n, add a Schedule Trigger node and configure it to run daily or at whatever cadence matches your prospecting rhythm. If you want real-time enrichment, use a Webhook trigger and call it from your lead capture form or LinkedIn scraper output instead.
Step 2 — Read Your Prospect List
Add a Google Sheets node (or Airtable / Notion node) set to Read Rows. Your sheet should have at minimum: first_name, last_name, company_name. A LinkedIn profile URL column is optional but improves Lusha's match rate significantly.
Step 3 — Enrich Each Lead via Lusha API
Add an HTTP Request node configured as follows:
- Method: POST
- URL:
https://api.lusha.com/person - Authentication: Header Auth — Key:
api_key, Value: your Lusha API key - Body (JSON): pass
firstName,lastName, andcompanyfrom the previous node using n8n expressions
Lusha will return a JSON object with available email addresses, phone numbers, job title, LinkedIn URL, and company details. Use a Split In Batches node upstream if your list is large, to respect Lusha's rate limits.
Step 4 — Transform the Data
Add a Code node (JavaScript) to extract the fields you care about and handle cases where Lusha returns no match:
const item = $input.first().json;
const emails = item.emails || [];
const phones = item.phones || [];
return [{
json: {
email: emails[0]?.email || null,
phone: phones[0]?.number || null,
title: item.jobTitle || null,
company: item.company?.name || null,
linkedin: item.linkedInUrl || null,
enriched: emails.length > 0
}
}];
Step 5 — Push to Your CRM
Add your CRM node — for example HubSpot → Create/Update Contact. Map the fields from the previous step. Use an IF node before this step to skip records where enriched is false, so you don't push empty contacts into your CRM.
Step 6 — Log Back to the Source Sheet
Add a final Google Sheets → Update Row node to write an enriched_at timestamp and a crm_id back to your source sheet. This prevents duplicate processing on the next run.
Handling Errors and Edge Cases
- Rate limits: Lusha's API has request limits per minute. Use n8n's Split In Batches node with a Wait node (e.g., 1 second between batches of 10) to stay within limits.
- No match found: Always handle the case where Lusha returns an empty result. Route these records to a separate "needs manual review" sheet rather than dropping them silently.
- Duplicate contacts: Use your CRM's upsert capability (create if not exists, update if found) based on email or LinkedIn URL as the unique key.
- GDPR compliance: Only enrich contacts who represent a legitimate business interest and are reachable in a B2B context. Lusha's data is sourced with GDPR compliance in mind, but your outreach process must be too.
What This Workflow Saves You
A typical SDR spends 20–30 minutes researching and manually entering a single contact. At 50 leads per week, that's 25 hours of manual work — roughly one full work week every month per rep. With this n8n + Lusha workflow running automatically, that same batch of 50 leads can be enriched and pushed to your CRM in under two minutes.
Extending the Workflow
- Add a Slack notification node to alert your sales team when high-value accounts (e.g., companies with 500+ employees) are enriched.
- Connect an email automation tool to trigger a personalized outreach sequence as soon as the contact hits your CRM.
- Use n8n's AI nodes to generate a personalised opening line for each prospect based on their job title and company.
- Add a LinkedIn enrichment step using a secondary data source to fill gaps where Lusha has no match.
Summary
Combining Lusha's verified B2B contact data with n8n's flexible workflow automation gives you a prospecting pipeline that runs itself. Your sales team wakes up to a CRM full of enriched, ready-to-contact leads — without anyone having to copy-paste a single row. The workflow is fully customisable, works with any CRM n8n supports, and can scale from 10 leads a day to thousands without touching the configuration.
If you want to stop wasting time on manual lead research, you can build this exact enrichment workflow via n8n — including 400+ integrations and a free self-hosting option — to push verified, CRM-ready B2B contacts to your pipeline automatically.