Why Email Validation Belongs Before Your CRM, Not After
Most teams validate emails too late — after they've already imported a list into their ESP and scheduled a campaign. By then, the damage is already done: bounces spike, domain reputation takes a hit, and future campaigns land in spam even for legitimate contacts.
The fix is moving validation upstream, to the moment a new email enters your workflow. A Google Sheet connected to Abstract's Email Validation API does exactly that: every row you add gets checked in real time before it ever reaches your CRM.
Step-by-Step Setup
Prerequisites
- A Google Sheets account
- A free Abstract API key (100 free validations on the free plan)
- A Zapier or Make account
Step 1: Create Your Google Sheet
Set up a sheet with these columns:
EmailDeliverability - Quality Score - Disposable - SMTP Valid
The Email column is the only one you'll fill manually. The rest will be written automatically by the API.
Step 2: Connect Google Sheets to Abstract's Email Validation API via Zapier
Create a new Zap with this structure:
Trigger: Google Sheets → New or Updated Spreadsheet Row
- Spreadsheet: select your sheet
- Worksheet: Sheet1
- Trigger column: Email (column A)
Action: Webhooks by Zapier → GET
- URL:
https://emailvalidation.abstractapi.com/v1/ - Query string params:
api_key→ your Abstract API keyemail→ map to the Email field from the trigger step
Second action: Google Sheets → Update Spreadsheet Row
- Map the response fields to your columns:
deliverability→ Deliverability (column B)quality_score→ Quality Score (column C)is_disposable_email→ Disposable (column D)is_smtp_valid→ SMTP Valid (column E)
That's it. Every time a new email is added to the sheet, Zapier fires the API request and writes the results back automatically.
If you're using Make instead of Zapier, the structure is the same: trigger on Watch Rows in Google Sheets, add an HTTP GET request module pointed at the Abstract API endpoint, then use Update a Row to write the results back.
Step 3: Add Conditional Formatting (Traffic Light System)
Once results are flowing in, add color coding to the Deliverability column so you can scan the list at a glance.
- Select the Deliverability column
- Click Format → Conditional formatting
- Add three rules:
Your sheet now flags problem rows visually without any manual review.
Understanding the Validation Results
Abstract's API returns several fields. Here's what each one tells you and how to act on it.
Quality Score (0–1)
A composite score based on deliverability signals, domain reputation, and risk indicators.
- 0.80 and above: Safe to send
- 0.50–0.79: Review before sending — valid address but some risk signals
- Below 0.50: High bounce probability; exclude from campaigns
- Below 0.30: Almost certainly invalid or a spam trap — do not send
is_disposable_email
Flags addresses from known temporary email providers (Mailinator, TempMail, Guerrilla Mail, and thousands of others). Abstract maintains a list of 8M+ disposable domains updated weekly. Disposable emails rarely convert and increase your spam complaint rate — filter them out before they reach your CRM.
is_smtp_valid
The strongest deliverability signal. This checks whether the receiving mail server confirms the inbox actually exists. If SMTP validation fails, the email will bounce on send. Any address with is_smtp_valid: false should be excluded regardless of other signals.
Deliverability Status
The top-level result: DELIVERABLE, RISKY, or UNDELIVERABLE. Use this for quick triage. For anything marked RISKY, check the quality score and SMTP fields before deciding whether to include it.
Handling Large Lists (1,000+ Emails)
Zapier's free plan caps at 100 tasks per month, and paid plans charge per task. For large batch validation — scraped lists, exported CRM contacts, purchased databases — using Zapier for every row gets expensive fast.
The better approach for bulk validation is the ImportJSON method: a lightweight Google Apps Script that calls the Abstract API directly inside the sheet and writes results back in bulk, without per-row task costs.
This lets you process thousands of emails in a single run. Detailed implementation instructions are in Abstract's documentation.
Practical Workflows
Lead Generation Form Cleanup
Connect your website form submissions directly to the Google Sheet. Every new lead is validated before it enters your CRM — preventing disposable addresses, typos, and fake signups from polluting your pipeline from the start.
Cold Outreach List Cleaning
Before importing scraped or purchased lists into Lemlist, Woodpecker, or Instantly, run the entire list through your validation sheet. Filter out any address with UNDELIVERABLE status or a quality score below 0.50. This single step has the highest impact on bounce rate reduction.
SDR Prospecting
Sales reps who manually research and add prospects can use the sheet as a live verification layer. Every email they add gets checked automatically. The traffic light formatting means they can see at a glance whether an address is safe to contact — no manual review step required.
FAQ
What happens if I exceed the free plan's 100 requests?
The API returns an error for requests beyond the limit. Upgrade to a paid plan or use the bulk ImportJSON method, which is more efficient for large lists. Abstract's Starter plan starts at $17/month for 60,000 validations per year.
What should I do with addresses marked RISKY instead of UNDELIVERABLE?
Check is_smtp_valid and quality_score. If SMTP is valid and the score is above 0.65, the address is probably fine — the RISKY status may be triggered by a catch-all domain or a recently registered domain. If SMTP is invalid or the score is below 0.50, treat it as UNDELIVERABLE.
Does this work with Google Workspace accounts?
Yes. The ImportJSON script requires you to authorize the Apps Script — standard Google Workspace permissions apply. The Zapier/Make approach has no special permission requirements beyond access to the sheet.
Can I validate emails from a column that already has data?
The Zapier trigger fires on new or updated rows, not on existing data. For pre-existing lists, use the bulk ImportJSON method or manually re-trigger rows by editing them.
Get Started
Validate your first 100 emails for free — no credit card required.



