

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-timeUse case type
routingReal-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.
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 | ||
| 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
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.
- 1Log into make.com
- 2Click 'Create a new scenario' (top right, blue button)
- 3Click the pencil icon next to the default scenario name at top left
- 4Type a clear name like 'Slack Emoji → Monday.com Task' and press Enter
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.
- 1Click the empty module on the canvas
- 2Type 'Slack' in the app search box
- 3Select 'Slack' from the results
- 4Click 'Watch Reactions' from the trigger list
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.
- 1Click 'Add' next to the Connection field
- 2In the pop-up, select your Slack workspace from the dropdown
- 3Click 'Allow' to grant Make the required permissions
- 4Wait for the pop-up to close and confirm the connection name appears in the field
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.
- 1Click the Channel dropdown and select your target channel (e.g. '#product-feedback')
- 2Click the Reaction Name field and type the emoji name (e.g. 'clipboard')
- 3Set Limit to 1
- 4Click 'OK' to save the module configuration
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.
- 1Hover over the right edge of the Slack trigger module until a '+' circle appears
- 2Click '+' to add a new module
- 3Search for 'Slack' and select 'Get a Message'
- 4Map Channel to the Channel ID variable from the trigger output
- 5Map Message ID to the Item Timestamp variable from the trigger output
- 6Click 'OK'
📬 New entry: {{1.name}}
Email: {{1.email}}
Details: {{1.description}}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.
- 1Click the connecting line between the Slack trigger and the 'Get a Message' module
- 2Click the wrench icon that appears on the line
- 3Select 'Set up a filter'
- 4Set Label to 'Correct emoji?'
- 5Set Condition: Reaction Name > Text operators > Equal to > 'clipboard'
- 6Click 'OK'
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.
- 1Click '+' after the 'Get a Message' module
- 2Search 'Slack' and select 'Get a User'
- 3Map the User field to 'User ID' from the trigger output
- 4Click 'OK'
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 charactersCanvas > + > 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.
- 1Click '+' after the 'Get a User' module
- 2Search 'Monday.com' and select 'Create an Item'
- 3Click 'Add' next to Connection and complete the Monday.com OAuth flow
- 4Select your target Board from the dropdown
- 5Select the target Group within that board
- 6Map Item Name to the Text field from the 'Get a Message' output
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.
- 1Click 'Add item' under Column Values in the Monday.com module
- 2Select your 'Notes' or 'Text' column and map it to the message text
- 3Add another item: select your 'URL' column, set Label to 'Slack Message', set URL to the constructed permalink
- 4Add another item: select your 'Status' column and set it to 'To Do' (or your equivalent)
- 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
- 6Click 'OK'
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.
- 1Click '+' after the Monday.com 'Create an Item' module
- 2Search 'Slack' and select 'Create a Message'
- 3Map Channel to the Channel ID from the trigger output
- 4Set Message Text to '✅ Task created in Monday.com: ' + map the item URL from Monday.com output
- 5Map Thread Timestamp to the Item Timestamp from the trigger output
- 6Click 'OK'
channel: {{channel}}
ts: {{ts}}
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.
- 1Click 'Run once' in the bottom toolbar
- 2Switch to Slack and react to any message in the configured channel with your emoji
- 3Return to Make and wait for the green checkmarks to appear on each module
- 4Click each module's bubble to inspect the data at that stage
- 5Open Monday.com and verify the task was created with the correct fields
- 6Click the ON/OFF toggle at the bottom left of the canvas to activate the scenario
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 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.
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%.
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 alternative — Set 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 Slack — Build 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 channel — Add 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
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
How to Create Notion Tasks from Slack with n8n
~20 min setup
How to Create Notion Tasks from Slack Messages with Zapier
~8 min setup
How to Create Notion Tasks from Slack Messages with Make
~12 min setup
How to Share Notion Meeting Notes to Slack with Pipedream
~15 min setup