

How to Route Gmail Support Emails to Slack with Make
Make watches a Gmail support inbox, extracts key email details, and posts a formatted summary to a designated Slack channel so your team can coordinate a response before replying.
Steps and UI details are based on platform versions at time of writing — check each platform for the latest interface.
Best for
Small support teams (2–15 people) who receive support email in Gmail and need a shared Slack space to triage and discuss tickets before responding.
Not ideal for
Teams handling 500+ support emails per day — at that volume, a dedicated helpdesk like Zendesk with native Slack integration costs less per ticket and avoids Make's operation count.
Sync type
real-timeUse case type
routingReal-World Example
A 10-person SaaS company routes all email to [email protected] into a private #support-tickets Slack channel. Before this automation, whoever happened to check Gmail first would claim the email — others had no visibility, and tickets got missed over weekends. Now every new email posts to Slack within 2 minutes with sender, subject, and a truncated preview, and teammates thread their discussion before anyone hits Reply.
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 | ||
| Sender Name | ||
| Sender Email | ||
| Subject | ||
| Date | ||
| Body (HTML) | ||
| Body Preview (truncated) | ||
| Message ID | ||
2 optional fields▸ show
| Thread ID | |
| Attachments |
Step-by-Step Setup
make.com > Scenarios > + Create a new scenario
Create a new Make scenario
Log into Make at make.com and click 'Create a new scenario' from your dashboard. You'll land on the visual scenario canvas — a dark grid with a single empty circle in the center. This is where your first module goes. Do not click the clock icon yet; that controls scheduling and you'll set it last.
- 1Log in at make.com
- 2Click the blue 'Create a new scenario' button in the top right
- 3Wait for the canvas to load — you'll see an empty circle labeled 'Add a module'
Canvas > Empty module circle > Search 'Gmail' > Watch Emails
Add Gmail as the trigger module
Click the empty circle on the canvas to open the module picker. Search for 'Gmail' and select it. From the list of Gmail triggers, choose 'Watch Emails' — this is a polling trigger that checks your inbox on a schedule you define. Do not choose 'Watch Email Labels' unless you are routing by label; for this workflow you'll filter by sender address in the next step.
- 1Click the empty circle on the canvas
- 2Type 'Gmail' in the search bar
- 3Click 'Gmail' in the results list
- 4Select 'Watch Emails' from the trigger options
Gmail module panel > Connection > Add > Google OAuth
Connect your Gmail account
In the Gmail module panel, click 'Add' next to the Connection field. A Google OAuth popup opens — sign in with the Google account that owns the support inbox. Grant Make permission to read your email. After authorizing, the connection name appears in the dropdown. If the support inbox belongs to a Google Workspace account, sign in with those credentials, not a personal Gmail account.
- 1Click 'Add' next to the Connection field
- 2Select the correct Google account in the OAuth popup
- 3Click 'Allow' on the permissions screen
- 4Confirm the connection name appears in the Connection dropdown
Gmail module panel > Folder > Criteria > Sender Email Address
Configure Gmail filter and folder
Set the Folder field to 'INBOX'. In the 'Criteria' field, choose 'From a specific sender' if you want to route only emails from certain addresses, or leave it on 'All emails' to route everything in the inbox. In the 'Sender Email Address' field (visible when you choose the sender filter), type the domain or specific address — for example, enter '@enterprise-client.com' to catch all email from that domain. Set 'Maximum number of results' to 1 so each run processes one email at a time and you don't create duplicate Slack posts.
- 1Set Folder to 'INBOX'
- 2Set Criteria to 'From a specific sender' or 'All emails'
- 3If filtering by sender, type the address or domain in 'Sender Email Address'
- 4Set Maximum number of results to 1
Canvas > + after Gmail module > Text Parser > HTML to Text
Add a Text Parser to format the email body
Click the small '+' icon on the right edge of the Gmail module to chain a new module. Search for 'Text Parser' and select the 'HTML to Text' action. Map the Body field from the Gmail module into the HTML input. This strips HTML tags from the email body so your Slack message doesn't contain raw angle brackets and inline styles. Without this step, Slack messages from HTML-formatted emails look broken.
- 1Click the '+' icon to the right of the Gmail module
- 2Search 'Text Parser' in the module picker
- 3Select 'HTML to Text'
- 4In the HTML field, click the Body variable from the Gmail module output
📬 New entry: {{1.name}}
Email: {{1.email}}
Details: {{1.description}}Canvas > + after Text Parser > Router > Right-click branch > Set filter
Add a Router to separate ticket types (optional but recommended)
Click '+' after the Text Parser module and search for 'Router'. Add it. A Router splits your scenario into multiple branches based on conditions — for example, one branch for billing emails, another for technical support. Right-click each router branch arrow to set a filter condition. Use Gmail's Subject variable and the 'contains' operator to match keywords like 'billing', 'bug', or 'refund'. Route each branch to a different Slack channel in the next steps.
- 1Click '+' after the Text Parser module
- 2Search and select 'Router'
- 3Right-click the first branch arrow and select 'Set up a filter'
- 4Set Condition: Subject > Contains (case insensitive) > 'billing'
- 5Repeat for each additional branch with different keywords
Canvas > + after Router branch > Slack > Create a Message
Add Slack module to post formatted message
On each Router branch (or directly after Text Parser if skipping the Router), click '+' and search for 'Slack'. Select the 'Create a Message' action. Connect your Slack workspace via OAuth when prompted. In the Channel field, type the exact Slack channel name starting with '#' (e.g., '#support-billing'). Build the message text using Make's text editor — combine Gmail variables and plain text to create a readable summary.
- 1Click '+' on a Router branch
- 2Search 'Slack' and select it
- 3Choose 'Create a Message'
- 4Click 'Add' next to Connection and authorize with your Slack workspace
- 5Set Channel to '#support-tickets' (or branch-specific channel)
- 6Build the message body using the field mapping in the next step
📬 New entry: {{1.name}}
Email: {{1.email}}
Details: {{1.description}}channel: {{channel}}
ts: {{ts}}
Slack module > Text field > Variable picker + formula editor
Build the Slack message body
In the Slack module's Text field, construct the formatted summary. Use Make's variable picker to insert Gmail fields between plain text. A well-formatted message includes the sender name, sender email, subject line, timestamp, and a truncated body preview. Use Make's substring() formula to limit the body preview to 300 characters — paste it directly in the Text field. The message should be scannable in under 5 seconds.
- 1Click inside the Text field of the Slack module
- 2Type '*New Support Ticket* :envelope:' as the header line
- 3Press Enter and add '*From:* ' then click the 'From Name' variable
- 4Add ' <' then the 'From Email' variable, then '>'
- 5Add '*Subject:* ' then the Subject variable
- 6Add '*Preview:* ' then open the formula editor and type: substring(Text Parser output; 0; 300)
📬 New entry: {{1.name}}
Email: {{1.email}}
Details: {{1.description}}Canvas > + after Slack module > Gmail > Modify an Email Labels
Add email label to mark routed messages
After the Slack module, add another Gmail module: 'Modify an Email Labels' action. Connect the same Gmail account. Set Message ID to the ID variable from the Watch Emails trigger. In the 'Add Labels' field, select or create a label called 'routed-to-slack'. This prevents Make from picking up the same email on the next poll cycle. Without this step, the same email fires every 15 minutes until Make's internal cursor advances.
- 1Click '+' after the Slack module
- 2Search 'Gmail' and select 'Modify an Email Labels'
- 3Set Connection to the same Gmail connection from step 3
- 4Set Message ID to the Message ID variable from the Watch Emails trigger
- 5In 'Add Labels,' type 'routed-to-slack' and press Enter to create it
📬 New entry: {{1.name}}
Email: {{1.email}}
Details: {{1.description}}Scenario canvas > Clock icon (bottom left) > Scheduling settings
Set the polling schedule
Click the clock icon at the bottom left of the scenario canvas. Set the interval based on your plan: free plan minimum is 15 minutes, Core plan allows 1 minute. For most support teams, 5 minutes is the right balance — fast enough to feel timely, slow enough that 30 emails/hour won't consume your operation count quickly. Each scenario run = 1 operation per module per email, so a 4-module chain costs 4 operations per email processed.
- 1Click the clock icon at the bottom left of the canvas
- 2Select 'At regular intervals'
- 3Set the interval to 5 minutes (or 1 minute on Core+)
- 4Click 'OK'
Scenario canvas > Run once button (bottom) > Activate scenario toggle (top right)
Test and activate the scenario
Click 'Run once' at the bottom of the canvas to manually trigger one poll cycle. Send a test email to your support inbox from an external address and wait 60 seconds. Watch the scenario execute — each module shows a speech bubble with a number indicating how many records it processed. Verify the Slack message appears in your channel with correct formatting. Once confirmed, click 'Activate scenario' (the toggle in the top right) to put it on the schedule you set.
- 1Send a test email to your support inbox from a different email account
- 2Click 'Run once' at the bottom of the canvas
- 3Watch each module bubble for a green checkmark or red error indicator
- 4Check your Slack channel for the test message
- 5Click the toggle in the top right to activate the scenario
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 is non-technical but needs more flexibility than Zapier provides. Make's visual Router module is the specific reason — you can split incoming emails into 3 or 4 Slack channels based on subject keywords in about 10 minutes, something that costs an extra Zap (and an extra $) in Zapier for each branch. Make also handles the HTML-to-text conversion natively through the Text Parser module, which saves you from building a separate data cleaning step. The one case where you'd skip Make: if your support volume is over 300 emails/day, you're better off connecting Zendesk or Freshdesk directly to Slack — both have native integrations that don't consume per-operation credits.
Real cost math: this scenario runs 4 modules per email. At 200 emails/month that's 800 operations — covered by Make's free tier (1,000 ops/month). At 500 emails/month you need 2,000 operations, which requires the Core plan at $9/month for 10,000 ops. Compare that to Zapier: their free tier gives you 100 tasks/month total, and each email-to-Slack action is 1 task. At 500 emails/month you're on Zapier's Professional plan at $49/month. Make is $40/month cheaper at that volume for this specific workflow.
Zapier's Gmail trigger fires within 1–2 minutes on paid plans versus Make's minimum 5-minute polling on Core — so Zapier wins on speed for high-urgency tickets. n8n handles this with more code flexibility: you can write JavaScript to parse the email body, score urgency, and route conditionally in a single Function node, which Make requires multiple modules to replicate. Power Automate has a native Office 365 / Teams version of this workflow that's better if your org is Microsoft-first — Outlook and Teams connect without OAuth friction in enterprise environments. Pipedream gives you real-time webhook-based Gmail triggering via Gmail push notifications, eliminating polling lag entirely. Make is still the right call for teams that want a visual no-code setup they can hand off to a non-developer to maintain, and where 5-minute latency is acceptable.
Three things you'll hit after launch. First, Gmail's OAuth token expires every 7 days if your Google Workspace has token refresh restrictions set — Make will start throwing 'Invalid credentials' errors and you'll need to reconnect the Gmail module. Check your Workspace admin settings for 'Token duration' under OAuth configurations. Second, Slack's rate limit for bot messages is 1 message per second per channel. If a batch of 10 emails arrives simultaneously at poll time, Make queues the Slack posts and they all go through, but you may see 10–15 second delays on messages 8–10. Third, forwarded emails and auto-replies often match your Watch Emails filter — set up a Gmail filter in your actual inbox to skip messages with 'Auto-Reply' or 'Out of Office' in the subject and apply a separate label, then add that label to Make's Exclude Labels field so auto-replies never hit Slack.
Ideas for what to build next
- →Add a Slack reaction to mark tickets as claimed — Extend the scenario to watch for a specific emoji reaction (e.g., :eyes:) on the Slack message and automatically apply a 'claimed' label in Gmail. This closes the loop so the team knows who is handling each ticket without leaving Slack.
- →Log tickets to a Google Sheet for volume tracking — Add a Google Sheets 'Add a Row' module after the Slack module to write each ticket — sender, subject, timestamp, channel routed to — into a tracking spreadsheet. After 30 days you'll have real data on ticket volume by category, which tells you whether your routing rules are working.
- →Send a daily digest instead of per-email posts — Build a separate scenario with a scheduled trigger (once per day at 9am) that searches Gmail for all emails labeled 'routed-to-slack' in the last 24 hours and posts a single digest message to Slack. This reduces Slack noise for lower-urgency support queues.
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