Clay fills an email column from a chain of enrichment providers, so one column can hold a confirmed address from the first provider and a last-resort guess from the fourth. In your sequencer both look the same. A live check in the week you send is the one step that gives every row in that column the same meaning.
This guide covers the export route, which suits a table you build once and send from. If you'd rather check each row inside the table as it fills, the Clay integration page shows the HTTP column setup.
The short version
- A finished Clay table with an email column and a column naming the provider that supplied it
- A ZapBounce account (100 free checks a month, no card)
The steps
Finish the enrichment first
Let every waterfall step run before you export. Checking an address the next step may replace spends a credit on a row you'll never send.
Export the table as CSV
Export the rows you plan to email this week, with name, company, the personalisation columns your sequencer needs and the provider column. Keep that last one: it turns the results into a report on each provider.
Upload the file to ZapBounce
Drop the CSV on the bulk page and pick the email column. ZapBounce removes duplicates for free and checks each address with its own SMTP handshake on port 25, closing the connection before any message is sent.
Download the results with your columns intact
Your file comes back with every Clay column you exported, plus
result,reason, theroleanddisposableflags and abilledcolumn. Nothing needs joining back by hand.Load valid rows into your sequencer
Filter to
validand import those rows into your sending tool. These mailboxes accepted the address atRCPT TOthis week, on a domain that doesn't accept everything.Send catch-all rows as a small separate batch
Rows marked
catch_allsit on domains that say yes to every address, so no SMTP check can confirm the person. Pattern guesses land here often. Send them slowly from a mailbox you can spare, and stop if bounces climb.Drop invalid rows and re-check unknowns
Delete
invalidrows from the send. Holdunknownrows for a day and upload them again, since greylisting and throttling clear with time. Unknowns are never billed, so the second pass costs only the answers you get.Reorder the waterfall by invalid rate
Group the results by the provider column and count invalid and catch-all rows for each. Move the provider with the lowest invalid rate higher in the waterfall for your next table.
Why Clay tables bounce unevenly
A waterfall takes the first answer it gets. The provider at the top is usually there because you trust it most, and by the last fallback the table is taking whatever it can find, often a first.last guess on the company domain. Your bounces cluster in those late rows.
Catch-all domains make those guesses look safe. About 28% of a 10,000-address B2B benchmark sat on domains that accept every address. ZapBounce labels those rows catch_all instead of folding them into valid, so you can see how many of your guesses the check can't settle and send them with care.
Turning the results into a provider report
Because your provider column rides through the upload, one pivot table tells you which source gives you the most valid rows per hundred. After a few thousand rows, that number is a better guide to your waterfall order than any provider's claim.
Keep the smtp_code column too. It holds the literal reply the mail server gave, so a provider whose rows come back invalid with a 550 is handing you closed mailboxes, not a temporary glitch.
What checking a Clay table costs
A 1,000-row table costs $5 to check, and 10,000 rows cost $25. Duplicates across tables are charged once per batch, unknowns are never charged, and credits never expire, so a quiet month loses you nothing. Larger tiers are on the pricing page.
You confirm a lawful basis to process every address you upload, including addresses from data providers. ZapBounce checks the addresses you already hold and never adds them to any shared database.
Questions people ask
Does Clay verify emails?
Clay fills its email column from the enrichment providers in your waterfall, so the column mixes sources. A live SMTP check on the finished column in the week you send gives every row the same test, whichever provider supplied it.
Why do Clay emails bounce?
Clay emails bounce when a late waterfall step returns a guessed address that doesn't exist, or when a catch-all domain accepted the guess and rejected the real send. A live check drops the first kind, and a catch_all label flags the second.
Should I verify in Clay or after exporting?
Export and upload when you build a table once and send from it, since one file check is simplest. Use an HTTP column inside Clay when rows arrive continuously and each needs a result before it moves on.
How much does it cost to verify 10,000 Clay leads?
At ZapBounce, 10,000 checks cost $25. Duplicates and unknown results are never billed, and the credits never expire.