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

# Waterfall Email Enrichment

> Discover professional email addresses for your contacts using person and company info, at scale, with automated enrichment.

## What It Does

* Finds email addresses for people using first/last name + company info.
* Preserves all input columns while adding `contact_email_address` and `contact_email_address_provider`.
* Supports template variables for flexible per-row enrichment (e.g., `@first_name`, `@company_domain`).
* Processes data asynchronously with webhook callbacks for large datasets.
* Handles column name conflicts automatically with numeric suffixes to avoid overwriting existing data.

***

## 🏁 Getting Started

<Frame>
  <img src="https://mintlify.s3.us-west-1.amazonaws.com/nurturev/images/Waterfall%20Email%20Enrichment%20config%20screenshot.png" alt="Waterfall Email Enrichment config screenshot" style={{ borderRadius: '0.5rem', width: '100%', margin: '1.5rem 0' }} />
</Frame>

<Steps>
  <Step title="Connect Input Data">Attach previous node output containing columns for person and company references.</Step>
  <Step title="Map Person Reference">Select first name and last name columns using template variables (e.g., `@first_name`, `@last_name`).</Step>
  <Step title="Map Company Reference">Select either company name, domain, or both using template variables (e.g., `@company_name`, `@domain`).</Step>
  <Step title="Run Node">Execute in batch. Use Test Mode if desired to preview a small subset of results.</Step>
  <Step title="Review Outputs">Access enriched email addresses and provider information in S3 (Parquet + CSV).</Step>
</Steps>

***

## Inputs

### 🛠️ Required Fields

* **Person Reference (✅)**\
  Contains first and last name identifiers for email lookup.\
  *Why it matters:* Provides the primary identifiers for finding the correct email address.

* **Company Reference (✅)**\
  Company name and/or domain to improve email accuracy. At least one field is required.\
  *Why it matters:* Helps disambiguate common names and improve enrichment precision.

***

## Output

* Adds columns:\
  `contact_email_address`, `contact_email_address_provider`, `contact_email_address_status`
* Preserves all original input columns.
* Column conflicts resolved automatically with numeric suffixes (e.g., `contact_email_address_1`).

***

## How It Works

1. Validate settings: person and company references, template variable syntax.
2. Connect previous node output.
3. Resolve template variables for each row (`@first_name`, `@last_name`, `@company_domain`).
4. Receive results map back to original rows.
5. Merge enriched data with input columns and handle column name conflicts.

***

## 🚀 Example Use Cases & Prompts

| Use Case                        | Setup or Prompt Example                                                                  |
| ------------------------------- | ---------------------------------------------------------------------------------------- |
| Enrich lead list                | Use `@first_name`, `@last_name`, and `@company_domain` to find emails for cold outreach. |
| CRM cleanup                     | Add missing emails to contacts for improved campaign targeting.                          |
| Multi-source contact enrichment | Combine company name + domain for better accuracy across datasets.                       |

***

## ✨ Pro Tips

<Tip>
  * Use both company name and domain when available for higher match confidence.
  * Test with a small subset in Test Mode before running large datasets.
  * Rename output columns (`EmailAddress`, `Provider`, `EmailStatus`) for cleaner downstream reporting.
</Tip>

***

## ⚠️ Important Considerations

<Warning>
  * Credits are consumed per successful enrichment only. Failed lookups do not consume credits.
  * Large datasets will take considerable amount of time.
</Warning>

***

## 🛠 Troubleshooting & Gotchas

| Symptom                       | Likely Cause                      | Quick Fix                                          |
| ----------------------------- | --------------------------------- | -------------------------------------------------- |
| Blank `contact_email_address` | No match for person/company input | Verify column mapping and template variable syntax |
| Unexpected `_1` suffixes      | Column name conflicts with input  | Rename outputs for clarity                         |

***

## 📝 FAQ

<AccordionGroup>
  <Accordion title="Can I use both company name and domain?">
    Yes — using both increases accuracy and reduces false positives.
  </Accordion>

  <Accordion title="What happens if an email isn’t found?">
    The row remains in output with `contact_email_address` empty. No credits are consumed.
  </Accordion>

  <Accordion title="How does Test Mode work?">
    Test Mode processes a small subset for fast validation without consuming full credits.
  </Accordion>
</AccordionGroup>

***

## 💰 Pricing

| Action                      | Credit Cost       |
| --------------------------- | ----------------- |
| Successful email enrichment | 3 credits per row |
| Failed enrichment           | 0 credits         |

<Note>
  Credits are only charged when an email address is successfully returned. Batch processing optimizes usage.
</Note>

***

<p style={{ fontSize: '1rem', fontWeight: 'bold', marginTop: '1.5rem' }}>
  Drop this node into your Play to automatically enrich your contacts with verified email addresses—fast and at scale. 🚀
</p>
