Skip to content

Fill missing emails in your CRM, every night.

Filling missing emails means looking up a work email for each CRM contact that has none and writing it to that record. In Cleanlist AI an agent runs every night, picks up Salesforce or HubSpot contacts with no email, looks each one up by LinkedIn URL, name and company, and writes what it finds to the same contact, at 1 credit per email found.

Fill missing emails in Cleanlist AI, live: its home and chat, and its Agent, Triggers, Play, Runs and Settings tabs. Each step of the play opens its settings. Typing a message or pressing Run now, Turn on or Pause opens a free trial.

Fill missing emailsActive

Fill missing emails

Worked on 30 tasks

Get started1
Triggers1
Last run
Starts
A Salesforce or HubSpot contact has an empty email field, existing ones included
Runs
Every night, within 30 minutes of the time you pick
Costs
1 credit per email found; a miss costs nothing
Plan
Pro, with 5 active agents. Build it on the 14-day trial.

10,000+ users, from founders to full sales teams

  • Switched fromZoomInfo
  • Case study
  • HackerOneSwitched fromApollo
  • Switched fromClay
  • Case study
  • Sumo LogicSwitched fromClay
  • Switched fromApollo
  • Case study
  • Switched fromZoomInfo
  • Switched fromZoomInfo

How to build the fill missing emails agent

Pick the starter or describe the job in one sentence. Clu checks your CRM connection and field mapping, asks at most four questions and proposes the play below. Nothing is saved until you accept it.

  1. Open Agents and pick the Fill missing emails starter. Clu checks your CRM connection and field mapping, then asks at most four questions in one card: include contacts already missing an email (recommended) or only new ones, recheck misses after 30 days or never, the time and time zone of the nightly run, and the records and credits a night may use.

    The first nights work through the backlog, so Clu sizes those caps from the free test's count. If your mapping carries no LinkedIn URL field, Clu says so before it proposes the play: the agent finds far fewer emails without one.

  2. The trigger is A record matches your conditions on Salesforce contacts, with the condition Email is unknown, on a daily schedule. Contacts already missing an email are included, so the first nights clear the backlog and later nights pick up what each day added. The run starts within 30 minutes of the time you pick.

    Run each record again after 30 days rechecks the misses: a contact that got an email no longer matches, so only misses come back. Salesforce leads work the same way with your org's Lead field mapping, and so do HubSpot contacts with an empty email.

  3. The Enrich step looks for a work email only, through the waterfall of 25+ providers, using the LinkedIn URL your field mapping carries plus the name and company. Without a LinkedIn URL a contact still enters, but the agent has only the name and company to go on and finds far fewer emails.

    Each email costs 1 credit, charged only when a deliverable one is found. Phone numbers stay off unless you ask for them, at 10 credits for each one found.

  4. The CRM Action step syncs the email into the contact that started the run, by its CRM ID, under your field mapping and write rules. It fills the empty email field and never overwrites a value. A miss writes nothing.

    Your write rules leave contacts a rep owns alone by default, and Clu offers Allow updating owned records for this job: the step still fills empty fields only, and contacts in an open deal stay protected. Enrich and the sync retry a provider or CRM failure after 1, 6 and 24 hours, at the step that failed.

  5. On Pro, run the free test to see which contacts would enter and what would be written, without looking up any email. Test on 5 records finds real emails for five contacts and charges for what it finds, but writes nothing to the CRM. Then turn the agent on. Clu turns an agent on only after you say yes.

    Every agent Clu builds carries two limits, records per run and a credit limit for each day's runs, which keep the backlog nights inside the budget you set. When the agent reaches the credit limit, runs stop until the next day.

Fill missing emailsDraft Run a testTurn on
New agent
Alex Kim9:12 AM
Every night, find work emails for CRM contacts that have none.
Clu

Here is the play: every night at 1:00 AM, pick up Salesforce contacts with no email, existing ones included, find a work email for each and write it to the same contact. Misses come back after 30 days. Review it on the canvas, then Accept to save it.

Play change for review3 steps
  1. A record matches your conditionsSalesforce · Contacts with no email · Daily
  2. Work emailBy LinkedIn URL, name and company
  3. Sync to SalesforceWrites the email to the same contact
No runs yetClu's proposal: turn the agent on to run it

What a night returns

Emails written to the contacts that were missing one, the same people in a Cleanlist list, and a recap in the Runs tab: contacts in, emails found, records written, misses and credits.

Fill missing emailsActive Run now
CompletedExample run · 3 steps

