MailOdds
Zapier

Zapier + MailOdds

Connect MailOdds to 5,000+ apps. Validate emails automatically from forms, spreadsheets, CRMs, and more.

Setup time: 5-10 min
Difficulty: Beginner
1,000 free validations included

Prerequisites

  • MailOdds account (free tier works)
  • API key from dashboard
  • Zapier account (Starter+ for Code steps)
  • Basic JavaScript knowledge

Works with: Google Sheets HubSpot Salesforce Typeform Airtable Mailchimp Slack Gmail Pipedrive Notion +2 more

Validate Form Submissions

Automatically validate emails from Typeform, Google Forms, or any form builder before adding to your CRM.

Clean Spreadsheet Data

Validate emails from Google Sheets or Airtable and update rows with validation status.

Enrich CRM Contacts

Validate new contacts in HubSpot, Salesforce, or Pipedrive and tag them based on email quality.

Download Code Snippets

Download all code snippets as a JavaScript file for easy reference. Includes single validation, bulk jobs, status checking, and webhook handling.

Download All Snippets

Quick Setup Guide

1

Get Your MailOdds API Key

Sign up for MailOdds and create an API key from your dashboard.

Go to API Keys
2

Create a New Zap

In Zapier, create a new Zap and choose your trigger (e.g., "New Form Submission" from Typeform).

3

Add a Code by Zapier Step

Add "Code by Zapier" as your action and select "Run JavaScript". Paste the validation code below.

4

Use Results in Next Steps

Use the validation result (status, action, is_valid) to filter, route, or update records in subsequent steps.

Validate Single Email

JAVASCRIPT
Try Demo |
// Zapier Code Step - Validate Single Email
const response = await fetch('https://api.mailodds.com/v1/validate', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    email: inputData.email
  })
});

const result = await response.json();

return {
  email: result.result.email,
  status: result.result.status,
  action: result.result.action,
  is_valid: result.result.action === 'accept',
  reason: result.result.sub_status || null
};
Input Data: Set up an input field called email and map it to your trigger's email field.

Create Bulk Validation Job

JAVASCRIPT
// Zapier Code Step - Create Bulk Validation Job
const emails = inputData.emails.split(',').map(e => e.trim());

const response = await fetch('https://api.mailodds.com/v1/jobs', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    emails: emails,
    callback_url: 'YOUR_WEBHOOK_URL' // Optional
  })
});

const result = await response.json();

return {
  job_id: result.job.id,
  status: result.job.status,
  email_count: result.job.email_count
};

Webhook Payload (Job Completed)

JSON
{
  "event": "job.completed",
  "job_id": "job_abc123",
  "status": "completed",
  "summary": {
    "valid": 850,
    "invalid": 120,
    "catch_all": 25,
    "unknown": 5
  },
  "results_url": "https://api.mailodds.com/v1/jobs/job_abc123/results"
}
Tip: Use "Webhooks by Zapier" as a trigger to receive job completion events and continue your workflow.

Response Fields

Field Type Description
status string valid, invalid, catch_all, unknown, do_not_mail
action string accept, accept_with_caution, reject, retry_later
sub_status string Detailed reason (e.g., mailbox_not_found, disposable)
is_valid boolean true if action is "accept" (convenience field)

Frequently Asked Questions

Troubleshooting

Need more help?

Can't find what you're looking for? We're here to help you get Zapier working.

Ready to Get Started?

Create your free account and start validating emails in minutes.