MailOdds

Airtable

Airtable + MailOdds

Validate email fields in your Airtable bases automatically. Keep contact databases clean and filter by email quality.

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

Prerequisites

  • MailOdds account with API key
  • Airtable base with email field
  • Airtable Pro plan or higher (for Scripting and Automations)

Example Workflow

1

Trigger: New Record in Airtable

Watch for new records or updated email fields in your base.

2

Validate: MailOdds API Call

Send the email to MailOdds for full SMTP verification.

3

Update: Write Results Back

Update the record with validation status, action, and sub_status.

4

Filter: Create Smart Views

Use Airtable views to segment by valid, invalid, or risky emails.

Airtable Script: Validate Email

JAVASCRIPT
// Airtable Scripting - Validate Email for Selected Record
let table = base.getTable('Contacts');
let record = await input.recordAsync('Pick a record', table);
let email = record.getCellValueAsString('Email');

let 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 })
});

let result = await response.json();

await table.updateRecordAsync(record, {
  'Validation Status': result.status,
  'Email Action': result.action,
  'Disposable': result.disposable ? 'Yes' : 'No'
});

output.text(`${email}: ${result.status} / ${result.action}`);

Airtable Automation: Validate on New Record

JAVASCRIPT
// Airtable Automation - Validate on New Record
// Trigger: "When a record is created" in your Contacts table
// Action: "Run a script" with this code:

let inputConfig = input.config();
let email = inputConfig.email; // Map the Email field in config

let 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 })
});

let result = await response.json();

// Use a second "Update record" action to write these outputs:
output.set('status', result.status);
output.set('action', result.action);
output.set('disposable', result.disposable);

Telemetry Export

Track your validation health over time by exporting daily telemetry data to an Airtable base. Use a scheduled Airtable Automation to call the telemetry API and write metrics to a dedicated table.

Airtable Automation: Daily Telemetry Export

JAVASCRIPT
// Airtable Automation - Daily Telemetry Export
// Trigger: "At a scheduled time" (daily at 9 AM)
// Action: "Run a script"

let response = await fetch('https://api.mailodds.com/v1/telemetry/summary', {
  headers: { 'Authorization': 'Bearer YOUR_API_KEY' }
});
let data = await response.json();

// Use a second "Create record" action in your Telemetry table:
output.set('date', new Date().toISOString().split('T')[0]);
output.set('totalValidations', data.totals.validations);
output.set('deliverableRate', data.rates.deliverable);
output.set('creditsUsed', data.totals.creditsUsed);

Bulk Validation

Validate large Airtable email lists in batch. Use an Airtable Script to read emails from your table, submit them to the bulk API via POST /v1/jobs, and write results back to each record. Requires Growth plan or above.

Airtable Script: Bulk Validate Emails

JAVASCRIPT
// Airtable Scripting - Bulk Validate Email List
let table = base.getTable('Contacts');
let query = await table.selectRecordsAsync({ fields: ['Email'] });

let emails = query.records
  .map(r => r.getCellValueAsString('Email'))
  .filter(e => e);

let 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,
    callback_url: 'YOUR_WEBHOOK_URL'
  })
});
let job = await response.json();

// Poll GET /v1/jobs/{job_id} for status
// When complete, iterate results and update Airtable records
output.text(`Job ${job.job_id} submitted with ${emails.length} emails`);

Suppression Check

Before using Airtable emails for campaigns, check each address against your MailOdds suppression list. This prevents sending to previously bounced or complained addresses.

Airtable Script: Check Suppression Status

JAVASCRIPT
// Airtable Scripting - Check Email Against Suppression List
let table = base.getTable('Contacts');
let record = await input.recordAsync('Pick a record', table);
let email = record.getCellValueAsString('Email');

let response = await fetch('https://api.mailodds.com/v1/suppression/check', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({ email })
});
let result = await response.json();

output.text(`${email}: ${result.suppressed ? 'Suppressed' : 'Clear'}`);

Beyond Validation

MailOdds is a full-cycle email platform. After validating your Airtable contacts, you can send campaigns, monitor deliverability, and track engagement from the same API.

Frequently Asked Questions

Troubleshooting

Need more help?

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

Clean Your Airtable Email Data

Get 1,000 free validations and start verifying Airtable emails today.