

How to Share Notion Meeting Notes to Slack with Make
Monitors a Notion database for newly created meeting notes pages and automatically posts a formatted message with the page title, date, and link to 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
Teams that store meeting notes in a Notion database and need a reliable way to alert Slack channels without relying on anyone to remember to share the link.
Not ideal for
Teams who need instant delivery under 1 minute — Make polls Notion on a schedule, so there is always a delay of at least 1–15 minutes depending on your plan.
Sync type
scheduledUse case type
notificationReal-World Example
A 20-person product team keeps all meeting notes in a shared Notion database. Before this automation, the meeting facilitator had to manually copy the Notion link and paste it into #product-updates after every meeting — which was skipped about 40% of the time. Now, whenever a new page is created in the Meeting Notes database, Make detects it within 5 minutes and posts a Slack message with the title, owner, and direct link. No one misses a meeting summary anymore.
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 | ||
| Page Title | ||
| Page URL | ||
| Created Time | ||
5 optional fields▸ show
| Meeting Date (custom property) | |
| Owner / Author (Person property) | |
| Status (Select property) | |
| Meeting Type (Select property) | |
| Attendees (Multi-select or Person property) |
Step-by-Step Setup
make.com > Scenarios > Create a new scenario
Create a new Make scenario
Log into Make at make.com and click the blue 'Create a new scenario' button in the top right of the Scenarios dashboard. You will land on the visual canvas — an empty grid with a single gray circle in the center. This circle is your first module slot. Click it to open the app search dialog. Type 'Notion' and select it from the list.
- 1Click 'Create a new scenario' in the top right
- 2Click the gray circle on the empty canvas
- 3Type 'Notion' in the app search field
- 4Select 'Notion' from the results
Canvas > Notion module > Watch Database Items
Configure the Notion 'Watch Database Items' trigger
From the Notion module list, select 'Watch Database Items' — this is the polling trigger that checks for new pages in a specific database. Click 'Add' next to the Connection field to authenticate your Notion account. Make will redirect you to Notion's OAuth screen where you must grant access to the specific database you want to monitor. After connecting, use the Database ID dropdown to select your Meeting Notes database.
- 1Select 'Watch Database Items' from the Notion module list
- 2Click 'Add' next to the Connection field
- 3Complete the Notion OAuth flow and grant access to your Meeting Notes database
- 4Select your Meeting Notes database from the 'Database ID' dropdown
- 5Set 'Watch' to 'New Items Only'
Canvas > Notion trigger module > Clock icon (bottom left of module)
Set the polling interval and run limit
Click the clock icon on the Notion trigger module to open the scheduling panel. This controls how often Make checks Notion for new pages. Set the interval to 5 minutes for near-real-time delivery, or 15 minutes if you are on a free plan and want to conserve operations. Under 'Maximum number of results', set this to 1 — meeting notes are typically created one at a time, and processing them individually ensures each gets its own Slack message.
- 1Click the clock icon on the bottom-left of the Notion module
- 2Set interval to '5 minutes' (or '15 minutes' on free plan)
- 3Back in the module settings, set 'Limit' to 1
- 4Click OK to save
Canvas > Run once button (bottom toolbar)
Run the trigger once to load sample data
Before building the rest of the scenario, you need live data from Notion so you can map real fields. Click 'Run once' at the bottom of the canvas. Make will poll Notion and attempt to pull the most recent page from your database. If no pages exist yet, create a test page in your Notion Meeting Notes database — add a title, a date property, and an owner — then run the trigger again. The module will show a bubble with a number indicating how many records were fetched.
- 1Click 'Run once' at the bottom of the canvas
- 2Check the Notion module bubble for a green checkmark and record count
- 3Click the bubble to inspect the raw output and confirm your fields are visible
Canvas > + after Notion module > Tools > Set Variable
Add a Text Aggregator or Set Variable to format the message
Click the small '+' icon after the Notion trigger to add the next module. Search for 'Tools' and select the 'Set Variable' module — this is where you compose the Slack message text before sending it. In the Variable field, name it 'slack_message'. In the Variable value field, build your message string by clicking inside the field and selecting Notion output values from the mapping panel on the right. A good format is: the page title bolded, meeting date, owner name, and the Notion page URL on its own line.
- 1Click the '+' connector after the Notion trigger
- 2Search 'Tools' and select it
- 3Choose 'Set Variable'
- 4Name the variable 'slack_message'
- 5Build the value using Notion mapped fields: title, date property, owner, and URL
📬 New entry: {{1.name}}
Email: {{1.email}}
Details: {{1.description}}channel: {{channel}}
ts: {{ts}}
Canvas > + after Set Variable > Slack > Create a Message
Connect your Slack account
Click the '+' after the Set Variable module and search for 'Slack'. Select 'Create a Message'. Click 'Add' next to the Connection field. Make will open a Slack OAuth window — sign in with the Slack account that has permission to post to your target channel. After authenticating, you will be returned to Make with the connection shown as active. Select your workspace if prompted.
- 1Click '+' and search for 'Slack'
- 2Select 'Create a Message'
- 3Click 'Add' next to Connection
- 4Complete the Slack OAuth flow
- 5Confirm your workspace name appears in the Connection field
Canvas > Slack module > Create a Message settings
Configure the Slack message module
In the Slack 'Create a Message' module, set the Channel field by clicking the dropdown and selecting your target channel — for example '#meeting-notes' or '#product-updates'. In the Text field, map the 'slack_message' variable you created in Step 5. Optionally, expand 'Other Fields' and toggle 'Link Names' to true so that @mentions in the Notion text resolve correctly in Slack. Set 'Parse' to 'full' to enable Slack markdown formatting like bold and links.
- 1Click the Channel dropdown and select your target Slack channel
- 2In the Text field, map the 'slack_message' variable from Step 5
- 3Expand 'Other Fields'
- 4Set 'Link Names' to true
- 5Set 'Parse' to 'full'
📬 New entry: {{1.name}}
Email: {{1.email}}
Details: {{1.description}}Canvas > Connector line between Notion and Set Variable > Filter icon
Add a filter to skip incomplete or draft pages
Click the filter icon on the connector line between the Notion trigger and the Set Variable module (it looks like a funnel). Add a condition: check that the page's Status property (if you use one) does not equal 'Draft'. If you do not have a Status field, filter by title not being empty — this prevents a blank Notion page created accidentally from firing a Slack message. Click OK to save the filter.
- 1Click the funnel icon on the connector line between the first two modules
- 2Click 'Add rule'
- 3Set Condition A to your Status property (or Title)
- 4Set operator to 'Does not equal' (or 'Is not empty')
- 5Set the value to 'Draft' (or leave blank for the empty check)
- 6Click OK
Canvas > + after Filter > Data Store > Search Records
Handle duplicate detection with a data store
Because Make polls on a schedule, there is a small but real risk that the same page gets picked up twice if Notion's API returns it in two consecutive polling windows — especially right after creation. Add a Make Data Store module before the Slack step. Check if the Notion page ID exists in the data store. If it does, stop processing. If it does not, add it and continue. This adds two modules but prevents duplicate Slack messages reliably.
- 1Click '+' after the filter
- 2Search 'Data Store' and add 'Search Records'
- 3Create or select a data store with a field called 'notion_page_id'
- 4Set the filter to search where notion_page_id equals the Notion Page ID from the trigger
- 5Add a Router after this module
- 6Route 1: if no record found → continue to Set Variable → Slack
- 7Route 2: if record found → add 'Break' to stop execution
- 8Add a 'Data Store > Add/Replace a Record' module on Route 1 to save the new page ID
Canvas > Run once button
Test the full scenario end to end
Create a new test page in your Notion Meeting Notes database with a real title, date, and owner. Back in Make, click 'Run once'. Watch each module's execution bubble light up green in sequence. Click the Slack module bubble to confirm the output shows the correct channel and message text. Then check your actual Slack channel — the message should appear within a few seconds of the scenario completing.
- 1Create a new Notion page in your Meeting Notes database
- 2Click 'Run once' on the Make canvas
- 3Watch all module bubbles turn green
- 4Click the Slack module bubble and verify the channel and message text
- 5Open Slack and confirm the message arrived in the correct channel
Canvas > Toggle switch (bottom left) > ON
Activate the scenario
Once your test passes, click the toggle switch in the bottom-left of the canvas to turn the scenario ON. Make will now poll Notion automatically at the interval you set in Step 3. The scenario status changes from gray 'OFF' to blue 'ON'. You can confirm it is running by checking the scenario's execution history under Scenario > History after the first scheduled run fires.
- 1Click the gray toggle in the bottom-left of the canvas
- 2Confirm it turns blue and shows 'ON'
- 3Click 'Scenario > History' after your first scheduled interval to confirm execution
Paste this formula into the 'Variable value' field of the Set Variable module in Step 5. It formats the meeting date from ISO 8601 to a readable format, extracts the plain text title safely, and builds the full Slack message block in one expression. Replace the property names in brackets with your actual Notion property names if they differ.
JavaScript — Custom Function{{if(contains(1.properties.Status.select.name; "Final"); ▸ Show code
{{if(contains(1.properties.Status.select.name; "Final");
concat(
"*"; ... expand to see full code
{{if(contains(1.properties.Status.select.name; "Final");
concat(
"*";
get(map(1.properties.Name.title; "plain_text"); 1);
"*\n";
"📅 ";
formatDate(1.properties.`Meeting Date`.date.start; "MMM D, YYYY");
" | 👤 ";
get(map(1.properties.Owner.people; "name"); 1);
"\n";
"🔗 ";
1.url
);
"SKIP"
)}}
{{-- If Status is not Final, the variable outputs SKIP.
Add a filter after this module: continue only if slack_message != "SKIP".
This handles draft filtering without a separate router. --}}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 and you want a visual scenario you can hand off to someone else to maintain. Make's canvas makes the polling-filter-route-post flow obvious at a glance — a new team member can understand what it does in under 2 minutes without reading documentation. The second reason to pick Make: the built-in Data Store for deduplication costs nothing extra and requires no external database. The one scenario where you'd skip Make: if your team needs delivery in under 60 seconds. Make polls Notion — it does not receive webhooks from Notion — so there will always be a gap. For instant delivery, self-hosted n8n with a 30-second poll interval is the better call.
Real cost math: each scenario run uses approximately 6 operations (Notion trigger + filter check + set variable + data store search + data store write + Slack post). At 20 meeting notes per month, that is 120 operations. Make's free tier gives you 1,000 operations per month — you will not pay anything unless your team creates more than 166 meeting notes per month. At 500 notes per month (3,000 operations), you need the Core plan at $9/month. For comparison, running this same workflow in Zapier costs at least $19.99/month on the Starter plan once you add multi-step Zaps with data store equivalents. Make is cheaper here by $11/month minimum at any meaningful volume.
Honest comparison: Zapier's Notion trigger is slightly more polished — the field picker auto-resolves rich text arrays to plain strings, which means you skip the formula workaround in Step 5. That is a genuine usability advantage for non-technical users. n8n handles this better than both if you self-host: you can set polling to 30 seconds and use JavaScript to parse Notion's nested JSON in ways that Make formulas make awkward. Power Automate has a Notion connector but it is a premium connector requiring a $15/user/month Power Apps license — overkill for a Slack notification. Pipedream's Notion source fires reliably and you can write Node.js for the transformation, but there is no visual canvas, which matters for team handoff. Make is still the right pick here because the visual routing, built-in data store, and mid-tier pricing hit the best balance for a 10–50 person team that is not engineering-led.
Things you will hit after setup: First, Notion's API rate limit is 3 requests per second per integration. If you have multiple Make scenarios all polling the same Notion workspace simultaneously, you will start seeing 429 errors and scenarios will pause. Stagger your polling intervals — set one at 5 minutes, another at 7 minutes. Second, Notion Person properties return a user object with an ID and a name, but the name only appears if that user has a Notion account. If a guest collaborator is listed as the meeting owner, the name field comes back empty and your Slack message will show a blank where the author should be. Add a fallback: `if(Owner.name = ""; "Unknown"; Owner.name)`. Third, if your Notion database uses a rollup or formula property to compute the meeting date, Make sometimes cannot map these fields in the trigger output because Notion's API evaluates them lazily. Use a native Date property for the meeting date instead of a formula — it maps reliably every time.
Ideas for what to build next
- →Route by Meeting Type to Different Channels — Add a Router module after the filter and create separate Slack paths based on the Meeting Type property — product notes go to #product, sales notes go to #sales-team. This takes about 10 minutes to add and prevents channel noise immediately.
- →Add a Digest Mode for High-Frequency Teams — If your team creates more than 3 meeting notes per day, individual Slack messages become noise. Switch to a daily digest: use Make's Aggregator module to collect all new pages created that day, then send one summary message at 5pm instead of firing per page.
- →Sync Action Items Back to Notion — Extend the scenario to watch for Slack replies or emoji reactions on the meeting note message and write them back to the Notion page as a 'Follow-ups' property. This closes the loop between discussion and documentation without switching apps.
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 Create Notion Tasks from Slack with Pipedream
~15 min setup
How to Create Notion Tasks from Slack with Power Automate
~15 min setup