Skip to main content

Email Validation

Invalid, disposable, and risky email addresses are one of the biggest hidden drains on deliverability. Every bounce chips away at your sender reputation, and spam-trap hits can put you on blocklists for weeks.

Score CRM's email validation feature lets you check addresses against a third-party verification service before you send — so bad emails never leave your outbox.

How It Works

You connect a verification provider once, then run validation on any list or segment. Each contact gets a validation status that's used automatically when you launch a campaign — contacts in excluded categories are skipped, no manual list cleaning needed.

Setting Up a Verification Connection

Before you can validate anything, you need to connect a verification provider. Score CRM supports three:

ProviderBest for
ZeroBounceBest-in-class accuracy, good batch pricing
NeverBounceStrong bulk workflow, job-based API
KickboxSimple pay-as-you-go, includes Sendex quality score

You'll need an API key from whichever provider you choose — sign up with them, grab the key from their dashboard, and bring it back to Score CRM.

Adding a Connection

  1. Go to Email Validation in the sidebar
  2. Click Add Verification Connection
  3. Give it a recognizable name (e.g. "ZeroBounce — Production")
  4. Pick the provider
  5. Paste your API key
  6. Click Save

Score CRM encrypts the API key at rest — even team members with settings access can't read it back.

Testing the Connection

After saving, click Test Connection on the row. Score CRM calls the provider's credit-check endpoint and shows:

  • Whether the credentials work
  • How many validation credits you have remaining (where the provider exposes this)

If the test fails, the error is saved on the connection so you can see what the provider reported — usually an invalid key or a disabled account.

Validation Statuses

Every validated contact ends up in one of these buckets:

StatusWhat it meansSafe to send?
ValidMailbox exists and accepts mailYes
InvalidMailbox doesn't exist, will hard bounceNo — always excluded
RiskyDeliverable but problematic (full inbox, temporary issue)Use the policy to decide
Catch-AllDomain accepts everything — mailbox existence unknownUse the policy to decide
Role AccountShared addresses like info@, support@ — low engagementUse the policy to decide
DisposableThrowaway address (mailinator, guerrillamail, etc.)No — always excluded
UnknownProvider couldn't determine statusUse the policy to decide
UnvalidatedHasn't been checked yetNo status yet — no filter applied

Invalid and disposable addresses are always excluded from sends — there's no legitimate case for delivering to them. For the grey-area categories (risky, catch-all, role, unknown), you decide via your organization's send policy.

Running Validation on a List

  1. Go to Customers → Lists and open the list you want to validate
  2. Click Validate List
  3. Pick which verification connection to use (if you have more than one)
  4. Confirm — Score CRM queues a background job

Validation runs asynchronously because lists can be large. You can close the page and come back later — the job keeps running.

tip

Before validating a huge list, run a small segment first (say, 500 contacts) to sanity-check that your provider returns results you'd expect. This uses a handful of credits and saves you from burning through thousands if the integration has an issue.

Running Validation on a Segment

Segments work the same way — open any segment and click Validate Segment. This is useful when you only want to validate a subset of a large list (for example, just contacts who haven't engaged in 6 months).

Monitoring Validation Jobs

Go to Email Validation → Jobs to see everything that's been validated.

Each job shows:

  • Source — which list or segment it ran on
  • Status — queued, running, completed, failed, or cancelled
  • Progress — X of Y processed, with an estimated time remaining
  • Started / completed — timestamps

Click any job to open the detail view, which shows the full breakdown by validation status and by reason code from the provider (e.g. mailbox_not_found, catch_all, disposable_domain). This is the best place to understand why your results look the way they do.

Cancelling a Running Job

If you started a job by mistake or want to stop it early, open the job and click Cancel. Contacts already processed keep their new status — the job just stops picking up new ones.

Send Policy — What Gets Excluded From Campaigns

Under Settings → Validation Policy, you control which categories are automatically excluded when you launch a campaign:

SettingDefaultWhen to enable
Exclude RiskyOnLeave on unless you have a very specific reason
Exclude Catch-AllOffEnable if your deliverability is struggling — catch-alls can hide invalid mailboxes
Exclude Role AccountsOffEnable for consumer-focused campaigns where role addresses won't engage
Exclude UnknownOffEnable if you'd rather skip than risk — conservative choice

Invalid and disposable are always excluded and can't be turned off.

The policy applies at send time, so tightening it doesn't require re-validating your lists — it just changes who gets skipped on the next campaign.

Pre-Send Summary in the Campaign Builder

When you launch a campaign, Step 2 of the wizard shows a validation summary for your audience:

  • How many recipients are validated vs. unvalidated
  • Breakdown by status (valid, risky, catch-all, etc.)
  • How many will be filtered out by your send policy

If a large share of your audience is unvalidated or flagged as risky/invalid, you'll see a warning — but it's non-blocking. You can still proceed, or hop over and validate the list first.

Best Practices

  • Validate new uploads, not everything — validation costs money per email. Once a contact is validated, the status sticks; you don't need to re-run it.
  • Re-validate stale contacts periodically — mailboxes get abandoned. A light quarterly re-validation of long-dormant contacts catches addresses that have gone bad.
  • Start with Exclude Risky ON, everything else OFF — this is the best balance of reach and protection. Only tighten further if you're seeing deliverability problems.
  • Monitor your job history — a sudden spike in invalid/disposable results in a new upload usually means someone uploaded a purchased list or a scraped CSV. That's a red flag worth investigating before you send to it.
  • Don't validate right before a send — bulk validation can take minutes to hours on large lists. Validate well ahead of your send window.

Troubleshooting

ProblemWhat to check
"Connection test failed"API key is correct, provider account is active, provider hasn't hit a quota
Validation job stuck in "running"Check the job detail — the provider may be rate-limiting. Usually resolves on its own
All results come back "Unknown"Your provider's credits may be exhausted. Test the connection to confirm
Recipient count dropped sharply after validationYour send policy is working as designed — check the campaign preview to see the breakdown
Can't see the "Validate List" buttonYou need the verification:create permission. Ask an admin to update your role