Beginner~12 min setupCommunication & Project ManagementVerified April 2026
Slack logo
Monday.com logo

How to Create Monday.com Tasks from Slack with Make

React to a Slack message with an emoji or type a command, and Make instantly creates a Monday.com task with the message text, sender name, channel, and a link back to the original message.

Steps and UI details are based on platform versions at time of writing — check each platform for the latest interface.

Best for

Teams who triage action items inside Slack and need those items tracked in Monday.com without leaving the conversation.

Not ideal for

Teams that create tasks in bulk or need two-way sync — use a native Monday.com Slack app integration or a scheduled Make scenario for those cases.

Sync type

real-time

Use case type

routing

Real-World Example

💡

A 12-person product team at a B2B SaaS company uses this to capture action items from their #product-feedback Slack channel. Anyone reacts with a 📋 emoji and Make fires within 30 seconds, creating a task on their 'Backlog' board with the full message text, the sender's name, and a permalink back to the Slack thread. Before this, a team lead copy-pasted tasks manually 8-10 times per day and items regularly fell through the gaps over weekends.

What Will This Cost?

Drag the slider to your expected monthly volume.

/mo
505005K50K

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

Skip the setup

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.

Make account with at least the Core plan (free tier supports this but limits to 1,000 operations/month — budget accordingly)
Slack workspace where you have Admin or Owner permissions to install apps and create Event Subscriptions
Monday.com account with permission to create items on the target board — 'Member' role minimum, 'Admin' role if the board is private
Slack bot token scopes approved during OAuth: reactions:read, channels:history, users:read, chat:write — these are granted automatically via Make's OAuth flow
Monday.com API token with write access to your target board — generated automatically during Make's OAuth connection to Monday.com

Field Mapping

Map these fields between your apps.

FieldAPI Name
Required
Task Name (Item Name)
Channel ID
Message Timestamp
Slack Permalink (URL column)
5 optional fields▸ show
Flagged By (Text or People column)
Status column
Notes / Long Text column
Channel Name (Text column)
Created Date (Date column)

Step-by-Step Setup

1

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'll land on the visual canvas with a single empty module in the center. This is where you'll add the Slack trigger. Give the scenario a name immediately — click the default name at the top left and type something like 'Slack Reaction → Monday Task' so you can find it later.

  1. 1Log into make.com
  2. 2Click 'Create a new scenario' (top right, blue button)
  3. 3Click the pencil icon next to the default scenario name at top left
  4. 4Type a clear name like 'Slack Emoji → Monday.com Task' and press Enter
What you should see: You should see a blank canvas with one empty circular module in the center and your scenario name at the top left.
2

Canvas > Empty module > Search 'Slack' > Watch Reactions

Add the Slack trigger: Watch Reactions

Click the empty module on the canvas to open the app search panel. Search for 'Slack' and select it. From the trigger list, choose 'Watch Reactions' — this fires every time any user adds an emoji reaction to a message in a channel you specify. This is the cleanest trigger for emoji-based task creation because it gives you the reacted message's text, the reactor's name, the channel ID, and the message timestamp all in one payload.

  1. 1Click the empty module on the canvas
  2. 2Type 'Slack' in the app search box
  3. 3Select 'Slack' from the results
  4. 4Click 'Watch Reactions' from the trigger list
What you should see: A Slack module configuration panel opens on the right side of the screen, showing fields for Connection, Trigger type, Channel, and Reaction name.
Common mistake — The 'Watch Reactions' trigger uses a webhook under the hood — Make will generate a Slack Event Subscription URL. Do not close this panel before copying that URL or you'll need to re-open the module to get it.
Make
+
click +
search apps
Slack
SL
Slack
Add the Slack trigger: Watch…
Slack
SL
module added
3

Slack module panel > Connection > Add > OAuth pop-up

Connect your Slack workspace

