Auto-enrich new leads with Lusha inside Salesforce Agentforce

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 Salesforce org to see live results.

Every inbound lead that hits Salesforce arrives with a name, an email, and a company — and not much else. A rep has to open the record, cross-reference LinkedIn, check the CRM, and manually piece together enough context to know whether the lead is worth calling. This workflow removes that step entirely. The moment a new Lead record is created in Salesforce, an Agentforce agent calls the Lusha API to enrich it — verified email, direct dial, current title, seniority, department, and full company firmographics — and writes everything back to the Salesforce record before the rep opens it. The lead arrives pre-enriched. The rep arrives informed.

Requires: Lusha API key · Salesforce Flow Builder · Salesforce admin access

How it works

The workflow runs automatically every time a new Lead record is created in Salesforce. It calls the Lusha API to enrich the contact and company, writes the enriched data back to the Lead record, and logs the enrichment timestamp so you always know when data was last verified.

1
Trigger — New Lead created in Salesforce
Salesforce Flow fires the moment a new Lead record is created — from a web form, a manual entry, a CRM import, or an inbound integration. The workflow runs on every new lead regardless of source.
2
Action — Call Lusha API to enrich contact
The Flow calls Lusha’s /v2/contacts/search endpoint with the lead’s email address or name and company. Lusha returns the verified contact profile — current title, seniority, department, verified email, direct dial, and mobile number.
3
Action — Call Lusha API to enrich company
A second call to Lusha’s /v2/companies/search endpoint enriches the company — industry, employee count, revenue range, funding stage, HQ location, and tech stack. Both calls run in sequence from the same Flow.
4
Action — Write enriched data back to Salesforce
The Flow maps Lusha’s response fields to your Salesforce Lead fields and updates the record. Only empty fields are written by default — existing data is not overwritten unless you configure it to do so.
5
Output — Enriched Lead record, ready for the rep
The Lead record now contains verified contact and company data. A custom field logs the Lusha enrichment date so you always know when the data was last confirmed. The rep opens a complete record, not a blank one.

What you’ll get back

A Lead record that arrives looking like this — before the rep opens it:

Before Lusha enrichment

Salesforce fieldValue
First nameR.
Last nameM.
Emailr.m@[company].com (unverified)
Titleblank
Phoneblank
Company[Company]
Industryblank
Employeesblank
Lusha enrichedblank

After Lusha enrichment

Salesforce fieldValue
First nameR.
Last nameM.
Emailr.m@[company].com ✓ verified
TitleVP of Sales
SeniorityVP
DepartmentSales
Direct dial+1 512 555 ••••
Mobile+1 512 555 ••••
Company[Company]
IndustryRevenue Intelligence / SaaS
Employees280–320
Revenue range$10M–$50M
Funding stageSeries B
HQAustin, TX
Lusha enriched[date] ✓

Build it

Step 1 — Get your Lusha API key

Log in to your Lusha account, go to Settings → API, and copy your API key. Full API documentation is at docs.lusha.com/guides.

Step 2 — Create a Named Credential in Salesforce

In Salesforce Setup, go to Security → Named Credentials → New. Set the URL to https://api.lusha.com, authentication protocol to “No Authentication” (you’ll pass the API key in the header), and save. This keeps your API key secure and out of the Flow directly.

Step 3 — Add custom fields to the Lead object

In Salesforce Setup, go to Object Manager → Lead → Fields & Relationships. Add the following custom fields to store Lusha data:

Field labelField typeAPI name
Lusha — Direct dialPhoneLusha_Direct_Dial__c
Lusha — MobilePhoneLusha_Mobile__c
Lusha — SeniorityTextLusha_Seniority__c
Lusha — DepartmentTextLusha_Department__c
Lusha — Funding stageTextLusha_Funding_Stage__c
Lusha — Employee countNumberLusha_Employee_Count__c
Lusha — Revenue rangeTextLusha_Revenue_Range__c
Lusha — Enriched dateDate/TimeLusha_Enriched_Date__c

Step 4 — Build the Flow in Salesforce Flow Builder

