Back to Mails.so in Google Sheets
SheetXAI logo
Mails.so logo
Mails.so · Google Sheets Guide

Validate an Email List Before a Campaign From a Google Sheet

2026-05-14
5 min read

The Scenario

It's Thursday afternoon and your Q3 campaign drops Friday morning. You've been staring at the same Google Sheet since Tuesday — 5,000 email addresses in column B, collected from three different lead sources over the past six months. Some came from a paid list. Some from a webinar. Some from a form that didn't validate on submission. You have no idea how many will bounce.

The bad version:

  • Export column B to a CSV, upload it to the Mails.so dashboard, and wait for the batch to process — then download the results file and open it alongside your sheet
  • VLOOKUP the statuses back into column C by matching email addresses, hoping the row order didn't shift during the export
  • Manually review the 400 flagged "risky" addresses and decide one by one whether to suppress them

Your sender reputation doesn't care about your timeline. A 10% bounce rate on Friday's send is the kind of thing that follows a domain for months. The hours you'd spend on the manual cycle tonight aren't really available — you have three other campaign assets that still need sign-off.

The Easy Way: One Prompt in SheetXAI

SheetXAI is an AI agent that lives inside your Google Sheet. It reads the data in context, connects to Mails.so through its built-in integration, and writes the validation results back to the correct row — no CSV export, no VLOOKUP, no manual suppression decisions. You ask it in plain language.

Validate every email in column B using Mails.so and write the result — valid, invalid, or risky — into column C for each row. Skip any rows where column B is empty.

What You Get

  • Column C fills with the Mails.so validation status string for each row: valid, invalid, or risky
  • Rows where column B is empty are skipped and left blank in column C
  • Any rows where the API returns an unexpected response are written with error in column C so you can see them
  • The original data in columns A and B is untouched

What If the Data Is Not Quite Ready

The email column has extra spaces or mixed case

Validate every email in column B using Mails.so, but trim whitespace and lowercase each address before sending it. Write the validation result into column C and the cleaned email into column D.

Some rows have the email address buried in a longer string like "Name email@domain.com"

For each row in column B, extract just the email address from the value, validate it with Mails.so, and write the result into column C. If no email address can be extracted, write "no email found" in column C.

The list spans two tabs — "Q3-A" and "Q3-B" — and results need to land on each tab respectively

Validate every email in column B on the tab named Q3-A using Mails.so and write the results into column C on that tab. Then do the same for the Q3-B tab.

Clean, validate, and flag suppression in one pass

For each email in column B, trim whitespace and lowercase the address, validate it with Mails.so, write the status into column C, and write SUPPRESS in column D if the status is invalid or risky. Leave column D blank for valid addresses.

One prompt handles the cleanup and the suppression logic together — no intermediate column needed.

Try It

Get the 7-day free trial of SheetXAI and open the sheet with your email list, then ask it to validate column B and write the results back before your next send. You can also see how this works for bulk validation of larger lists or check the full Mails.so integration overview.

Stop memorizing formulas.
Tell your spreadsheet what to do.

Join 4,000+ professionals saving hours every week with SheetXAI.

Learn more