What an email enrichment waterfall does
An email enrichment waterfall looks up a person’s work email across declared sources and validates candidate results. It does not send email. Sending infrastructure, inbox placement and permission to contact someone are separate decisions. Follow the Claude Code implementation guide to run a checked Play, or start with the quickstart. Define a usable record before comparing costs; the enrichment evaluation guide includes a worked acceptance example.Key takeaways
- Rank providers with a labeled sample from the target segment, not a vendor’s aggregate match-rate claim.
- Stop only when a field passes its acceptance rule. Preserve the provider, evidence, validation result, and complete cost.
- Separate missing, invalid, conflicting, and provider-error results so each state has a defined retry or review path.
Who this is for
RevOps and GTM engineering teams that need better contact or company coverage without accepting lower accuracy.Decision guide
Operating method
- Define the record type, required fields, acceptable values, and a clear owner for rejected results.
- Normalize names, domains, CRM IDs, and country before calling any provider. Deduplicate first.
- Call the lowest-cost appropriate provider, validate the response, then use the next provider only for missing or rejected fields.
- Store provider, request time, response status, cost, validation result, and workflow version with every proposed field.
- Write only approved changes, then read the CRM record back and compare it with the requested update.
Implementation details
- Normalize the input before calling a provider: lowercase domains, preserve the original record ID, and separate person and company identifiers.
- Stop the waterfall when the acceptance rule passes, not merely when a provider returns a value. Record which provider supplied the accepted result.
- Treat missing, invalid, conflicting, and provider-error results as different states. Each state needs its own retry or review rule.
- Measure cost per accepted field and coverage on a fixed holdout set. Provider response count is not a quality metric.
Common failure modes
- Treating an API response as correct without validation.
- Overwriting a known-good CRM value with a lower-confidence value.
- Counting missing results as quality failures without separating provider coverage from validation failure.
- Running the whole waterfall again when one field changed.