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

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.

Zapier logo
Zapier
Also on:Make

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

scheduled

Use case type

notification

Real-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.

/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

Before You Start

Make sure you have everything ready.

A Microsoft 365 or Outlook.com account with an active inbox you can log into via OAuth
A Slack workspace where you have permission to add apps and post to the target channel
Slack admin approval for the Zapier app if your workspace has app installation restrictions enabled
A Zapier account (free tier works, but limits polling to every 15 minutes)
At least one email in your Outlook inbox matching your intended filter so the trigger test can return real data

Field Mapping

Map these fields between your apps.

FieldAPI 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

1

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.

  1. 1Click the orange 'Create' button in the top-left sidebar
  2. 2Select 'Zaps' from the dropdown menu
  3. 3You should now see the Zap editor with a blank trigger step labeled '1. Trigger'
What you should see: The Zap editor is open with an empty trigger step waiting to be configured.
2

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.

  1. 1Click the blank trigger step labeled '1. Trigger'
  2. 2Type 'Outlook' in the 'Search for apps' search box
  3. 3Select 'Microsoft Outlook' (look for the Microsoft logo, not a third-party icon)
  4. 4Click the 'Trigger Event' dropdown and select 'New Email'
  5. 5Click 'Continue'
What you should see: The trigger event field shows 'New Email' and a 'Continue' button is active below it.
Common mistake — There are older community-built Outlook integrations in the search results. Only the official 'Microsoft Outlook' app with the blue Microsoft logo is maintained. Picking the wrong one will cause auth failures.
Zapier
+
click +
search apps
Slack
SL
Slack
Set Outlook as the trigger app
Slack
SL
module added
3

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.

  1. 1Click the 'Sign in to Microsoft Outlook' button
  2. 2Log in with your Microsoft credentials in the popup window
  3. 3Click 'Accept' on the Microsoft permissions screen
  4. 4Confirm the correct email address appears in the connected account dropdown
What you should see: Your Outlook email address appears in the 'Account' dropdown with a green checkmark next to it.
Common mistake — If your organization uses conditional access policies or MFA enforcement, the popup may silently fail. Ask your IT admin to whitelist Zapier's OAuth app ID before attempting this step.
Zapier settings
Connection
Choose a connection…Add
click Add
Slack
Log in to authorize
Authorize Zapier
popup window
Connected
green checkmark
4

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.

  1. 1In the 'Search String' field, enter a filter like 'from:[email protected]' or a subject keyword
  2. 2In the 'Folder' field, type the folder name (e.g., 'Inbox') or leave blank for all folders
  3. 3Click 'Continue'
What you should see: The trigger configuration panel shows your search string and folder settings saved, and the 'Continue' button is active.
Common mistake — The 'Search String' field uses Outlook query syntax, not plain text. 'client' alone will match everything containing that word anywhere in the email. Use 'from:' or 'subject:' prefixes to target specific fields.
Slack
SL
trigger
filter
Condition
matches criteria?
yes — passes through
no — skipped
Outlook
OU
notified
5

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.

  1. 1Click the 'Test trigger' button
  2. 2Wait 5–10 seconds for Zapier to poll your Outlook inbox
  3. 3Select one of the returned emails to use as your test record
  4. 4Scroll through the returned fields to confirm you can see 'From', 'Subject', 'Body Preview', and 'Received Date/Time'
What you should see: Zapier displays a list of email fields including From Name, From Email, Subject, Body Preview, and Received Date/Time pulled from a real email in your inbox.
Common mistake — If your inbox is empty or no emails match your search string, the test will return no records. Send yourself a test email first, wait 2 minutes, then re-run the test.
Zapier
▶ Turn on & test
executed
Slack
Outlook
Outlook
🔔 notification
received
6

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.

  1. 1Click the '+' button below the Outlook trigger step
  2. 2Type 'Slack' in the 'Search for apps' field
  3. 3Select 'Slack' from the results
  4. 4Click the 'Action Event' dropdown and select 'Send Channel Message'
  5. 5Click 'Continue'
