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

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-time

Use case type

notification

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

/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 Gmail account with admin access or personal ownership — Google Workspace accounts may require admin approval for third-party OAuth apps
A Slack workspace where you have permission to add apps and post to the target channel
A Zapier account on any plan — the free tier supports this Zap but caps at 100 tasks/month
A dedicated Gmail label already created for flagging high-priority lead emails (e.g. 'Hot Lead')
Gmail read permissions granted to Zapier via Google OAuth — requires your Google account password and 2FA access during setup

Field Mapping

Map these fields between your apps.

FieldAPI Name
Required
From Name
From Email
Subject
Body Plain
Message URL
3 optional fields▸ show
Date
Labels
To Email

Step-by-Step Setup

1

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.

  1. 1Open Gmail and click the gear icon in the top right corner
  2. 2Click 'See all settings'
  3. 3Navigate to the 'Labels' tab
  4. 4Scroll down and click 'Create new label'
  5. 5Type your label name (e.g. 'Hot Lead') and click 'Create'
What you should see: Your new label appears in the left sidebar of Gmail under 'Labels'. You should be able to click it and see an empty label view.
Common mistake — Do not use Gmail's built-in 'Important' or 'Starred' markers as your trigger label. Zapier can filter on those, but they fire for too many emails — you will get noise immediately. Use a custom label you control.
2

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.

  1. 1Click the orange 'Create' button in the top-left navigation
  2. 2Select 'Zaps' from the dropdown
  3. 3Click the trigger step labeled '1. Trigger'
  4. 4Search for 'Gmail' in the app search box
  5. 5Select 'New Labeled Email' as the trigger event
What you should see: You should see the Gmail trigger card expanded with a 'Label/Mailbox' dropdown waiting for configuration.
Zapier
+
click +
search apps
Slack
SL
Slack
Create a new Zap and set Gma…
Slack
SL
module added
3

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

  1. 1Click 'Sign in to Gmail' in the account selector
  2. 2Choose your Google Workspace account from the popup
  3. 3Click 'Allow' to grant Zapier Gmail read permissions
  4. 4Confirm the correct email address appears in the account field
  5. 5Click 'Continue'
What you should see: Your Gmail address appears in the 'Account' field with a green checkmark. Zapier shows 'Connected' next to the account name.
Common mistake — If your Google Workspace admin has restricted third-party app access, the OAuth flow will fail silently or show a 'This app is blocked' error. You need an admin to whitelist Zapier at admin.google.com > Security > API Controls before this step will work.
Zapier settings
Connection
Choose a connection…Add
click Add
Slack
Log in to authorize
Authorize Zapier
popup window
Connected
green checkmark
4

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

  1. 1Click the 'Label/Mailbox' dropdown
  2. 2Scroll or search for your label name (e.g. 'Hot Lead')
  3. 3Select the label
  4. 4Click 'Continue'
What you should see: The Label/Mailbox field shows your selected label name. Zapier is ready to test the trigger.
Common mistake — Filters are the most common place setups break. Double-check the field name and value exactly match what your app sends — a single capital letter difference will block everything.
Slack
SL
trigger
filter
Condition
matches criteria?
yes — passes through
no — skipped
Gmail
GM
notified
5

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.

  1. 1Apply your label to at least one existing Gmail thread if you haven't already
  2. 2Click 'Test trigger' in Zapier
  3. 3Review the returned data fields in the 'Record' panel
  4. 4Confirm 'Body Plain' contains readable email text (not HTML)
What you should see: Zapier shows a green 'Test was successful' banner and displays a sample email record with fields including From Name, From Email, Subject, and Body Plain.
Common mistake — Zapier returns 'Body Plain' as a raw text dump that sometimes includes long email thread history. Note the character length — if the body is thousands of characters, you will need to truncate it in the Slack message to avoid hitting Slack's block kit limits.
Zapier
▶ Turn on & test
executed
Slack
Gmail
Gmail
🔔 notification
received
6

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.

  1. 1Click the '+' icon between the trigger step and where the action will be
  2. 2Select 'Filter by Zapier' from the step type list
  3. 3Set Field to 'From Email'
  4. 4Set Condition to 'Does not contain'
  5. 5Enter your own company domain (e.g. 'yourcompany.com') to exclude internal emails