An example first night: 64 contacts had no email. The waterfall found 51, all written to Salesforce, for 51 credits. The 13 misses cost nothing and come back in 30 days. Later nights are smaller: the contacts each day added, plus the misses that are due again.

Updated October 8, 2026

Which solutions fill in missing email addresses and phone numbers in CRMs?

Three kinds of tool fill missing emails and phone numbers in a CRM: enrichment built into the CRM, data vendors' CRM apps, and agents that look each record up across several providers and write the result back. For a missing email, pick a tool that starts from the name, the company and the LinkedIn URL, because the email is the field you don't have.

Kind of toolWhat it fillsStarts fromExamples
Built into the CRMCompany and role fields such as job title, industry and company sizeWhat the record already has, such as a work email or a domainHubSpot data enrichment, Salesforce Lightning Data
A data vendor's CRM appContact and company fields from that vendor's dataThe CRM recordZoomInfo, Apollo
An agent on a scheduleWork emails and phone numbers through a waterfall of 25+ providers, written to the same recordName, company and LinkedIn URLCleanlist AI

Phone numbers work the same way and cost more: 10 credits for each one found, against 1 for an email. Fill phone numbers for the contacts your reps will call, and emails for everyone you will write to.

What tools can automatically fill missing contact information in Salesforce?

In Salesforce, missing contact information gets filled automatically in three ways: Lightning Data packages an admin licenses from third-party providers, a data vendor's Salesforce app that enriches records as they are created, or an agent that reads the contacts with an empty email each night and writes what it finds to the same record.

  • Lightning Data: third-party data packages licensed directly from providers. An admin's data integration rule compares your accounts, contacts and leads with the provider's data and, depending on how the rule is set up, updates them as it changes. Available on Professional, Enterprise, Performance and Unlimited Editions.
  • A data vendor's app: ZoomInfo's Salesforce integration enriches records from ZoomInfo's data as they are created.
  • An agent: Cleanlist AI reads Salesforce contacts or leads with no email every night, looks each one up through a waterfall of providers and fills the email field on the same record.

The agent writes through your org's field mapping and write rules. Leads need a Lead mapping in your Cleanlist CRM settings, and contacts a rep owns are skipped unless you allow updating owned records.

The nightly play, step by step

Every night the agent reads the contacts whose email is empty, looks each one up by the LinkedIn URL, name and company on the record, and writes any email it finds to the same contact. The first nights work through the backlog of contacts already missing one. After that, each night picks up what the day added.

  1. Trigger: A record matches your conditions, on contacts where Email is unknown, daily at the time you pick.
  2. Enrich: a work email only, through the waterfall.
  3. CRM Action: Sync writes the email into the same contact.
  4. Misses: nothing is written or charged, and with the recheck on, a miss comes back after 30 days.

A retry resumes at the step that failed and never charges an earlier step again, so a CRM outage during the sync doesn't pay for the same email twice.

Why blank emails pile up in a CRM

Contacts arrive without emails from a handful of places: list imports that carry a name and company only, event lists, contacts a rep creates after a call or a meeting, and tools that create contacts from calendars or call recordings. Older records lose their usable email too, as people move companies and their old address starts to bounce.

  • Imports: event lists, purchased lists and old spreadsheets often carry a name and company only.
  • Manual entry: a rep logs a call and creates the contact before anyone has the address.
  • Connected tools: contacts created from a meeting or a call recording may arrive with a name only.
  • Clean-up: a bounced address gets cleared, and the contact is left blank.

Each blank is a contact your sequences skip and your reps can't email. A nightly fill keeps the gap from growing between cleanups.

Can I upload a list of prospects and automatically find their missing contact details?

Yes. Upload the list as a CSV to a Cleanlist list and run Enrich on it: each row goes through the waterfall, and you pay 1 credit for each email found and 10 for each phone number, nothing for a miss. To keep doing it as rows arrive, point an agent at the list with the Leads added to a list trigger.

  • Name: first and last name in their own columns.
  • Company: the company name, or better, its domain.
  • LinkedIn URL: finds far more emails than a name and company alone.

A one-off run suits a trade show list or an old export. The nightly agent suits the CRM itself, where new blanks appear every day. For the file side of the job, see how to find emails for a list of names.

Email append and an agent that fills gaps every night

Email append is the one-time service: send a file of records that have no email, get back the addresses a provider could match. The agent does the same match on a schedule inside the CRM. It finds the contacts with no email itself, writes each address to the record and keeps going as new blanks appear.

