## TL;DR

Treat enrichment as a hint, never a fact, and never let an empty or failed enrichment silently degrade the send. Gate sends on enrichment quality: blank firmographics pause the lead, and credit exhaustion halts the job instead of sending blind.

## The query

```text
agent's enrichment step wrote the lead's personal cell into the work-phone field  -  compliance flagged every dial
```

## Use this when

- enrichment calls fail, return blank, hit credit or rate limits, or return stale data
- personalized sends depend on third-party firmographic data

## Not for

- stale data already in your own CRM (see the stale-data skill)
- template rendering of enrichment values (see the template-token skill)

## Steps

### Step 1: Stop sending on blank enrichment

If the enrichment call failed or returned empty, the lead must not proceed to a personalized send. Route it to a review queue or a non-personalized track. 'Proceed with blank' is how CEOs get 'Hi there'.

**Expected: zero sends go out with empty enrichment on required fields.
### Step 2: Check credits and quotas before the batch

Read the credit balance and the per-minute rate limit before starting an enrichment run. A 402 mid-batch or a 429 storm means the job plan ignored the budget; plan the batch to fit it.

**Expected: batch size fits the credit balance and the rate limit; no mid-batch 402.
### Step 3: Validate the payload before trusting it

Check for the freshness signals: dates on funding and employment, plausible headcount, a website that resolves. Enrichment payloads without dates are the stale-data incident waiting to happen.

**Expected: payloads missing dates or with implausible values are flagged, not used.
### Step 4: Handle rate limits with a paced queue

Enrichment APIs are strictly rate-limited. Run enrichment through a paced queue with backoff, not a parallel blast, and cache results by domain so re-runs do not re-spend credits.

**Expected: enrichment runs at the provider's pace; repeat domains hit the cache.
### Step 5: Define the minimum viable enrichment

Write down which fields are required for a send and which are nice-to-have. The agent should know exactly when 'good enough' is reached instead of either sending blind or waiting forever.

**Expected: a documented field-quality bar; leads below it are queued, not sent.

## Why it happens

Enrichment fails in three quiet ways: the call errors and the agent proceeds anyway, the credits run out mid-batch, or the payload is stale and dateless. All three are silent, so the send looks fine until a human reads it.

## Edge cases

- Caching by domain saves credits but needs a TTL; company data rots.
- Personal emails and phone numbers from brokers are compliance landmines; filter them out.
- Two enrichment providers disagreeing is a review flag, not a coin flip.

## Finding this skill

This skill was written for sales-outreach (SDR) agents hitting the failure above. Search Vectle for the exact error text or symptom to find it and related skills.

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_jVfB108Ch_kS2gUIsldlhA