What you should see: The Filter step appears in the Zap flow with a green 'Would have continued' status when tested against your sample email.
Common mistake — If you add multiple filter conditions, Zapier uses AND logic by default — every condition must be true for the Zap to continue. Use separate Zaps or an 'OR' workaround (two separate Zaps) if you need to match on multiple unrelated conditions.
7

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.

  1. 1Click the '+' button after your last step
  2. 2Search 'Slack' in the app search box
  3. 3Select 'Slack' from the results
  4. 4Choose 'Send Channel Message' as the action event
  5. 5Click 'Continue'
What you should see: The Slack action card expands showing an 'Account' field and a 'Continue' button. No channel is configured yet.
8

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.

  1. 1Click 'Sign in to Slack'
  2. 2Select your workspace from the dropdown in the popup
  3. 3Click 'Allow' to grant Zapier posting permissions
  4. 4Confirm the correct workspace name appears in the account field
  5. 5Click 'Continue'
What you should see: Your Slack workspace name appears in the 'Account' field with a green connected indicator.
Common mistake — Zapier posts messages as its own bot by default, not as you. Your Slack channel must allow bot posts. If the channel is restricted to specific members only, the Zap will fail silently — check your channel settings in Slack under Channel Settings > Permissions.
9

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.

  1. 1Select your channel from the 'Channel' dropdown (e.g. #sales-leads)
  2. 2Click inside the 'Message Text' field
  3. 3Type '🔔 *New Lead Email*' as the opening line
  4. 4Use the '+' insert button to add: From Name, From Email, Subject, and Body Plain fields from the Gmail trigger
  5. 5Format the message as multi-line with labels: '*From:*', '*Subject:*', '*Preview:*'
What you should see: The Message Text field shows a mix of static text and colored dynamic field pills (e.g. a blue 'From Name' pill and a blue 'Subject' pill). The preview at the bottom renders the full formatted message.
Common mistake — Body Plain from Gmail can be very long. Slack messages over 4,000 characters get cut off. Use Zapier's 'Formatter by Zapier' step (Truncate function) to cap the body preview at 300 characters before it hits the Slack action, or your messages will look broken.
Message template
📬 New entry: {{1.name}}
Email: {{1.email}}
Details: {{1.description}}
Slack fields
text
user
channel
ts
thread_ts
available as variables:
1.props.text
1.props.user
1.props.channel
1.props.ts
1.props.thread_ts
10

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.

  1. 1Scroll to the 'Bot Name' field and type 'Gmail Lead Alerts'
  2. 2Set 'Bot Icon' to an emoji like ':email:' or paste an icon URL
  3. 3Leave 'Send as a Bot?' set to 'Yes'
  4. 4Click 'Continue'
What you should see: The Slack action summary shows your channel, message preview, and bot name. Zapier is ready to test the action.
11

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.

  1. 1Click 'Test action'
  2. 2Open Slack and check your target channel for the test message
  3. 3Verify the sender name, subject, and body preview appear correctly
  4. 4Return to the Zap editor and fix any formatting issues
  5. 5Click 'Publish Zap' in the top-right corner
What you should see: A test Slack message appears in your channel within 10 seconds showing the formatted lead notification. The Zap status in Zapier shows 'On' with a green toggle.
Common mistake — Zapier does not de-duplicate by default. If you applied your Gmail label to 3 existing emails before testing, all 3 will fire during the first live poll. Archive or remove the label from old emails you do not want to notify the team about.

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

VerdictWhy Zapier for this workflow

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.

Cost

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.

Tradeoffs

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 SheetAdd 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 DMAdd 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 collaborationUse 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

Was this guide helpful?
Slack + Gmail overviewZapier profile →