

How to Forward Gmail Meeting Notes to Slack with Make
Watches Gmail for emails containing meeting notes, action items, or external meeting confirmations, then routes the content to the appropriate Slack channel automatically.
Steps and UI details are based on platform versions at time of writing — check each platform for the latest interface.
Best for
Teams where external meeting confirmations and follow-ups arrive in one person's inbox but need to reach the whole team in Slack.
Not ideal for
Teams using a shared inbox or calendar tool — in that case, route from Google Calendar invites instead.
Sync type
scheduledUse case type
notificationReal-World Example
A 12-person consulting firm uses this to push client meeting confirmations and post-meeting summaries from the account manager's Gmail into #client-meetings on Slack. Before automation, the account manager copy-pasted notes into Slack manually — often hours after the email arrived. Now the team sees meeting context within 5 minutes of the email landing.
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 | ||
| Email Subject | ||
| Sender Name | ||
| Sender Email Address | ||
| Email Date | ||
| Plain Text Body | ||
5 optional fields▸ show
| Snippet | |
| Recipients (To field) | |
| CC Recipients | |
| Attachment Names | |
| Gmail Message ID |
Step-by-Step Setup
Make Dashboard > Scenarios > Create a new scenario
Create a new scenario in Make
Log into Make at make.com and click the blue 'Create a new scenario' button in the top right of the Scenarios dashboard. You'll land on a blank canvas with a large '+' icon in the center — this is where you add your first module. Give the scenario a name immediately by clicking the default name at the top ('New scenario') and typing something like 'Gmail Meeting Notes → Slack'. Naming it now saves confusion if you have multiple scenarios.
- 1Click the blue 'Create a new scenario' button in the top right
- 2Click the pencil icon next to 'New scenario' at the top and rename it 'Gmail Meeting Notes → Slack'
- 3Click the large '+' icon in the center of the canvas to open the module picker
Canvas > + > Gmail > Watch Emails
Add the Gmail 'Watch Emails' trigger module
In the module picker search box, type 'Gmail' and select it from the results. From the Gmail module list, choose 'Watch Emails' — this polls your inbox on a schedule you set and fires once per matching email. You'll be prompted to connect your Google account. Click 'Add' next to the connection field, sign in with the Google account that receives the meeting emails, and grant Make the Gmail read permissions it requests.
- 1Type 'Gmail' in the module search box
- 2Select 'Watch Emails' from the Gmail module list
- 3Click 'Add' next to the Connection field
- 4Sign into the correct Google account and click 'Allow' on the permissions screen
Canvas > Gmail: Watch Emails > Settings panel (right side)
Configure the Gmail trigger filters
Inside the 'Watch Emails' module settings, set the 'Folder' to 'INBOX'. In the 'Search' field, enter a Gmail search string to target only meeting-related emails — use something like: subject:(meeting OR 'action items' OR 'follow-up' OR 'meeting notes'). Set 'Maximum number of results' to 5. This limits each polling run to 5 emails, which prevents large backlogs from flooding Slack on the first run. Set the trigger to watch 'All emails' not just unread ones, unless your team marks emails as read consistently.
- 1Set 'Folder' to 'INBOX'
- 2Enter subject:(meeting OR "action items" OR "follow-up" OR "meeting notes") in the 'Search' field
- 3Set 'Maximum number of results' to 5
- 4Set 'Mark email messages as read when fetched' to 'No' unless you want Make to mark them read
Canvas > + > Text Parser > Match Pattern
Add a Text Parser to extract key content
Click the '+' icon to the right of the Gmail module to add the next module. Search for 'Text Parser' and select 'Match Pattern'. This module lets you extract specific content from the email body using a regex pattern. You'll use it to pull out the meeting date, attendees, or action items if they follow a consistent format. If your meeting emails are less structured, you can skip this step and pass the raw email body to Slack — but the Slack message will be harder to read.
- 1Click the '+' icon to the right of the Gmail module
- 2Search for 'Text Parser' in the module picker
- 3Select 'Match Pattern'
- 4In the 'Text' field, map in '{{1.snippet}}' or '{{1.body.value}}' from the Gmail module
- 5Enter your regex pattern — e.g. Action Items:\s*(.+?) for extracting action item blocks
Canvas > + > Router
Add a Router to direct emails to different Slack channels
Click the '+' after the Text Parser module and search for 'Router'. Add it — this splits your scenario into multiple branches, one per Slack channel. For example, one branch for client meeting emails routed to #client-meetings and another for internal emails routed to #team-updates. Each branch has its own filter condition you'll set in the next step. The Router is the core logic that makes this more useful than a single forward.
- 1Click the '+' icon to the right of the Text Parser module
- 2Search for 'Router' and select it
- 3The Router appears on the canvas with two default output paths shown as arrows
channel: {{channel}}
ts: {{ts}}
Canvas > Router arrow > Filter icon > Filter editor
Set filter conditions on each Router branch
Click the small filter icon (a funnel) on the first Router arrow to open the filter editor. Set the condition using Gmail fields — for example: '{{1.from.value[].email}}' contains 'clientdomain.com' to catch all emails from a client. For the second branch, set it to catch emails where the subject contains 'internal' or from your company domain. Click 'OK' to save each filter. You can add more branches by clicking the '+' on the Router module itself.
- 1Click the funnel icon on the first Router output arrow
- 2Set Label to 'Client Meetings'
- 3Set Condition: '{{1.from.value[].email}}' > 'Contains' > 'clientdomain.com'
- 4Click 'OK'
- 5Repeat for the second arrow, using subject or sender conditions for internal meetings
Canvas > Router branch > + > Slack > Create a Message
Add a Slack 'Create a Message' module to each branch
Click the '+' at the end of each Router branch and search for 'Slack'. Select 'Create a Message'. Connect your Slack workspace — click 'Add' next to the Connection field and authorize Make with the Slack bot scopes it requests (chat:write is the key one). Do this for each branch. You'll configure the channel and message content separately on each Slack module.
- 1Click '+' at the end of the first Router branch
- 2Search 'Slack' and select 'Create a Message'
- 3Click 'Add' next to the Connection field
- 4Authorize Make in the Slack permissions screen that opens
- 5Repeat for the second Router branch using the same Slack connection
📬 New entry: {{1.name}}
Email: {{1.email}}
Details: {{1.description}}Canvas > Slack: Create a Message > Settings panel
Configure the Slack message content for each branch
Inside each Slack 'Create a Message' module, set the 'Channel' field by typing the channel name or selecting from the dropdown (e.g. #client-meetings). In the 'Text' field, build your message using Gmail variables. A solid format: *New Meeting Email* — {{1.subject}} From: {{1.from.value[].name}} Date: {{formatDate(1.date; 'MMMM D, YYYY')}} {{1.snippet}}. Keep it short enough that Slack doesn't truncate it — under 3000 characters. Repeat this configuration on the second Slack module, pointing to the different channel.
- 1Set 'Channel' to #client-meetings (or your target channel name)
- 2In the 'Text' field, enter your message template with Gmail variables mapped in
- 3Map '{{1.subject}}' for the email subject
- 4Map '{{formatDate(1.date; "MMMM D, YYYY")}}' for a readable date
- 5Map '{{1.snippet}}' or '{{1.body.value}}' for the email body preview
📬 New entry: {{1.name}}
Email: {{1.email}}
Details: {{1.description}}Canvas > Gmail module > Clock icon > Scheduling panel
Set the polling schedule
Click the clock icon on the Gmail 'Watch Emails' module (bottom left of the module on the canvas). This opens the scheduling panel. Set the interval to '5 minutes' for near-real-time distribution. If your team doesn't need instant notification, 15 minutes reduces your operation count and keeps costs lower. Make's free plan runs scenarios every 15 minutes minimum — to get 5-minute polling, you need at least the Core plan.
- 1Click the clock icon on the bottom-left corner of the Gmail module
- 2Set 'Run scenario' to 'At regular intervals'
- 3Set interval to '5 minutes' (or 15 minutes on free plan)
- 4Click 'OK'
Canvas > Bottom toolbar > Run once button
Run a test with real email data
Click 'Run once' in the bottom toolbar to trigger a single manual run. Make will poll Gmail for matching emails and process the first one it finds. Watch the execution flow on the canvas — each module lights up blue as it runs, then shows a green bubble with the number of processed records. Click each bubble to inspect the exact data that passed through: subject, sender, body, and the final Slack message payload. Verify the correct channel received the message in Slack.
- 1Click the 'Run once' button in the bottom toolbar
- 2Watch the modules light up blue as each executes
- 3Click the green bubble on the Gmail module to inspect the email data fetched
- 4Click the green bubble on the Slack module to see the message payload sent
- 5Check your Slack channel to confirm the message arrived
Canvas > Bottom-left toggle > ON
Activate the scenario
Once the test run looks correct in both Make and Slack, flip the toggle in the bottom-left corner of the canvas from OFF to ON. The scenario is now live and will poll Gmail on the schedule you set. Make will email you if the scenario encounters an error and stops. Go to Scenario Settings (the gear icon at the bottom) and confirm 'Notify me on error' is turned on so you catch any Gmail permission issues or Slack channel errors quickly.
- 1Click the toggle in the bottom-left corner to switch from OFF to ON
- 2Click the gear icon to open Scenario Settings
- 3Confirm 'Allow incomplete bundles' is set based on your preference
- 4Confirm error notification email is set under 'Notifications'
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 needs routing logic — different Slack channels for different email types — because Make's Router module handles that in a single scenario without duplicating logic. Make also handles the Gmail search filtering natively, so you're not burning operations on emails that shouldn't trigger anything. The one scenario where you'd pick Zapier instead: if the person setting this up has never used a visual automation tool and the routing rules are simple (one inbox, one Slack channel). Zapier's Gmail trigger is faster to configure and the filter step is more intuitive for non-technical users.
Cost math: each scenario run uses 3-5 operations depending on whether the Router fires one branch or two — 1 for Gmail polling, 1 for Text Parser, 1 for Router evaluation, 1 for Slack. At 20 meeting emails per day on a 5-minute polling schedule, that's roughly 100 operations per day or 3,000/month. Make's Core plan includes 10,000 operations/month for $10.59/month, so you have 7,000 operations of headroom. Zapier's equivalent would run ~3,000 tasks/month and hit the $19.99/month Starter plan. Make is cheaper by about $9/month for this volume.
Zapier handles Gmail triggers with a slightly faster initial setup — the 'New Email Matching Search' Zap is one of Zapier's most reliable triggers and requires zero configuration beyond the search string. n8n's Gmail node supports OAuth2 and webhook-based triggers (via Gmail Push Notifications with Pub/Sub), which would give you true instant delivery instead of polling — Make can't do that for Gmail. Power Automate has a native 'When a new email arrives (V3)' trigger in Outlook but not Gmail — for Gmail specifically, Power Automate requires a workaround through a custom connector or Office 365 forwarding. Pipedream's Gmail source uses the Gmail API with real-time push, making it faster than Make for latency-sensitive teams. Make is still the right call here because the visual Router is unmatched for multi-channel routing and most teams don't need sub-60-second email delivery for meeting notes.
Three things you'll hit after go-live. First, Gmail's OAuth tokens expire or get revoked when a user changes their Google password or an admin resets security settings — Make will stop silently and you won't know until someone notices Slack stopped getting messages. Set up error notification emails in Scenario Settings on day one. Second, HTML email bodies: roughly 60% of meeting confirmation emails from calendar tools (Calendly, Zoom, Google Calendar) are HTML-formatted with tables and inline styles. Passing body.value to Slack produces unreadable output with raw HTML tags. Always use body.text and test with a real calendar confirmation email, not a manually typed test. Third, Make's Gmail module doesn't support label-based watching — only folder names and search strings. If your team uses Gmail labels to organize meeting emails (a common setup), you'll need to convert your label logic into equivalent search operators like 'label:meeting-followups' in the search field.
Ideas for what to build next
- →Add a Google Calendar lookup — When Make detects a meeting confirmation email, cross-reference Google Calendar to check if the event is already on the calendar. If not, automatically create the calendar event from the email details — closing the loop between inbox and calendar.
- →Log meetings to a Google Sheet — After each Slack notification, add a row to a Google Sheet with the email subject, sender, date, and Slack channel it was routed to. Gives you a running log of all external meetings distributed to the team without digging through Slack history.
- →Build a daily digest instead of instant notifications — Replace the polling trigger with a scheduled trigger that runs once at 8am, collects all meeting emails from the past 24 hours, and posts a single summarized Slack message per channel. Reduces Slack noise for high-volume inboxes.
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