MailOdds

Slack + MailOdds

Validate emails with slash commands and get validation alerts in your Slack channels. Keep your team informed on email quality.

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

Prerequisites

  • MailOdds account with API key
  • Slack workspace with admin access
  • Zapier, Make, or n8n account

Slack Use Cases

Slash Command Validation

Type /validate user@example.com in any channel to check an email instantly during sales calls.

Hot Lead Alerts

Get notified when MailOdds detects a hot lead from engagement events, with rich Block Kit formatting.

Bounce/Deferral Alerts

Receive real-time alerts when emails bounce or are deferred, with diagnostic details.

Daily Health Digest

Schedule automated daily reports on validation health and deliverable rates posted to a channel.

n8n: Slack Slash Command Workflow

JSON
// n8n Webhook - Slack Slash Command /validate
// 1. Webhook node receives POST from Slack
// 2. Extract email from command text
// 3. HTTP Request to MailOdds API
// 4. Format response as Slack Block Kit message
// 5. Reply to Slack webhook

// POST to https://api.mailodds.com/v1/validate
// Body: { "email": "{{ $json.text }}" }

// Slack response format:
{
  "response_type": "ephemeral",
  "blocks": [
    {
      "type": "section",
      "text": {
        "type": "mrkdwn",
        "text": "*Email Validation Result*\n\nEmail: user@example.com\nStatus: valid\nAction: accept\nScore: 0.95"
      }
    }
  ]
}

Zapier: Bulk Job Slack Alert

JAVASCRIPT
// Zapier: Send Slack Alert for Invalid Emails
// Trigger: MailOdds bulk job webhook (job.completed)
// Filter: Only continue if invalid count > threshold
// Action: Send Slack Channel Message

// Message template:
// :warning: *Email Validation Alert*
// Job `{{job_id}}` completed with {{summary.invalid}} invalid emails.
// Valid: {{summary.valid}} | Invalid: {{summary.invalid}}
// <{{results_url}}|View Full Results>

Hot Lead Alerts

Receive real-time Slack alerts when MailOdds detects a hot lead from intent.hot_lead webhook events. Route to your sales channel with rich Block Kit formatting so your team can act immediately.

n8n: Hot Lead Alert for Slack

JAVASCRIPT
// n8n Function Node - Format Hot Lead Alert for Slack
const payload = $json;

return {
  blocks: [
    {
      type: "header",
      text: { type: "plain_text", text: "Hot Lead Detected" }
    },
    {
      type: "section",
      fields: [
        { type: "mrkdwn", text: "*Email:*\n" + payload.to },
        { type: "mrkdwn", text: "*Event:*\n" + payload.event },
        { type: "mrkdwn", text: "*Score:*\n" + (payload.score || "N/A") },
        { type: "mrkdwn", text: "*Time:*\n" + payload.timestamp }
      ]
    },
    {
      type: "actions",
      elements: [{
        type: "button",
        text: { type: "plain_text", text: "View in Dashboard" },
        url: "https://mailodds.com/dashboard"
      }]
    }
  ]
};

Bounce and Deferral Alerts

Get notified when emails bounce or are deferred. Trigger on message.bounced and message.deferred webhook events and post diagnostic details to your ops channel.

Understanding is_bot and is_mpp in Webhook Events

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.

n8n: Bounce Alert for Slack

JAVASCRIPT
// n8n Function Node - Format Bounce/Deferral Alert for Slack
const payload = $json;

return {
  blocks: [
    {
      type: "section",
      text: {
        type: "mrkdwn",
        text: "*Email Bounce Alert*\n*To:* " + payload.to + "\n*Type:* " + (payload.bounce_type || "unknown") + "\n*Message ID:* `" + payload.message_id + "`"
      }
    }
  ]
};

Daily Telemetry Digest

Schedule a daily digest from GET /v1/telemetry/summary and post a formatted health report to your team channel. Track validation counts, deliverable rates, and credit usage over time.

Zapier: Daily Telemetry Digest for Slack

JAVASCRIPT
// Daily Telemetry Digest for Slack
const response = await fetch('https://api.mailodds.com/v1/telemetry/summary', {
  headers: { 'Authorization': 'Bearer YOUR_API_KEY' }
});
const data = await response.json();

return {
  blocks: [
    {
      type: "header",
      text: { type: "plain_text", text: "Daily Email Health Report" }
    },
    {
      type: "section",
      fields: [
        { type: "mrkdwn", text: "*Total Validations:*\n" + data.totals.validations },
        { type: "mrkdwn", text: "*Deliverable Rate:*\n" + data.rates.deliverable + "%" },
        { type: "mrkdwn", text: "*Credits Used:*\n" + data.totals.creditsUsed },
        { type: "mrkdwn", text: "*Period:*\n" + data.period }
      ]
    }
  ]
};

Full Platform: Deliverability Alerts

MailOdds goes beyond validation. Monitor your entire sending infrastructure from Slack.

Sender reputation, blacklist detection, and DMARC compliance alerts keep your team informed before deliverability issues impact campaigns.

