> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lindy.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Lead Enrichment

> Turn raw names and emails into fully enriched, ready-to-sell prospects with LinkedIn profiles and company insights.

<div style={{ display: 'flex', justifyContent: 'center', margin: '2rem 0' }}>
  <div className="video-card">
    <video src="https://mintcdn.com/lindyai/Pb4BV8JAHp4lkO2R/lindy-brand-assets/sl_lead_enrichment.mp4?fit=max&auto=format&n=Pb4BV8JAHp4lkO2R&q=85&s=964fd7b448e3ed2ad01a43c886c67557" width="600" autoPlay muted loop playsInline style={{ display: 'block', width: '100%', borderRadius: '16px' }} data-path="lindy-brand-assets/sl_lead_enrichment.mp4" />
  </div>
</div>

## Quick Overview

Drop a lead's basic details into Google Sheets and let Lindy:

* **Search** for contact details using People Data Labs
* **Find** their LinkedIn profile URL through multiple sources
* **Scrape** full LinkedIn profile data when found
* **Research** company news, funding, and buying signals
* **Update** your sheet with all enriched data automatically

You can use the [lead enrichment template](https://chat.lindy.ai/home/?templateId=687575ad808fe9c345b054cb) to get started.

## Setting Up Your Lead Enrichment Flow

### Step 1: Configure Your Spreadsheet Trigger

<Frame>
  <img src="https://mintcdn.com/lindyai/XRHjWZiSf5VPQvY1/lindy-brand-assets/lead-enrich-trigger.png?fit=max&auto=format&n=XRHjWZiSf5VPQvY1&q=85&s=5d05165f7c8ac0693ab3053b2d5fdfd7" alt="New row trigger setup" width="1646" height="734" data-path="lindy-brand-assets/lead-enrich-trigger.png" />
</Frame>

1. Select `Google Sheets – New Row Added` as your trigger
2. Connect your spreadsheet with columns for:
   * Full Name (required)
   * Company
   * Role
   * Email
   * LinkedIn URL
   * Background
   * Company News
3. Paste your spreadsheet link in the trigger settings

**Google Sheets integrations always interpret first row as headers.**

### Step 2: Search with People Data Labs

<Frame>
  <img src="https://mintcdn.com/lindyai/XRHjWZiSf5VPQvY1/lindy-brand-assets/lead-enrich-PDL.png?fit=max&auto=format&n=XRHjWZiSf5VPQvY1&q=85&s=c5b521359df1a1ea74de79d0d9f74448" alt="People Data Labs search" width="1650" height="826" data-path="lindy-brand-assets/lead-enrich-PDL.png" />
</Frame>

Use `People Data Labs – Search for People` action:

Recommend limiting results to `2` as each person queried consumes credits.

### Step 3: Double Down on LinkedIn Search

<Frame>
  <img src="https://mintcdn.com/lindyai/XRHjWZiSf5VPQvY1/lindy-brand-assets/lead-enrich-search-internet.png?fit=max&auto=format&n=XRHjWZiSf5VPQvY1&q=85&s=6aacea1f0d23476f44f5aa40c4c7ad91" alt="Search the internet for LinkedIn" width="1662" height="766" data-path="lindy-brand-assets/lead-enrich-search-internet.png" />
</Frame>

Add `Search the Internet` as a backup method:

```
site:linkedin.com/in [Full Name] [Company Name]
```

This ensures you catch LinkedIn profiles that People Data Labs might miss.

### Step 4: Check If LinkedIn Was Found

<Frame>
  <img src="https://mintcdn.com/lindyai/XRHjWZiSf5VPQvY1/lindy-brand-assets/lead-enrich-condition.png?fit=max&auto=format&n=XRHjWZiSf5VPQvY1&q=85&s=1aa36682470f351f82ecba2cc5bb922f" alt="LinkedIn found condition" width="2292" height="1252" data-path="lindy-brand-assets/lead-enrich-condition.png" />
</Frame>

Add a `Condition` step:

* **LinkedIn found**: If we have a LinkedIn URL from either search
* **LinkedIn not found**: If both searches came up empty

This branches your flow based on whether you can scrape LinkedIn data.

### Step 5: Scrape LinkedIn Profile (If Found)

<Frame>
  <img src="https://mintcdn.com/lindyai/XRHjWZiSf5VPQvY1/lindy-brand-assets/lead-enrich-LI.png?fit=max&auto=format&n=XRHjWZiSf5VPQvY1&q=85&s=9a10a244d1ba52d8f7b9b040d58dd115" alt="LinkedIn profile scraping" width="1610" height="904" data-path="lindy-brand-assets/lead-enrich-LI.png" />
</Frame>

If LinkedIn was found, use `LinkedIn – Get Profile by URL`:

* Input: The LinkedIn URL from previous steps
* Extracts: Full work history, skills, education, bio
* Wait for "After results available" before proceeding

### Step 6: Research with Perplexity

<Frame>
  <img src="https://mintcdn.com/lindyai/XRHjWZiSf5VPQvY1/lindy-brand-assets/lead-enrich-perplexity.png?fit=max&auto=format&n=XRHjWZiSf5VPQvY1&q=85&s=ecc6e6a302354878612a60641d1aa39a" alt="Perplexity company research" width="1906" height="954" data-path="lindy-brand-assets/lead-enrich-perplexity.png" />
</Frame>

Use `Search Perplexity` for company intelligence:

```
Tell me about [Full Name] at [Company Name] and any recent company news, funding, or major initiatives in the last 6 months.
```

### Step 7: Update Your Spreadsheet

<Frame>
  <img src="https://mintcdn.com/lindyai/XRHjWZiSf5VPQvY1/lindy-brand-assets/lead-enrich-update-row.png?fit=max&auto=format&n=XRHjWZiSf5VPQvY1&q=85&s=0ebac2dcbdfa7144cd3f91a78859e905" alt="Update spreadsheet row" width="2020" height="1152" data-path="lindy-brand-assets/lead-enrich-update-row.png" />
</Frame>

Use `Google Sheets – Update Row`:

* Match on the row from `New Row Added` trigger
* Update all enriched fields:
  * Full Name (required)
  * Company
  * Role
  * Email
  * LinkedIn URL
  * Background
  * Company News

## Advanced Features

| Feature             | What it does                                         |
| ------------------- | ---------------------------------------------------- |
| Bulk Processing     | Process group of leads by importing CSV              |
| Duplicate Detection | Check if lead already exists before enriching        |
| Lead Scoring        | Calculate score based on seniority and company fit   |
| CRM Sync            | Push enriched data directly to HubSpot or Salesforce |
| Alert on Hot Leads  | Slack notification for high-value prospects          |

<div style={{ display: 'flex', justifyContent: 'center', margin: '2rem 0' }}>
  <div className="video-card">
    <video src="https://mintcdn.com/lindyai/D9TqHMLRoGnnvrcz/lindy-brand-assets/CSV-UploadArc.mp4?fit=max&auto=format&n=D9TqHMLRoGnnvrcz&q=85&s=ff2564ebcc6fac4fbf381c2f9eaecb0a" width="600" autoPlay muted loop playsInline style={{ display: 'block', width: '100%', borderRadius: '16px' }} data-path="lindy-brand-assets/CSV-UploadArc.mp4" />
  </div>
</div>

<p style={{ textAlign: 'center', fontSize: '0.9rem', color: '#666', marginTop: '0.5rem' }}>
  Watch the bulk CSV upload feature in action above
</p>

## Best Practices

<AccordionGroup>
  <Accordion title="Set Up Your Columns First">
    Create all output columns in your sheet before starting — your agent needs them to exist.
  </Accordion>

  <Accordion title="Use Email When Possible">
    People Data Labs works best with email addresses for accurate matching.
  </Accordion>

  <Accordion title="Monitor API Usage">
    Both People Data Labs and LinkedIn scraping have usage limits — process in batches.
  </Accordion>

  <Accordion title="Keep Data Fresh">
    Set up a monthly re-enrichment for key accounts to catch job changes.
  </Accordion>
</AccordionGroup>

## Next Steps

<CardGroup cols={2}>
  <Card title="Multi-Channel Outbound" href="/use-cases/sales/multi-channel-outbound" icon="chart-network">
    Use enriched data for personalized outreach
  </Card>

  <Card title="Email Negotiation" href="/use-cases/sales/email-negotiation" icon="handshake">
    Negotiate deals with enriched prospect intel
  </Card>

  <Card title="Agent Steps" href="/fundamentals/lindy-101/ai-agents" icon="brain-circuit">
    Build intelligent lead research workflows
  </Card>

  <Card title="Knowledge Base" href="/fundamentals/lindy-101/knowledge-base" icon="database">
    Store enriched data for future use
  </Card>
</CardGroup>