In the Slack module panel, click 'Add' next to the Connection field. Make will open an OAuth pop-up asking you to sign into your Slack workspace and grant permissions. Sign in with an account that has access to the channels you want to monitor. Make's Slack app needs the 'reactions:read' and 'channels:history' scopes at minimum — these are granted automatically during the OAuth flow.

  1. 1Click 'Add' next to the Connection field
  2. 2In the pop-up, select your Slack workspace from the dropdown
  3. 3Click 'Allow' to grant Make the required permissions
  4. 4Wait for the pop-up to close and confirm the connection name appears in the field
What you should see: The Connection field now shows your workspace name (e.g. 'Acme Corp') with a green dot. The pop-up closes automatically.
Common mistake — If your Slack workspace is on the free plan, the 'reactions:read' scope may not surface messages older than 90 days in history. This won't affect real-time triggers, but test data from old messages won't load during setup.
Make settings
Connection
Choose a connection…Add
click Add
Slack
Log in to authorize
Authorize Make
popup window
Connected
green checkmark
4

Slack module panel > Channel > Reaction Name

Configure the trigger: channel and emoji filter

Set the Channel field to the specific Slack channel you want to monitor — type the channel name or select it from the dropdown (e.g. '#product-feedback'). In the Reaction Name field, type the emoji name without colons: for 📋 type 'clipboard', for ✅ type 'white_check_mark'. This filters the trigger so it only fires for that specific reaction, not every emoji used in the channel. Leave the Limit field at 1 — you're processing one reaction event at a time.

  1. 1Click the Channel dropdown and select your target channel (e.g. '#product-feedback')
  2. 2Click the Reaction Name field and type the emoji name (e.g. 'clipboard')
  3. 3Set Limit to 1
  4. 4Click 'OK' to save the module configuration
What you should see: The Slack module on the canvas now shows 'Watch Reactions' with a clock icon indicating it's an instant trigger. A webhook URL has been registered with your Slack workspace.
Common mistake — Slack emoji names are case-sensitive and use underscores, not spaces. '📋' is 'clipboard', not 'Clipboard' or 'clip_board'. Get the exact name by opening Slack's emoji picker and hovering over the emoji.
Slack
SL
trigger
filter
Condition
matches criteria?
yes — passes through
no — skipped
Monday.com
MO
notified
5

Canvas > Hover trigger module right edge > + > Slack > Get a Message

Fetch the full message text

The 'Watch Reactions' trigger gives you the message timestamp and channel but not always the full message text directly — especially for older messages or threaded replies. Add a second Slack module: 'Get a Message'. Connect it to the first module by hovering over the right edge of the Slack trigger module and clicking the '+' that appears. In 'Get a Message', set Channel to the channel ID from the trigger output (map it using the variable picker) and set Message ID to the Timestamp field from the trigger output.

  1. 1Hover over the right edge of the Slack trigger module until a '+' circle appears
  2. 2Click '+' to add a new module
  3. 3Search for 'Slack' and select 'Get a Message'
  4. 4Map Channel to the Channel ID variable from the trigger output
  5. 5Map Message ID to the Item Timestamp variable from the trigger output
  6. 6Click 'OK'
What you should see: A second Slack module labeled 'Get a Message' appears on the canvas connected to the trigger. The variable mapping shows the channel ID and timestamp wired in from the previous step.
Common mistake — Map 'Item Timestamp' (the timestamp of the message that was reacted to), NOT 'Event Timestamp' (when the reaction was added). Using the wrong one returns the wrong message or a 'message_not_found' error.
Message template
📬 New entry: {{1.name}}
Email: {{1.email}}
Details: {{1.description}}
6

Canvas > Click connector line between modules > Wrench icon > Set up a filter

Add a filter to check the exact emoji