Reputation Drop Alerts

Monitor your sender health score hourly. When reputation drops below your threshold, MailOdds posts an alert to your ops channel with bounce rate, complaint rate, and authentication health details.

n8n: Sender Reputation Alert for Slack

JAVASCRIPT
// n8n Function Node - Sender Reputation Alert for Slack
// Schedule: Every hour via n8n Cron trigger
// HTTP Request: GET https://api.mailodds.com/v1/sender-health
const health = $json;

// Only alert if reputation drops below threshold
if (health.reputation_score < 70) {
  return {
    blocks: [
      {
        type: "header",
        text: { type: "plain_text", text: "Sender Reputation Alert" }
      },
      {
        type: "section",
        fields: [
          { type: "mrkdwn", text: "*Score:* " + health.reputation_score + "/100" },
          { type: "mrkdwn", text: "*Bounce Rate:* " + (health.bounce_rate * 100).toFixed(1) + "%" },
          { type: "mrkdwn", text: "*Complaint Rate:* " + (health.complaint_rate * 100).toFixed(2) + "%" },
          { type: "mrkdwn", text: "*Auth Health:* " + health.authentication_health }
        ]
      },
      {
        type: "actions",
        elements: [{
          type: "button",
          text: { type: "plain_text", text: "View Dashboard" },
          url: "https://mailodds.com/dashboard"
        }]
      }
    ]
  };
}

Blacklist Detection Alerts

MailOdds monitors 50+ DNSBLs for your sending IPs. When a listing is detected, post the details to Slack so your team can begin remediation immediately.

n8n: Blacklist Detection Alert for Slack

JAVASCRIPT
// n8n Function Node - Blacklist Detection Alert for Slack
// Trigger: MailOdds webhook or scheduled check via GET /v1/blacklist-monitors
const monitors = $json;

const listed = monitors.filter(m => m.listed === true);
if (listed.length > 0) {
  return {
    blocks: [
      {
        type: "header",
        text: { type: "plain_text", text: "Blacklist Alert" }
      },
      {
        type: "section",
        text: {
          type: "mrkdwn",
          text: "*" + listed.length + " blacklist(s) detected:*\n" +
            listed.map(m => "- " + m.blacklist_name + " (" + m.ip + ")").join("\n")
        }
      }
    ]
  };
}

DMARC Failure Notifications

Track DMARC alignment trends daily. When SPF or DKIM failure rates exceed your threshold, alert your team with domain, failure percentage, and pass counts.

n8n: DMARC Failure Alert for Slack

JAVASCRIPT
// n8n Function Node - DMARC Failure Alert for Slack
// Schedule: Daily via n8n Cron trigger
// HTTP Request: GET https://api.mailodds.com/v1/dmarc/domains/{domain}/trend
const trend = $json;
const latest = trend.data_points[trend.data_points.length - 1];

if (latest && latest.fail_percentage > 5) {
  return {
    blocks: [
      {
        type: "header",
        text: { type: "plain_text", text: "DMARC Failure Alert" }
      },
      {
        type: "section",
        fields: [
          { type: "mrkdwn", text: "*Domain:* " + trend.domain },
          { type: "mrkdwn", text: "*Fail Rate:* " + latest.fail_percentage + "%" },
          { type: "mrkdwn", text: "*SPF Pass:* " + latest.spf_pass_count },
          { type: "mrkdwn", text: "*DKIM Pass:* " + latest.dkim_pass_count }
        ]
      }
    ]
  };
}

Campaign Summary Notifications

After a campaign completes, post a summary to your marketing channel. See sent, delivered, opens, clicks, bounces, and unsubscribes at a glance with a direct link to the campaign dashboard.

n8n: Campaign Summary for Slack

JAVASCRIPT
// n8n Function Node - Campaign Summary for Slack
// Trigger: MailOdds webhook on campaign.completed event
const campaign = $json;

return {
  blocks: [
    {
      type: "header",
      text: { type: "plain_text", text: "Campaign Complete: " + campaign.name }
    },
    {
      type: "section",
      fields: [
        { type: "mrkdwn", text: "*Sent:* " + campaign.stats.sent },
        { type: "mrkdwn", text: "*Delivered:* " + campaign.stats.delivered },
        { type: "mrkdwn", text: "*Opens:* " + campaign.stats.unique_opens },
        { type: "mrkdwn", text: "*Clicks:* " + campaign.stats.unique_clicks },
        { type: "mrkdwn", text: "*Bounces:* " + campaign.stats.bounces },
        { type: "mrkdwn", text: "*Unsubs:* " + campaign.stats.unsubscribes }
      ]
    },
    {
      type: "actions",
      elements: [{
        type: "button",
        text: { type: "plain_text", text: "View Campaign" },
        url: "https://mailodds.com/dashboard/campaigns/" + campaign.id
      }]
    }
  ]
};

Frequently Asked Questions

Troubleshooting

Need more help?

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

Add Email Monitoring to Slack

Validation slash commands, deliverability alerts, and campaign summaries in your Slack channels.