> ## Documentation Index
> Fetch the complete documentation index at: https://lindyai-docs-email-alerts-update.mintlify.site/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-docs-email-alerts-update/ZiOLJO-F8OhST6ui/lindy-brand-assets/sl_lead_enrichment.mp4?fit=max&auto=format&n=ZiOLJO-F8OhST6ui&q=85&s=d6ae9b324c3e0c87b6e12904b2de3314" 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-docs-email-alerts-update/-vvlv0JJw5SVxGtm/lindy-brand-assets/lead-enrich-trigger.png?fit=max&auto=format&n=-vvlv0JJw5SVxGtm&q=85&s=7e46eb539fe32a44f6ed566e69ec129a" 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-docs-email-alerts-update/-vvlv0JJw5SVxGtm/lindy-brand-assets/lead-enrich-PDL.png?fit=max&auto=format&n=-vvlv0JJw5SVxGtm&q=85&s=06dbc797dcb76973131021e8e37f7bb8" 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-docs-email-alerts-update/-vvlv0JJw5SVxGtm/lindy-brand-assets/lead-enrich-search-internet.png?fit=max&auto=format&n=-vvlv0JJw5SVxGtm&q=85&s=32f85c84fcfbadefca932aa02b394ab9" 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-docs-email-alerts-update/-vvlv0JJw5SVxGtm/lindy-brand-assets/lead-enrich-condition.png?fit=max&auto=format&n=-vvlv0JJw5SVxGtm&q=85&s=f11a95c38ccf537503d3d4b14019742d" 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-docs-email-alerts-update/-vvlv0JJw5SVxGtm/lindy-brand-assets/lead-enrich-LI.png?fit=max&auto=format&n=-vvlv0JJw5SVxGtm&q=85&s=e62b2a44a9d98ccdd2be84e1bbc7527f" 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-docs-email-alerts-update/-vvlv0JJw5SVxGtm/lindy-brand-assets/lead-enrich-perplexity.png?fit=max&auto=format&n=-vvlv0JJw5SVxGtm&q=85&s=cf73e19fff9c8f9fc5c648024297c700" 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-docs-email-alerts-update/-vvlv0JJw5SVxGtm/lindy-brand-assets/lead-enrich-update-row.png?fit=max&auto=format&n=-vvlv0JJw5SVxGtm&q=85&s=951d284daf4593ec2f59d9e58bb5ed63" 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-docs-email-alerts-update/K6U__iECWJrJWK0E/lindy-brand-assets/CSV-UploadArc.mp4?fit=max&auto=format&n=K6U__iECWJrJWK0E&q=85&s=7423c7c74f62697af2a9b407f4070546" 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>
