AI agents for GTM and RevOps · Part 4 of 13

Contact data an AI SDR can trust

The fields each message needs and where they come from, how enrichment charges, what to do with a catch-all address, and how old a fact can be before the agent checks it again.

The short version

Every email an AI SDR writes comes from the contact’s record, so a wrong field becomes a wrong email. List the fields each message needs and where each comes from, the CRM’s own facts included. Enrich only those, asking providers in turn. Verify every address and decide what the agent does with each result. And date every field, so old ones get checked again. Four steps:

  1. List the fields each message needs
  2. Enrich them, provider by provider
  3. Verify each address before the first message
  4. Check old fields again before writing

Step 1List the fields each message needs

List every fact one message rests on. At Example Software, an invented company that sells to finance teams, a first email rests on nine. The agent finds five through enrichment: the person’s name, role and company, a verified work email, and the signal the message is about, such as a job post. The CRM already holds four: is this a customer, is a deal open, who owns the contact, and did they unsubscribe? Note where each comes from, and how old it is.

FIELDEXAMPLEWHERE IT COMES FROMAGEFOUND BY ENRICHMENT, IN CLAY READ FROM HUBSPOT WHEN THE AGENT WRITES Name and roleCompanyWork emailSignalCustomer?Open deal?OwnerUnsubscribed? Finance directorLogistics firm, 300 peopleVerified: validHiring a finance systems lead NoNoAn SDR on the teamNo A data provider, via ClayA data provider, via ClayClay’s waterfall, checked by ZeroBounceThe firm’s job post Lifecycle stageIts associated dealsContact ownerUnsubscribed from all email 140 days140 days2 days6 daysnownownownow

Found by enrichment, in Clay

Name and role
Finance director. A data provider, via Clay. 140 days old.
Company
Logistics firm, 300 people. A data provider, via Clay. 140 days old.
Work email
Verified: valid. Clay’s waterfall, checked by ZeroBounce. 2 days old.
Signal
Hiring a finance systems lead. The firm’s job post. 6 days old.

Read from HubSpot when the agent writes

Customer?
No. Lifecycle stage.
Open deal?
No. Its associated deals.
Owner
An SDR on the team. Contact owner.
Unsubscribed?
No. Unsubscribed from all email.
One contact’s record, as an example. Each field carries its source and its age; HubSpot’s four facts are read at the moment the agent writes.

These four change on your side, when a rep opens a deal or a contact unsubscribes, so the agent reads them from HubSpot as it writes (part 6). HubSpot says that when “Unsubscribed from all email” is true, its email tools, “including prospecting agent, won’t send emails to the contact”. Customers and open deals need a rule of your own (part 8), and the owner decides whose inbox the message comes from (part 9).

Step 2Enrich them, provider by provider

No single provider leads on both coverage and quality, Clay’s guide says, so enrichment tools ask several in turn. Clay’s waterfall “lets you search sequentially across multiple tools until you find a valid match”. For a work email it first guesses an address from the name and domain, for free, then “cascades across more than 100 email providers in sequence and charges credits only for the one that returns the match”. Once one returns a valid result, the run ends.

ONE CONTACT’S WORK EMAILCREDITS 1 A guess from name and domain2 Provider A3 Provider B 4 Provider C not validno matchno match a valid match 000 1 The run ends here: providers after C aren’t asked, or charged.

1 A guess from name and domain

not valid

0 credits
↓

2 Provider A

no match

0 credits
↓

3 Provider B

no match

0 credits
↓

4 Provider C

a valid match: the run ends here

1 credit
One contact’s work email, as an example. The free guess and two providers find nothing and cost nothing; only the provider that finds it is charged.

Each field is its own lookup, with its own credits, so enrich the fields your messages use and no others. Then set the order: “The order of a waterfall is a budget decision, not a coverage one”, Clay’s guide says, because the first provider runs on every contact; put the cheapest one you trust first. And set the match strict: it sends more contacts down the chain and costs more, which Clay calls “the right trade for cold outreach where a wrong address is worse than a missing one”.

Step 3Verify each address before the first message

A found address is a guess until a verification service checks it; Clay’s waterfall uses ZeroBounce by default. Decide in advance what the agent does with each result.

