Open menu

Email List Enrichment: How to Turn a Flat List Into One You Can Segment

Email List Enrichment: How to Turn a Flat List Into One You Can Segment

Email enrichment adds the missing company and role details around addresses you already have. In 2024 I inherited a newsletter list: 9,000 addresses, two columns, email and first name. That was the whole file. Every campaign went to everyone, because there was nothing else to segment on. So I did the thing nobody writes about: I audited that list before I enriched a single row.

I’m going to be honest with you. The upload is the LAST step here, not the first. And the twenty minutes I spent counting before I spent anything saved me more than the enrichment itself cost.

Let’s get into it.

📌 TL;DR: Six steps to turn a flat list into one you can segment: (1) audit it (source, lawful basis, consumer domains, role inboxes, engagement, duplicates); (2) clean whatever survives; (3) split the company domain out of every work address into its own helper column; (4) enrich THE COMPANY against that column (industry, size, country); (5) build segments from the fields that change what you send; (6) re-run the whole thing quarterly, because people change jobs.

What Is Email Enrichment?

Email enrichment is the practice of adding company and role context to email addresses you already hold. You start with an address. You finish with that same address plus the fields that let you decide what to send it.

Here’s what usually gets added:

  • Company: the organisation behind the address.
  • Industry: logistics, SaaS, healthcare, whatever taxonomy your provider uses.
  • Employee count and revenue band: the size signals that decide your offer.
  • Location: country and city, which quietly decide send time and privacy regime.
  • Role and seniority: job title and department, where they exist.

And where does all that come from? A B2B database. The company layer is straight B2B Data Enrichment: your provider matches the company domain sitting inside each address to a company record, then writes that record’s fields back into your sheet. Those company-level attributes have a proper name too: Firmographic Data, meaning facts about the organisation rather than the human. Some vendors sell exactly this under the label email data enrichment.

Now the part that matters more. Here’s what it is NOT.

It isn’t verification. Verification tests whether an address still accepts mail, and enrichment says nothing about that. Adding an industry column to a dead mailbox gives you a well-labelled bounce.

And it isn’t list buying. Enrichment adds COLUMNS to addresses you already collected. Buying adds ROWS you never collected, from people who never heard of you. Those are two different activities, and only one of them is safe.

Email list enrichment is simply this same job done at list scale: thousands of rows in one pass instead of one browser tab at a time.

But before you run anything, there’s a question worth sitting with.

Should You Enrich This List at All?

Only if you can lawfully mail it, and only after you’ve cleaned it. Some lists shouldn’t be enriched at all, and knowing which is the cheapest skill in this whole workflow.

Here’s the audit I run before I enrich an email list. Five questions, one scratch tab, a column of counts:

  1. Where did these addresses come from? Signup form, event badge, gated download, a file someone bought in 2022? Under GDPR you need a lawful basis plus a painless opt-out, and the CAN-SPAM Act wants honest headers, a physical address and an unsubscribe link that works. If you can’t answer the source question for a segment, no amount of new columns fixes it.
  2. How many are free consumer domains? gmail.com, outlook.com, yahoo.com, icloud.com. Count them. On my 9,000 rows it was roughly a fifth. There’s no company behind a personal inbox, so no company data can attach to it.
  3. How many are role inboxes? info@, sales@, support@: the function addresses RFC 2142 reserves for roles rather than people. They’re real, they belong to real companies, and they enrich fine at company level. They just never get a first name.
  4. Who has opened anything in twelve months? Engagement is the cheapest quality signal you already own. A silent third of your list is a permission problem, not an enrichment problem.
  5. How many duplicates? Deduplication comes first, always. Sheets handles it natively under Data → Data cleanup → Remove duplicates, and Google’s data cleanup guide covers the rest. Every duplicate you enrich is a credit you paid for twice.

Then come the verdicts, which is the bit product pages never print:

  • A bought list stays unenriched. Adding industry codes to a file you have no relationship with doesn’t make it yours. It makes it a better-organised complaint generator.
  • A two-year-silent segment gets a re-permission email, not an upload. One honest “do you still want these?” send. Whoever raises a hand is worth enriching. The rest go.
  • Consumer-domain rows get skipped, not force-fed. Filter them out of the range before you run, and keep the credits for rows that can actually return something.

