Ad · Make tutorial

How to Automate Slack to Notion Tasks with Make

Ad · Affiliate disclosure
This article contains affiliate links to Make. If you sign up through them, Mike Says may earn a commission at no extra cost to you. This guide is based on Make, Slack and Notion's official documentation. It is not a hands-on test or review.

Good ideas and to-dos get lost in Slack every day. Someone says "can you sort this by Friday?" in a busy channel, and by Monday it's 200 messages up and forgotten.

This guide shows you how to fix that with Make. You react to a Slack message with a ✅ emoji, and Make creates a task in your Notion database. The task includes the message text, who sent it, which channel it came from, a link back to the original message, and a status of "To Do". Affiliate link · I may earn commission from a qualifying purchase at no extra cost to you.

No code. Just a few modules, one filter and some careful field mapping.

Slack to Notion with Make: a checkmark reaction becomes a Notion task

Campaign artwork for this guide.

Published 6 October 2026. Based on Make, Slack and Notion's official documentation. This is a documented setup guide, not a hands-on test or review.

Who this is for

This setup suits you if:

If you're new to Make, read our Make review first for an overview, then come back here.

What you'll build

Here's the finished scenario, left to right:

  1. Slack – Watch New Events (instant trigger, event type: New reaction)
  2. Filter – only continue if the reaction is white_check_mark (✅) and it's in your chosen channel
  3. Slack – Get a Public Channel Message – fetches the full message that was reacted to
  4. Slack – Make an API Call – gets a permalink to the message (Slack's chat.getPermalink method)
  5. Slack – Get a User (optional) – turns the sender's user ID into a readable name
  6. Notion – Create a Data Source Item – creates the task in your Notion database

A quick note on names. Make doesn't have a separate "Watch Reactions" module. Reactions come through Watch New Events, where New reaction is one of the event types. And in Notion, the older Create a Database Item module is now marked Legacy. Make recommends the newer Create a Data Source Item for new builds, following Notion's September 2025 API change.

Before you start: is Slack's built-in Notion app enough?

Be honest with yourself here, because it might save you a scenario.

Notion's official Slack integration lets you click ⋮ → Send to Notion on any Slack message, or type /notion create. You pick a database, give the page a title and fill in properties. Notion's help centre says the new page includes a link back to the Slack message.

The native app is probably enough if:

Make is worth it if:

What you need

Set up your Notion tasks database

Create (or tidy up) a Notion database with these properties:

PropertyTypePurpose
TaskTitleFirst ~100 characters of the Slack message
DetailsTextFull message text
SenderTextWho wrote the message in Slack
ChannelText (or Select)Where it came from
Slack linkURLPermalink back to the original message
StatusStatus or SelectSet to "To Do" automatically
CapturedDateWhen the task was created

Keep property names simple. You'll be matching them by name in Make.

Step-by-step: Slack to Notion with Make

Step 1: Create the scenario and add the Slack trigger

  1. In Make, create a new scenario and add Slack → Watch New Events.
  2. Click Create a webhook and name it something clear, like "✅ reaction to Notion".
  3. Set Event type to New reaction.
  4. Create or select a Slack connection. Make's docs say Slack Watch modules currently only work with a Slack (user) connection, so pick that over a bot connection.
  5. Optionally pick the Channel to watch, then save.

Make attaches the webhook to Slack for you. There's nothing to configure on the Slack side.

Next, click Run once in Make and add a ✅ reaction to a test message in Slack. That gives you a real sample bundle to map from. Expand the output and note the field names. Slack's reaction_added event includes the reaction name, the user who reacted, the message author and an "item" containing the channel ID and message timestamp. Make's labels may differ slightly, so map from what you actually see.

Step 2: Add a filter so only ✅ fires

This is the step that stops you burning credits and filling Notion with junk.

Click the link (the small spanner icon) between the trigger and the next module, then choose Set up a filter:

Use the emoji's name, not the emoji itself. ✅ in Slack is white_check_mark. If your team prefers a custom emoji such as :task:, use that name instead.

The channel condition matters if you didn't choose a channel in the webhook, or if you plan to reuse the scenario. One emoji, one channel, one rule keeps things predictable.

Step 3: Fetch the full message

The reaction event tells you which message was reacted to, but not what it says. So add Slack → Get a Public Channel Message (or Get a Private Channel Message for private channels).

The output gives you the message Text, the author's User ID and the timestamp.

Step 4: Get a link back to the message

Make's Slack docs don't list a dedicated "permalink" module, so use Slack → Make an API Call. It runs any Slack Web API method through your existing connection.

The response body contains a permalink field. Map that into Notion later.

Lower-credit alternative: skip this module and build the link with Make's text functions, in the format Slack uses for message links. It works, but the API call is more reliable, so it's the one recommended here.

Step 5 (optional): Turn the user ID into a name

Slack returns a user ID like U04ABC123, which isn't very readable in Notion. Add Slack → Get a User and map the User field from Step 3. Then use the real name or display name from the output.

Skip it if you're watching credits. You can always map the raw ID instead.

Step 6: Create the Notion task

Add Notion → Create a Data Source Item.

  1. Create a Notion connection. With the public connection you pick which pages Make can access during sign-in. With the internal connection you open your database in Notion, click … → Add connections and choose your integration. Otherwise the database won't appear in Make.
  2. Select your tasks database's data source. Make's docs explain that the new modules use a data_source_id rather than the older database_id. If you need to find it manually, look under the database's settings for "Manage data sources".
  3. Map the fields:
Notion propertyMap fromExample formula / value
Task (Title)Step 3 → Textsubstring(Text; 0; 100)
Details (Text)Step 3 → Textfull text
Sender (Text)Step 5 → Real name (or Step 3 → User)—
Channel (Text)Step 1 → Item → Channelor type the channel name
Slack link (URL)Step 4 → Body → permalink—
Statusstatic valueTo Do
Captured (Date)Make's now variable—

If your Status property is Notion's Status type, make sure "To Do" exactly matches an existing option, including capitals.

Step 7: Test, then switch it on

  1. Click Run once, then react ✅ to a real test message.
  2. Check every module's output bubble. Then check that the Notion task appears with all fields filled.
  3. React with a different emoji, like 👍. The scenario should stop at the filter.
  4. When it's working, save and switch the scenario on.

Because the trigger is instant (webhook-based), you don't need a schedule. Make starts the scenario when Slack sends the event.

Credits and cost: what this uses on the Free plan

Make bills in credits. According to Make's pricing page and help centre:

Estimate for this scenario (one task created):

ModuleCredits
Watch New Events (trigger)1
Get a Public Channel Message1
Make an API Call (permalink)1
Get a User (optional)1
Create a Data Source Item1
Total4–5

That's roughly 200–250 tasks a month on the Free plan if nothing else is using credits.

The hidden credit burn: the trigger fires for every reaction in the channels it can see, including 👍, 😂 and 🎉. Each one starts a run. That's why the filter sits directly after the trigger: anything that isn't ✅ stops early, before the other modules run. But in a chatty channel, the trigger runs alone can still add up. To keep usage down:

Make's pricing changes over time, so check current numbers on our Make pricing guide or Make plans before you commit. Affiliate link · I may earn commission from a qualifying purchase at no extra cost to you.

Limitations to know about

Ideas to extend it

If you're comparing tools before building, our Make vs Zapier guide covers how the two price and handle multi-step workflows. For more ideas like this, see our workflow automation hub. If you want to try webhooks somewhere else, the Make webhooks to Google Sheets guide is a good next build.

Start building

If Slack is where your tasks get mentioned and Notion is where they get done, this scenario connects the two with one emoji. It's free to try within Make's monthly credit allowance, and you can grow it as your team does.

Try Make free and build your Slack-to-Notion scenario →

Ad: affiliate link. Mike Says may earn a commission if you sign up.

FAQ

Can Make watch Slack reactions?

Yes. Use Slack's Watch New Events module with the event type set to New reaction. It's an instant, webhook-based trigger.

Do I need a paid Make plan?

Not to start. The Free plan includes 1,000 credits a month, and this scenario uses roughly 4–5 credits per task created, plus 1 credit for each reaction that gets filtered out.

Why "Create a Data Source Item" and not "Create a Database Item"?

Notion changed its API in September 2025 to support databases with multiple data sources. Make marked the older database modules as Legacy and recommends the data-source modules for new scenarios.

Is the free Notion Slack app a better option?

For occasional, manual capture, it may be. Make is the better fit when you want one-tap capture with fields filled in automatically, plus room to add more steps.