
Build powerful automation scenarios with visual workflows. Connect to 1,000+ apps with advanced data transformation.
Works with: Google Sheets Airtable HubSpot Salesforce ActiveCampaign Mailchimp Webflow Notion Slack Discord +2 more
Build complex workflows with conditional logic, loops, and data transformation.
Validate and sync email data between databases, CRMs, and marketing tools.
Run bulk validation jobs on a schedule and automatically process results.
Import these blueprints into Make to get started quickly. Go to Scenarios > Import Blueprint > Upload File.
Start with your data source (Google Sheets, Airtable, Webhook, etc.)
Call MailOdds API to validate the email
Split flow based on validation status (valid/invalid/catch_all)
Update records, send notifications, or trigger downstream processes
Create an API key from your MailOdds dashboard. You'll use this in the HTTP module headers.
Go to API KeysIn Make, create a new scenario and add your trigger module (e.g., "Watch Rows" from Google Sheets).
Add an "HTTP - Make a request" module and configure it with the MailOdds API endpoint.
Use a Router module to split the flow based on validation status and take different actions.
// Make HTTP Module Configuration
URL: https://api.mailodds.com/v1/validate
Method: POST
Headers:
Authorization: Bearer {{your_api_key}}
Content-Type: application/json
Body (JSON):
{
"email": "{{email_from_previous_module}}"
}
Parse Response: Yes // Make HTTP Module - Create Bulk Job
URL: https://api.mailodds.com/v1/jobs
Method: POST
Headers:
Authorization: Bearer {{your_api_key}}
Content-Type: application/json
Body (JSON):
{
"emails": {{array_of_emails}},
"callback_url": "{{your_webhook_url}}"
} // Make HTTP Module - Fetch Results
URL: https://api.mailodds.com/v1/jobs/{{job_id}}/results
Method: GET
Query String:
format: json
per_page: 100
page: 1
Headers:
Authorization: Bearer {{your_api_key}} Use these conditions in your Router filters to branch based on validation results:
result.action = "accept"result.action = "accept_with_caution"result.action = "reject"Receive real-time event notifications from MailOdds in your Make scenarios. Use a Custom Webhook module as the trigger, then configure the URL in your MailOdds dashboard.
Supported events: message.bounced, message.opened, message.clicked, message.delivered, message.deferred
| Field | Type | Description |
|---|---|---|
| event | string | Event type (message.bounced, message.opened, message.clicked, etc.) |
| to | string | Recipient email address |
| message_id | string | Unique message identifier |
| is_bot | boolean | True if event from security scanner/link prefetcher (engagement events only) |
| is_mpp | boolean | True if event from Apple Mail Privacy Protection (engagement events only) |
| link_url | string | Clicked URL (message.clicked only) |
| bounce_type | string | hard or soft (message.bounced only) |
| timestamp | string | ISO 8601 event timestamp |
is_bot = true when the event came from a security scanner, link prefetcher, or corporate email gateway (not a human). Common with Barracuda, Proofpoint, and Mimecast.
is_mpp = true when the event came from Apple Mail Privacy Protection, which pre-fetches all images and inflates open counts. Affects roughly 50% of iOS/macOS mail users.
Both fields are Booleans on engagement events (opened, clicked). Always guard with == true since they may be absent on non-engagement events.
{
"event": "message.clicked",
"to": "user@example.com",
"message_id": "msg_abc123",
"link_url": "https://example.com/offer",
"is_bot": false,
"is_mpp": false,
"timestamp": "2026-01-15T10:30:00Z"
} // Make Scenario - Handle MailOdds Webhook Events
// 1. Webhook: Custom webhook (receive MailOdds event)
// URL: Copy from Make and paste into MailOdds dashboard
//
// 2. Router: Branch by {{1.event}}
// Route A: "message.bounced" AND {{1.bounce_type}} = "hard"
// -> HTTP: POST https://api.mailodds.com/v1/suppression
// Headers: Authorization: Bearer YOUR_API_KEY
// Body: { "entries": [{ "type": "email", "value": "{{1.to}}" }] }
//
// Route B: "message.clicked" AND {{1.is_bot}} != true
// -> HTTP: POST to CRM or analytics endpoint
//
// Route C: "message.opened" AND {{1.is_mpp}} != true
// -> HTTP: Update engagement score in CRM Automatically suppress hard-bounced emails to protect your sender reputation. Build a bounce-to-suppression pipeline using webhook events and the POST /v1/suppression endpoint. Check suppressions before sending with POST /v1/suppression/check.
// Make Scenario - Bounce-to-Suppression Pipeline
// 1. Webhook: Catch MailOdds webhook event
// 2. Filter: {{1.event}} = "message.bounced" AND {{1.bounce_type}} = "hard"
// 3. HTTP Module: POST to https://api.mailodds.com/v1/suppression
// Headers: Authorization: Bearer YOUR_API_KEY
// Body: { "entries": [{ "type": "email", "value": "{{1.to}}" }] }
//
// Suppression Check (before sending):
// HTTP Module: POST to https://api.mailodds.com/v1/suppression/check
// Headers: Authorization: Bearer YOUR_API_KEY
// Body: { "email": "{{previous_module.email}}" }
// Response: { "suppressed": true/false, "reason": "..." } Monitor validation metrics on a schedule using GET /v1/telemetry/summary with ETag caching. Store the ETag in a Make Data Store to avoid reprocessing unchanged data. Send alerts when deliverability drops below threshold.
// Make Scenario - Scheduled Telemetry Monitoring
// 1. Schedule trigger: Every hour
// 2. Data Store: Get Record (key: "mailodds_etag")
// 3. HTTP Module: GET https://api.mailodds.com/v1/telemetry/summary
// Headers:
// Authorization: Bearer YOUR_API_KEY
// If-None-Match: {{2.etag}}
//
// 4. Router:
// Route A: Status code = 304 -> No Op (data unchanged)
// Route B: Status code = 200
// -> Data Store: Update Record (key: "mailodds_etag", value: {{3.headers.etag}})
// -> Google Sheets: Add Row (timestamp, deliverable_rate, total_validations)
// -> Filter: {{3.rates.deliverable}} < 0.85
// -> Slack: Send alert message Save SMTP credits by validating in two tiers. Tier 1 uses depth='standard' (syntax + DNS checks, no SMTP credit cost) to filter obviously invalid emails. Tier 2 uses depth='enhanced' (full SMTP verification) only for leads that pass Tier 1. Use a Filter module between the two HTTP modules. Typical savings: 72%.
// Make Scenario - Two-Tier Depth Optimization
// 1. Trigger: New row in Google Sheets / Webhook / etc.
//
// 2. HTTP Module: POST https://api.mailodds.com/v1/validate
// Headers: Authorization: Bearer YOUR_API_KEY
// Body: { "email": "{{1.email}}", "depth": "standard" }
// (Tier 1: syntax + DNS, no SMTP credit cost)
//
// 3. Filter: {{2.action}} != "reject"
// (Only continue if email passes basic validation)
//
// 4. HTTP Module: POST https://api.mailodds.com/v1/validate
// Headers: Authorization: Bearer YOUR_API_KEY
// Body: { "email": "{{1.email}}", "depth": "enhanced" }
// (Tier 2: full SMTP verification for qualified leads)
//
// 5. Router: Branch by {{4.action}}
// Typical savings: 72% fewer SMTP credits Beyond validation, automate email sending, campaign management, and deliverability monitoring with Make scenarios.
Send transactional emails directly from Make scenarios. Trigger from form submissions, schedules, or webhooks. Track opens and clicks with built-in engagement analytics.
// Make HTTP Module - Send Email via MailOdds
// 1. Trigger: Any Make trigger (form, schedule, webhook)
// 2. HTTP Module: POST to https://api.mailodds.com/v1/deliver
// Headers: Authorization: Bearer YOUR_API_KEY
// Body:
{
"from": "notifications@yourdomain.com",
"to": "{{1.email}}",
"subject": "{{1.subject}}",
"html": "{{1.html_body}}",
"tags": ["make-triggered"],
"track_opens": true,
"track_clicks": true
}
// Response: message_id, status Related: Email Sending API
Automate campaign creation and sending on a schedule. Build weekly newsletter scenarios that create a campaign, attach your subscriber list, and send automatically every Monday.
// Make Scenario - Create and Send Campaign
// 1. Schedule Trigger: Weekly at Monday 9 AM
// 2. HTTP: POST to https://api.mailodds.com/v1/campaigns
// Body:
{
"name": "Weekly Newsletter - {{formatDate(now; 'YYYY-MM-DD')}}",
"subject": "This week at {{1.company_name}}",
"from_email": "hello@yourdomain.com",
"subscriber_list_id": "{{1.list_id}}",
"html_body": "{{1.newsletter_html}}",
"track_opens": true,
"track_clicks": true
}
// 3. HTTP: POST to https://api.mailodds.com/v1/campaigns/{{2.id}}/send Related: Email Campaigns
Schedule daily health checks that pull sender reputation, bounce rates, and DMARC compliance. Route alerts to Slack when metrics drop below your thresholds and log historical data to Google Sheets.
// Make Scenario - Daily Deliverability Check
// 1. Schedule: Daily at 8 AM
// 2. HTTP: GET https://api.mailodds.com/v1/sender-health
// 3. Router:
// Route A (reputation < 70): Send Slack alert
// Route B (reputation >= 70): Log to Google Sheets
// 4. HTTP: GET https://api.mailodds.com/v1/dmarc/domains/yourdomain.com
// 5. Filter: If fail_percentage > 5, send alert Related: Email Deliverability Platform
Can't find what you're looking for? We're here to help you get Make working.
Get your API key and start building powerful email validation workflows.