Waterfall Enrichment and Cache Reuse
Load this when a prospect list needs multiple data providers, repeated lookups, or a credit budget. Keep the prospecting skill's ICP, source lineage, contact verification, and compliance rules. This is a workflow design, not a new API or a promise of coverage.
Define the Success Condition Before Calling Providers
For each missing field, specify the required input, acceptable output, freshness, and maximum cost. A nonempty response is insufficient: a guessed address, a wrong-company match, or an old job title may fail the acceptance rule.
Example: find a published business contact for an ICP-fit account, then verify deliverability separately. A provider returning a name alone has not completed that task. Do not expand to personal emails simply because work-email providers found nothing.
Order providers by fit for this field, observed coverage, cost, and latency. There is no universal Hunter/Apollo/FullEnrich order. Use the user's existing connected tools; a manual public-source lookup is also a valid step.
Run a Waterfall, Not Every Provider
- Normalize the inputs and check existing verified CRM fields.
- Read the exact cache entry for the first provider lookup.
- If no reusable entry exists, perform that lookup within the authorized budget.
- Validate the returned identity and field; record source and retrieval time.
- Stop when the acceptance rule is satisfied. Otherwise advance to the next suitable provider.
- If all steps return no acceptable result, retain the row as unresolved with a reason. Do not fill blanks with invented values.
| Lookup outcome | Next action |
|---|---|
| Fresh, accepted result | Reuse it; stop this field's waterfall |
| Genuine no-match | Advance; optionally cache the no-match briefly |
| Wrong entity or invalid output | Record rejection; advance if another source can resolve it |
| Authentication/permission error | Repair the connection; do not label the contact nonexistent |
| Rate limit, timeout, provider outage | Respect provider retry guidance and budget; defer or use an authorized independent source |
| Missing required input | Resolve identity first; another identical empty-input call will not help |
Apply conditions per row. An already verified contact should not spend credits discovering the same field again. Dependent steps wait for the preceding result; independent missing fields may run concurrently within provider limits.
For Clay, configure the provider sequence, inputs, and run conditions using its waterfall documentation. Its workflow guidance distinguishes publishing a setup from running it and spending credits. Other tools need their own documented execution semantics.
Exact Cache Keys
Use a structured key with these dimensions: