

How to Forward Gmail Emails to Slack with Zapier
Automatically posts matching Gmail messages — filtered by sender, subject, or label — into a designated Slack channel.
Steps and UI details are based on platform versions at time of writing — check each platform for the latest interface.
Best for
Small teams that need customer inquiries or vendor emails surfaced in Slack without anyone manually forwarding them.
Not ideal for
Teams receiving more than 300–400 filtered emails per month — at that volume Make handles the same Zap for free.
Sync type
real-timeUse case type
notificationReal-World Example
A 12-person e-commerce team routes all emails from their freight vendor (subject contains 'Shipment Update') into #logistics in Slack. Before this Zap, the ops manager copy-pasted 15–20 emails a day into Slack and still missed urgent delay notices over weekends. Now every matching email appears in #logistics within 1–2 minutes of arrival, with the sender, subject, and body snippet visible directly in the channel.
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.
Optional
Field Mapping
Map these fields between your apps.
| Field | API Name | |
|---|---|---|
| Required | ||
| From Email | ||
| Subject | ||
6 optional fields▸ show
| From Name | |
| Body Plain | |
| Date | |
| Labels | |
| Message ID | |
| Attachment Count |
Step-by-Step Setup
zapier.com > Dashboard > Create Zap
Create a new Zap
Log into zapier.com and click the orange 'Create Zap' button in the top-left sidebar. You'll land on the Zap editor, a two-panel canvas showing a trigger block on the left and an action block on the right. Zapier gives the Zap a default name like 'My Zap' at the top — rename it now to something like 'Gmail → Slack: Vendor Emails' so you can find it later. Everything you configure is auto-saved, so there's no Save button to worry about during setup.
- 1Log into zapier.com
- 2Click 'Create Zap' in the left sidebar
- 3Click the default Zap name at the top and rename it to something descriptive
- 4Confirm you see the trigger block labeled 'Trigger' on the left side of the canvas
Zap Editor > Trigger Block > App & Event
Set Gmail as the trigger app
Click the trigger block and type 'Gmail' in the app search field. Select Gmail from the results — it shows Google's red envelope icon. You'll then be asked to choose a trigger event. Pick 'New Email Matching Search' because it lets you filter by sender, subject keywords, or Gmail labels in a single query field. The other Gmail triggers ('New Email', 'New Labeled Email') are coarser — they won't let you combine multiple conditions without extra filter steps.
- 1Click the trigger block
- 2Type 'Gmail' in the search field and select it
- 3Under 'Trigger Event', select 'New Email Matching Search'
- 4Click 'Continue'
Zap Editor > Trigger Block > Account
Connect your Gmail account
Click 'Sign in to Gmail' and a Google OAuth popup will appear. Select the Google account whose inbox contains the emails you want to forward. Zapier will request read access to your Gmail — click 'Allow'. If you need to forward emails from a shared inbox or alias, you must connect the primary Google account that owns that inbox; Zapier cannot connect to Gmail aliases directly.
- 1Click 'Sign in to Gmail'
- 2Select the correct Google account in the OAuth popup
- 3Click 'Allow' to grant Zapier read access
- 4Confirm the connected email address appears in the account dropdown
Zap Editor > Trigger Block > Configure > Search String
Configure the Gmail search filter
In the 'Search String' field, enter a Gmail search query exactly as you would type it in Gmail's search bar. This field accepts full Gmail search syntax. To match emails from a specific sender, type: from:[email protected]. To match emails with a subject keyword, use: subject:"Shipment Update". To combine both: from:[email protected] subject:"Shipment Update". You can also use label:customer-inquiries to match any email with a specific Gmail label. Zapier polls this search query every 1–2 minutes on paid plans (every 15 minutes on free).
- 1Click into the 'Search String' field
- 2Type your Gmail search query (e.g., from:[email protected] subject:"Shipment Update")
- 3Optionally add label: criteria to filter by Gmail labels
- 4Click 'Continue'
Zap Editor > Trigger Block > Test
Test the Gmail trigger
Click 'Test Trigger'. Zapier will run your search query against your inbox and return up to 3 recent matching emails as sample records. You need at least one matching email already in your inbox for this step to succeed — if none exist, send yourself a test email matching your search criteria first, wait 30 seconds, then retry. Review the sample data to confirm the right emails are being captured: check the From, Subject, and Body Plain fields specifically.
- 1Click 'Test Trigger'
- 2Wait 5–10 seconds for Zapier to query Gmail
- 3Review the returned sample records and confirm they match your intended emails
- 4Click 'Continue with selected record' on the sample that best represents a real email
Zap Editor > Action Block > App & Event
Set Slack as the action app
Click the action block and search for 'Slack'. Select it and then choose 'Send Channel Message' as the action event — this posts a message to a public or private channel. Do not choose 'Send Direct Message' unless you want to DM a specific person instead of broadcasting to a channel. Click 'Continue' to proceed to account connection.
- 1Click the action block
- 2Type 'Slack' in the app search field and select it
- 3Under 'Action Event', select 'Send Channel Message'
- 4Click 'Continue'
Zap Editor > Action Block > Account
Connect your Slack workspace
Click 'Sign in to Slack'. A Slack OAuth window opens — select your workspace from the dropdown at the top right if you belong to multiple workspaces. Click 'Allow' to grant Zapier permission to post messages. The account you connect here determines which workspace Zapier can post into. If you need to post into a workspace where you're not an admin, you only need posting permissions — full admin access is not required.
- 1Click 'Sign in to Slack'
- 2Select the correct Slack workspace from the top-right dropdown in the OAuth window
- 3Click 'Allow'
- 4Confirm your workspace name appears in the Slack account field
Zap Editor > Action Block > Configure > Channel + Message Text
Configure the Slack message
Select the destination channel from the 'Channel' dropdown — type the channel name to filter the list. Then build the message text in the 'Message Text' field by clicking into it and inserting Gmail data fields using the blue '+' insert button. A useful default format: start with the sender (From Name field), then the subject (Subject field), then a short excerpt (Body Plain field — trim this to avoid walls of text). Toggle 'Send as Bot' to Yes and optionally set a Bot Name like 'Email Forwarder' and a Bot Icon emoji like :email:.
- 1Click the 'Channel' dropdown and select the destination Slack channel
- 2Click into the 'Message Text' field
- 3Click the blue '+' button and insert 'From Name' from the Gmail trigger
- 4Add a line break, then insert 'Subject' and 'Body Plain' fields
- 5Optionally set Bot Name to 'Email Forwarder' and Bot Icon to ':email:'
📬 New entry: {{1.name}}
Email: {{1.email}}
Details: {{1.description}}Zap Editor > + (between steps) > Formatter by Zapier > Text > Truncate
Add a Formatter step to truncate the email body (optional but recommended)
Click the '+' icon between the Gmail trigger and Slack action to insert a new step. Search for 'Formatter by Zapier' and select it, then choose 'Text' as the action event and 'Truncate' as the transform. In the 'Input' field, insert the Gmail 'Body Plain' field. Set Max Length to 300 characters. This keeps Slack messages readable. Connect the Formatter's output field — labeled 'Output' — back to the Slack message text in Step 8 in place of the raw 'Body Plain' field.
- 1Click the '+' icon between the Gmail trigger and Slack action
- 2Search for 'Formatter by Zapier' and select it
- 3Set Action Event to 'Text' and Transform to 'Truncate'
- 4Set Input to the Gmail 'Body Plain' field
- 5Set Max Length to 300
- 6Go back to the Slack action and replace the 'Body Plain' pill with the Formatter 'Output' pill
📬 New entry: {{1.name}}
Email: {{1.email}}
Details: {{1.description}}Zap Editor > Action Block > Test
Test the full Zap
Click 'Test Step' on the Slack action. Zapier will send a real message to the Slack channel you selected using the sample email data from Step 5. Go to Slack immediately and find the channel — you should see a message posted by your bot with the sender, subject, and truncated body. If the formatting looks off, go back to the Slack action's Message Text field and adjust spacing or punctuation around the data pills.
- 1Click 'Test Step' on the Slack action
- 2Open Slack and navigate to the destination channel
- 3Confirm the test message appears with the correct sender, subject, and body snippet
- 4Return to Zapier and adjust message formatting if needed
Zap Editor > Publish > Zap Dashboard > Zap History
Turn on the Zap
Click 'Publish' in the top-right corner of the Zap editor. Toggle the Zap to 'On' in the confirmation panel. Zapier will now poll your Gmail search query on its regular interval — every 1–2 minutes on Starter and above, every 15 minutes on the free plan. You'll see the Zap listed as 'On' in your Zap dashboard. Check the Zap History tab after 10–15 minutes to confirm the first real runs are completing successfully.
- 1Click 'Publish' in the top-right corner
- 2Toggle the Zap status to 'On'
- 3Navigate to the Zap dashboard and confirm the Zap shows as 'On'
- 4After 10–15 minutes, click into the Zap and review the History tab for successful runs
This Code by Zapier step runs after the Gmail trigger and before the Slack action. It extracts only the first paragraph of the email body (stopping at the first double line break), strips email signatures automatically, and formats the final Slack message with bold fields — producing a cleaner output than Formatter's Truncate transform alone. Paste this into a 'Code by Zapier' step (JavaScript), add 'body' and 'subject' and 'from_name' as input data fields mapped from your Gmail trigger, and map the output 'message' field into your Slack message text.
JavaScript — Code Step// Input data (map these from your Gmail trigger in the Zapier UI):▸ Show code
// Input data (map these from your Gmail trigger in the Zapier UI): // inputData.body → Gmail 'Body Plain' field // inputData.subject → Gmail 'Subject' field
... expand to see full code
// Input data (map these from your Gmail trigger in the Zapier UI):
// inputData.body → Gmail 'Body Plain' field
// inputData.subject → Gmail 'Subject' field
// inputData.from_name → Gmail 'From Name' field
// inputData.from_email → Gmail 'From Email' field
const body = inputData.body || '';
const subject = inputData.subject || '(No Subject)';
const fromName = inputData.from_name || inputData.from_email || 'Unknown Sender';
const fromEmail = inputData.from_email || '';
// Extract first paragraph — stop at first double newline or after 400 chars
const firstParagraphMatch = body.match(/^([\s\S]{1,400}?)(\n\n|\r\n\r\n|$)/);
const preview = firstParagraphMatch
? firstParagraphMatch[1].trim()
: body.slice(0, 400).trim();
// Strip common signature delimiters
const cleanPreview = preview
.replace(/^--[\s\S]*$/m, '') // removes lines starting with '--'
.replace(/^Sent from my[\s\S]*$/im, '') // removes mobile signatures
.trim();
// Build formatted Slack message
const message = [
`:email: *New email from ${fromName}* (${fromEmail})`,
`*Subject:* ${subject}`,
`*Preview:* ${cleanPreview || '(No body text)'}`,
].join('\n');
return [{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 team has no one who writes code, you want setup done in under 15 minutes, and your email volume is under 200–300 matching emails per month. Zapier's guided Zap builder handles the Gmail OAuth and Slack channel selection with zero configuration complexity — you don't touch an API or write a JSON body. The one scenario where you'd skip Zapier: if this is a customer support inbox that receives 500+ emails a month, the task math gets expensive fast and Make handles the identical workflow on its free tier.
Each run of this Zap consumes at minimum 2 tasks: one for the Gmail trigger and one for the Slack action. Add a Formatter step and it's 3 tasks per email. At 200 emails per month that's 400–600 tasks — comfortably inside Zapier's Starter plan (750 tasks/month, $19.99/month). At 500 emails per month you're at 1,000–1,500 tasks, which pushes you to the Professional plan at $49/month. Make's free plan includes 1,000 operations per month, and this same workflow runs in 2–3 operations per email — handling 330+ emails per month for free. If volume is your concern, Make wins on cost by $49/month.
Make handles conditional routing better — you can add an IF branch that checks the sender domain and posts to different Slack channels, all in one scenario, without duplicating your entire workflow. n8n lets you write a JavaScript node to parse email body HTML and extract specific fields (order numbers, tracking IDs) before posting them as structured Slack blocks — far more powerful than Zapier's Formatter. Power Automate has a native Gmail connector only in its premium tier, and its Slack connector is weaker; skip it for this use case. Pipedream gives you a persistent Node.js environment where you can call the Gmail API directly with full filter logic and post richly formatted Slack Block Kit messages in about 20 lines of code. Zapier still wins here for non-technical users: the trigger-action model is impossible to misconfigure, the Gmail search syntax field is the only real complexity, and there's no deployment or hosting to manage.
Three things you'll run into after setup. First, email body length: Gmail's 'Body Plain' field dumps the entire thread including all quoted replies and signatures — a 3-email thread easily produces a 400-line Slack message. Add the Formatter truncate step before you go live. Second, polling lag on the free plan: 15 minutes is the floor, and during Zapier platform load it stretches to 20–25 minutes. If someone emails your support address and expects a fast response, a 20-minute delay before the team sees it in Slack creates real problems. Third, Gmail label changes triggering duplicates: if another tool applies or removes a label on an email after Zapier's first poll, Zapier can re-detect it as a new match and post a duplicate Slack message. The fix is the 'Add Label after forwarding + exclude that label in the search string' pattern described in the FAQ — it's not complicated, but you won't think to add it until you see the first duplicate.
Ideas for what to build next
- →Add a Slack Reaction Back to Gmail — When a teammate reacts to the Slack message with a specific emoji (like ✅), trigger a Zapier workflow to apply a 'Handled' label in Gmail — closing the loop without switching apps.
- →Route Emails to Multiple Channels by Sender — Duplicate the Zap and change the Gmail search filter and Slack channel per sender domain — one Zap for [email protected] to #logistics, another for support@* to #customer-success. Zapier's Paths feature can handle this in a single Zap if you're on a Professional plan.
- →Create a Daily Email Digest Instead of Instant Alerts — Replace this Zap with a scheduled Make scenario that batches all matching Gmail messages from the past 24 hours and posts a single formatted Slack digest each morning — reduces channel noise for lower-urgency email categories.
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