What you should see: The action step shows 'Slack' with 'Send Channel Message' selected, and a 'Continue' button is active.
7

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.

  1. 1Click the 'Sign in to Slack' button
  2. 2Select the correct Slack workspace from the dropdown in the top-right of the authorization popup
  3. 3Click 'Allow' to grant Zapier posting permissions
  4. 4Confirm the workspace name appears in the Zapier account dropdown
What you should see: Your Slack workspace name appears in the 'Account' dropdown with a green checkmark.
Common mistake — Zapier posts as its own bot user ('Zapier') by default. If your Slack workspace requires admin approval for new apps, the authorization will fail silently. Have your Slack admin approve the Zapier app at api.slack.com/apps before proceeding.
8

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.

  1. 1Click the 'Channel' dropdown and select your target Slack channel (e.g., #client-emails)
  2. 2Click inside the 'Message Text' field
  3. 3Type '*New Email from* ' then click the '+' icon and select 'From Name' from the Outlook trigger
  4. 4Add ' (<' then insert 'From Email' field, then '>)' to make the email address a link
  5. 5Add a line break, then '*Subject:* ' and insert the 'Subject' field
  6. 6Add another line break, then insert 'Body Preview' for a snippet of the email content
What you should see: The Message Text field shows a mix of static text and orange dynamic field tokens representing Outlook data, like '*New Email from* [From Name] — [Subject]'.
Common mistake — The 'Body Preview' field from Outlook is capped at 255 characters. It's enough for a notification but won't include the full email. Don't try to map the full 'Body' field to Slack — it can break the message formatting if HTML is present.
Message template
📬 New entry: {{1.name}}
Email: {{1.email}}
Details: {{1.description}}
9

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.

  1. 1Scroll down to the 'Bot Name' field and type 'Outlook Alerts'
  2. 2In the 'Bot Icon' field, type ':email:' or choose a custom icon URL
  3. 3Optionally, add the 'Web Link' Outlook field to the message text to let recipients click through to the email
What you should see: The Bot Name field shows 'Outlook Alerts' and the Bot Icon shows your chosen emoji or URL.
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
10

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'.

  1. 1Click the 'Test action' button
  2. 2Open Slack and navigate to your target channel
  3. 3Confirm the test message appeared with the correct sender, subject, and body preview
  4. 4Return to Zapier and review the test result panel for any errors
What you should see: A Slack message from 'Outlook Alerts' appears in your chosen channel showing the sender name, email address, subject line, and body preview from your test email.
Common mistake — If the message shows '[object Object]' or garbled text, the Body field (not Body Preview) was mapped instead. Go back to the message configuration and swap it for the 'Body Preview' field specifically.
11

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.

  1. 1Click the 'Publish Zap' button in the top-right of the editor
  2. 2Confirm the Zap status switches to 'On' (green toggle) in the dashboard
  3. 3Note the polling interval displayed under the Zap name
  4. 4Send a real test email matching your filter and wait for the Slack notification to confirm end-to-end
What you should see: The Zap dashboard shows your new Zap with a green 'On' status and the polling interval visible beneath the Zap name.
Common mistake — Free plan polling is 15 minutes. If your team expects near-instant alerts for urgent emails, that lag will frustrate people. Either upgrade to a Zapier paid plan (2-minute polling) or use Power Automate, which triggers on email arrival via Microsoft Graph webhooks with no polling delay.

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(/&nbsp;/g, ' ')
  .replace(/&amp;/g, '&')
  .replace(/&lt;/g, '<')
  .replace(/&gt;/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

VerdictWhy Zapier for this workflow

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.

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.

Tradeoffs

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 subjectAdd 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 notificationsBuild 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 buttonsExtend 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

Was this guide helpful?
Slack + Outlook overviewZapier profile →