Enrichment is the act of taking a record that knows a little - a company name, a domain, a person's name and employer - and filling in what the rest of the go-to-market machine needs to know: the size, the industry, the technologies in use, the last funding round, the people who would buy, and how to reach them. Data infrastructure for enrichment is the system that does this on demand and on a schedule, across any list, CSV or CRM segment, source by source until each field is filled, with a record of which source answered and when.
The term has moved from a feature checkbox to a discipline because no single source covers a whole market any more. Coverage for a Series B software company in Austin and a family-owned logistics firm in Rotterdam comes from different licensed sources, and the source that is best for headcount is rarely the one that is best for a direct phone. Waterfall enrichment - try the best source for this field, then the next, stop when it fills - became the standard answer, and autonomous AI agents made it practical to run the waterfall at scale without a person babysitting the retries. The product page for this job is Data Infrastructure for Enrichment; the longer treatment of the technique is the waterfall enrichment guide.
What data infrastructure for enrichment means
A record is a set of fields, and every field has three states: filled and trusted, filled and doubtful, or empty. Infrastructure for enrichment moves fields toward the first state and keeps them there. It has four properties. It accepts any input shape - a list of names, a column of domains, a CRM segment, a CSV from a conference. It knows which licensed source to ask first for each field, and which to ask next when the first comes back empty or contradicts what is already known. It records provenance, the source and the date, on every value it writes. And it runs on a schedule, because a record that was true in March is partly false by September.
The common alternative is a single enrichment button in the CRM, wired to one source. It fills what that source knows and leaves the rest blank, with no record of what was attempted. The team then buys a second tool for the gaps, and a third for phones, and the "enrichment stack" becomes four subscriptions and a spreadsheet macro. The infrastructure view is simpler: one waterfall, many sources behind it, one provenance model, one schedule.
The data jobs inside enrichment
Enrichment looks like one job from the outside and is five from the inside.
Identify. Resolve the input to a canonical entity before filling anything. A company name becomes a domain; a domain becomes a company record with a stable identifier; a person's name plus employer becomes a person record. Getting this wrong fills the right fields on the wrong company, which is worse than leaving them empty. Enrich. Run the waterfall per field family: firmographics from the source with the best coverage for that geography and size band, technographics from a source that reads the site and the job postings, funding and news from event sources, the buying committee from a people source filtered by title and seniority, and contact details from finder sources tried in order. Verify. Check the emails and phones the waterfall found, and cross-check contradictions - two sources disagreeing on headcount by a factor of ten usually means one of them matched the parent company. Score. Once the fields are filled, the record can be tested against the ideal customer profile properly; enrichment routinely reveals that a target is a subsidiary, a competitor or a customer. Deliver. Write the filled fields back where the record lives, with provenance, without overwriting a value a person typed unless the new one is more recent and better sourced.
The data layers and the fields a waterfall fills
The table groups the fields that GTM teams actually enrich into five families, with the typical source behavior for each. Every family is a separate waterfall in a well-built system.
| Family | Fields | Source behavior |
|---|---|---|
| Identity (company data) | Canonical name, primary domain, alternate domains, parent and subsidiaries, stable company ID | Resolved first; everything else keys off it |
| Firmographics (company data) | Industry and sub-industry, employee count and 12-month growth, revenue band, HQ, offices, founding year, ownership type | High fill on larger companies, waterfall matters most for the long tail |
| Technographics and signals | Technologies in use, adopted and dropped, open roles by function, funding round and date, news events, relationships and partnerships, intent topics | Event-shaped; refreshed on a schedule rather than once |
| People and contact (person data) | Buying committee by title, seniority and department, work email, direct and mobile phone, location, tenure | Finder sources tried in order; misses cost nothing, found contacts billed |
| Verification and delivery | Email status, phone status, verified date, duplicate flag, suppression flag, source and date per field, CRM record ID | Written back with the values so the record explains itself |
Provenance deserves its own line because it changes how the record is used. A headcount with a source and a date can be trusted, refreshed on a cadence and argued about with evidence. A headcount without either is a rumor in a database column. The what is waterfall enrichment explainer covers how source ordering is decided per field.
Autonomous agents versus enrichment by hand
Enrichment by hand is a loop of exports and imports. Someone pulls the segment, uploads it to a source, downloads the result, notices the gaps, uploads the gaps to a second source, merges the columns in a spreadsheet, checks a few rows by eye, and imports the merged file back with a mapping that overwrites something it should not. An autonomous AI agent runs the same loop as a plan: resolve identity, run each field family's waterfall, verify, re-check fit, write back with provenance, and ask one question when the input is ambiguous.
| Step | By hand | Run by an autonomous agent |
|---|---|---|
| Identity resolution | Names matched to domains by search and guesswork; subsidiaries confused with parents | Names resolved to canonical domains and company IDs before any field is filled |
| Source ordering | One source per project, whichever has the subscription | Best source per field family, next source on a miss, order tuned by observed fill |
| Gaps | Left blank or filled by a second export-import cycle days later | Retried across licensed sources in the same run; misses cost nothing |
| Contradictions | Unnoticed, last import wins | Flagged, resolved by recency and source quality, both values kept in the audit log |
| Write-back | Spreadsheet import with a hand-drawn field mapping, overwrites typed values | Upsert with provenance per field, typed values preserved, parked for one approval |
| Freshness | Quarterly project, records decay between clean-ups | Standing schedule re-enriches changed fields weekly |
The difference shows up months later more than on the first day. A hand-run project produces one clean snapshot; an agent-run schedule produces a record that stays true, because the waterfall re-runs on the fields that move - headcount, roles, technologies, contacts - and leaves the stable ones alone. The lifecycle CRM automation guide shows the schedule pattern in a CRM.
The metrics that show it is working
Three numbers tune a waterfall, and a fourth tells you whether it was worth running. The figures are illustrative examples for a mid-market B2B segment with mixed geography.
91%fill rate on firmographics after the waterfall, up from 62% single-source (example)78%fill rate on work email for the buying committee (example)$0.09average cost per filled field, misses excluded because they are free (example)14 daysmedian age of a contact field on the standing schedule (example)
Fill rate per field family shows which families the licensed sources cover well for your market and where the source order needs adjusting; watch it per family, because a 90% average hides a 40% phone rate. Cost per filled field is the price that matters, and it improves when the cheapest adequate source runs first and misses are free. Record freshness - the median age of a field that changes - tells you whether the schedule is tight enough. And ICP survival, the share of rows that still qualify after enrichment, is the number that connects enrichment to revenue: it is the difference between a segment of 2,000 and the 1,300 worth working.
How AstroFabric does it
AstroFabric treats enrichment as a mission an agent plans per field family against a single data catalog. Identity resolves through company_to_domain and company_lookup, which returns the canonical record with parent and subsidiary links. Firmographics fill from company_lookup; technographics from tech_stack; events from funding_events, company_news and company_relationships; hiring from hiring_signals; intent from company_buying_intents. People fill through buying_committee, domain_contacts and person_enrich, with contact details from find_email and find_phone as waterfalls across licensed sources, and email_verify before anything is written back. Every value carries its source and date.
On a list, the whole waterfall is one call: list_enrich fills the missing fields on any list, CSV or CRM segment, list_score re-tests the enriched rows against your ICP, list_hygiene merges the duplicates that enrichment exposes, and crm_upsert_contacts or list_push writes back with provenance, parked for one approval. create_schedule turns the run into a standing weekly job on the segment. Enrichment is only charged when a licensed source actually answers; a lookup that finds nothing costs nothing; plans start at $49 per month and a verified contact is a few credits. The landing page for this job is Data Infrastructure for Enrichment.
Frequently asked questions
What is data infrastructure for enrichment?
The system that fills missing fields on any list, CSV or CRM segment by asking licensed sources in a planned order per field, verifying what it finds, recording the source and date on every value, and writing back on a schedule. It treats each field family as its own waterfall with its own fill rate and cost.
Why is a waterfall better than one enrichment source?
No single source covers a whole market, and the best source differs by field. A waterfall asks the strongest source for each field first, moves to the next on a miss, and stops when the field fills. Fill rates rise sharply on the long tail, and with misses free the extra attempts cost nothing.
Which fields should a team enrich first?
Identity first, always: canonical domain and company ID, because every other field keys off it. Then the fields the ICP uses to qualify, usually employee count, industry and technologies. Contact details come last, once the account has been confirmed as worth reaching, so the finder credits go to rows that matter.
How does an agent avoid overwriting good CRM data?
The write-back is an upsert with provenance: a value a person typed is preserved unless the new value is more recent and better sourced, both values are kept in the audit log, and the write itself is parked for a one-click approval. The record ends up explaining where every field came from.
What does enrichment cost on AstroFabric?
Enrichment is charged only when a licensed source actually answers, so a miss costs nothing and the waterfall can try several sources without penalty. Plans start at $49 per month, a verified contact is a few credits, and credit ceilings are enforced before spend so a large segment cannot overrun its budget.
Every playbook on this blog ships as a runnable mission.
Open a workspace and the playbook library is waiting - describe the outcome and the agents carry it end to end, on your plan's monthly credits.