Productivity · n8n

Turn Slack Messages Into Notion Tasks Automatically — Never Lose an Action Item Again

Whenever a specific emoji reaction is added to a Slack message, this workflow instantly creates a new task in your Notion database. Teams stop losing action items buried in chat.

difficulty Beginnersetup 30 minresult Every Slack message reacted with a chosen emoji becomes a structured Notion task with the message text, author, and timestamp automatically filled in.
  1. 1

    Trigger on Slack Emoji Reaction

    Add a Slack Trigger node. In your Slack App settings enable the reaction_added event and point it to your n8n webhook URL. Set the Event field in the node to reaction_added. This fires the workflow whenever anyone reacts to a message.

  2. 2

    Filter for the Correct Emoji

    Add an IF node connected to the trigger. Set the condition: {{$json["reaction"]}} equals your chosen emoji name without colons, for example white_check_mark. Only messages reacted with that emoji will continue to Notion.

  3. 3

    Fetch the Full Slack Message Text

    Add an HTTP Request node on the true branch of the IF node. Set Method to GET and URL to https://slack.com/api/conversations.history. Add query parameters: channel mapped to {{$json["item"]["channel"]}} and latest and oldest both mapped to {{$json["item"]["ts"]}}, plus inclusive set to true. Add an Authorization header with your Slack Bot Token as Bearer YOUR_SLACK_BOT_TOKEN. This retrieves the original message text.

  4. 4

    Shape the Data for Notion

    Add a Set node. Create three fields: taskName mapped to {{$json["messages"][0]["text"]}}, slackUser mapped to {{$json["messages"][0]["user"]}}, and createdAt mapped to {{$now.toISO()}}. This cleans the payload before sending to Notion.

  5. 5

    Create the Task in Notion

    Add a Notion node. Set Resource to Database Page and Operation to Create. Enter your Notion Database ID. Map the Name property to {{$json["taskName"]}}, add a Text property called Slack User mapped to {{$json["slackUser"]}}, and a Date property called Captured At mapped to {{$json["createdAt"]}}. Authenticate with your Notion integration token.

Frequently asked questions

Which emoji should I use to trigger task creation?

You can use any emoji. Popular choices are white_check_mark, memo, or a custom team emoji. Just make sure the name you type in the IF node matches exactly what Slack sends, which you can verify by checking the raw trigger output in n8n's execution log.

Do I need a paid Slack plan?

No. A free Slack workspace works as long as you can create a Slack App and enable Event Subscriptions. The Slack App must be installed to your workspace and given the reactions:read and channels:history OAuth scopes.

What if my Notion database has different property names?

Open your Notion database and check the exact column names. Then update the property names inside the Notion node to match. Notion property names are case-sensitive, so 'Name' and 'name' are treated differently.

About this recipe. Recipes on FlowRecipesHub are written for business owners, not developers, and are tested before publishing — how recipes get made. Some ingredient links are affiliate links that cost you nothing — full disclosure.