Mailgun Slack integration: alerts in Slack, or email and Slack from one API call.
Two different jobs hide behind “Mailgun Slack integration”. If you want Mailgun's own deliverability alerts in Slack (blocklist hits, reputation changes, bounce rates), use Mailgun's native Slack integration: it is free, and the four steps below are all it takes. You do not need Notifly for that.
If you want your product's notifications to reach people by email through your Mailgun domain and in Slack from a single API call, with routing, per-subscriber preferences and digests, that is what Notifly does. It sends through your own Mailgun account and your own Slack app, and the same trigger can also reach the in-app inbox.
Mailgun's alerts in Slack: use the native integration
Mailgun ships its own Slack integration, “Mailgun Alerts”, for the operational side of email. According to Mailgun's Slack integration page (checked 12 October 2026), it posts to the Slack channels you choose for blocklist monitoring (providers such as Spamhaus and SpamCop), domain and IP reputation changes, bulk email validation completion, delivery failures, and send alerts on complaint, delivery, hard bounce and temporary fail rates. Mailgun lists it as free: you need a Mailgun account and a Slack workspace.
- Connect Mailgun to Slack from the Mailgun Control Panel, or install the Mailgun Alerts app from Slack.
- Choose the events that should notify you, such as delivery failures, validation completions and blocklist alerts.
- Choose the Slack channels and grant the permissions Slack asks for.
- Save, test, and adjust the notification preferences.
Different alerts can go to different channels, for example technical alerts to one and marketing alerts to another. Mailgun notes that alerts specific to its Optimize and Validate plans need those plans.
Which route for which job
| The job | Use | Where you set it up |
|---|---|---|
| Blocklist, reputation and send-rate alerts for your Mailgun account | Mailgun's native Slack integration | Mailgun Control Panel, or the Mailgun Alerts app in Slack |
| A Slack message for each bounce, failed delivery or complaint | A connector such as Zapier | Zapier lists the Mailgun triggers New Bounce Event, New Failed Delivery Event and New Complaint Event and the Slack action Send Channel Message |
| Your product's notifications by email and in Slack | A Notifly workflow | The rest of this page |
The Zapier row comes from Zapier's Mailgun and Slack page, which lists the New Bounce Event, New Failed Delivery Event and New Complaint Event triggers and a Send Channel Message action for Slack (checked 12 October 2026). This page does not claim that Notifly forwards Mailgun's alerts or delivery events to Slack.
Your product's email and Slack message from one trigger
The other question behind the same search: your app has an event, such as an overdue invoice, and the person involved should get an email through your Mailgun domain and a Slack message, without two integrations in your backend. In Notifly that is one workflow with an Email step and a Chat step, and one trigger.
- Connect Mailgun: in the dashboard open Integration Store, choose Connect Provider, open the E-Mail tab and connect Mailgun with your API key and sending domain, as the Mailgun integration guide shows.
- Connect Slack: in the same sheet open the Chat tab and connect Slack with your own Slack app's credentials, as the Slack integration guide shows.
- Build the workflow: add an Email step and a Chat step, and write both messages with the trigger's payload, such as
{{payload.invoiceId}}. - Give each subscriber an email address and a Slack destination, an incoming webhook or a connected Slack user, then trigger the workflow.
// npm install @notiflyio/api@0.1.26
import { Notifly } from "@notiflyio/api";
const secretKey = process.env.NOTIFLY_SECRET_KEY;
if (!secretKey) throw new Error("NOTIFLY_SECRET_KEY is not set");
const notifly = new Notifly({ security: { secretKey } });
// Once per subscriber: their email address (the Email step sends there) and the Slack incoming
// webhook their Slack messages go to (the Chat step posts there).
await notifly.subscribers.create({ subscriberId: "user_123", email: "ada@example.com" });
await notifly.subscribers.credentials.update(
{
providerId: "slack",
credentials: { webhookUrl: "https://hooks.slack.com/services/T0000000/B0000000/XXXXXXXXXXXXXXXXXXXXXXXX" },
},
"user_123",
);
// Any time after that: one trigger runs the workflow's Email step and its Chat step.
await notifly.trigger({
workflowId: "invoice-overdue",
to: "user_123",
payload: { invoiceId: "INV-1042", amount: "$480.00", severity: "urgent" },
overrides: {
// oTag reaches Mailgun as o:tag.
providers: { mailgun: { oTag: ["invoice-overdue"] } },
},
});Slack delivery works as Send Slack notifications from your app describes: a webhook route and a bot route, both through your own Slack app.
What the workflow adds around the two sends
- Routing with step conditions. Open Step conditions on a step to run it only when a
payload,subscriber.dataorcontextfield matches, for example the Chat step only whenpayload.severityequalsurgent. A step whose conditions fail is skipped and the activity feed records it. - Preferences at send time. Before each step runs, Notifly checks the subscriber's preferences for that workflow and channel, so someone who opted out of Slack still gets the email, and the reason a step was skipped is recorded.
- Digests. Put a digest step ahead of the Email or Chat step when a burst of events should arrive as one message.
- Delivery status. Every message gets execution details in the activity feed, including the response or error Mailgun or Slack returned.
- Your accounts. Mail leaves from your Mailgun domain, on your Mailgun plan, and Slack messages are posted by your own Slack app.
Frequently asked questions
Does Mailgun have its own Slack integration?
Yes. Mailgun Alerts posts deliverability alerts to Slack: blocklist monitoring, domain and IP reputation changes, bulk email validation completion, delivery failures and send-rate alerts. You set it up from the Mailgun Control Panel or by installing the Mailgun Alerts app from Slack, and Mailgun lists it as free. Source: Mailgun's Slack integration page, checked 12 October 2026.
Do I need Notifly to get Mailgun alerts in Slack?
No. Mailgun's native Slack integration covers its own alerts. Notifly is for the notifications your product sends to people, by email through your Mailgun account and in Slack from the same workflow.
How do I get a Slack message when a Mailgun email bounces?
Mailgun's native alerts include delivery failures and bounce-rate alerts. For one Slack post per bounce or complaint, a connector such as Zapier lists the Mailgun triggers New Bounce Event, New Failed Delivery Event and New Complaint Event with a Slack Send Channel Message action (checked 12 October 2026). This page does not claim Notifly forwards Mailgun's delivery events.
Can one Notifly API call send an email through Mailgun and a Slack message?
Yes. A workflow with an Email step and a Chat step runs from one trigger. The Email step goes through your connected Mailgun account to the subscriber's email address, and the Chat step posts to the subscriber's Slack destination through your own Slack app.
Can I send the Slack message only for urgent events?
Yes. Open Step conditions on the Chat step and compare a payload, subscriber data or context field, for example payload.severity equals urgent. When the conditions fail the step is skipped and the activity feed records it, while the Email step still runs.
What if a subscriber has no Slack destination?
The Chat step sends nothing for that subscriber and the activity feed says they have no active channel. Their Email step is unaffected. Save a webhook URL on the subscriber or connect their Slack user to add the destination.
Do I need my own Slack app?
Yes. Notifly sends as a Slack app you own, and the dashboard's Slack integration asks for its App ID, Client ID, Client Secret and Signing Secret. The Slack integration guide covers the redirect URL and scopes.
One workflow for in-app, email, SMS, push and chat.
The free plan includes 10,000 events per month, no card needed.