

How to Forward Gmail to Slack Channels with Make
Watches Gmail for emails matching a sender, subject keyword, or label, then posts the message content to a designated Slack channel automatically.
Steps and UI details are based on platform versions at time of writing — check each platform for the latest interface.
Best for
Teams that receive high-signal emails — customer inquiries, vendor invoices, escalations — and need the right Slack channel notified within minutes, not hours.
Not ideal for
High-frequency email volumes over 500/month on Make's free tier — switch to n8n self-hosted or Make's Core plan before you hit operation limits.
Sync type
scheduledUse case type
notificationReal-World Example
A 12-person e-commerce team routes all emails from their 3PL warehouse (sender: [email protected]) directly into #ops-alerts on Slack. Before this, the ops lead checked email manually twice a day and shipping delay notices sat unread for 6-8 hours. Now the Slack message lands within 5 minutes of the email arriving.
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
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.
Field Mapping
Map these fields between your apps.
| Field | API Name | |
|---|---|---|
| Required | ||
| From (Sender Email) | ||
| Subject | ||
| Slack Channel | ||
7 optional fields▸ show
| Snippet | |
| Body Plain | |
| Date | |
| Labels | |
| Thread ID | |
| Message ID | |
| Has Attachments |
Step-by-Step Setup
make.com > Scenarios > Create a new scenario
Create a new Make scenario
Log in to Make at make.com and click the blue 'Create a new scenario' button in the top-right corner of your Scenarios dashboard. You'll land on the visual scenario canvas — a dark background with a single empty circle in the center. This circle is where your trigger module goes. Click it to open the app search panel on the right side of the screen.
- 1Log in at make.com
- 2Click 'Create a new scenario' in the top-right
- 3Click the empty circle in the center of the canvas to open the app picker
Scenario Canvas > App Picker > Gmail > Watch Emails
Add the Gmail 'Watch Emails' trigger
Type 'Gmail' into the app search field and select it from the results. Make will show you a list of Gmail triggers and actions. Select 'Watch Emails' — this polls your Gmail inbox on a schedule you define. You'll be prompted to connect a Google account if you haven't already. Click 'Add' next to the connection field, sign in with your Google account, and grant Make the permissions it requests.
- 1Type 'Gmail' in the app search field
- 2Select 'Gmail' from the results
- 3Click 'Watch Emails' from the trigger list
- 4Click 'Add' next to the Connection field
- 5Sign in with your Google account and click 'Allow' on the permissions screen
Gmail Module Panel > Folder > Criteria > Maximum number of results
Configure the Gmail filter criteria
Inside the 'Watch Emails' module panel, set the Folder to 'INBOX' (or another label if you're filtering by label). In the 'Criteria' field, enter a Gmail search query to scope which emails trigger the scenario — for example, 'from:[email protected]' to match a specific sender, or 'subject:Invoice' to match subject keywords. Set 'Maximum number of results' to 1. Leave 'Mark email messages as read' unchecked unless you want Make to mark emails as read after processing — this is a destructive action you can't undo through Make.
- 1Set Folder to 'INBOX'
- 2Enter your Gmail search query in the Criteria field (e.g. 'from:[email protected] subject:Invoice')
- 3Set Maximum number of results to 1
- 4Leave 'Mark email messages as read' unchecked for now
Scenario Canvas > Gmail Module > + > Router
Add a Router to support multiple destination channels
If you need to send emails to different Slack channels based on rules (e.g. support emails go to #support, vendor emails go to #procurement), add a Router module after Gmail. Click the small '+' icon on the right edge of the Gmail module to add a new module, then search for 'Router' and select it. The Router splits the scenario into parallel paths. Each path gets its own filter and Slack module. If you only need one Slack channel, skip this step and connect Gmail directly to the Slack module.
- 1Click the '+' icon on the right edge of the Gmail module
- 2Search for 'Router' in the app picker
- 3Select 'Router' to add it to the canvas
- 4You'll see the Router split into two path circles — add more by clicking the '+' on the Router itself
channel: {{channel}}
ts: {{ts}}
Scenario Canvas > Router path line > Filter icon > Condition setup
Set a filter on each Router path
Click the line between the Router and the first empty path circle — a filter icon appears. Click it to open the filter configuration panel. Set the Condition to match your routing rule. For example, to route by sender domain: set Field to 'From', Operator to 'Contains', and Value to '@vendorname.com'. Name the filter clearly (e.g. 'Vendor Emails') using the Label field at the top. Repeat for each Router path. If you skipped the Router, ignore this step.
- 1Click the connector line between the Router and the first path circle
- 2Click the filter icon that appears on the line
- 3Set Field to 'From' (or 'Subject' or 'Labels')
- 4Set Operator to 'Contains'
- 5Enter your match value (e.g. '@vendorname.com')
- 6Enter a Label name at the top of the filter panel
- 7Click OK
Scenario Canvas > Path Circle > App Picker > Slack > Create a Message
Add the Slack 'Create a Message' action
Click the empty circle at the end of your first Router path (or directly after the Gmail module if you skipped the Router). Search for 'Slack' and select it, then choose 'Create a Message' as the action. Connect your Slack workspace by clicking 'Add' next to the Connection field and authorizing Make in the Slack OAuth screen. Make will ask which permissions to grant — approve all that are requested.
- 1Click the empty circle at the end of a Router path
- 2Type 'Slack' in the app search field
- 3Select 'Slack'
- 4Choose 'Create a Message'
- 5Click 'Add' next to Connection and authorize Slack
📬 New entry: {{1.name}}
Email: {{1.email}}
Details: {{1.description}}Slack Module Panel > Channel > Text
Configure the Slack message content
In the Slack module panel, select your destination Channel from the dropdown — all public channels and any private channels the bot has been invited to will appear. In the Text field, build your message using data mapped from the Gmail module. Click inside the Text field and use the variable picker (the small icon that appears) to insert Gmail fields. A useful format: '*From:* {{1.from}} | *Subject:* {{1.subject}}\n{{1.snippet}}' — this gives the Slack channel the sender, subject, and a preview of the email body in one message.
- 1Select your target Slack channel from the Channel dropdown
- 2Click inside the Text field
- 3Click the variable picker icon to browse Gmail output fields
- 4Map 'From', 'Subject', and 'Snippet' (or 'Body Plain') from the Gmail module
- 5Optionally set a Bot name and Bot icon URL for cleaner channel display
📬 New entry: {{1.name}}
Email: {{1.email}}
Details: {{1.description}}Gmail Module > Clock Icon > Scheduling Panel
Set the polling schedule
Click the clock icon on the Gmail 'Watch Emails' trigger module (bottom-left of the module). This opens the scheduling panel. Set how frequently Make should poll Gmail for new emails. Options range from every 1 minute (requires a paid plan) to every 15 minutes (available on free). For most team notification workflows, every 5 minutes is a good balance of timeliness and operation usage. Click OK to save the schedule.
- 1Click the clock icon on the bottom-left of the Gmail module
- 2Set the interval (e.g. Every 5 minutes)
- 3Click OK
Scenario Canvas > Bottom Toolbar > Run once
Test the scenario with a real email
Before activating, send a test email to your Gmail account that matches your filter criteria. Then click 'Run once' in the bottom toolbar of the Make scenario canvas. Make will execute the scenario one time immediately, polling Gmail for matching emails. Watch the execution flow animate across your modules — green circles mean success, red means an error. Click on any module to inspect the exact data it received and sent.
- 1Send a test email to your Gmail account matching your filter criteria
- 2Click 'Run once' in the bottom toolbar
- 3Watch the animated execution flow across modules
- 4Click the Gmail module bubble to inspect the email data Make pulled
- 5Click the Slack module bubble to confirm the message payload
Scenario Canvas > Bottom Toolbar > Active/Inactive Toggle
Activate the scenario
Once the test passes, toggle the scenario from OFF to ON using the switch in the bottom-left of the canvas toolbar. The toggle will turn blue when active. Make will now poll Gmail automatically on your configured schedule. You'll see scenario run history accumulate in the Scenario Detail page — click the scenario name in your Scenarios list to view run logs, operation counts, and any errors.
- 1Click the toggle switch in the bottom-left toolbar
- 2Confirm it turns blue (Active)
- 3Navigate to Scenarios list to confirm the scenario shows 'Active' status
Scenarios > [Scenario Name] > History Tab | Organization > Usage
Review run history and operation usage
After 24 hours, open the scenario's detail page and check the History tab. Each polling cycle counts as operations even if no email was found — one operation is consumed just for the Gmail watch check. If emails are found and Slack messages sent, that's additional operations per email. Monitor your monthly operation count in Organization > Usage to avoid hitting your plan limit mid-month.
- 1Click your scenario name in the Scenarios list
- 2Open the History tab
- 3Check that recent runs show green (success) status
- 4Go to Organization > Usage to monitor total monthly operations
Paste this into a Make 'Text aggregator' or use it inside a 'Set variable' module's formula field to build a clean, conditional Slack message. The formula checks for attachments and appends a warning emoji, and it formats the Gmail date into a human-readable string. In Make, open a Tools > Set Variable module, set the Variable Name to 'slackMessage', and paste this into the Variable Value field using the formula editor.
JavaScript — Custom Function{{if(1.payload.parts; "📎 _Has attachments — view in Gmail_"; "")}}▸ Show code
{{if(1.payload.parts; "📎 _Has attachments — view in Gmail_"; "")}}
*From:* {{1.from}}
*Subject:* {{1.subject}}... expand to see full code
{{if(1.payload.parts; "📎 _Has attachments — view in Gmail_"; "")}}
*From:* {{1.from}}
*Subject:* {{1.subject}}
*Received:* {{formatDate(1.date; "MMM D, YYYY h:mm A"; "America/New_York")}}
{{if(
length(1.bodyPlain) > 500;
substring(1.bodyPlain; 0; 500) & "...";
1.bodyPlain
)}}
{{if(
contains(1.from; "@acme-logistics.com");
":rotating_light: *Vendor alert — tag @ops-lead*";
""
)}}
<https://mail.google.com/mail/u/0/#inbox/{{1.id}}|Open in Gmail>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 Make for this if you need conditional routing to multiple Slack channels from one scenario. The Router module handles it natively — no extra subscriptions, no code. Make also gives you a clean visual debugger: click any module after a run and see the exact JSON payload it received, which is genuinely useful when you're tuning Gmail search filters. The one scenario where you'd skip Make: if your team already lives in Zapier and this is the only automation you need. Zapier's Gmail + Slack Zap is faster to configure (under 5 minutes) and the trigger behavior is identical. Make's advantage is the Router and the formula editor — if you don't need those, Zapier's simplicity wins.
The math on Make's free plan: polling Gmail every 15 minutes = 2,880 polling operations per month just for the trigger checks, before a single email is forwarded. Add 1 operation per Slack message sent. If you receive 200 matching emails per month, that's 3,080 operations total — comfortably under Make's free tier limit of 1,000... wait, no. Make's free plan gives you 1,000 operations/month. 2,880 polling operations alone exceeds that. You need the Core plan at $9/month (10,000 operations) to run this at 15-minute intervals reliably. At 5-minute polling, you're at 8,640 polling operations/month — still under Core's 10,000 limit if email volume is low. Zapier's free tier (100 tasks/month) is worse for high-volume use. n8n self-hosted is free at any volume.
Zapier's Gmail trigger is also polling-based, fires on the same cadence, and their UI is simpler — but you can't route to multiple channels without building multiple Zaps (one per channel), and each Zap counts against your task limit separately. n8n has a Gmail node with identical polling behavior but lets you write JavaScript directly in the workflow to transform email body text, strip signatures, or extract structured data — that's a genuine advantage if your emails have consistent formats you want to parse. Power Automate has a 'When a new email arrives' trigger for Office 365 but not Gmail natively — you'd need a connector or use Gmail via HTTP, which is messier. Pipedream has a Gmail source that can trigger on webhooks via Gmail's Pub/Sub API (real-time, not polling), which is technically faster than anything Make, Zapier, or n8n offer for Gmail — but it requires setting up a Google Cloud Pub/Sub topic, which is a 20-minute setup process. Make is still the right call for most teams because the Router + visual debugger combo is unmatched for multi-channel routing without writing any code.
Three things you'll hit after setup. First: Gmail's search Criteria field is more sensitive than it looks — 'from:vendor.com' won't match emails from '[email protected]' unless you use 'from:@vendor.com'. Test every query in Gmail's actual search bar before trusting it in Make. Second: Slack's message character limit is 4,000 characters. Long email bodies (legal notices, newsletters) will get silently truncated — Make won't throw an error, the message just ends mid-sentence. Use the substring() formula in your Text field to cap body content at 500 characters and add a 'View in Gmail' link. Third: Make's free plan pauses inactive scenarios after 30 days of no edits. If nobody touches the scenario for a month and the trigger rate drops (quiet email period), Make may pause it. Set a calendar reminder to open and re-save the scenario once a month, or upgrade to a paid plan where this restriction doesn't apply.
Ideas for what to build next
- →Add a fallback error path — Add an error handler to your scenario so failed runs (expired tokens, Slack downtime) post an alert to a fallback channel or send you an email via Gmail instead of silently failing.
- →Thread replies back into Gmail — Extend this workflow in reverse: watch for Slack messages in the forwarded thread and use the Gmail 'Send an Email' action with the Thread ID to reply directly from Slack — closes the loop without switching apps.
- →Build a daily digest instead of per-email alerts — Replace the real-time forwarding with a scheduled Make scenario that runs once at 8 AM, collects all matching emails from the past 24 hours using Gmail's search, and posts a single summarized list to Slack — reduces channel noise significantly.
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