Everything that survives that audit is worth real money to enrich. Everything that doesn’t was never going to reply anyway.

One more thing about timing, because it changes how you plan. B2B contact records go stale continuously as people get promoted, switch employers, and watch their company get acquired. That’s Data Decay, and it’s the reason this is a routine rather than a project.

🔍 Did You Know? Contact data decays every single year as people change jobs, which means a list you enriched once is not enriched forever. It's enriched AS OF A DATE. Put that date in a column and you'll always know whether to trust the row or re-run it.

Which Fields Actually Change What You Send?

Four of them: industry, employee count, country, and seniority. Everything past those four is usually decoration.

So here’s the field-by-field version, each one tied to a decision you actually make on a Tuesday:

  • Industry → which case study you attach. A logistics reader wants a logistics story. Same offer, different proof.
  • Employee count → which offer, and which sender. A 30-person company gets the self-serve plan from a rep. A 3,000-person company gets a different plan and a different signature.
  • Country → send time, language, and privacy regime. One field, three decisions, and one of them is legal.
  • Seniority → the message itself. A practitioner wants the how. A VP wants the why and the number.
  • Company domain → the join key for all of the above. Without it, none of the other fields can be looked up. With it, everything else follows.

That last one is why the domain split gets its own step later on. It’s the field every product page skips, and it’s the one that makes the rest possible.

Why go to the trouble? Because segmenting is the only thing that reliably moves the numbers. Mailchimp’s email marketing benchmarks break open and click rates out by industry, and the spread between industries is wide enough that one all-list average tells you almost nothing about your own audience. Market Segmentation is what turns that spread into something you can act on.

Now the warning, because I’ve been on the wrong side of it. Every field you add is a field somebody has to maintain. I’ve watched teams import thirty columns (funding round, tech stack, SIC code, headquarters postcode) and then segment on exactly one of them.

So run this test out loud before you request a field: what would I send differently if I knew this? No answer, no column. That single rule cut my own request list in half, and it’s the whole point of b2b email list enrichment: fewer fields, each attached to a decision.

How Do You Enrich an Email List Without a Tool?

Three free routes: join your own CRM records, ask subscribers directly, or research a small segment by hand. Each one works. Each one has a ceiling.

1. Join What Your CRM Already Knows

Your CRM already holds company records for some of these addresses. Export contacts, drop them on a second tab, and VLOOKUP your list against them on the email or the domain. That’s a join, not a fetch: free, instant, and the data was yours the whole time.

The ceiling is obvious, though. It only covers people who already talked to sales. My newest subscribers, the ones I most wanted to understand, weren’t in the CRM at all.

2. Ask Them Yourself

A preference centre or a two-question progressive profiling form is the highest-quality data you can get. “What’s your role?” and “How big is your company?” That’s it. The person answering knows the truth, no database is guessing on their behalf, and consent comes baked in.

But it’s slow. You only learn about people who bother to answer, and you’re waiting weeks for coverage that enrichment gives you in an afternoon. So run it in parallel, not instead.

3. Research a Top Segment by Hand

Open the domain. Read the About page. Note industry, headcount, country. Move on.

For a hundred priority accounts this is genuinely fine, and you’ll pick up context no database returns: a funding announcement, a new office, a tone of voice worth matching. For 9,000 rows it’s a career. Do it for the accounts that matter and nothing else.

So the free routes work. They just cap out on coverage, speed, or both. Past a few hundred rows you want the fields landing inside the sheet.

How Do You Enrich an Email List in Google Sheets?

Split the company domain into its own column, then run a company enrichment add-on against that column. Two steps, in that order.

Step 1: Split the Company Domain Out of Every Address

The join key is already inside the address. It’s just glued to a name. So put this in the first row of an empty helper column (I use column E) and fill it down:

=LOWER(TRIM(RIGHT(A2,LEN(A2)-FIND("@",A2))))
=IF(A2<>"",LOWER(TRIM(RIGHT(A2,LEN(A2)-FIND("@",A2)))),"")

What’s happening: FIND locates the @, RIGHT keeps everything after it, and TRIM plus LOWER make the result consistent so “Acme.COM ” and “acme.com” don’t become two separate companies. The second line is the same formula with a blank guard, which matters the moment your list has gaps in it.