Between the trigger and the 'Get a Message' module, add a filter so the scenario only continues when the reaction matches your chosen emoji. Click the line connecting the two modules — a small wrench icon appears. Click it and select 'Set up a filter'. Set the condition to: Reaction Name (from trigger output) Equal to 'clipboard' (or whichever emoji you configured). Without this, a race condition can occur if multiple emoji types are used in the channel and you add more reaction triggers later.

  1. 1Click the connecting line between the Slack trigger and the 'Get a Message' module
  2. 2Click the wrench icon that appears on the line
  3. 3Select 'Set up a filter'
  4. 4Set Label to 'Correct emoji?'
  5. 5Set Condition: Reaction Name > Text operators > Equal to > 'clipboard'
  6. 6Click 'OK'
What you should see: The connector line now shows a small funnel icon indicating a filter is active. The filter label 'Correct emoji?' appears on hover.
Common mistake — Filters are the most common place setups break. Double-check the field name and value exactly match what your app sends — a single capital letter difference will block everything.
7

Canvas > + after 'Get a Message' module > Slack > Get a User

Resolve the Slack user ID to a display name

The trigger returns the reactor's Slack user ID (e.g. 'U04ABC123'), not their name. Add a third Slack module: 'Get a User'. Map the User field to the 'User ID' from the trigger output. This gives you the user's real_name and display_name fields, which you'll use as the task assignee name or description context in Monday.com. Skipping this step means your Monday tasks will show cryptic IDs instead of names.

  1. 1Click '+' after the 'Get a Message' module
  2. 2Search 'Slack' and select 'Get a User'
  3. 3Map the User field to 'User ID' from the trigger output
  4. 4Click 'OK'
What you should see: A third Slack module labeled 'Get a User' appears on the canvas. In the output preview, you'll see fields like real_name, display_name, and email populated from your test user.

Paste this formula into the Monday.com module's Item Name field mapping to strip Slack formatting markers (bold asterisks, backticks, and emoji codes) from the message text before it becomes a task title. In Make, open the Monday.com 'Create an Item' module, click the Item Name field, switch to the formula editor (f(x) icon), and replace the plain variable reference with this expression.

JavaScript — Custom Function// Make formula for Item Name field in Monday.com module
▸ Show code
// Make formula for Item Name field in Monday.com module
// Cleans Slack message text before using it as a task title
// Paste this in the Item Name field using the formula editor (f(x) icon)

... expand to see full code

// Make formula for Item Name field in Monday.com module
// Cleans Slack message text before using it as a task title
// Paste this in the Item Name field using the formula editor (f(x) icon)

substring(
  replace(
    replace(
      replace(
        replace(
          replace(
            {{2.text}};
            "*"; ""
          );
          "`"; ""
        );
        "~"; ""
      );
      "_"; ""
    );
    // Remove Slack user mention tokens like <@U04ABC123>
    // Make doesn't support regex, so strip the angle bracket patterns manually
    "<@"; "@"
  );
  0;
  255
)

// Result: clean plain text, max 255 chars, safe for Monday.com item names
// Monday.com throws a validation error if item names exceed 255 characters
8

Canvas > + > Monday.com > Create an Item

Connect Monday.com and configure the board

Click '+' after the 'Get a User' module and search for 'Monday.com'. Select the 'Create an Item' action. Click 'Add' next to Connection and authenticate via Monday.com's OAuth — you'll need to approve access to your boards. Once connected, select your target Board from the dropdown (e.g. 'Product Backlog') and the Group within that board where new tasks should land (e.g. 'This Week'). The Item Name field is the task title — map it to the message text from the 'Get a Message' output.

  1. 1Click '+' after the 'Get a User' module
  2. 2Search 'Monday.com' and select 'Create an Item'
  3. 3Click 'Add' next to Connection and complete the Monday.com OAuth flow
  4. 4Select your target Board from the dropdown
  5. 5Select the target Group within that board
  6. 6Map Item Name to the Text field from the 'Get a Message' output
What you should see: The Monday.com module shows your board name and group name selected, with the Item Name field populated with a variable reference to the Slack message text.
Common mistake — Monday.com's API rate limit is 60 requests per minute per account, shared across all Make scenarios and any other integrations running on the same Monday.com account. If your team is heavy Slack users and reacts frequently, you can hit this limit during busy periods.
9

