For lead gen agencies
Lead gen delivery your clients can inspect
A lead list is a claim, and the argument that follows is always about where the rows came from. Make that the part a client can read.
The quality argument with a client is rarely about quality. It is about evidence. A spreadsheet cannot say why a row is in it, so the conversation becomes two opinions, and the side without an audit trail writes the credit note.
Delivery here is a hosted table, not a file. Each cell records the run that wrote it, the provider that answered, and what it drew, and a client with a login reads exactly what you read. Rows that pass promote onto Records, so next month's build dedupes against this one.
- Who this is for
- An agency whose deliverable is the list itself: sourced accounts, matched contacts, verified addresses, handed over every week. Two to twenty people, paid on volume.
- What it looks like today
- Margin lives between what a row costs you and what you charge for it, and nobody can see either number. A file arrives, a client challenges ten rows, and you absorb it.
- What changes
- Every cell keeps its provenance: the provider that answered, the run, the time, the credits drawn. Work-email and phone waterfalls charge on a hit, so misses stay off the bill.
Example searches
Ask for it the way you'd say it
Every search below runs on the same hosted Tables, with the cost previewed before anything is spent.
A delivery from a brief
build 500 b2b saas companies with 20 to 200 staff and the head of revenue at each
The plan returns the filters and an expected cost band before any paid lane runs.
Where one row came from
who wrote this email address, when did it land, and what did it cost
Cell history names the provider, the run, and the credits, so a disputed row has an answer.
Catch-alls, separated
verify every address in this delivery and mark the catch-all domains separately
Only accept-all verdicts escalate to the deeper check, so the bill tracks the subset that needed it.
Plays
Three motions you can run this week
Each one is a chain of Oxygen primitives — the same hosted objects your workspace already has, composed.
Price the delivery before it runs
A per-row cost band and a hard ceiling agreed before the first paid lane fires.
- 1Preview the enrichment on the real column shape and read the expected cost.
- 2Set the run ceiling so a long list cannot outrun the number you quoted.
oxygen enrich-column previewHand over a table, not a file
The client opens the rows you worked on and sees the source behind each value.
- 1Invite the client on the read-and-comment role, then point them at the view.
- 2Promote the passing rows onto records so the next build dedupes against them.
oxygen cells inspectPush accepted rows into their CRM
Accepted contacts land in the client's own system without a manual import.
- 1Map the objects and fields once for that client, then run the sync.
- 2Read the link ledger: what was created, what matched, what failed and why.
oxygen crm sync run
Capabilities
What you get
Provenance on every value
A cell carries the provider that produced it, the run that wrote it, the timestamp, and the credits drawn. A dispute becomes a lookup.
Email and phone billed on a hit
The work-email and mobile lanes charge when they return a value, and a row stops at the first lane that answers. Other cascades pay for each managed leg they attempt, so preview the cost before it runs.
Verification paid on the subset
Every found address is graded on the cheap leg, and only an accept-all verdict escalates. You pay the deeper check on catch-alls, not the whole file.
Deduped against last month
Rows promoted onto records carry identity, dedupe lineage, and merge history, so a repeat build recognizes the contacts you already sold.
Instead of
The stack this replaces
Native, on one contract and one credit balance — not another tab wired to the last one.
- Clay
- Apollo
- ZoomInfo
- Airtable
- Google Sheets
- Zapier
Data sources
What the data actually comes from
Every value lands with its provider and cost recorded on the cell.

People Data Labs
Firmographic and person records at scale, where a delivery's shape comes from.

Apollo
Search on the client's own account when they already pay for it and want it used.

Blitz API
The lane most rows resolve on, and the one whose price sets what a delivered row costs you before you mark it up.
LeadMagic
Works the leftovers a client will query line by line, and bills only when it hands back an address.
MillionVerifier
Grades every address found and passes only accept-all verdicts onward.
Run these on Oxygen's managed credits, or connect your own provider keys and pay the vendor directly — the same columns, the same runs, the same provenance either way. See every integration.
Limits
Where this stops
- Some rows come back empty, and they should. Small private companies resolve less often, and a blank cell you can explain beats a padded one you cannot.
- This is delivery infrastructure, not the brief. The segment logic stays yours, and a weak brief enriched perfectly is still a weak list.
- Bill on a hit is not the whole bill. Company-field enrichment, profile lookup, and search or sourcing intents charge for each managed leg they attempt, hit or miss, which is why the preview is the number to quote from.
FAQ
Questions people ask first
How do I show a client where a row came from?
Do I pay for rows that never resolve?
How does verification avoid eating the margin?
Can I keep using my own provider accounts?
How do repeat deliveries avoid duplicates?
What if the client wants it in their CRM?
Put your GTM motion on one stack
Sign up, get a working workspace with a one-time credit grant, and run the first play end to end without wiring five tools together.