Back to skills
extension
Category: Marketing & GrowthNo API key required

data-governance-enrichment

Enrich CRM data: tools, waterfall approach, automation, quality control. Use when designing or improving data enrichment in rev ops.

personAuthor: jakexiaohubgithub

Data Governance — Enrichment Strategies

How to enrich CRM data: tools, waterfall approach, automation, and quality control.


Why Enrichment Matters

B2B data decays at 2.1% per month (22.5% annually). Without enrichment:

  • Job titles are 50-65% outdated within a year
  • Email addresses decay 37% annually
  • Phone numbers decay 43% annually

Enrichment keeps your CRM current and your outreach effective.


Enrichment Hierarchy

Not all enrichment sources are equal. Prioritize by accuracy:

| Source | Accuracy | Coverage | Cost | Best For | |---|---|---|---|---| | Manual research | 95%+ | Low | High (time) | High-value accounts, executives | | LinkedIn Sales Navigator | 90%+ | High | $$$ | Job titles, company info | | Clay | 85-90% | High | $$ | Bulk enrichment, waterfall approach | | ZoomInfo | 80-85% | Very High | $$$$ | Enterprise, comprehensive data | | Apollo | 75-80% | High | $ | Cost-effective bulk enrichment | | Clearbit | 80-85% | Medium | $$$ | Tech stack, firmographics | | Lusha | 75-85% | Medium | $$ | Phone numbers, emails | | Hunter | 70-75% | Medium | $ | Email finding only |


Waterfall Enrichment Strategy

Don't rely on one source. Use a waterfall approach where each step fills gaps from the previous:

Step 1: Check existing CRM data (free)
  ↓ If missing fields
Step 2: Clay enrichment (uses multiple sources)
  ↓ If still missing
Step 3: ZoomInfo/Apollo lookup
  ↓ If still missing
Step 4: LinkedIn Sales Navigator
  ↓ If still missing
Step 5: Manual research
  ↓ If still missing
Step 6: Flag for human verification

Clay Waterfall Example

Clay Column Configuration:

1. Find Email (Waterfall)
   → Apollo → ZoomInfo → Lusha → Hunter
   → Takes first valid result

2. Find Phone (Waterfall)
   → ZoomInfo → Apollo → Lusha
   → Takes first valid result

3. Enrich Company (Waterfall)
   → Clearbit → ZoomInfo → Apollo
   → Takes first valid result

4. Find LinkedIn URL
   → Apollo → ZoomInfo
   → Validate with LinkedIn profile lookup

Enrichment Triggers

Real-Time Enrichment

| Trigger | Fields to Enrich | Priority | |---|---|---| | New lead created | Email verification, phone, job title, company size, industry | High — do immediately | | Lead becomes MQL | Full firmographics, tech stack, LinkedIn URL | High — before sales touches | | Deal created | Decision-makers, org chart, recent news | Medium | | Form submission | Verify and complete missing fields | High | | Website visit (known) | Refresh stale data if >90 days old | Medium |

Batch Enrichment

| Trigger | Scope | Frequency | |---|---|---| | Scheduled refresh | Active contacts/companies | Weekly/Monthly | | Before campaign | Email verification, phone validation | Before each campaign | | Quarterly refresh | Job title verification, company size update | Quarterly | | Annual audit | Full database enrichment | Annually |


Enrichment by Field Type

Contact-Level Enrichment

| Field | Enrichment Source | Frequency | |---|---|---| | Email | ZoomInfo, Apollo, Hunter | On creation + verify before campaigns | | Phone | ZoomInfo, Lusha, Apollo | On creation + verify before call campaigns | | Job Title | LinkedIn, ZoomInfo, Apollo | On creation + every 6 months | | LinkedIn URL | Apollo, ZoomInfo | On creation only | | Personal Bio | LinkedIn Sales Navigator | For high-value contacts |

Company-Level Enrichment

| Field | Enrichment Source | Frequency | |---|---|---| | Industry | Clearbit, ZoomInfo | On creation + annually | | Employee Count | ZoomInfo, Clearbit, Apollo | On creation + annually | | Revenue | ZoomInfo, Clearbit | On creation + annually | | Tech Stack | BuiltWith, Clearbit, Wappalyzer | On creation + every 6 months | | Funding Info | Crunchbase, PitchBook | On creation + quarterly | | News/Signals | Bombora, G2, News APIs | Real-time or weekly |


HubSpot Enrichment Configuration

Workflow: Auto-Enrich New Leads

Trigger: Contact created with Email filled

Actions:
1. Delay 5 minutes (allow HubSpot native enrichment)

2. Branch: If Company Name blank
   → Use Clay webhook to find company from email domain
   → Update Company Name, Industry, Employee Count

3. Branch: If Phone blank
   → Use Clay webhook to find phone
   → Update Phone property

4. Branch: If Job Title blank
   → Use Clay webhook to find title
   → Update Job Title and Seniority Level

5. Set "Enrichment Status" = "Completed"
6. Set "Enrichment Date" = Today

Workflow: Pre-Campaign Enrichment

Trigger: Added to list "Campaign - [Name] - Outreach"

Actions:
1. Branch: If "Email Verified" != "Valid"
   → Use NeverBounce webhook to verify
   → Update "Email Verified" status

2. Branch: If "Last Enriched" > 90 days ago
   → Trigger full enrichment workflow
   → Update all stale fields

