Beginner~12 min setupCommunication & EmailVerified April 2026
Slack logo
Outlook logo

How to Send Outlook Email Alerts to Slack with Make

Automatically posts a Slack channel message whenever a new email arrives in Outlook, filtered by sender, subject, or folder.

Steps and UI details are based on platform versions at time of writing — check each platform for the latest interface.

Make logo
Make
Also on:Zapier

Best for

Teams who need instant Slack visibility into specific Outlook emails — client replies, support escalations, or emails from key senders — without monitoring their inbox all day.

Not ideal for

High-frequency inboxes receiving 100+ emails per day where every message should trigger a Slack post — that will flood your channel and burn Make operations fast.

Sync type

scheduled

Use case type

notification

Real-World Example

💡

A 12-person agency uses this to post every email from client domains into a dedicated #client-name Slack channel, routed by sender domain. Before this, account managers missed client replies for 2-3 hours because they were heads-down in project work. Now the right person sees the email in Slack within 5 minutes of arrival and can respond before the client follows up.

What Will This Cost?

Drag the slider to your expected monthly volume.

/mo
505005K50K

Each platform counts differently — Zapier: 1 task per trigger. Make: 1 operation per module per record. n8n: 1 execution per run.

Prices shown for annual billing. Based on published pricing as of April 2026.

Estimated ROI

1000

min saved/mo

$583

labor value/mo

Free

no platform cost

Based on ~2 min manual effort per operation at $35/hr fully loaded labor cost.

Implementation

Skip the setup

Import this workflow directly into Make

Copy the pre-built Make blueprint and paste it straight into Make. All modules, filters, and field mappings are already configured — you just need to connect your accounts.

Before You Start

Make sure you have everything ready.

A Microsoft account (personal or Microsoft 365 business) with an active Outlook inbox that receives the emails you want to monitor
A Slack workspace where you have permission to add apps — you need the 'Manage Apps' permission or your workspace admin must approve Make
A Make account with at minimum the Core plan if you need 5-minute polling intervals (free tier is limited to 15-minute minimum intervals)
The Make app added as a member to the Slack channel(s) where notifications will be posted — without this, messages will fail with a 'not_in_channel' error

Optional

If your Microsoft 365 account is managed by an organization, your Azure AD admin must have approved or be willing to approve the Make OAuth app for your tenant

Field Mapping

Map these fields between your apps.

FieldAPI Name
Required
From (Sender Email)
Subject
Received Date Time
5 optional fields▸ show
Body Preview
To (Recipients)
Has Attachments
Importance
Internet Message ID

Step-by-Step Setup

1

make.com > Scenarios > Create a new scenario

Create a new scenario in Make

Log in to Make at make.com and click the blue 'Create a new scenario' button in the top right of the Scenarios dashboard. You'll land on a blank canvas with a large circle in the center — this is where your trigger module goes. Make calls each automated workflow a 'scenario,' and every scenario starts with one trigger. Give your scenario a name immediately by clicking the default name at the top of the screen and typing something like 'Outlook → Slack Email Alerts'.

  1. 1Log in at make.com
  2. 2Click 'Create a new scenario' in the top right
  3. 3Click the untitled name at the top and rename it to 'Outlook → Slack Email Alerts'
  4. 4Click the large circle in the center of the canvas to open the module picker
What you should see: You should see the module search dialog open over a blank canvas, with a search bar at the top and a grid of app icons below it.
Common mistake — Make auto-saves scenario names only after you add your first module. If you close the tab before adding a module, the scenario may not save and you'll need to start over.
2

Module picker > Microsoft Outlook > Watch Emails

Add the Outlook 'Watch Emails' trigger

In the module search dialog, type 'Outlook' and select 'Microsoft Outlook' from the results. Make will show you a list of available Outlook modules. Choose 'Watch Emails' — this is a polling trigger that checks your Outlook inbox on a schedule you define. You are not choosing 'Watch Emails (advanced)' for now; the standard Watch Emails trigger covers sender, subject, and folder filtering without extra configuration.

  1. 1Type 'Outlook' in the module search bar
  2. 2Click 'Microsoft Outlook' in the results
  3. 3Scroll to find and click 'Watch Emails'
  4. 4Click 'Add' to confirm the module selection