QuestionEmail appendThe nightly agent
InputA file you exportContacts in Salesforce or HubSpot with an empty email field
OutputA file to import backThe email written to the same contact
CadenceOnce, each time you send a fileEvery night
MissesDepends on the serviceFree, and rechecked after 30 days if you choose

Data appending is the wider version of the same match, for phone numbers, job titles and company fields as well as emails.

In Cleanlist AI the agent is email append on a schedule: 1 credit per email found, written to the record that was missing it.

Catch-all domains, and what verified means here

Every email a provider returns carries a status: verified, likely valid, risky, invalid or unknown. The agent writes only a deliverable email, meaning verified or likely valid, and charges 1 credit for it. A catch-all domain accepts mail for any address, so no check can confirm the mailbox exists; those results come back risky, and a risky, invalid or unknown result is neither written nor charged.

StatusWhat it meansWritten and charged
VerifiedConfirmed deliverableYes, 1 credit
Likely validProbably deliverable, short of a full confirmationYes, 1 credit
RiskyMay work: catch-all domains, role addresses such as info@ and disposable addressesNo
InvalidWill bounceNo
UnknownNo signal either wayNo

To write only emails that pass a fresh check, add a Validate step after Enrich and a Branch that keeps the valid ones. Validate costs 0.5 credits a check and rates each email valid, invalid, catch-all, risky or unknown.

What it costs, and which plan runs it

Each email found costs 1 credit, charged only when it is deliverable. A miss costs nothing and writes nothing, and a recheck after 30 days is charged only if it finds an email. The trigger and the CRM write are free.

The first nights carry the backlog. A CRM with 2,000 contacts missing an email spends at most 2,000 credits clearing it, and less in practice, because misses are free. Clu sizes the records and credit limits from the test's count.

Running the agent needs Pro (from $89 a seat a month, $67 billed annually), which includes 5 active agents across the workspace, or Enterprise for unlimited agents. The 14-day Pro trial lets you build the agent and review its play; testing it and turning it on need a paid plan.

What you need

  • Pro or Enterprise to run it. Pro includes 5 active agents across your workspace.
  • Salesforce or HubSpot connected. Salesforce leads need a Lead field mapping.
  • A LinkedIn URL field in your field mapping. Without one, the agent finds far fewer emails.
  • Room in your credits for the first nights, which work through the backlog.

Other ways to ask Clu for it

  • Every night, find phone numbers for Salesforce contacts that have none.Phone numbers instead of emails, at 10 credits for each one found.
  • Every Sunday, fill missing emails on HubSpot contacts and recheck the misses after 30 days.A weekly schedule on HubSpot. Misses come back after 30 days.
  • Every night, fill missing emails on Salesforce leads and email me how many were found.Leads need your Lead field mapping. A Notify step emails you the count.

Questions before you turn it on.

How credits work
Can I run the fill missing emails agent on the free trial?

You can build it and review its play during the 14-day Pro trial. Testing it and turning it on need a paid Pro or Enterprise plan.

Does it include contacts that are already missing an email?

Yes. It picks up every contact whose email is empty, existing ones included, and then the new ones as they appear. The first nights work through the backlog.

What happens when no email is found?

Nothing is written and nothing is charged. With the recheck on, the contact is tried again after 30 days. A contact that got an email no longer matches and is left alone.

Can it find an email with just a name?

It needs a company too, and a LinkedIn URL finds far more. Without a LinkedIn URL field in your mapping, contacts still enter, but the agent has only the name and company to go on and finds fewer emails.

Does it work with HubSpot?

Yes. HubSpot contacts with an empty email work the same way, and the agent reads the HubSpot LinkedIn URL property to identify each person. Salesforce contacts and leads work too; leads need your Lead field mapping.

Will it change emails my reps entered?

No. It only picks up contacts whose email is empty, fills empty fields only and never writes a blank over a value.

Does it update contacts a rep owns?

Not by default: your CRM write rules leave owned records alone. With Write safety set to Allow updating owned records it fills their empty email too, and contacts in an open deal stay protected.

Can it fill phone numbers too?

Yes. Ask Clu for phone numbers instead of, or as well as, emails. Each phone number found costs 10 credits, and a miss costs nothing.

Every missing email, looked up. Every night.

Describe the job in one sentence. Clu proposes the play, you review it and accept it, and it runs on Pro from $89 a seat.

The 14-day Pro trial includes 250 credits and 3 seats to build and review agents. Turning one on needs a paid plan.