Validate emails with slash commands and get validation alerts in your Slack channels. Keep your team informed on email quality.
Type /validate user@example.com in any channel to check an email instantly during sales calls.
Get notified when MailOdds detects a hot lead from engagement events, with rich Block Kit formatting.
Receive real-time alerts when emails bounce or are deferred, with diagnostic details.
Schedule automated daily reports on validation health and deliverable rates posted to a channel.
// 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: 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> 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 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"
}]
}
]
}; 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.
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 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 + "`"
}
}
]
}; 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.
// 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 }
]
}
]
}; 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.
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 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"
}]
}
]
};
} 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 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")
}
}
]
};
} 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 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 }
]
}
]
};
} 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 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
}]
}
]
}; Can't find what you're looking for? We're here to help you get Slack working.
Validation slash commands, deliverability alerts, and campaign summaries in your Slack channels.