

How to Send Outlook Emails to Slack with Zapier
Automatically posts a Slack channel message whenever a new email arrives in Outlook, optionally filtered by sender, subject keyword, or folder.
Steps and UI details are based on platform versions at time of writing — check each platform for the latest interface.
Best for
Teams who need instant Slack alerts for client emails, urgent messages, or specific senders without leaving Slack to monitor Outlook.
Not ideal for
High-frequency inboxes receiving 100+ emails per day — Zapier's polling lag and task costs add up fast; use Power Automate instead.
Sync type
scheduledUse case type
notificationReal-World Example
A 12-person agency posts all emails from client domains directly into project-specific Slack channels. Before this, account managers were cc'd on client threads and had to check Outlook manually every hour — urgent revision requests sat unread for 45–90 minutes. Now the message hits Slack within 5 minutes of arrival and the right person can respond immediately.
What Will This Cost?
Drag the slider to your expected monthly volume.
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
Before You Start
Make sure you have everything ready.
Field Mapping
Map these fields between your apps.
| Field | API Name | |
|---|---|---|
| Required | ||
| From Name | ||
| From Email | ||
| Subject | ||
5 optional fields▸ show
| Body Preview | |
| Received Date/Time | |
| Has Attachments | |
| Web Link | |
| Importance |
Step-by-Step Setup
zapier.com > Create > Zaps
Create a new Zap
Log into zapier.com and click the orange 'Create' button in the top-left sidebar. Select 'Zaps' from the dropdown. You'll land on the Zap editor, which shows a two-panel layout: a left sidebar with step names and a right panel where you configure each step. The first step is always the trigger — this is where Zapier watches for new emails.
- 1Click the orange 'Create' button in the top-left sidebar
- 2Select 'Zaps' from the dropdown menu
- 3You should now see the Zap editor with a blank trigger step labeled '1. Trigger'
Zap Editor > Trigger > Search Apps > Microsoft Outlook > New Email
Set Outlook as the trigger app
Click on the trigger step in the left panel. In the right panel, type 'Outlook' into the 'Search for apps' field. Select 'Microsoft Outlook' from the results — make sure it's the Microsoft one, not an older community-built integration. Then choose 'New Email' as the trigger event from the dropdown that appears below.
- 1Click the blank trigger step labeled '1. Trigger'
- 2Type 'Outlook' in the 'Search for apps' search box
- 3Select 'Microsoft Outlook' (look for the Microsoft logo, not a third-party icon)
- 4Click the 'Trigger Event' dropdown and select 'New Email'
- 5Click 'Continue'
Zap Editor > Trigger > Microsoft Outlook > Sign In
Connect your Outlook account
Click 'Sign in to Microsoft Outlook' in the account connection panel. A popup window opens asking you to log into your Microsoft account and grant Zapier permission to read your mail. After approving, Zapier will return you to the editor and show your email address in the account dropdown. If you manage multiple inboxes, make sure you select the correct one here.
- 1Click the 'Sign in to Microsoft Outlook' button
- 2Log in with your Microsoft credentials in the popup window
- 3Click 'Accept' on the Microsoft permissions screen
- 4Confirm the correct email address appears in the connected account dropdown
Zap Editor > Trigger > Microsoft Outlook > Configure > Search String
Configure the trigger filters
After connecting, Zapier shows optional configuration fields for the 'New Email' trigger. You can set 'Search String' to filter by sender email, subject keyword, or folder. For example, entering 'from:[email protected]' will only trigger on emails from that address. Leave the field blank if you want all new emails to post to Slack. You can also specify a folder like 'Inbox' or a custom folder name.
- 1In the 'Search String' field, enter a filter like 'from:[email protected]' or a subject keyword
- 2In the 'Folder' field, type the folder name (e.g., 'Inbox') or leave blank for all folders
- 3Click 'Continue'
Zap Editor > Trigger > Microsoft Outlook > Test Trigger
Test the Outlook trigger
Click 'Test trigger' to pull in a recent email from your Outlook inbox that matches your filter. Zapier will fetch up to 3 recent emails and display the raw data fields — sender, subject, body, received time, and more. You need at least one test email to map fields in the Slack step. If no emails match your search string, Zapier will return an empty result and you won't be able to proceed with field mapping.
- 1Click the 'Test trigger' button
- 2Wait 5–10 seconds for Zapier to poll your Outlook inbox
- 3Select one of the returned emails to use as your test record
- 4Scroll through the returned fields to confirm you can see 'From', 'Subject', 'Body Preview', and 'Received Date/Time'
Zap Editor > + Add Action > Slack > Send Channel Message
Add Slack as the action app
Click the '+' icon below the trigger step in the left panel to add an action. Search for 'Slack' in the app search box and select it. Then choose 'Send Channel Message' as the action event. This sends a message to a Slack channel you specify — it does not DM anyone or post as a bot unless you configure that separately.
- 1Click the '+' button below the Outlook trigger step
- 2Type 'Slack' in the 'Search for apps' field
- 3Select 'Slack' from the results
- 4Click the 'Action Event' dropdown and select 'Send Channel Message'
- 5Click 'Continue'
Zap Editor > Action > Slack > Sign In
Connect your Slack workspace
Click 'Sign in to Slack' to authorize Zapier. A popup opens asking you to allow Zapier to post messages to your Slack workspace. Choose the correct workspace from the dropdown at the top of the Slack authorization page if you're a member of multiple workspaces. After approving, your workspace name will appear in the account dropdown in Zapier.
- 1Click the 'Sign in to Slack' button
- 2Select the correct Slack workspace from the dropdown in the top-right of the authorization popup
- 3Click 'Allow' to grant Zapier posting permissions
- 4Confirm the workspace name appears in the Zapier account dropdown
Zap Editor > Action > Slack > Configure > Channel + Message Text
Configure the Slack message
Now you'll map Outlook email fields into the Slack message. Set the 'Channel' dropdown to the Slack channel where notifications should post (e.g., #client-emails). In the 'Message Text' field, compose your notification using the dynamic field picker — click the '+' icon inside the text box to insert Outlook fields. Build a message that includes the sender name, sender email, subject, and body preview so your team has enough context without opening Outlook.
- 1Click the 'Channel' dropdown and select your target Slack channel (e.g., #client-emails)
- 2Click inside the 'Message Text' field
- 3Type '*New Email from* ' then click the '+' icon and select 'From Name' from the Outlook trigger
- 4Add ' (<' then insert 'From Email' field, then '>)' to make the email address a link
- 5Add a line break, then '*Subject:* ' and insert the 'Subject' field
- 6Add another line break, then insert 'Body Preview' for a snippet of the email content
📬 New entry: {{1.name}}
Email: {{1.email}}
Details: {{1.description}}Zap Editor > Action > Slack > Configure > Bot Name + Bot Icon
Add optional message details
Scroll down in the Slack action configuration to find optional fields. Set 'Bot Name' to something like 'Outlook Alerts' so the message is clearly identifiable in Slack. You can also set a custom emoji icon (e.g., :email:) in the 'Bot Icon' field. If the email should link back to Outlook, you can add the 'Web Link' field from the Outlook trigger data to the message text. These steps are optional but make the notification more readable in a busy Slack channel.
- 1Scroll down to the 'Bot Name' field and type 'Outlook Alerts'
- 2In the 'Bot Icon' field, type ':email:' or choose a custom icon URL
- 3Optionally, add the 'Web Link' Outlook field to the message text to let recipients click through to the email
📬 New entry: {{1.name}}
Email: {{1.email}}
Details: {{1.description}}channel: {{channel}}
ts: {{ts}}
Zap Editor > Action > Slack > Test Action
Test the Slack action
Click 'Test action' to send a real message to your Slack channel using the test email data from step 5. Open Slack and navigate to the channel you selected. You should see the notification appear within 30 seconds. Check that the sender name, subject, and body preview all display correctly. If the message looks good, come back to Zapier and click 'Publish Zap'.
- 1Click the 'Test action' button
- 2Open Slack and navigate to your target channel
- 3Confirm the test message appeared with the correct sender, subject, and body preview
- 4Return to Zapier and review the test result panel for any errors
Zap Editor > Publish Zap > Zap Dashboard
Publish and set polling interval
Click 'Publish Zap' to turn it on. By default, Zapier polls your Outlook inbox every 15 minutes on the free plan and every 2 minutes on paid plans. You'll see the Zap status turn green in your Zap dashboard. Note the polling interval shown under the Zap name — this is the maximum delay between an email arriving and the Slack notification appearing. If you need faster alerts, upgrading to a paid Zapier plan drops the polling to 2 minutes.
- 1Click the 'Publish Zap' button in the top-right of the editor
- 2Confirm the Zap status switches to 'On' (green toggle) in the dashboard
- 3Note the polling interval displayed under the Zap name
- 4Send a real test email matching your filter and wait for the Slack notification to confirm end-to-end
This Code by Zapier step cleans up HTML from the Body Preview, formats the received timestamp into a readable local time string, and flags high-importance emails with a red circle emoji prefix. Paste this into a 'Code by Zapier' step inserted between the Outlook trigger and the Slack action. Map the output fields 'cleanPreview', 'formattedTime', and 'importanceFlag' into your Slack message text instead of the raw Outlook fields.
JavaScript — Code Step// Input fields from Outlook trigger:▸ Show code
// Input fields from Outlook trigger: // inputData.bodyPreview, inputData.receivedDateTime, inputData.importance, inputData.subject const bodyPreview = inputData.bodyPreview || '';
... expand to see full code
// Input fields from Outlook trigger:
// inputData.bodyPreview, inputData.receivedDateTime, inputData.importance, inputData.subject
const bodyPreview = inputData.bodyPreview || '';
const receivedDateTime = inputData.receivedDateTime || '';
const importance = inputData.importance || 'Normal';
const subject = inputData.subject || '(No Subject)';
// Strip HTML tags from body preview
const cleanPreview = bodyPreview
.replace(/<[^>]*>/g, '')
.replace(/ /g, ' ')
.replace(/&/g, '&')
.replace(/</g, '<')
.replace(/>/g, '>')
.replace(/\s+/g, ' ')
.trim()
.slice(0, 200);
// Format ISO timestamp to readable string
let formattedTime = receivedDateTime;
if (receivedDateTime) {
const d = new Date(receivedDateTime);
const options = { month: 'short', day: 'numeric', hour: 'numeric', minute: '2-digit', hour12: true };
formattedTime = d.toLocaleString('en-US', options);
}
// Add urgency flag for high importance emails
const importanceFlag = importance === 'High' ? '🔴 HIGH PRIORITY — ' : '';
const flaggedSubject = importanceFlag + subject;
output = [{ cleanPreview, formattedTime, flaggedSubject }];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
Use Zapier for this if your team is non-technical, already paying for a Zapier plan, and can tolerate a 2–15 minute delay between email arrival and Slack notification. The setup takes under 15 minutes and requires zero code. The guided Zap builder handles the OAuth connections, polling, and field mapping in a single interface — no JSON, no flow diagrams. The one scenario where you'd skip Zapier entirely: if you're on Microsoft 365 and need instant alerts, Power Automate connects to Microsoft Graph via webhook and fires the moment an email lands, with no polling delay and no extra monthly cost.
The math on Zapier's pricing is simple for this use case. Each email that matches your filter and triggers a Slack post consumes exactly one Zapier task. If your filtered inbox gets 30 matching emails per day, that's roughly 900 tasks per month. Zapier's free plan includes 100 tasks/month — you'll hit that in 3–4 days. The Starter plan ($19.99/month) includes 750 tasks. The Professional plan ($49/month) covers 2,000 tasks. If you're monitoring a busy client inbox with 50+ relevant emails per day, you're looking at $49/month or more. Make's free tier handles 1,000 operations/month and the Core plan ($9/month) covers 10,000 — for pure volume, Make is significantly cheaper.
Make handles the same trigger-action pattern for about a third of the cost on high-volume inboxes and gives you more control over message formatting through its text parsing modules. n8n can self-host this for free and adds conditional branching — route different senders to different channels inside a single workflow without Zapier's Paths add-on. Power Automate is the clear winner on speed: it uses Microsoft Graph webhooks and fires in under 30 seconds, and it's already included in most Microsoft 365 business plans. Pipedream gives developers full code control and handles the OAuth automatically, but requires comfort with Node.js. Zapier is still the right call when the person setting this up is an ops manager or account lead who shouldn't have to think about webhooks, module routing, or deployment — the guided builder removes all of that friction.
Three things you'll run into after setup. First, the search string filter is stricter than it looks — 'acmecorp' won't match 'mail.acmecorp.com' as a sender domain, and a typo in the filter will silently drop emails without any error in the task history. Always test your filter with a real matching email before going live. Second, HTML-formatted emails will sometimes bleed raw tags into the Slack Body Preview field — use a Text Formatter step with 'HTML to Markdown' to clean this before it hits Slack. Third, if your Outlook account is part of a corporate Microsoft 365 tenant with Azure AD conditional access policies, the OAuth connection will fail or expire periodically without warning. Your IT admin needs to explicitly approve Zapier's app registration in Azure AD, and you may need to reconnect every 90 days depending on your org's token expiry settings.
Ideas for what to build next
- →Route emails to different Slack channels by sender or subject — Add a Zapier Paths step after the trigger to send emails from different client domains to their own dedicated Slack channels. This keeps #client-a separate from #client-b without building separate Zaps.
- →Add a daily digest instead of per-email notifications — Build a second Zap using a Schedule trigger that fires once per day and uses a Digest by Zapier step to batch all emails from the day into a single Slack summary. Reduces notification fatigue for lower-urgency email streams.
- →Reply to emails from Slack using Slack's workflow buttons — Extend the Slack message with action buttons using Slack's Block Kit by switching the Slack action to 'Send Message with Attachment'. Team members can click 'Reply' or 'Acknowledge' directly in Slack, triggering a second Zap that drafts an Outlook reply.
Related guides
How to Share Notion Meeting Notes to Slack with Pipedream
~15 min setup
How to Share Notion Meeting Notes to Slack with Power Automate
~15 min setup
How to Share Notion Meeting Notes to Slack with n8n
~20 min setup
How to Send Notion Meeting Notes to Slack with Zapier
~8 min setup
How to Share Notion Meeting Notes to Slack with Make
~12 min setup
How to Create Notion Tasks from Slack with Pipedream
~15 min setup