MailOdds

Salesforce + MailOdds

Validate lead and contact emails in Salesforce. Catch invalid addresses before they enter your pipeline and waste sales rep time.

Setup time: 10-15 min
Difficulty: Intermediate
1,000 free validations included

Prerequisites

  • MailOdds account with API key
  • Salesforce with custom field access
  • Zapier or Make account

Salesforce Use Cases

Lead Qualification

Validate emails on new leads. Flag invalid addresses before assignment to sales reps.

Web-to-Lead Filtering

Validate leads from web forms. Prevent fake signups from polluting your pipeline.

Database Cleaning

Bulk validate existing leads and contacts. Export, validate, import results via Data Loader.

Campaign List Hygiene

Validate Salesforce campaign member lists before email sends. Reduce bounces and protect deliverability.

Step-by-Step Setup

1

Create Custom Fields

In Salesforce Setup: add Email_Validation_Status__c (Picklist: valid/invalid/risky/unknown) and Email_Quality_Score__c (Number).

2

Connect Zapier to Salesforce

Create a Zap with trigger "New Lead in Salesforce". Map the Email field to your Code step.

3

Add MailOdds Validation

Code step validates the email. Returns status, action, score, and detailed sub_status.

4

Update Lead Record

Use "Update Record" to write validation results to your custom fields.

5

Build Reports & Dashboards

Create Salesforce reports filtered by email validation status. Monitor data quality across your pipeline.

Zapier: Validate Salesforce Lead

JAVASCRIPT
// Zapier Code Step - Validate Salesforce Lead/Contact 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 // Mapped from Salesforce Lead or Contact 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',
  score: result.result.score,
  sub_status: result.result.sub_status
};

Make: Salesforce Lead Scenario

JAVASCRIPT
// Make Scenario - Salesforce Lead Validation
// 1. Salesforce: Watch New Leads (trigger)
// 2. HTTP Module: POST to https://api.mailodds.com/v1/validate
//    Headers: Authorization: Bearer YOUR_API_KEY
//    Body: { "email": "{{1.Email}}" }
// 3. Salesforce: Update Record
//    Custom Field "Email_Validation_Status__c" = {{2.result.status}}
//    Custom Field "Email_Quality_Score__c" = {{2.result.score}}
// 4. Router: Branch by action
//    - "reject" -> Salesforce: Update Lead Status = "Bad Email"
//    - "accept" -> Continue to assignment rules

Bulk Validate Salesforce Database

JAVASCRIPT
// Salesforce Data Loader + MailOdds Bulk Validation
// For large Salesforce databases, use the bulk approach:
//
// 1. Export leads/contacts via Salesforce Data Loader or Report
//    - Include: Id, Email columns
// 2. Upload CSV to MailOdds dashboard (/dashboard/jobs/new)
// 3. Download validated results CSV
// 4. Map results to Salesforce custom fields:
//    - Email_Validation_Status__c (Picklist: valid/invalid/risky/unknown)
//    - Email_Quality_Score__c (Number: 0-1)
// 5. Import back via Data Loader with Update operation
//
// API approach for automation:
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: inputData.emails,
    callback_url: 'YOUR_WEBHOOK_URL'
  })
});

Frequently Asked Questions

Troubleshooting

Need more help?

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

Clean Your Salesforce Pipeline

Get 1,000 free validations and start verifying leads and contacts today.