RESULTWHAT IT MEANS, FROM ZEROBOUNCETHE AGENT, AS AN EXAMPLE ValidInvalidUnknownSpamtrap, abuse,do_not_mail Catch-all Safe to email; ZeroBounce puts thebounce rate under 2% The mailbox doesn’t exist, ordoesn’t accept mail The server says every address is valid,real or not: only a real send would tell The check couldn’t finish, such as with anoffline mail server or an anti-spam system Addresses ZeroBounce says not to email Sends the first message Skips it Checks again the next day,then follows the new result Skips it Holds it for a personto decide

Valid

Means
Safe to email; ZeroBounce puts the bounce rate under 2%.
The agent
Sends the first message.

Invalid

Means
The mailbox doesn’t exist, or doesn’t accept mail.
The agent
Skips it.

Catch-all

Means
The server says every address is valid, real or not: only a real send would tell.
The agent
Holds it for a person to decide.

Unknown

Means
The check couldn’t finish, such as with an offline mail server or an anti-spam system.
The agent
Checks again the next day, then follows the new result.

Spamtrap, abuse, do_not_mail

Means
Addresses ZeroBounce says not to email.
The agent
Skips it.
ZeroBounce’s results, as its docs define them, with an example policy for each. Only a valid address gets the first message; a catch-all waits for a person.

Clay’s lesson on email waterfalls: “By default, Clay considers catch-all emails valid.” Its toggle “Only mark ’Safe to Send’ emails as valid” excludes them.

Clay University, “Enrich People (Waterfalls)”

So in Clay, choose. Turn the toggle on, and catch-alls count as invalid. Or keep the default and send the verification result to the CRM with the address (Clay hides its validation columns by default), so the agent can hold a catch-all for a person.

A bounce costs more than one email. Gmail’s sender guidelines say to “Automatically unsubscribe recipients who have multiple bounced messages”. Outlook asks domains that send over 5,000 emails a day to “Remove invalid addresses regularly”, and may filter mail from senders with serious lapses in hygiene. Part 11 covers the providers’ rules in full.

Step 4Check old fields again before writing

People change jobs. In January 2026 the median US wage and salary worker had been with their employer for 4.1 years, the Bureau of Labor Statistics reported in September: half had been there for less. It isn’t a yearly decay rate for your data, and it misses new titles at the same employer, but a role found last year may be wrong today. So store the date each field was found or last verified, and give each field a limit. In HubSpot, that means a custom date property per field: the built-in “Last modified date” changes when any property on the record does. Before writing, the agent checks again any field past its limit: as an example, 90 days for role and company, 30 for the email’s verification, 14 for a signal.

EACH FIELD’S AGE ON THE DAY THE AGENT WRITES, AGAINST ITS LIMIT Role and companyEmail verificationSignalHubSpot’s four facts limit read as the agent writes 140 days; limit 902 days; limit 30use it6 days; limit 14use itno limit check again first

Role and company

140 days old; limit 90

check again first

Email verification

2 days old; limit 30

use it

Signal

6 days old; limit 14

use it

HubSpot’s four facts

read as the agent writes

no limit
The contact from step 1 on the day the agent writes, with example limits. The role and company are past theirs, so the agent checks them again first.

If the check finds a change, such as a new employer, the agent writes nothing from the old record: it updates the record, and the contact starts again at step 1.

Next in this series

Part 5: your ICP and messaging, written for an agent. See all 13 parts.

Sources

  1. HubSpot Knowledge Base, “Manage your contacts’ messaging subscriptions”, read on 21 October 2026.
  2. HubSpot Knowledge Base, “Use contact and company lifecycle stages”, read on 21 October 2026.
  3. HubSpot Knowledge Base, “HubSpot’s default contact properties”, read on 21 October 2026.
  4. Clay, “Clay Waterfall: maximize your coverage of contact info”, read on 21 October 2026.
  5. Clay, “The Complete Guide to Waterfall Enrichment (2026)”, read on 21 October 2026.
  6. Clay University, “Enrich People (Waterfalls)”, read on 21 October 2026.
  7. ZeroBounce docs, “Status Codes Explained”, read on 21 October 2026.
  8. Gmail Help, “Email sender guidelines”, read on 21 October 2026.
  9. Microsoft Tech Community, “Strengthening Email Ecosystem: Outlook’s New Requirements for High-Volume Senders”, 2 April 2025, read on 21 October 2026.
  10. US Bureau of Labor Statistics, “Employee Tenure in 2026”, released 24 September 2026, read on 21 October 2026.