What you should see: A Microsoft Outlook configuration panel opens on the right side of the screen, prompting you to connect an account.
Common mistake — Make offers both 'Microsoft Outlook' and 'Microsoft 365 Email' modules. 'Watch Emails' under Microsoft Outlook uses OAuth and works for personal Microsoft accounts and most business Microsoft 365 accounts. If your organization uses Modern Authentication or conditional access policies, your IT admin may need to pre-approve the Make OAuth app in Azure AD before connection succeeds.
Make
+
click +
search apps
Slack
SL
Slack
Add the Outlook 'Watch Email…
Slack
SL
module added
3

Outlook module panel > Connection > Add > Microsoft login pop-up

Connect your Microsoft account

Click 'Add' next to the Connection field in the Outlook module panel. Make will open a pop-up window asking you to sign in with your Microsoft account. Sign in with the account that receives the emails you want to monitor. After you authenticate, Microsoft will show a permissions consent screen — click Accept to grant Make read access to your mailbox. Once connected, you'll be returned to the Make configuration panel with your account name shown in the Connection field.

  1. 1Click 'Add' next to the Connection field
  2. 2Sign in with your Microsoft credentials in the pop-up
  3. 3Click 'Accept' on the Microsoft permissions consent screen
  4. 4Confirm the connection name appears in the Connection dropdown
What you should see: The Connection field should show your Microsoft account email address or a connection name like 'My Microsoft Account', and the module fields below should become active and editable.
Make settings
Connection
Choose a connection…Add
click Add
Slack
Log in to authorize
Authorize Make
popup window
Connected
green checkmark
4

Outlook module panel > Mail Folder / Filter / Mark as Read / Maximum Number of Results

Configure the email watch settings and filters

With the account connected, now configure what emails to watch. Set the 'Mail Folder' to 'Inbox' or a specific subfolder if you've set up Outlook rules that route client emails there. In the 'Filter' field, you can enter criteria like the sender email address (e.g., '@clientdomain.com') or a subject keyword. Set 'Mark as Read' to No if you want emails to retain their unread status after Make processes them. Set the 'Maximum Number of Results' to 5 — this controls how many emails Make fetches per polling cycle and prevents a backlog from flooding Slack if you set up the automation after emails have already arrived.

  1. 1Click the 'Mail Folder' dropdown and select 'Inbox' or your target folder
  2. 2Enter a sender filter in the 'Filter' field, e.g., 'from:[email protected]' or leave blank to watch all emails
  3. 3Set 'Mark as Read' to 'No'
  4. 4Set 'Maximum Number of Results' to 5
  5. 5Click 'OK' to save the module configuration
What you should see: The Outlook trigger module on the canvas should now show a clock icon indicating it's a polling trigger, and the module configuration is saved.
Common mistake — The 'Filter' field in Make's Outlook module uses Microsoft Graph API query syntax, not plain English. To filter by sender domain, use 'from:@clientdomain.com'. Using natural language like 'emails from clients' will cause the filter to fail silently and return no results.
Slack
SL
trigger
filter
Condition
matches criteria?
yes — passes through
no — skipped
Outlook
OU
notified
5

Outlook module bubble > Clock icon > Scheduling settings

Set the polling schedule

Click the clock icon on the Outlook trigger module (bottom left of the module bubble) to open the scheduling settings. Make polls Outlook on a schedule — it does not receive emails in real time the way a webhook does. Set the interval to '5 minutes' for near-real-time alerting. If the emails are less time-sensitive, 15 minutes is a reasonable middle ground that saves operations. Click 'OK' to confirm.

  1. 1Click the small clock icon at the bottom left of the Outlook module bubble
  2. 2Select '5 minutes' from the interval dropdown
  3. 3Click 'OK'