3. Branch: If "Email Verified" = "Invalid"
   → Remove from list
   → Add to "Bad Emails" list

4. Set "Ready for Campaign" = Yes

Workflow: Scheduled Refresh

Trigger: Scheduled daily at 2:00 AM

Enrollment: Contacts where:
- Last Enriched > 180 days ago
- Lifecycle Stage = [MQL, SQL, Opportunity]
- Limit: 500 contacts per day (cost management)

Actions:
1. Use Clay webhook for full enrichment
2. Update enriched fields
3. Set "Last Enriched" = Today
4. Log activity "Enrichment refresh completed"

Enrichment Quality Control

Validation After Enrichment

| Field | Validation Check | Action if Failed | |---|---|---| | Email | Valid format, verified deliverable | Flag, don't use in campaigns | | Phone | Valid format, 7-15 digits | Flag for manual review | | Job Title | In approved list OR reasonable | Flag if nonsensical | | Company Size | Within expected range for industry | Flag if outlier | | Industry | From standardized list | Map or flag | | Revenue | Positive number, reasonable for size | Flag if outlier |

Quality Metrics to Track

| Metric | Formula | Target | |---|---|---| | Enrichment coverage | Records enriched / Total records | >80% | | Field fill rate post-enrichment | Filled fields / Target fields | >90% | | Email verification rate | Valid emails / Total emails | >85% | | Enrichment accuracy | Spot-check sample for correctness | >90% | | Cost per enriched record | Total enrichment cost / Records enriched | Track trend |


Cost Management

Credit Allocation Strategy

| Priority | Segment | Enrichment Level | Budget % | |---|---|---|---| | 1 | MQLs and SQLs | Full enrichment | 40% | | 2 | Target accounts (ABM) | Full enrichment | 30% | | 3 | New leads | Essential fields only | 20% | | 4 | Database refresh | Verification only | 10% |

Credit Optimization Tips

1. Don't re-enrich unnecessarily
   - Check existing data first
   - Set minimum time between enrichments (90 days)

2. Prioritize high-value records
   - Enrich MQLs before raw leads
   - Enrich target accounts first

3. Use appropriate sources
   - Free sources first (LinkedIn public data)
   - Cheap sources for low-value records
   - Premium sources for high-value only

4. Batch for efficiency
   - Batch requests where possible
   - Off-peak pricing if available

Cost Tracking Dashboard

| Metric | Calculation | Benchmark | |---|---|---| | Cost per enriched contact | Enrichment spend / Contacts enriched | $0.10-0.50 | | Cost per verified email | Verification spend / Emails verified | $0.01-0.05 | | Enrichment ROI | (Pipeline from enriched contacts - Cost) / Cost | >5x | | Budget pacing | Month-to-date spend / Monthly budget | <100% |


Multi-Source Integration

API Integration Pattern

For each enrichment request:

1. Check cache (Clay, CRM)
   IF found AND fresh (< 90 days)
   → Return cached data

2. Waterfall through providers
   FOR each provider in priority order:
     → Make API request
     → IF valid data returned
        → Save to cache
        → Return data
        → Exit loop
     → ELSE continue to next provider

3. If no provider returns data
   → Flag for manual research
   → Return partial data with flag

Provider Selection Matrix

| Use Case | Primary | Secondary | Tertiary | |---|---|---|---| | Email discovery | Apollo | ZoomInfo | Hunter | | Phone discovery | ZoomInfo | Lusha | Apollo | | Job title verification | LinkedIn | ZoomInfo | Apollo | | Company firmographics | Clearbit | ZoomInfo | Apollo | | Tech stack | BuiltWith | Clearbit | Wappalyzer | | Intent signals | Bombora | G2 | ZoomInfo |


Common Enrichment Mistakes

| Mistake | Impact | Fix | |---|---|---| | Single source reliance | Low coverage, single point of failure | Waterfall approach | | No validation | Bad data enters CRM | Validate after enrichment | | Over-enriching | Wasted budget | Prioritize by value, set limits | | Under-enriching | Stale data, missed opportunities | Regular refresh schedule | | Ignoring cost | Budget overrun | Daily/weekly cost monitoring | | No tracking | Can't measure ROI | Enrichment source tracking |


Implementation Checklist

Phase 1: Setup (Week 1)

  • [ ] Audit current data gaps
  • [ ] Select enrichment providers
  • [ ] Set up API integrations
  • [ ] Configure Clay tables (if using)
  • [ ] Create enrichment tracking properties

Phase 2: Automation (Week 2)

  • [ ] Build real-time enrichment workflows
  • [ ] Build batch enrichment workflows
  • [ ] Set up validation rules
  • [ ] Configure error handling
  • [ ] Test with sample records

Phase 3: Launch (Week 3)

  • [ ] Start with low-priority records
  • [ ] Monitor accuracy and costs
  • [ ] Adjust waterfall order based on results
  • [ ] Roll out to all segments

Phase 4: Optimization (Ongoing)

  • [ ] Weekly cost review
  • [ ] Monthly accuracy audit
  • [ ] Quarterly provider evaluation
  • [ ] Annual strategy review

Cross-References

  • Data Governance Framework: See data-governance-framework.md
  • Validation Rules: See data-governance-validation.md
  • Quality Metrics: See data-governance-framework.md#data-quality-kpis-and-targets

Built by ColdIQ & Ivan Falco. For questions on implementation or anything not covered here, reach out to Ivan directly on LinkedIn.