RevOps teams sit between marketing, sales, and customer success. When email data degrades, every team feels it: bounced campaigns, wasted SDR effort, and polluted CRM records. This guide shows how to build automated verification pipelines that keep lead scoring accurate, CRM data clean, and pre-campaign lists send-ready.
Leads enter from ads, events, form fills, and outbound. Once in the CRM, bad email data contaminates lead scoring, wastes SDR capacity, and degrades campaign performance. RevOps owns the pipeline quality. Verification pipelines are the filter.
RevOps owns the revenue pipeline. When email data quality degrades, lead scoring inflates, SDRs waste capacity on unreachable contacts, and campaigns underperform. This guide covers three pipeline patterns that embed email verification into RevOps workflows: lead scoring integration, automated CRM hygiene, and pre-campaign data quality gates. Each pattern uses the email-check.app API.
Leads enter your CRM from multiple channels: website forms, paid ads, events, SDR outreach, and partner referrals. Each source introduces bad email data at different rates. Web forms see disposable email signups at 3-5% of submissions. Event lead lists often contain 8-15% invalid contacts. Purchased lists can hit 25%+ undeliverable rates.
Once bad emails land in the CRM, they contaminate downstream processes. Marketing automation sends to undeliverable addresses. SDRs call contacts that bounce. Lead scoring models treat a disposable email the same as a corporate email, inflating MQL counts and distorting pipeline forecasts.
Verification pipelines fix this at the point of entry and on a continuous schedule.
Most lead scoring models weight email quality implicitly (corporate domain = good, free domain = lower). That binary signal misses important nuances. An email from a valid corporate domain with a 95+ risk score is worth more than one from a corporate domain that fails SMTP verification. A free email from Gmail that passes SMTP checks might be a legitimate prospect.
The email-check.app API returns a score field (0-100) alongside boolean checks for SMTP, MX, disposable status, and role-based detection. Feed these fields into your scoring model instead of guessing from the domain alone.
score becomes the email quality signal. isDisposable becomes a disqualification flag. validSmtp confirms deliverability.isFree segments free vs. corporate email.// Lead scoring integration example (TypeScript)
async function scoreAndRouteLead(email: string, leadData: LeadInput) {
const response = await fetch(
`https://api.email-check.app/v1-get-email-details?email=${encodeURIComponent(email)}&verifyMx=true&verifySmtp=true&checkDomainAge=true&detectName=true`,
{ headers: { 'x-api-key': process.env.EC_API_KEY! } }
);
const result = await response.json();
// Map verification data to scoring dimensions
const emailQuality = {
score: result.score, // 0-100 composite
isDeliverable: result.validSmtp, // SMTP confirmed
isDisposable: result.isDisposable, // temp/fake domain
isRoleBased: false, // derived from prefix check
isCorporate: !result.isFree, // company domain
domainAgeYears: result.domainAge?.ageInYears ?? 0,
detectedName: result.detectedName, // extracted first/last
};
// Scoring logic
let leadGrade = 'C'; // default
if (emailQuality.isDisposable) {
leadGrade = 'SUPPRESS'; // do not contact
} else if (emailQuality.isDeliverable && emailQuality.score >= 80 && emailQuality.isCorporate) {
leadGrade = 'A'; // high-priority SDR outreach
} else if (emailQuality.isDeliverable && emailQuality.score >= 50) {
leadGrade = 'B'; // nurture track
}
// else remains 'C' — low priority or unverified
return { ...leadData, emailQuality, leadGrade };
}Email lists decay at roughly 22.5% per year. Contacts change jobs, domains expire, and inboxes fill up. A CRM that was clean six months ago is now 11% invalid. Without continuous verification, that decay compounds into hard bounces, sender reputation damage, and wasted campaign spend.
An automated CRM hygiene pipeline runs on a schedule, pulls contacts from the CRM, validates emails through the API, and updates records with verification status. This can run via n8n, Make, Zapier, or a custom cron job.
email_validated (boolean), email_score (0-100),email_risk_tier (low/medium/high), email_last_checked (date).isDisposable = trueor validSmtp = false are automatically excluded from email campaigns. Contacts with score < 40 are flagged for review.// CRM hygiene batch processing (TypeScript)
const BATCH_SIZE = 25; // concurrent requests
const DELAY_MS = 100; // rate limit buffer
async function hydrateCRMContacts(contacts: Contact[]) {
const results = [];
for (let i = 0; i < contacts.length; i += BATCH_SIZE) {
const batch = contacts.slice(i, i + BATCH_SIZE);
const batchResults = await Promise.allSettled(
batch.map(async (contact) => {
const url = new URL('https://api.email-check.app/v1-get-email-details');
url.searchParams.set('email', contact.email);
url.searchParams.set('verifyMx', 'true');
url.searchParams.set('verifySmtp', 'true');
url.searchParams.set('suggestDomain', 'true');
const res = await fetch(url.toString(), {
headers: { 'x-api-key': process.env.EC_API_KEY! },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
const data = await res.json();
return {
contactId: contact.id,
email: contact.email,
score: data.score,
isDeliverable: data.validSmtp,
isDisposable: data.isDisposable,
riskTier: data.score >= 80 ? 'low' : data.score >= 50 ? 'medium' : 'high',
domainSuggestion: data.domainSuggestion,
};
})
);
results.push(...batchResults);
if (i + BATCH_SIZE < contacts.length) {
await new Promise(r => setTimeout(r, DELAY_MS));
}
}
// Batch update CRM with results
return updateCRMRecords(results);
}Before every email campaign, the send list should pass through a data quality gate. This pipeline validates the list, removes undeliverable addresses, corrects typos, and generates a quality report. Only contacts that pass the gate enter the campaign send queue.
This workflow integrates with marketing automation tools (HubSpot, Marketo, Mailchimp) via webhook triggers, API calls, or CSV-based workflows.
suggestDomain to auto-correct typos.validSmtp = falseor isDisposable = true. For contacts with typo corrections (domainSuggestionis not null), apply the correction and re-validate.// Pre-campaign quality gate (cURL + jq)
# Step 1: Validate single email with full checks
curl -s "https://api.email-check.app/v1-get-email-details?email=jon.doe@gnail.com&verifyMx=true&verifySmtp=true&suggestDomain=true" -H "x-api-key: YOUR_API_KEY" | jq '.'
# Response with typo detected:
# {
# "email": "jon.doe@gnail.com",
# "validFormat": true,
# "validMx": false,
# "validSmtp": false,
# "isDisposable": false,
# "score": 5,
# "domainSuggestion": {
# "domain": "gmail.com",
# "fullEmail": "jon.doe@gmail.com"
# }
# }
# Step 2: Re-validate with corrected domain
curl -s "https://api.email-check.app/v1-get-email-details?email=jon.doe@gmail.com&verifyMx=true&verifySmtp=true" -H "x-api-key: YOUR_API_KEY" | jq '.score'
# Output: 92AI agents running RevOps workflows can use email verification as a tool. Whether the agent is enriching leads, scoring prospects, or screening campaign lists, the email-check.app API works as a standard HTTP tool call.
For agents using MCP (Model Context Protocol), the email-check.app API can be wrapped as an MCP tool that agents invoke during lead enrichment or data quality workflows. The agent receives structured verification data and uses it to make routing decisions without human intervention.
// AI agent tool definition for email verification
const emailVerificationTool = {
name: "verify_email",
description: "Validate an email address. Returns deliverability status, " +
"disposable detection, risk score, typo corrections, and domain intelligence.",
inputSchema: {
type: "object",
properties: {
email: { type: "string", format: "email", description: "Email to verify" },
verify_smtp: { type: "boolean", default: true, description: "Check SMTP mailbox" },
check_domain_age: { type: "boolean", default: false, description: "Get domain age" },
suggest_domain: { type: "boolean", default: true, description: "Suggest typo corrections" },
},
required: ["email"],
},
handler: async ({ email, verify_smtp, check_domain_age, suggest_domain }) => {
const params = new URLSearchParams({ email });
if (verify_smtp) params.set("verifySmtp", "true");
if (check_domain_age) params.set("checkDomainAge", "true");
if (suggest_domain) params.set("suggestDomain", "true");
const res = await fetch(
`https://api.email-check.app/v1-get-email-details?${params}`,
{ headers: { "x-api-key": process.env.EC_API_KEY } }
);
return res.json();
}
};| Pipeline | Trigger | Volume | Latency | Best For |
|---|---|---|---|---|
| Lead Scoring | Real-time (on entry) | 1-50/day | 25ms | SDR, inbound leads |
| CRM Hygiene | Scheduled (weekly) | 1K-500K | 15-30 min | Database maintenance |
| Pre-Campaign Gate | Manual or scheduled | 5K-200K | 5-20 min | Marketing teams |
For databases with more than 50K contacts, weekly is recommended. For smaller databases, monthly is sufficient. The frequency depends on how fast contacts enter and leave your system. High-velocity SaaS products with daily signups should validate on entry (real-time) and run weekly hygiene checks.
Yes. The email-check.app API is a standard REST endpoint. For Salesforce, use an Apex trigger or Flow to call the API on record creation. For HubSpot, use a workflow automation or custom code action. For Pipedrive, use webhooks or the API. All three CRMs support custom fields for storing validation data like risk score and verification status.
The API validates one email per request with 25ms average response. For bulk processing, use parallel requests with batching. Process 10-50 emails concurrently with a small delay between batches. A 100K-contact hygiene run completes in approximately 15-20 minutes with this approach. For larger volumes, contact the team about dedicated infrastructure options.
Yes. The API works as a standard HTTP tool for AI agents using Claude, GPT, or custom agent frameworks. Agents can call the verification endpoint during lead enrichment, prospecting, or data quality workflows. For MCP-based setups, the API can be wrapped as an MCP tool that agents invoke directly.
A pipeline is only as strong as the API behind it. Fast response times, comprehensive checks, and structured output make the difference between a pipeline that runs reliably and one that breaks under load.
| Pipeline Requirement | email-check.app | Why It Matters |
|---|---|---|
| Real-time validation | 25ms avg | No delay in signup forms |
| Bulk throughput | 500M+/day | 50K contacts in 15-30 min |
| Risk scoring | 0-100 per email | Direct lead scoring input |
| Disposable detection | 5,000+ domains | Block fake signups at entry |
| Typo correction | Auto-suggest | Recover 15% of mistyped leads |
| Webhook notifications | Growth plan+ | Async bulk job completion alerts |
| Compliance | SOC 2, ISO, GDPR | Enterprise data requirements |
The risk score field maps directly into lead grading models. No custom parsing needed. A 0-100 score gives your CRM a quantifiable email quality signal.
Schedule weekly or monthly validation runs. Webhook notifications alert you when batch jobs complete. Keep CRM data clean without manual CSV exports.
Screen every campaign list before sending. Remove bounces, correct typos, and generate quality reports that marketing and RevOps stakeholders can review.
Standard REST API works as an HTTP tool for AI agents. Wrappable as an MCP tool for autonomous lead enrichment and data quality workflows.
Upload CSV files via dashboard for large-scale list cleaning. Process 100K+ emails with detailed status reports and downloadable results.
Works with Salesforce, HubSpot, Pipedrive, and any CRM that supports API calls, webhooks, or custom workflow actions. Store validation data in custom fields.
Get an API key and start integrating email verification into your lead scoring, CRM hygiene, and pre-campaign workflows. All verification features included in every plan starting at \$6.99/month.
Works with Salesforce, HubSpot, Pipedrive, Zapier, n8n, Make, and AI agent frameworks. SOC 2 Type II and ISO 27001 certified. No feature paywalls.