

How to Send Gmail Sales Alerts to Slack with Make
Watches Gmail for labeled high-priority prospect emails and posts a formatted Slack message with sender name, subject, and email preview to a sales channel.
Steps and UI details are based on platform versions at time of writing — check each platform for the latest interface.
Best for
Small to mid-size sales teams who live in Slack and need to respond to inbound prospect emails within minutes, not hours.
Not ideal for
Teams receiving 500+ lead emails per day — at that volume, a dedicated CRM inbox routing tool handles prioritization better than a per-email Slack ping.
Sync type
real-timeUse case type
notificationReal-World Example
A 12-person B2B SaaS sales team uses this to post to #inbound-leads whenever a prospect replies to an outbound sequence. Before this, reps had Gmail open in a tab and checked it between calls — high-value replies sat unread for 2-3 hours during busy afternoons. After setup, the Slack notification fires within 2 minutes of the email landing, and the AE on rotation claims it directly from the Slack message.
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.
Optional
Field Mapping
Map these fields between your apps.
| Field | API Name | |
|---|---|---|
| Required | ||
| Sender Name | ||
| Sender Email Address | ||
| Email Subject | ||
| Email Body Plain | ||
| Date Received | ||
3 optional fields▸ show
| Gmail Message ID | |
| Thread ID | |
| Label Names |
Step-by-Step Setup
Gmail > Settings (gear icon) > See all settings > Labels > Create new label
Create a Gmail Label for High-Priority Emails
Before building anything in Make, set up a Gmail label called 'Sales-Priority' (or whatever naming convention your team uses). This label is what Make will watch — without it, you'd have to filter inside Make using fragile subject-line matching. Go to Gmail Settings, click 'Labels', then 'Create new label'. You can also create a Gmail filter under Settings > Filters and Blocked Addresses that auto-applies this label to emails from specific domains or containing keywords like 'pricing' or 'demo'.
- 1Open Gmail and click the gear icon in the top right, then 'See all settings'
- 2Click the 'Labels' tab
- 3Scroll to the bottom and click 'Create new label'
- 4Type 'Sales-Priority' and click 'Create'
- 5Optionally go to 'Filters and Blocked Addresses' and create a filter to auto-apply this label to emails from prospect domains
make.com > Scenarios > Create a new scenario
Create a New Scenario in Make
Log into Make at make.com and click the 'Create a new scenario' button on the Scenarios dashboard. You'll land on the visual canvas with a single empty circle in the center — this is where your trigger module goes. Click the circle to open the app search panel on the right side of the screen.
- 1Log in at make.com and go to 'Scenarios' in the left sidebar
- 2Click the blue 'Create a new scenario' button in the top right
- 3Click the large circle with a plus icon in the center of the canvas
Scenario Canvas > App Search > Gmail > Watch Emails
Add the Gmail 'Watch Emails' Trigger
Search for 'Gmail' in the app panel and select it. From the list of Gmail modules, choose 'Watch Emails' — this is the polling trigger that checks your inbox on a schedule you define. On the next screen, Make will ask you to connect your Google account. Click 'Add' next to the Connection field and follow the OAuth flow. After connecting, set the 'Folder' field to 'Sales-Priority' (the label you created in Step 1).
- 1Type 'Gmail' in the app search bar and click the Gmail icon
- 2Select 'Watch Emails' from the module list
- 3Click 'Add' next to Connection and complete the Google OAuth flow
- 4Set 'Folder' to 'Sales-Priority'
- 5Set 'Maximum number of results' to 5 (catches bursts without hammering the API)
Scenario Canvas > Gmail Module > Settings panel > Criteria section
Set the Email Filter Criteria
Inside the Gmail 'Watch Emails' module, scroll down to the 'Criteria' section. Set 'Sender email address' or use the Search field to narrow results. For the Search field, you can enter Gmail search syntax directly — for example, 'is:unread' ensures you only process new emails, not ones already read. This prevents duplicate notifications if the scenario runs while an email is still sitting in the inbox.
- 1Inside the Gmail module settings, scroll to the 'Search' field
- 2Enter 'is:unread label:Sales-Priority' to filter to unread emails with the label
- 3Leave 'Mark messages as read' toggled ON so processed emails don't trigger again
- 4Click OK to save the module settings
Scenario Canvas > + button right of Gmail module > Text Parser > Replace
Add a Text Parser to Build the Email Preview
Click the small circle to the right of the Gmail module to add another module. Search for 'Text Parser' and select 'Replace'. You'll use this to strip HTML tags from the email body so the Slack message shows clean plain text instead of a wall of HTML code. Set the 'Text' field to the Gmail Body Plain variable, and in 'Pattern' enter a regex to trim it to the first 300 characters. Alternatively, use Make's built-in substring() formula directly in the Slack module — either approach works.
- 1Click the small circle to the right of the Gmail trigger module
- 2Search for 'Text Parser' and select it
- 3Choose 'Replace' from the Text Parser module list
- 4In the 'Text' field, map the Gmail variable '1. Body Plain'
- 5In 'Pattern' enter '<[^>]+>' and leave 'Replacement' empty to strip HTML tags
- 6Click OK
Scenario Canvas > + button > Slack > Create a Message > Add Connection
Connect Your Slack Account
Click the circle to the right of the Text Parser module and search for 'Slack'. Select the 'Create a Message' module. Click 'Add' next to the Connection field and follow the Slack OAuth flow — Make will open a new window asking you to authorize access to your Slack workspace. Select the workspace your sales team uses. Make needs permission to post messages; ensure you're authorizing with an account that has access to the target channel.
- 1Click the circle to the right of the Text Parser module
- 2Search for 'Slack' and select it
- 3Choose 'Create a Message' from the Slack module list
- 4Click 'Add' next to the Connection field
- 5In the OAuth window, select your sales team's Slack workspace and click 'Allow'
Scenario Canvas > Slack Module > Settings panel > Text field
Configure the Slack Message Content
With the Slack module open, set 'Channel' to your sales channel (e.g., #inbound-leads). In the 'Text' field, build your message using Slack's mrkdwn formatting. Map Gmail variables directly from the trigger module: sender name, sender email, subject, and the cleaned body text from the Text Parser. Use Slack block formatting to make the message scannable — bold the subject line, show sender on its own line, and truncate the preview to 300 characters using Make's substring() formula.
- 1Set 'Channel' to your target Slack channel (type # to search)
- 2In the 'Text' field, click inside and use the variable picker to insert Gmail fields
- 3Build the message: '*New Lead Email* :email:\n*From:* {{1.from.name}} <{{1.from.value}}>\n*Subject:* {{1.subject}}\n*Preview:* {{substring(2.result; 0; 300)}}'
- 4Set 'Bot name' to 'Sales Alerts' so it's clearly identified in Slack
- 5Set an emoji icon like ':email:' in the 'Bot icon' field
- 6Click OK
📬 New entry: {{1.name}}
Email: {{1.email}}
Details: {{1.description}}Scenario Canvas > Connection line between modules > Wrench icon > Add a router
Add a Router for Priority Filtering (Optional but Recommended)
If you want to send different Slack messages — or post to different channels — based on whether the email is from a known prospect versus a cold inbound, add a Router between the Gmail trigger and the Text Parser. Click the wrench icon on the connection line between modules, then 'Add a router'. Create two routes: one for emails matching known prospect domains (use Make's contains() formula on the sender email field), and one for all others. This gives your team channel-level triage without any manual work.
- 1Click the small wrench icon on the line connecting Gmail to Text Parser
- 2Select 'Add a router'
- 3On Route 1, click the filter icon and add condition: '1.from.value' contains '@yourprospectdomain.com'
- 4Map Route 1 to post to #priority-deals
- 5Leave Route 2 as a catch-all posting to #inbound-leads
Scenario Canvas > Gmail Module > Clock icon (bottom left of module)
Set the Polling Schedule
Click the clock icon in the bottom left of the Gmail trigger module (it looks like a small gear with a clock). This opens the scheduling panel. Set the interval to 1 minute if you're on a Core plan or higher, or 15 minutes on the free plan. For most sales teams, 1-minute polling gives near-real-time response without meaningful delay. The scenario will activate and start watching on this schedule once you turn it on.
- 1Click the clock icon on the Gmail module
- 2Set 'Run scenario' to 'At regular intervals'
- 3Set the interval to '1 minute' (requires Core plan) or '15 minutes' (free plan)
- 4Click OK
Scenario Canvas > Bottom toolbar > Run once button
Run a Test with a Real Email
Send a test email to your Gmail account from an external address and apply the 'Sales-Priority' label manually (or let your filter auto-apply it). Back in Make, click 'Run once' in the bottom toolbar. Make will execute the scenario once immediately. Watch the execution flow on the canvas — each module will show a bubble with the number of records it processed. Click the bubble on the Slack module to confirm it shows the message data.
- 1Send a test email from a non-Gmail account to your Gmail address
- 2In Gmail, apply the 'Sales-Priority' label to that email
- 3In Make, click 'Run once' in the bottom toolbar
- 4Watch the green bubbles appear on each module as execution flows left to right
- 5Click the bubble on the Slack module to inspect the output data
Scenario Canvas > Bottom left toggle switch
Activate the Scenario
Once the test passes, click the toggle switch in the bottom left of the Make canvas to turn the scenario from OFF to ON. The toggle turns blue and Make shows a 'Scenario activated' confirmation. From this point, Make polls Gmail every 1 minute (or 15 minutes on free) and posts to Slack automatically. Check the 'History' tab in the top menu after 24 hours to confirm runs are succeeding and no errors have appeared.
- 1Click 'Save' in the bottom toolbar to save the scenario
- 2Click the toggle switch in the bottom left — it turns blue
- 3Confirm the 'Scenario activated' toast notification appears
- 4Go to the 'History' tab after 1 hour to review the first few automated runs
This Make formula builds a smarter Slack message: it detects whether the email is a reply (subject starts with 'Re:') and flags it differently, truncates the preview cleanly at a word boundary, and constructs a direct Gmail deep-link using the message ID. Paste this into the Slack module's Text field using Make's formula editor (click the variable icon, then switch to 'Formula' mode).
JavaScript — Custom Function{{if(▸ Show code
{{if(
contains(toLower(1.subject); 're:');
concat(... expand to see full code
{{if(
contains(toLower(1.subject); 're:');
concat(
'*↩ Reply from existing prospect* :speech_balloon:\n';
'*From:* '; 1.from.name; ' <'; 1.from.value; '>\n';
'*Subject:* '; 1.subject; '\n';
'*Received:* '; formatDate(1.date; 'MMM D [at] h:mm A');
'\n*Preview:* ';
substring(2.result; 0; 280);
if(length(2.result) > 280; '...'; '');
'\n<https://mail.google.com/mail/u/0/#inbox/'; 1.id; '|Open in Gmail>'
);
concat(
'*🆕 New inbound lead* :email:\n';
'*From:* '; 1.from.name; ' <'; 1.from.value; '>\n';
'*Subject:* '; 1.subject; '\n';
'*Received:* '; formatDate(1.date; 'MMM D [at] h:mm A');
'\n*Preview:* ';
if(2.result; concat(substring(2.result; 0; 280); if(length(2.result) > 280; '...'; '')); '(HTML-only email)');
'\n<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 your team wants routing logic — specifically, sending different Slack notifications to different channels based on sender domain, email keywords, or label combinations. Make's Router module handles this in one scenario without duplicating triggers. You also get a visual execution history that shows exactly which email failed and why, which matters when a rep asks 'why didn't I get an alert for that email?' The one scenario where you'd pick Zapier instead: you need sub-60-second delivery and your team refuses to think about operation counts. Zapier's Gmail trigger uses Google's push notifications (not polling), so it fires in under 30 seconds consistently. Make's minimum polling interval is 1 minute on a paid plan — acceptable for most sales teams, but if your sales motion depends on being the first to respond within 90 seconds, Zapier wins on speed.
The math is straightforward. Each email processed consumes 3 Make operations: Gmail Watch (1) + Text Parser (1) + Slack post (1). Add a Router and it's 4. At 200 qualifying emails per month, that's 600-800 operations. The free plan gives 1,000 — you're fine. At 400 emails/month you hit 1,200-1,600 operations and need the Core plan at $9/month. Zapier's free plan allows 100 tasks/month total, so at 400 emails you'd need the Starter plan at $19.99/month. Make is cheaper at this volume by roughly $11/month, and the Core plan's 10,000 operations has headroom for several other scenarios running in parallel.
Zapier's Gmail trigger fires faster due to push API — that's a real advantage Make doesn't match. n8n (self-hosted) lets you poll every 10 seconds with no operation cost and store email data in your own database, which is worth considering if you're already running n8n infrastructure. Power Automate's 'When a new email arrives in a shared mailbox' connector is the right tool if your sales team shares a single inbox like [email protected] — it handles shared mailbox permissions that Gmail + Make struggle with. Pipedream has a native Gmail source that also uses push notifications, and its Node.js execution lets you do more complex parsing (extract company names from signatures, for instance) in the same step. Make still makes sense here because the visual canvas is the right mental model for sales ops teams configuring this themselves without engineering help — they can see the flow, adjust the Slack message template, and debug runs without touching code.
Three things you'll hit after setup. First: the Gmail label filter breaks silently if someone renames the label in Gmail. Make doesn't validate label names at runtime — it just returns zero results. If notifications stop, check the label name in Gmail first. Second: Slack's mrkdwn formatter escapes '&', '<', and '>' characters — so email subjects containing '&' show up as '&' in Slack messages. Add a replace() formula wrapping your subject field to fix this: replace(1.subject; '&'; '&'). Third: Make's 'Run once' test mode processes the oldest unread email matching your criteria, not the most recent. Don't be surprised when your test notification shows a 3-week-old email — it's correct behavior. In production, the cursor advances forward so this only affects your initial test run.
Ideas for what to build next
- →Log Leads to a Google Sheet — Add a Google Sheets module after the Slack module to log every notified email — sender, subject, timestamp, and thread ID — giving your team a lightweight lead inbox tracker without a CRM.
- →Add a Slack Reply-to-Assign Flow — Use Make's Slack 'Watch Reactions' trigger to let reps claim a lead by reacting with :white_check_mark: — Make can then update a Google Sheet row or create a HubSpot contact automatically based on who reacted.
- →Build a Daily Digest Instead of Per-Email Pings — If per-email notifications create noise, swap to a scheduled Make scenario that runs once at 8 AM, aggregates all new Sales-Priority emails from the last 24 hours, and posts a single bulleted Slack summary to the team channel.
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