What you should see: The clock icon on the module will update to show '5m', confirming the polling interval is set.
Common mistake — Make's free tier runs scenarios on a minimum 15-minute interval regardless of what you set here. You need a Core plan or higher to unlock 5-minute polling. If you're on the free tier and see 15-minute intervals in the schedule picker, this is why.
6

Outlook module > + handle > Router

Add a Router for conditional channel routing (optional but recommended)

If you want different email types to post to different Slack channels — for example, emails from one client going to #client-a and another to #client-b — add a Router module between Outlook and Slack. Click the small + handle on the right side of the Outlook module, then select 'Router' from the module list. The Router creates multiple paths from a single trigger. If you only need one Slack channel, skip this step and connect Slack directly.

  1. 1Hover over the Outlook module to reveal the + handle on the right edge
  2. 2Click the + handle
  3. 3Search for 'Router' in the module picker
  4. 4Click 'Router' to add it — it will appear as a circle with multiple output paths
What you should see: A Router module appears on the canvas connected to the Outlook trigger, with two or more output path lines extending to the right.
Common mistake — Each Router path needs its own filter condition. If you forget to set a filter on a path, Make will send every email down that path as a fallback, which can cause duplicate Slack posts.
7

Router path line > Filter > Condition builder

Set Router path filters

Click on the line (path) coming out of the Router to open the Filter settings for that path. Give the filter a label like 'Client A emails'. Set the condition to check the 'From' field from the Outlook trigger — click the field selector, choose 'From' from the Outlook module output, and set the operator to 'Contains' with the value '@clienta.com'. Add a second path for your next condition. If you skipped the Router in step 6, skip this step too.

  1. 1Click directly on the path line between the Router and the next module
  2. 2Click 'Add a filter' in the panel that opens
  3. 3Enter a label like 'Client A'
  4. 4Click the field selector and expand the Outlook module output, then select 'From'
  5. 5Set operator to 'Contains' and value to '@clienta.com'
  6. 6Click 'OK'
What you should see: The path line will show the filter label (e.g., 'Client A') confirming the condition is applied.
Common mistake — Filters are the most common place setups break. Double-check the field name and value exactly match what your app sends — a single capital letter difference will block everything.
8

Router/Outlook module > + handle > Slack > Create a Message

Add the Slack 'Create a Message' module

Click the + handle on the Router output (or directly on the Outlook module if you skipped the Router) and search for 'Slack'. Select 'Slack' and then choose 'Create a Message'. This module posts a message to a channel. You'll need to connect your Slack workspace before you can configure the message content — Make will prompt you to do this now.

  1. 1Click the + handle on the Router or Outlook module
  2. 2Search for 'Slack' in the module picker
  3. 3Click 'Slack'
  4. 4Select 'Create a Message'
  5. 5Click 'Add' to add the module to the canvas
What you should see: A Slack module configuration panel opens on the right, with a Connection field at the top prompting you to connect Slack.
Common mistake — Map fields using the variable picker — don't type field names manually. Hand-typed variable names often have invisible spacing errors that produce blank output.
Message template
📬 New entry: {{1.name}}
Email: {{1.email}}
Details: {{1.description}}
message template
🔔 New Record: {{text}} {{user}}
channel: {{channel}}
ts: {{ts}}
#sales
🔔 New Record: Jane Smith
Company: Acme Corp
9

Slack module panel > Connection > Add > Slack OAuth pop-up

Connect your Slack workspace

Click 'Add' next to the Connection field in the Slack module panel. Make will open a Slack OAuth pop-up. Select the Slack workspace you want to post to and click 'Allow'. Make requires the 'chat:write' and 'channels:read' scopes — these are granted automatically during the OAuth flow for most workspaces. Once connected, your workspace name appears in the Connection field and the Channel dropdown becomes active.

  1. 1Click 'Add' next to the Connection field in the Slack module
  2. 2Select your workspace in the Slack OAuth pop-up
  3. 3Click 'Allow' to grant Make access
  4. 4Confirm your workspace name appears in the Connection dropdown