In Salesforce Setup, go to Process Automation → Flows → New Flow → Record-Triggered Flow.

  • Object: Lead
  • Trigger: A record is created
  • Condition: Run always (or add an entry condition if you want to filter by lead source)
  • Action: Add an HTTP Callout action — select your Named Credential, set the endpoint to /v2/contacts/search, method POST, and pass the lead email in the request body
  • Parse the response: map the returned fields to your Lead custom fields
  • Add a second HTTP Callout to /v2/companies/search for company enrichment
  • Add an Update Records element to write all enriched values back to the Lead
  • Save and activate

Step 5 — Test with a live lead

Create a test Lead record with a known email address. Open the record after 30 seconds and confirm the Lusha fields are populated. Check the Flow debug log if fields are empty — the most common issue is an incorrect API key header or a mismatched field API name. Full troubleshooting guidance at docs.lusha.com/guides.

API reference

Contact enrichment endpoint

POST https://api.lusha.com/v2/contacts/search

Headers:
  api_key: YOUR_LUSHA_API_KEY
  Content-Type: application/json

Request body:
{
  "emailAddress": "{{Lead.Email}}"
}

Key response fields to map:
  data.jobTitle         → Title
  data.seniority        → Lusha_Seniority__c
  data.department       → Lusha_Department__c
  data.phoneNumbers[0]  → Lusha_Direct_Dial__c
  data.phoneNumbers[1]  → Lusha_Mobile__c
  data.emailAddress     → Email (if empty)

Company enrichment endpoint

POST https://api.lusha.com/v2/companies/search

Headers:
  api_key: YOUR_LUSHA_API_KEY
  Content-Type: application/json

Request body:
{
  "name": "{{Lead.Company}}"
}

Key response fields to map:
  data.industry           → Industry
  data.employeeCount      → Lusha_Employee_Count__c
  data.revenueRange       → Lusha_Revenue_Range__c
  data.fundingStage       → Lusha_Funding_Stage__c
  data.hqLocation.city    → City
  data.hqLocation.country → Country

Full API documentation: docs.lusha.com/guides

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 Salesforce org to see live results.

Built by: Lusha
Time to build: 30 min
Difficulty: Easy
Tools: Lusha, Salesforce
Type: Template

FAQ

  • Do I need a specific Lusha plan to access the API?

    The Lusha API is available on Scale and Enterprise plans. If you’re on a lower plan and want to build this workflow, contact your Lusha account manager or visit lusha.com/pricing to check your current plan. The API key is available in your Lusha account under Settings → API once your plan includes API access.

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

    If Lusha returns no match for the email address or name and company combination, the Flow completes without writing any enrichment data and logs a “no match” status to the Lusha_Enriched_Date__c field. The Lead record stays as-is. The rep sees the record without enrichment data and can manually trigger a lookup from within Salesforce using the Lusha native app if needed. No credits are consumed for a no-match result.

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

    By default the Flow is configured to only write to empty fields — it will not overwrite a Title field that already has a value. If you want the workflow to always write Lusha-verified data regardless of existing values, change the Update Records element to overwrite all mapped fields. For most teams, the default “fill empty fields only” behavior is the right starting point — it respects manual data entry while ensuring new leads arrive pre-enriched.

  • How many Lusha credits does this workflow consume?

    Each successful contact enrichment consumes one Lusha credit. Each company enrichment is included and does not consume an additional credit. For a team receiving 500 inbound leads per month, this workflow consumes up to 500 credits monthly. If you want to filter which leads trigger the enrichment — for example, only leads from specific sources or industries — add an entry condition to the Flow to reduce unnecessary credit consumption on leads that are clearly out of ICP before enrichment runs.

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

    Yes — but it requires a different Flow configuration. Instead of a Record-Triggered Flow on creation, build a Scheduled Flow that runs on a cadence — daily or weekly — and queries for Lead records where Lusha_Enriched_Date__c is empty or older than 90 days. The same API calls run for each record in the batch. This is the basis for the Refresh stale CRM records workflow — a separate workflow in the Lusha for Salesforce series that covers scheduled enrichment at scale.

Ready to run this?

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