

How to Send Gmail Lead Alerts to Slack with Zapier
Automatically posts a Slack message with sender name, subject line, and email preview whenever a labeled high-priority email lands in Gmail.
Steps and UI details are based on platform versions at time of writing — check each platform for the latest interface.
Best for
Small sales teams (under 20 reps) who live in Slack and need instant visibility into inbound prospect emails without opening Gmail.
Not ideal for
Teams processing 200+ lead emails per day — at that volume, Gmail's label-based filtering breaks down and you need a dedicated inbox routing tool like Front or Help Scout.
Sync type
real-timeUse case type
notificationReal-World Example
A 10-person B2B SaaS sales team tags inbound emails from prospects with a 'Hot Lead' Gmail label. Before this Zap, reps checked Gmail every 30-60 minutes and routinely missed time-sensitive replies from decision-makers. Now, every tagged email fires a Slack alert in #sales-leads within 2-3 minutes, including the sender's name, company domain, and the first 300 characters of the email body — enough context for a rep to respond from their phone without opening Gmail.
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 | ||
| Body Plain | ||
| Message URL | ||
3 optional fields▸ show
| Date | |
| Labels | |
| To Email |
Step-by-Step Setup
Gmail > Settings > Labels > Create new label
Create a Gmail label for high-priority leads
Before building the Zap, set up a dedicated Gmail label that will act as your trigger filter. Open Gmail, click the gear icon in the top right, then 'See all settings', navigate to the Labels tab, and click 'Create new label'. Name it something like 'Hot Lead' or 'Sales Priority'. This label is what Zapier will watch — every email you apply it to will trigger a Slack notification.
- 1Open Gmail and click the gear icon in the top right corner
- 2Click 'See all settings'
- 3Navigate to the 'Labels' tab
- 4Scroll down and click 'Create new label'
- 5Type your label name (e.g. 'Hot Lead') and click 'Create'
zapier.com > Create > Zaps > Trigger > Gmail > New Labeled Email
Create a new Zap and set Gmail as the trigger
Log in to Zapier at zapier.com and click the orange 'Create' button in the top left, then select 'Zaps'. In the trigger search box, type 'Gmail' and select it from the app list. Zapier will ask you to choose a trigger event — select 'New Labeled Email'. This event fires each time an email receives your chosen label, which is exactly what you set up in step 1.
- 1Click the orange 'Create' button in the top-left navigation
- 2Select 'Zaps' from the dropdown
- 3Click the trigger step labeled '1. Trigger'
- 4Search for 'Gmail' in the app search box
- 5Select 'New Labeled Email' as the trigger event
Trigger > Gmail > Choose Account > Sign in to Gmail
Connect your Gmail account
Click 'Sign in to Gmail'. A Google OAuth popup will open asking you to select your Google account and grant Zapier read access to your Gmail. Choose the account that receives your sales emails — this is usually your work Google Workspace account. After granting access, Zapier closes the popup and shows your email address in the account selector. Click 'Continue'.
- 1Click 'Sign in to Gmail' in the account selector
- 2Choose your Google Workspace account from the popup
- 3Click 'Allow' to grant Zapier Gmail read permissions
- 4Confirm the correct email address appears in the account field
- 5Click 'Continue'
Trigger > Gmail > New Labeled Email > Label/Mailbox
Configure the Gmail label filter
In the 'Label/Mailbox' dropdown, select the label you created in step 1 (e.g. 'Hot Lead'). Zapier polls this label every 1-3 minutes for new emails. If you want to further restrict which emails trigger the Zap — for example, only emails from specific domains — you can add a Filter step later. For now, select your label and click 'Continue'.
- 1Click the 'Label/Mailbox' dropdown
- 2Scroll or search for your label name (e.g. 'Hot Lead')
- 3Select the label
- 4Click 'Continue'
Trigger > Gmail > Test trigger
Test the Gmail trigger
Click 'Test trigger'. Zapier will pull the 3 most recent emails that already carry your label. If no emails have the label yet, manually apply it to any email in Gmail first, then return and click 'Test trigger' again. Review the test data — you should see fields like 'From Name', 'From Email', 'Subject', 'Body Plain', and 'Date'. These are the fields you will map into the Slack message in the next steps.
- 1Apply your label to at least one existing Gmail thread if you haven't already
- 2Click 'Test trigger' in Zapier
- 3Review the returned data fields in the 'Record' panel
- 4Confirm 'Body Plain' contains readable email text (not HTML)
Zap Editor > + between steps > Filter by Zapier
Add a Filter step to catch only prospect emails (optional but recommended)
Click the '+' button between the trigger and action to add a Filter step. Select 'Filter by Zapier'. Set the condition to 'From Email' → 'Contains' → your target domain (e.g. 'acme.com') or leave it open to catch all labeled emails. You can also filter by Subject containing words like 'demo', 'pricing', or 'proposal' to further tighten the signal. This step prevents internal CC emails or newsletter replies from spamming your Slack channel.
- 1Click the '+' icon between the trigger step and where the action will be
- 2Select 'Filter by Zapier' from the step type list
- 3Set Field to 'From Email'
- 4Set Condition to 'Does not contain'
- 5Enter your own company domain (e.g. 'yourcompany.com') to exclude internal emails
Zap Editor > + > Slack > Send Channel Message
Add Slack as the action app
Click the '+' button to add the next step, then search for 'Slack' in the app list. Select 'Send Channel Message' as the action event — this posts a message to a public or private channel, which is what you want for team visibility. Do not choose 'Send Direct Message' unless you want alerts going to a single rep rather than the whole team.
- 1Click the '+' button after your last step
- 2Search 'Slack' in the app search box
- 3Select 'Slack' from the results
- 4Choose 'Send Channel Message' as the action event
- 5Click 'Continue'
Action > Slack > Choose Account > Sign in to Slack
Connect your Slack workspace
Click 'Sign in to Slack'. A Slack OAuth popup opens asking which workspace to connect and which permissions to grant. Select your sales team's workspace. Zapier needs permission to post messages to channels — click 'Allow'. After connecting, your workspace name appears in the account field. Make sure you are connecting the workspace where your #sales-leads channel (or equivalent) exists.
- 1Click 'Sign in to Slack'
- 2Select your workspace from the dropdown in the popup
- 3Click 'Allow' to grant Zapier posting permissions
- 4Confirm the correct workspace name appears in the account field
- 5Click 'Continue'
Action > Slack > Send Channel Message > Channel + Message Text
Configure the Slack message fields
Select your target channel from the 'Channel' dropdown (e.g. #sales-leads). In the 'Message Text' field, build your notification using Gmail data fields from the trigger. Click the '+' icon inside the text field to insert dynamic values. Build a message that includes the sender name, email address, subject line, and a truncated preview of the body. The example below shows a clear, scannable format your team can act on immediately.
- 1Select your channel from the 'Channel' dropdown (e.g. #sales-leads)
- 2Click inside the 'Message Text' field
- 3Type '🔔 *New Lead Email*' as the opening line
- 4Use the '+' insert button to add: From Name, From Email, Subject, and Body Plain fields from the Gmail trigger
- 5Format the message as multi-line with labels: '*From:*', '*Subject:*', '*Preview:*'
📬 New entry: {{1.name}}
Email: {{1.email}}
Details: {{1.description}}Action > Slack > Send Channel Message > Bot Name + Icon
Add sender details and a Bot name
Scroll down in the Slack action configuration. Set 'Bot Name' to something recognizable like 'Gmail Lead Alerts' so reps know which bot is posting. Optionally set 'Bot Icon' to a Gmail or envelope emoji URL. In the 'Sender Name' field, you can also insert the Gmail 'From Name' field to make each notification feel contextualized. These fields are cosmetic but matter for usability — unnamed bots get ignored.
- 1Scroll to the 'Bot Name' field and type 'Gmail Lead Alerts'
- 2Set 'Bot Icon' to an emoji like ':email:' or paste an icon URL
- 3Leave 'Send as a Bot?' set to 'Yes'
- 4Click 'Continue'
Zap Editor > Test action > Publish Zap
Test and activate the Zap
Click 'Test action'. Zapier sends a real Slack message to your chosen channel using the sample Gmail data from step 5. Open Slack and check the channel — you should see the notification appear within seconds. If the formatting looks off, return to step 9 and adjust the Message Text field. Once satisfied, click 'Publish Zap' in the top right. The Zap is now live and will poll Gmail every 1-3 minutes.
- 1Click 'Test action'
- 2Open Slack and check your target channel for the test message
- 3Verify the sender name, subject, and body preview appear correctly
- 4Return to the Zap editor and fix any formatting issues
- 5Click 'Publish Zap' in the top-right corner
This Code by Zapier step truncates the email body to 300 characters, strips newlines that break Slack formatting, and builds the full message string in one place instead of stitching it together in Slack's text field. Add a 'Code by Zapier' step between the Gmail trigger and the Slack action, select 'Run Python', and paste this into the code editor. Map 'inputData.body', 'inputData.from_name', 'inputData.from_email', 'inputData.subject', 'inputData.date', and 'inputData.url' from the Gmail trigger fields in the Input Data section above the code block.
JavaScript — Code Step# Input Data fields to map in Zapier:▸ Show code
# Input Data fields to map in Zapier: # body -> Body Plain (from Gmail trigger) # from_name -> From Name
... expand to see full code
# Input Data fields to map in Zapier:
# body -> Body Plain (from Gmail trigger)
# from_name -> From Name
# from_email -> From Email
# subject -> Subject
# date -> Date
# url -> Message URL
body = input_data.get('body', '')
from_name = input_data.get('from_name', 'Unknown Sender')
from_email = input_data.get('from_email', '')
subject = input_data.get('subject', '(no subject)')
date = input_data.get('date', '')
url = input_data.get('url', '')
# Strip newlines and extra whitespace from body
clean_body = ' '.join(body.split())
# Truncate to 300 characters and add ellipsis if needed
preview = clean_body[:300] + '...' if len(clean_body) > 300 else clean_body
# Build the Slack message string
message = (
f":bell: *New Lead Email*\n"
f"*From:* {from_name} ({from_email})\n"
f"*Subject:* {subject}\n"
f"*Preview:* {preview}\n"
f"*Received:* {date}\n"
f"<{url}|Open in Gmail>"
)
output = [{'message': message}]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 sales team is non-technical, wants to be live in under an hour, and sends fewer than 100 lead emails per month. The Zap builder is guided enough that any rep can set it up without help. The Gmail label trigger is reliable, the Slack action has good defaults, and the whole thing requires zero code if you skip the pro tip. The one scenario where you'd pick something else: if your team is on Zapier's free plan and getting 50+ leads per month, you'll burn through 100 tasks fast — Make handles the same workflow for free up to 1,000 operations.
The math is straightforward. Each triggered email uses 1 task if you skip Formatter, 2 tasks if you include it. At 30 lead emails per month on the free plan (100 tasks), you have room. At 60 emails per month with Formatter, you're at 120 tasks — over the free limit. Zapier Starter is $19.99/month for 750 tasks, which covers about 375 emails/month with Formatter. Make's free tier gives you 1,000 operations per month, which covers the same volume at zero cost. The difference is $20/month — not huge, but real.
Make's Gmail watch trigger fires within 15 minutes on free plans and has a cleaner text parsing interface for extracting body content. n8n lets you self-host and run the workflow for free at any volume, plus its Function node gives you full JavaScript for message formatting. Power Automate has a native Gmail connector but it's flakey — the Office 365 Email trigger is rock solid, so if your team runs on Microsoft 365 instead of Google Workspace, Power Automate wins here by default. Pipedream has true webhook-based Gmail triggers (via Gmail push notifications) that fire in under 5 seconds, which no polling-based tool can match. Zapier is still the right call here when your team has zero appetite for setup complexity and speed-to-live matters more than cost or sub-minute latency.
Three things you'll hit after go-live. First: Gmail's label system is additive — if a prospect replies to a thread and Gmail auto-applies your label via a filter, and then a rep manually applies the label again thinking it wasn't applied, you get two Slack notifications for one email. Build a deduplication check using the email Message ID early. Second: Zapier's polling means you can miss an email entirely if it arrives, gets the label removed, and then the label is re-applied after Zapier already polled — the new label application won't re-trigger. Third: the 'Body Plain' field from Gmail sometimes contains the full email thread history going back months, not just the latest reply. If you're showing a preview in Slack, that preview will often be the oldest email in the thread, not the new reply. Always truncate and test with a real reply thread, not a fresh email.
Ideas for what to build next
- →Log lead emails to a Google Sheet — Add a second action step in the same Zap to append each triggered email to a Google Sheet. This gives you a running log of all inbound lead emails with timestamps, sender info, and subject lines — useful for weekly pipeline reviews without opening Gmail.
- →Route notifications to the right rep's DM — Add a Zapier lookup table or Paths step to match the email domain or 'To' address to a specific sales rep, then send the Slack notification as a direct message to that rep instead of (or in addition to) the shared channel. Cuts noise for teams where different reps own different accounts.
- →Add a Slack reply thread for team collaboration — Use Slack's 'Reply to Message' action (available in the same Zapier Slack app) triggered by a second Zap to automatically post a follow-up thread prompt like 'Who's taking this one?' under the lead notification. This creates a natural collaboration space without needing a separate tool.
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