Then filter that helper column BEFORE you enrich anything. Sort it, scan the top, and pull out gmail.com, outlook.com, yahoo.com, hotmail.com, icloud.com and friends. Those rows have no employer behind them, so there’s nothing for a company record to attach to. Leave them in the range and you’ll pay for empty cells.

And if the domain column is the only thing you’re after, the standalone walkthrough on how to turn a domain into a company name handles that single field on its own.

Step 2: Run Company Enrichment Against the Domain Column

Five steps, and they’re the same five for every service in the add-on:

  1. Install the add-on. Grab the CUFinder add-on from the Google Workspace Marketplace. New to add-ons? Google’s help page explains how they install and where they show up.
  2. Copy your API key. Go to your CUFinder dashboard and copy the API key from there.
  3. Enter the key in the add-on. Once. After that you’re connected.
  4. Open the add-on from the Google Sheets menu, then pick the service. It opens as a right panel listing all the enrichment services. For this job you want Company Enrichment, the service that takes a domain and returns the company record, the same one behind the enrich company data page.
  5. Set the input column, the output column and the row range, then run. Input is your helper domain column. Output is where company, industry and employee count should land. Range is rows 2 to 6 for a test, then rows 2 to 9000 when you’re happy.

That’s email enrichment in Google Sheets, start to finish. If you want the longer version of just this step, the company enrichment in Google Sheets guide works through the same service with domains as the input from row one.

💡 Pro Tip: Run rows 2-6 as a test batch first. Check that the industry landed in the industry column and the headcount landed in the headcount column, THEN point it at 9,000 rows. Five test rows have saved me from a mis-mapped output column more than once.

Two quick handoffs before the worked example, because people land here with a different job in hand. If what’s missing is WHO each address belongs to (a first name, a title, a profile), that’s a separate service, and the guide on how to identify who’s behind an email address covers it properly. And if the address column itself is the gap, you need to add a missing email column first. This page assumes column A is already full.

A B C D E

GOOGLE SHEETS  |  CUFINDER ADD-ON

Run this workflow without leaving your sheet

1Pick a service 2Set input & output columns 3Choose your rows & run

A Worked Example: 5 Rows, Before and After

Say your sheet looks like this, with addresses in column A, and three empty columns waiting for the company fields:

ABCD
1EmailCompanyIndustryEmployees
2l.fischer@hansellogistics.com
3m.ruiz@bluepinesoftware.com
4p.nair@corvidanalytics.com
5tomokafor@gmail.com
6s.berg@tidewaterrobotics.com

First I built the helper domain column in E with the formula above, then flagged row 5 as a consumer domain and left it out of the range. After that: Company Enrichment in the panel, input column E, output columns B to D, rows 2 to 6. About a minute later the sheet looked like this.

ABCD
1EmailCompanyIndustryEmployees
2l.fischer@hansellogistics.comHansel LogisticsFreight & Logistics240
3m.ruiz@bluepinesoftware.comBluepine SoftwareSoftware85
4p.nair@corvidanalytics.comCorvid AnalyticsMarket Research40
5tomokafor@gmail.com
6s.berg@tidewaterrobotics.comTidewater RoboticsIndustrial Automation610

Row 5 stayed blank, and that’s the correct answer rather than a failure. A personal address has no employer attached, so there’s no industry and no headcount to write. Any provider that fills that row is guessing, and a guess sitting in a segmentation column is worse than an empty cell, because you’ll build a whole campaign on top of it.

→ 9,000 flat rows → audit → domain column → company fields → four segments → one message each.

And if you want the person-level fields in the same pass (titles, seniority, direct phone numbers), that’s a lead enrichment in Google Sheets job rather than a company one.

What Mistakes Should You Avoid When Enriching an Email List?

