# Enrichment

> Fill missing contact data with waterfall enrichment - emails, phones, job titles, and company info from multiple data providers.

Source: https://docs.graph8.com/ai-features/enrichment/

Enrichment fills in missing contact data - emails, phone numbers, job titles, company info - by querying multiple data providers in sequence until the data is found. This waterfall approach maximizes match rates while minimizing credit spend.

## How Enrichment Works

graph8 uses a **waterfall** strategy: when you enrich a contact, the system queries Provider A first. If it doesn't find the data, it tries Provider B, then Provider C, and so on. You only pay for the provider that returns a match.

## Enriching Contacts

### Single Contact

1. Open any contact record
2. Click **Enrich**
3. graph8 runs the waterfall and fills in missing fields
4. Review the enriched data

### Bulk Enrichment

1. Go to **Data → Contacts** or any contact list
2. Select contacts (or select all)
3. Click **Enrich** from the bulk actions menu
4. Confirm the credit cost estimate
5. Enrichment runs in the background - results appear as they complete

### From the Staging Table

1. Import contacts into a **Staging Table** (from search, file upload, or CRM sync)
2. Click **Enrich** on the staging table toolbar
3. Select which fields to enrich (email, phone, company, etc.)
4. Review enriched data before committing to your CRM

## Staging Tables

Staging tables are the enrichment workbench - a spreadsheet-like workspace where you import, enrich, transform, and review data before saving it to your CRM.

### Creating a Staging Table

1. Go to **Data → Workbench**
2. Click **Create Table**
3. Name your table and choose a source:
   - **Search results** - import from a people or company search
   - **File upload** - CSV, Excel, or paste from clipboard
   - **CRM sync** - pull existing contacts for re-enrichment
   - **Find People** - discover contacts at target companies

### Working with Staging Data

| Action | What It Does |
|--------|-------------|
| **Add columns** | Add custom columns for any data point |
| **Enrich** | Run waterfall enrichment on selected rows |
| **AI columns** | Use AI formulas to generate computed columns (see below) |
| **Export to list** | Save enriched contacts to a graph8 list |
| **Send to sequence** | Push contacts directly into an outreach sequence |

### Auto-Enrich

Toggle auto-enrichment on a staging table so new rows are enriched automatically as they arrive. Configure which fields to enrich and set daily credit limits.

## AI Formulas

AI formulas let you create computed columns powered by AI. Instead of static formulas, you describe what you want in plain language.

### Creating an AI Formula

1. Open a staging table
2. Click **Add Column → AI Formula**
3. Describe what you want: "Summarize this person's role in one sentence" or "Score this lead 1-10 based on ICP fit"
4. Select which input columns the AI should use
5. Click **Generate** - the formula runs across all rows

### Use Cases

- **ICP scoring** - score contacts against your ideal customer profile
- **Persona classification** - categorize contacts by buyer persona
- **Summary generation** - create one-line summaries of each contact
- **Data cleanup** - standardize job titles, fix formatting, deduplicate

### Confidence Scoring

AI formula outputs include a confidence score (0-100). Use this to filter low-confidence results before acting on the data - for example, only export rows with confidence above 70.

### AI Presets

graph8 includes built-in AI presets for common enrichment tasks like intent classification, lead scoring, and company analysis. Browse presets in the AI column configuration panel, or save your own formulas as templates for reuse.

## Waterfall Provider Configuration

Configure which data providers the waterfall uses and in what order:

1. Go to **Settings → Enrichment**
2. View available providers (Apollo, Hunter, Clearbit, Prospeo, Dropcontact, and more)
3. Set the provider order - graph8 tries providers top-to-bottom
4. Configure authentication credentials per provider
5. Set rate limits and daily usage caps

The waterfall stops as soon as a provider returns a match, so order matters - put your highest-quality providers first.

## Find People

Find People discovers contacts at specific companies based on your criteria.

1. Open a staging table
2. Click **Find People**
3. Configure filters:
   - **Job titles** - target specific roles
   - **Seniority levels** - VP, Director, Manager, etc.
   - **Departments** - Sales, Marketing, Engineering, etc.
   - **Company** - which companies to search
4. Click **Search** - results populate the staging table
5. Enrich the results to fill in emails and phone numbers

## Routing Rules

Routing rules automate what happens after enrichment completes. Define conditions and actions to route enriched contacts automatically.

| Action | Example |
|--------|---------|
| **Add to list** | Enriched contacts with valid email go to "Outbound Ready" list |
| **Add to sequence** | High-ICP contacts auto-enroll in a sales sequence |
| **Tag** | Contacts from target industries get tagged automatically |

## Credit Costs

Enrichment consumes credits. Different providers and data types have different costs:

- **Email lookup** - 1 credit per match
- **Phone lookup** - 1 credit per match
- **Company enrichment** - 1 credit per match
- **Find People** - 1 credit per contact discovered

Before bulk enrichment runs, graph8 shows a credit cost estimate. You can validate available credits before committing.

> **Tip:**
> Start with email enrichment on your highest-priority lists. Enrich phone numbers only for contacts you plan to call - this saves credits. Use AI formulas to score contacts before enriching, so you spend credits on the best prospects first.

## Dynamic Columns

Create computed columns that derive values from existing fields without AI:

- **Concatenation** - combine first name + last name into a full name column
- **Extraction** - pull domain from email address
- **Formatting** - standardize phone numbers, capitalize names

Dynamic columns update automatically when source data changes.

## Job Management

Track enrichment progress in real time:

- **Progress bar** - see how many contacts have been processed
- **Per-record status** - which contacts succeeded, failed, or are pending
- **Pause / Resume / Cancel** - control running enrichment jobs
- **Retry failed** - re-run enrichment on contacts that failed

Large batches process in chunks. You can navigate away while enrichment runs in the background.

## Connections

Connect external data sources to your staging tables:

- **CRM connections** - sync contacts from Salesforce, HubSpot, etc.
- **Scheduled syncs** - set up recurring imports on a schedule
- **Two-way sync** - push enriched data back to your CRM

## Troubleshooting

| Issue | Fix |
|-------|-----|
| Low match rates | Try enriching with multiple field types (name + company works better than email alone) |
| Credits not deducting | Check your credit balance in **Settings → Billing** |
| Enrichment stuck | Check the job status in the staging table toolbar - large batches process in chunks |
| AI formula errors | Ensure input columns have data - AI formulas skip empty rows |

## Related

- [Customer Data Platform →](https://docs.graph8.com/data/customer-data-platform/) - Managing contacts and companies
- [Managing Lists →](https://docs.graph8.com/data/managing-lists/) - Organize enriched contacts into lists
- [Sequencer →](https://docs.graph8.com/engage/sequencer/) - Automate outreach to enriched contacts
- [Lead Scoring →](https://docs.graph8.com/ai-features/lead-scoring/) - Score contacts using enriched data