Monday.com module > Column Values > Add item

Map column values to Monday.com task fields

Click 'Add item' under Column Values to populate additional fields on the Monday.com task. You'll map Slack data to Monday columns like Status, Text/Notes, and a URL column for the Slack permalink. For the Slack permalink, construct it in the mapping field using Make's string concatenation: combine your workspace URL with the channel ID and message timestamp. The format is 'https://yourworkspace.slack.com/archives/' + Channel ID + '/p' + Timestamp (with the dot removed). Map the reactor's display name to a People or Text column if you want to track who flagged the message.

  1. 1Click 'Add item' under Column Values in the Monday.com module
  2. 2Select your 'Notes' or 'Text' column and map it to the message text
  3. 3Add another item: select your 'URL' column, set Label to 'Slack Message', set URL to the constructed permalink
  4. 4Add another item: select your 'Status' column and set it to 'To Do' (or your equivalent)
  5. 5Add another item: select a 'Text' column for 'Flagged by' and map it to the user's display_name from the 'Get a User' output
  6. 6Click 'OK'
What you should see: The Monday.com module now shows 4-5 column value mappings. The preview panel on the right shows the constructed Slack permalink as a full URL like 'https://acme.slack.com/archives/C04XYZ/p1698765432123456'.
Common mistake — Monday.com's timestamp format for permalinks requires removing the decimal point from Slack's timestamp. Slack returns '1698765432.123456' — your permalink needs 'p1698765432123456'. Use Make's replace() formula: replace({{5.ts}}; "."; "") in the URL field.
Slack fields
text
user
channel
ts
thread_ts
available as variables:
1.props.text
1.props.user
1.props.channel
1.props.ts
1.props.thread_ts
10

Canvas > + after Monday.com module > Slack > Create a Message

Send a Slack confirmation back to the channel

Add a final Slack module: 'Create a Message'. Set the Channel to the original channel ID from the trigger output. In the Message Text field, write a confirmation like: '✅ Task created: ' + the Monday.com item URL from the previous module's output. This closes the loop for the person who added the reaction — they see confirmation in the same thread without switching apps. Map the Thread Timestamp field to the original message timestamp to post this as a thread reply rather than a new message in the channel.

  1. 1Click '+' after the Monday.com 'Create an Item' module
  2. 2Search 'Slack' and select 'Create a Message'
  3. 3Map Channel to the Channel ID from the trigger output
  4. 4Set Message Text to '✅ Task created in Monday.com: ' + map the item URL from Monday.com output
  5. 5Map Thread Timestamp to the Item Timestamp from the trigger output
  6. 6Click 'OK'
What you should see: A Slack 'Create a Message' module appears at the end of the chain. The message text shows a mix of static text and variable references. The Thread Timestamp field is populated so replies land in-thread.
Common mistake — Map fields using the variable picker — don't type field names manually. Hand-typed variable names often have invisible spacing errors that produce blank output.
message template
🔔 New Record: {{text}} {{user}}
channel: {{channel}}
ts: {{ts}}
#sales
🔔 New Record: Jane Smith
Company: Acme Corp
11

Canvas > Run once (bottom toolbar) > Toggle scenario ON

Test the scenario end-to-end and activate

Click 'Run once' in the bottom toolbar to put the scenario in listening mode. Go to Slack, find a message in your configured channel, and react with your emoji (e.g. 📋). Return to Make within 60 seconds — you should see green checkmarks on each module with bubble counts showing data flowing through. Check Monday.com to confirm the task appeared in the right board and group with the correct field values. Once confirmed, click the toggle at the bottom left of the canvas to switch from OFF to ON. Set the scenario scheduling to 'Immediately as data arrives' to keep the webhook active.

  1. 1Click 'Run once' in the bottom toolbar
  2. 2Switch to Slack and react to any message in the configured channel with your emoji
  3. 3Return to Make and wait for the green checkmarks to appear on each module
  4. 4Click each module's bubble to inspect the data at that stage
  5. 5Open Monday.com and verify the task was created with the correct fields
  6. 6Click the ON/OFF toggle at the bottom left of the canvas to activate the scenario