The expensive ones: enriching before auditing, expecting new columns to fix bounces, and never running it again. I’ve made most of these myself, so treat this as a scar map.

  • Enriching before auditing. If you upload first, you pay to decorate rows you were about to delete. The audit costs twenty minutes and it always pays for itself.
  • Expecting enrichment to fix your inbox placement. It won’t. Email Deliverability comes from verification, consent and sending discipline: Google’s bulk sender guidelines cap spam complaints at 0.3%, which is three per thousand. Enrichment improves RELEVANCE, and relevance lowers complaints over time. But it fixes nothing on its own.
  • Running consumer-domain rows anyway. A fifth of my list would have burned credits returning nothing. Filter first, then run.
  • Overwriting what subscribers told you themselves. If someone typed their job title into your preference centre, that beats any database. Write enriched values into NEW columns and leave the self-reported ones alone.
  • Adding thirty fields you’ll never segment on. Each column needs an owner and a refresh. If you can’t name the send it changes, don’t request it.
  • Enriching once and calling it finished. Job changes rot a list faster than anyone expects. Quarterly, on the segments you actively mail.
📌 Example: Same 9,000 addresses, two sends. The old all-list blast: one message, one industry's language, and unsubscribes climbing every time. The first segmented send after enrichment: one industry, one message written for it. More replies than the blast, and the unsubscribe rate went DOWN instead of up. Same people. Different columns.

FAQ: Email List Enrichment

What is email enrichment?

It’s the practice of adding company and role context to addresses you already collected. A provider matches the domain inside each address to a company record, then writes fields like industry, employee count, country and seniority back into your list. It adds columns to existing rows, never new rows.

What’s the difference between email enrichment and email verification?

Different jobs entirely. Enrichment adds context around an address: who the company is, how big it is, which industry it sits in. Verification tests whether the address itself still accepts mail. So enrichment tells you what to write, and verification tells you whether it arrives. Serious lists get both.

Is there free email enrichment?

Partly. Most providers hand out free starter credits, and joining your own CRM export costs nothing at all. What doesn’t exist is a free bulk provider with real coverage, because somebody pays to maintain that database. And free scraped lists are the expensive kind, since they cost you consent and sender reputation.

Can you enrich a list of Gmail addresses?

Not with company data. A personal Gmail, Outlook or Yahoo address has no employer behind it, so firmographic fields have nothing to attach to. Segment those rows separately, or ask those subscribers for their company through a preference centre. Filling them from a database is guessing, not enrichment.

How often should you re-enrich an email list?

Quarterly for segments you actively mail, and always before a big campaign. People change jobs, companies get acquired, and headcounts move, so contact data decays every year whether you touch it or not. A refresh costs far less than sending a campaign to last year’s job titles.

Does enrichment improve email deliverability?

Not directly. Verification, consent and sending discipline are the real levers, and mailbox providers can’t see your extra columns at all. What enrichment does is improve relevance, and relevant mail earns fewer complaints and unsubscribes over time. So the effect is genuine, but it’s indirect and slow.

Is email list enrichment GDPR compliant?

It can be. You need a lawful basis for the processing, transparency about what you hold, an easy opt-out, and a provider that can tell you where its data comes from. Enriching a list you had no lawful basis for stays non-compliant. And I’m a marketer, not a lawyer, so check with yours.

Which email enrichment tool should you pick?

Test before you choose. Take 100 rows of YOUR list, run them through each shortlisted provider, and compare two numbers: fill rate, and accuracy on rows you can independently check. Feature comparisons and pricing pages tell you nothing about coverage in your market. Your own sample does.

It’s Time to Give That List Some Columns

You’ve got the whole routine now. Audit first: source, consumer domains, role inboxes, engagement, duplicates. Clean whatever survives. Split the domain into its own column. Enrich the COMPANY against that column, not the person. Build your segments. Then set a reminder for three months out, because that’s how long the freshness lasts.

Now picture the next campaign. Four segments instead of one blast. Four subject lines that each sound written for the person reading them. And a reply column that finally has something in it, instead of an unsubscribe count you’d rather not open.

That’s exactly what happened to my 9,000 rows. It took an afternoon and one honest audit. You got this.

Company fields are only the beginning, too. The whole data enrichment in Google Sheets hub covers what else you can add next: phone numbers, tech stacks, revenue bands, all of it. So tell me in the comments: how many columns does your list have right now, and which missing one would change what you send tomorrow?

How would you rate this article?
Bad
Okay
Good
Amazing
Comments (0)
Comments (0)
98% accuracy, GDPR & CCPA ready

Prefer to Explore on Your Own?

Skip the call and start free: 15 credits, no credit card required. Upgrade or talk to us whenever you’re ready.

Free plan available · 50 credits/month · no credit card required