What you should see: The Connection field shows your Slack workspace name, and the Channel field below it is now a clickable dropdown.
Common mistake — Make's Slack integration posts as the Make bot user, not as you personally. Your Slack channel must have the Make app added as a member or the message will fail with a 'not_in_channel' error. Add the Make app to the channel via Slack's App settings before running the scenario.
10

Slack module panel > Channel > Text

Configure the Slack message content

Select your target channel from the Channel dropdown — type the channel name to filter. Then build your message in the 'Text' field using data from the Outlook trigger. Click inside the Text field, then click the variable picker icon (looks like a plug) to insert dynamic values. A good starting message format is: '📧 New email from {{From}} | Subject: {{Subject}} | Received: {{ReceivedDateTime}}'. You can add the email body preview by inserting {{BodyPreview}}, which Outlook provides as the first 255 characters of the message body.

  1. 1Click the Channel dropdown and select your target Slack channel (e.g., #client-emails)
  2. 2Click inside the Text field
  3. 3Type '📧 New email from ' then click the variable picker and select 'From' from the Outlook module
  4. 4Continue building the message: ' | Subject: ' then insert 'Subject'
  5. 5Add ' | ' then insert 'ReceivedDateTime'
  6. 6On a new line, insert 'BodyPreview' for a content preview
  7. 7Click 'OK' to save
What you should see: The Text field shows a formatted message template with orange variable tokens for the dynamic Outlook fields, like '📧 New email from {{1.from}} | Subject: {{1.subject}}'.
Common mistake — Slack's 'Create a Message' module Text field supports basic Slack mrkdwn formatting (*bold*, _italic_, `code`) but not full HTML. Outlook email bodies are HTML — do not map the full Body field into the Slack message or you'll get raw HTML tags posted in Slack. Use BodyPreview instead, which is plain text.
Message template
📬 New entry: {{1.name}}
Email: {{1.email}}
Details: {{1.description}}
11

Canvas > Run once > Check Slack > Activate toggle

Test the scenario and activate it

Click 'Run once' at the bottom left of the Make canvas. Make will check your Outlook inbox for emails matching your filter and, if found, post a test message to Slack. Check the Slack channel to verify the message looks correct. Check the execution log in Make (the green bubble showing operation counts on each module) to confirm data flowed through cleanly. Once the test passes, click the toggle switch in the bottom left — it changes from gray to blue — to activate the scenario so it runs automatically on your polling schedule.

  1. 1Click 'Run once' at the bottom left of the canvas
  2. 2Watch the green execution counters appear on each module
  3. 3Check your Slack channel for the test message
  4. 4Review the Make execution log by clicking the green bubble on the Outlook module to verify the fields mapped correctly
  5. 5Click the activation toggle in the bottom left to switch from Off to On
What you should see: The scenario toggle shows blue/On, the canvas shows 'Scheduled' status, and you'll see the next scheduled run time displayed below the scenario name.
Common mistake — When you click 'Run once', Make asks 'Where to start' — choose 'From now on' to avoid re-processing old emails. Choosing 'All' will fetch historical emails up to your Max Results limit and post them all to Slack at once.

Paste this into a Make 'Set Variable' module placed between the Outlook trigger and the Slack module. It builds a formatted Slack message with conditional priority labeling, attachment flagging, and a cleaned sender name extracted from the full 'From' string. In Make, add a Tools > Set Variable module, name the variable 'slackMessage', and paste the formula into the Value field.

JavaScript — Custom Functionif(
▸ Show code
if(
  {{1.importance}} = "High",
  "🔴 *HIGH PRIORITY* | ",

... expand to see full code

if(
  {{1.importance}} = "High",
  "🔴 *HIGH PRIORITY* | ",
  ""
)
& "📧 New email from *"
& trim(replaceAll({{1.from}}, "/^.*<|>.*$/", ""))
& "*\n*Subject:* "
& {{1.subject}}
& "\n*Received:* "
& formatDate({{1.receivedDateTime}}, "MMM D, YYYY h:mm A")
& if(
  {{1.hasAttachments}} = true,
  "\n📎 _This email has attachments_",
  ""
)
& "\n\n"
& left({{1.bodyPreview}}, 200)
& if(
  length({{1.bodyPreview}}) > 200,
  "...",
  ""
)
Make
▶ Run once
executed
Slack
Outlook
Outlook
🔔 notification
received

Going live

Production Checklist

Before you turn this on for real, confirm each item.

Troubleshooting

Common errors and how to fix them.

Frequently Asked Questions

Common questions about this workflow.

Analysis

VerdictWhy Make for this workflow

Use Make for this if your team needs conditional routing — sending different senders to different Slack channels from a single scenario — and you want to do it without writing code. Make's Router module handles this visually in about 10 minutes. You'd also pick Make if you're already using it for other automations and want to keep everything in one place. The one scenario where you'd pick something else: if your organization is fully inside Microsoft 365 and your IT team manages everything, Power Automate already has your Outlook connection pre-authorized and Microsoft's Graph webhook support gives you genuinely real-time delivery instead of polling.

Cost

The math on operations is simple. Each email Make processes costs 2 operations: 1 for the Outlook trigger fetch, 1 for the Slack post. If you receive 200 relevant emails per month, that's 400 operations. Make's free tier gives you 1,000 operations/month, so low-volume use fits free. At 500 emails/month (1,000 operations), you're at the free tier ceiling. Make's Core plan at $9/month gives you 10,000 operations — enough for ~5,000 emails/month. Zapier's equivalent would cost $19.99/month minimum for multi-step Zaps, and that's before volume pricing on tasks.

Tradeoffs

Zapier's Outlook trigger fires faster than Make's polling in practice — Zapier pushes notification Zaps closer to 1-2 minutes vs. Make's 5-minute minimum on paid plans. If speed is the only variable, Zapier wins on this specific use case. n8n lets you self-host and process unlimited emails for the cost of a server ($5-10/month on a VPS), but the Outlook OAuth setup is significantly more complex and you're on your own for maintenance. Power Automate is genuinely better if you're Microsoft-first — it supports real-time email triggers via Exchange webhooks, meaning 0-second delivery instead of polling. Pipedream has a clean Outlook integration but the Slack formatting step is more verbose in code than Make's visual builder. Make is still the right call if you want the routing flexibility without writing code and aren't locked into Microsoft's ecosystem.

Three things you'll run into after setup. First, Outlook's 'From' field includes the display name formatted as 'FirstName LastName <[email protected]>' — if you filter on this field using 'Equals', your filter will never match because the full string includes the display name. Switch to 'Contains' and use just the domain portion. Second, Make's Outlook module does not support filtering by Outlook categories or flags — you can only filter by folder, sender, or subject keywords. If your team relies on Outlook categories to flag important emails, you'll need to first set up an Outlook rule that moves categorized emails to a dedicated folder, then point Make at that folder. Third, if your Microsoft account uses multi-factor authentication with conditional access, Make's OAuth token can expire unexpectedly when your organization rotates security policies. Set up Make's built-in error notifications so you get an alert if the Outlook connection drops — otherwise the scenario silently stops running and you won't notice until someone asks why the Slack alerts stopped.

Ideas for what to build next

  • Add error notifications for failed runsSet up a Make error handler on the Slack module so that if a message fails to post (e.g., bot removed from channel), you get an email or a fallback Slack DM. Go to the Slack module, right-click, and select 'Add error handler' to configure this.
  • Route emails to different channels by sender domainExpand the Router to add one path per client domain, routing each client's emails to their own dedicated Slack channel. This keeps client communications separated and makes it easy to add channel-specific teammates without noise from other clients.
  • Build a daily email digest instead of per-email alertsReplace the 5-minute polling with a once-daily schedule, switch the Outlook trigger to fetch the last 24 hours of emails, and use Make's Array Aggregator module to compile all emails into a single formatted Slack digest message posted each morning.

Related guides

Was this guide helpful?
Slack + Outlook overviewMake profile →