What you should see: Every module shows a green checkmark with a '1' bubble. Monday.com has a new task with the message text, Slack permalink, and flagged-by name. The Slack channel shows a thread reply confirming task creation.
Make
▶ Run once
executed
Slack
Monday.com
Monday.com
🔔 notification
received

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

VerdictWhy Make for this workflow

Use Make for this if your team wants conditional logic around the trigger — for example, only creating tasks when specific users react, or routing to different Monday boards based on which Slack channel the message came from. Make's visual router module handles these branches cleanly without writing code. You'd also pick Make if you need the 'Get a User' lookup step to resolve user IDs to names before creating the task — Make chains modules like this naturally. The one scenario where you'd skip Make: if your team already has Monday.com's native Slack integration enabled and just needs basic emoji-to-task creation with no customization. The native integration requires zero setup time and no Make account.

Cost

Real math on cost: each scenario run uses 5 operations — Watch Reactions (1) + Get a Message (1) + Get a User (1) + Create an Item (1) + Create a Message (1). Make's free tier gives you 1,000 operations/month. That's 200 task creations per month before you hit the limit. Make's Core plan at $9/month gives you 10,000 operations — enough for 2,000 task creations per month. Zapier's equivalent on a free plan allows 100 tasks/month total and charges $19.99/month for 750 Zap runs. For this specific workflow volume, Make is cheaper at scale by roughly 55%.

Tradeoffs

Zapier has a native 'New Reaction Added' trigger for Slack that's simpler to configure — no manual webhook registration, and the UI walks you through it in 4 clicks. n8n handles the user ID resolution more elegantly with a built-in loop node that can batch-resolve multiple user IDs in one pass, useful if you're ever processing reactions in bulk. Power Automate has a Slack connector but it doesn't support the 'Watch Reactions' trigger — you'd have to use a workaround via webhooks, which adds complexity that negates any Microsoft ecosystem advantage. Pipedream's Slack source for reaction events is one of the best pre-built triggers available, with immediate event delivery and a clean $event object. Make beats all of them on the visual branching logic — if you need multi-board routing or emoji-specific conditions, Make's router is the fastest way to build it without code.

Three things you'll hit after going live. First, the Slack timestamp decimal problem — Slack returns timestamps like '1698765432.123456' but Monday.com permalinks need 'p1698765432123456'. Miss the replace() call and every permalink in your Monday tasks is broken. Second, the Slack OAuth connection silently breaks if a Slack admin revokes app permissions during a workspace security audit — Make won't alert you unless you've enabled error notifications, and you won't notice until someone reports tasks aren't creating. Third, Monday.com's People column doesn't accept free-text names — it only accepts Monday.com user IDs or emails. If you're trying to map 'Flagged By' to a People column and seeing blank values, switch that column to a plain Text column instead or add an extra lookup step to resolve the Slack email to a Monday.com user ID via Monday.com's 'Get Users' API call.

Ideas for what to build next

  • Add a slash command trigger as an alternativeSet up a Slack slash command like '/task [description]' as a second trigger path using a Make webhook module. This lets users create tasks with custom titles instead of using the raw message text, and they can specify assignees inline.
  • Sync Monday.com status back to SlackBuild a second Make scenario that watches for Monday.com status column changes and posts an update in the original Slack thread when a task moves to 'Done'. This closes the feedback loop for whoever flagged the message.
  • Route tasks to different boards by channelAdd a Make router after the 'Get a Message' module with branches for each Slack channel — reactions in #engineering go to the Engineering board, reactions in #design go to the Design board. Each branch has its own Monday.com 'Create an Item' module targeting a different board.

Related guides

Was this guide helpful?
Slack + Monday.com overviewMake profile →