

How to Create Monday.com Tasks from Slack with Zapier
Automatically creates a Monday.com task whenever someone reacts to a Slack message with a specific emoji, pulling the message text, sender, and channel into the task fields.
Steps and UI details are based on platform versions at time of writing — check each platform for the latest interface.
Best for
Teams that live in Slack and want to capture action items directly from conversations without switching to Monday.com to log tasks manually.
Not ideal for
Teams who need two-way sync — if a Monday.com task update should post back to Slack, add a second Zap or use Make's multi-step scenario instead.
Sync type
real-timeUse case type
routingReal-World Example
A 12-person product team uses a :ticket: emoji reaction in their #feedback channel to flag customer requests from Slack as Monday.com tasks. Before this Zap, the team lead manually re-typed messages into Monday.com every evening — requests sat untracked for up to 24 hours. Now a task appears in their 'Incoming Requests' board within 90 seconds of the reaction.
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
Before You Start
Make sure you have everything ready.
Field Mapping
Map these fields between your apps.
| Field | API Name | |
|---|---|---|
| Required | ||
| Item Name (Task Title) | ||
| Message Text (Full Body) | ||
| Message Timestamp | ||
| Monday.com Group | ||
4 optional fields▸ show
| Slack Channel | |
| Reacting User ID | |
| Message Permalink | |
| Status Column |
Step-by-Step Setup
zapier.com > My Zaps > Create Zap
Create a new Zap in Zapier
Log into zapier.com and click the orange 'Create Zap' button in the top-left sidebar. This opens the Zap editor. You'll see a two-panel view: the left side shows your step list, the right side shows the configuration for the selected step. Zapier starts you on the trigger step automatically.
- 1Log into zapier.com
- 2Click 'Create Zap' in the left sidebar
- 3The Zap editor opens with 'Trigger' selected in the step panel
Zap Editor > Trigger > App & Event
Set Slack as the trigger app
In the trigger step panel, click 'App & Event'. Type 'Slack' in the search box and select it from the list. You then choose the trigger event. Pick 'New Reaction Added' — this fires every time anyone adds an emoji reaction to any message in a channel you specify. This is the most reliable way to flag messages without requiring slash commands or bots.
- 1Click the 'App & Event' section in the trigger panel
- 2Type 'Slack' in the search bar
- 3Select 'Slack' from the results
- 4Under 'Trigger Event', select 'New Reaction Added'
- 5Click 'Continue'
Zap Editor > Trigger > Account
Connect your Slack account
Click 'Sign in to Slack'. A popup opens asking you to authorize Zapier. Make sure you're authorizing the correct Slack workspace — check the workspace name in the top-right corner of the popup. Zapier needs the 'reactions:read', 'channels:history', and 'users:read' scopes. These are granted automatically during the OAuth flow.
- 1Click 'Sign in to Slack'
- 2Verify the workspace name in the top-right of the OAuth popup
- 3Click 'Allow' to grant Zapier access
- 4Select your connected account from the dropdown once authorization completes
- 5Click 'Continue'
Zap Editor > Trigger > Set Up Trigger
Configure the Slack trigger settings
Set the 'Reaction' field to the specific emoji name you want to use as the trigger — for example, type 'ticket' (without colons) to trigger on :ticket: reactions. Then select the Slack channel to monitor from the 'Channel' dropdown. You can monitor a single channel or select 'Any Channel' to catch reactions workspace-wide. For most teams, a dedicated channel like #action-items or #feedback gives cleaner results.
- 1In the 'Reaction' field, type the emoji name without colons (e.g. 'ticket' or 'white_check_mark')
- 2Click the 'Channel' dropdown and select your target channel
- 3Leave 'User' blank unless you only want reactions from a specific person
- 4Click 'Continue'
Zap Editor > Trigger > Test Trigger
Test the Slack trigger
Click 'Test Trigger'. Zapier searches for a recent reaction matching your criteria. If it finds one, it loads sample data including the message text, the user who reacted, the channel ID, and the timestamp. If no matching reaction exists yet, go to Slack, react to any message in your target channel with your chosen emoji, then come back and click 'Test Trigger' again.
- 1Click 'Test Trigger'
- 2If no results appear, open Slack and add the trigger emoji to any message in the configured channel
- 3Return to Zapier and click 'Test Trigger' again
- 4Confirm the sample data shows 'Text', 'User', 'Channel', and 'Timestamp' fields
Zap Editor > + > Formatter by Zapier > Text > Truncate
Add a Formatter step to clean the message text
Before sending data to Monday.com, add a Zapier Formatter step to extract a clean task name from the Slack message. Click the '+' button below the trigger to add a step, then select 'Formatter by Zapier'. Choose 'Text' as the action, then 'Truncate' as the transform. Map the Slack 'Text' field as the input, and set the max length to 80 characters — Monday.com task names longer than that are hard to scan in board view.
- 1Click the '+' button below the Slack trigger step
- 2Search for 'Formatter by Zapier' and select it
- 3Under 'Action Event', choose 'Text'
- 4Under 'Transform', select 'Truncate'
- 5Map the Slack 'Text' field to the 'Input' field
- 6Set 'Max Length' to 80
- 7Click 'Continue' and then 'Test Action'
📬 New entry: {{1.name}}
Email: {{1.email}}
Details: {{1.description}}This Code by Zapier step resolves a real problem: Slack user IDs in the trigger payload are raw strings like U04KXYZ789, not names. Paste this into a 'Code by Zapier' step (JavaScript) inserted between the Slack trigger and the Monday.com action. It calls Slack's users.info API to resolve the user ID to a display name, which you can then map to a Monday.com Text column labeled 'Flagged By'.
JavaScript — Code Step// Code by Zapier — Resolve Slack User ID to Display Name▸ Show code
// Code by Zapier — Resolve Slack User ID to Display Name // Insert this step between the Slack trigger and Monday.com action. // Input: slackUserId (from Slack trigger 'User' field)
... expand to see full code
// Code by Zapier — Resolve Slack User ID to Display Name
// Insert this step between the Slack trigger and Monday.com action.
// Input: slackUserId (from Slack trigger 'User' field)
// Output: displayName (use this in Monday.com 'Flagged By' column)
const SLACK_BOT_TOKEN = 'xoxb-your-bot-token-here'; // Store in Zapier's secret store or hardcode for testing
const userId = inputData.slackUserId;
if (!userId) {
output = [{ displayName: 'Unknown User', userId: '' }];
} else {
const response = await fetch(
`https://slack.com/api/users.info?user=${encodeURIComponent(userId)}`,
{
method: 'GET',
headers: {
'Authorization': `Bearer ${SLACK_BOT_TOKEN}`,
'Content-Type': 'application/json'
}
}
);
const data = await response.json();
if (!data.ok) {
output = [{ displayName: 'Lookup Failed', userId: userId }];
} else {
const profile = data.user.profile;
const displayName = profile.display_name || profile.real_name || data.user.name;
output = [{ displayName: displayName, userId: userId }];
}
}channel: {{channel}}
ts: {{ts}}
Zap Editor > + > Monday.com > Create Item
Add Monday.com as the action app
Click '+' below the Formatter step to add the final action. Search for 'Monday.com' and select it. Under 'Action Event', choose 'Create Item'. This creates a new task (called an 'item' in Monday.com's terminology) on a board you specify. Click 'Continue' and then connect your Monday.com account via the OAuth popup.
- 1Click the '+' button below the Formatter step
- 2Search for 'Monday.com' and select it
- 3Under 'Action Event', select 'Create Item'
- 4Click 'Continue'
- 5Click 'Sign in to Monday.com' and complete the OAuth flow
- 6Select your connected account and click 'Continue'
Zap Editor > Action > Set Up Action
Configure the Monday.com action fields
Select the Board where tasks should land from the 'Board' dropdown. Then select the Group within that board (e.g. 'Incoming Requests' or 'This Week'). Map the 'Item Name' field to the Formatter output from Step 6 — this becomes the task title. In the 'Column Values' section, map additional fields: set the 'Text' or 'Long Text' column to the full original Slack message, and set the 'Date' column to the Slack message timestamp.
- 1Select your target board from the 'Board' dropdown
- 2Select the target group from the 'Group' dropdown
- 3Map 'Item Name' to the Formatter output (truncated message text)
- 4Map a 'Long Text' column to the Slack 'Text' field for full context
- 5Map a 'Date' column to the Slack 'Timestamp' field
- 6Map a 'Text' column to the Slack 'Channel' field for reference
- 7Click 'Continue'
Zap Editor > Action > Test Action
Test the Monday.com action
Click 'Test Action'. Zapier sends the sample Slack data to Monday.com and attempts to create a real item. Log into Monday.com and navigate to your target board to confirm the item appeared. Check that the item name is readable, the long text column has the full message, and the date column shows the correct date.
- 1Click 'Test Action'
- 2Wait 5-10 seconds for the API call to complete
- 3Open Monday.com in a new tab and navigate to your target board
- 4Confirm the new item appeared in the correct group with the correct fields populated
Zap Editor > + > Slack > Send Channel Message
Add a Slack confirmation message (optional but recommended)
Add one more action step after Monday.com: select Slack and choose 'Send Channel Message'. Map the channel to the same channel the original reaction came from. In the message body, write something like: 'Task created in Monday: [Monday item URL]'. Monday.com's 'Create Item' response includes an item ID — use it to construct the board URL. This closes the loop so the person who reacted knows the task was logged.
- 1Click '+' below the Monday.com step
- 2Select 'Slack' and choose 'Send Channel Message'
- 3Set 'Channel' to the Slack channel from the trigger
- 4In 'Message Text', type a confirmation string and embed the Monday.com item ID
- 5Click 'Continue' and test the action
📬 New entry: {{1.name}}
Email: {{1.email}}
Details: {{1.description}}Zap Editor > Zap Name > Publish
Name and publish the Zap
Click the Zap name field at the top of the editor (it defaults to something like 'My Zap') and rename it to something descriptive, like 'Slack :ticket: → Monday.com Incoming Requests'. Click 'Publish' in the top-right corner. Zapier will confirm the Zap is live. Do a final end-to-end test: go to Slack, react to a real message with your emoji, and confirm the Monday.com task and Slack confirmation both appear within 2 minutes.
- 1Click the Zap name at the top of the editor
- 2Rename it to something descriptive
- 3Click 'Publish' in the top-right corner
- 4Confirm the 'Your Zap is on' confirmation screen appears
- 5Run a live end-to-end test in Slack
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 Zapier for this if your team has no developer resources and needs the workflow live today. The guided Zap builder handles the Slack webhook registration automatically — you don't touch api.slack.com at all. The emoji-to-task pattern also maps cleanly onto Zapier's 'New Reaction Added' trigger, which has worked reliably since 2019 and rarely breaks. If your team needs to route tasks to five different boards based on channel, keyword, or user, switch to Make — Zapier's Paths feature gets expensive and complicated fast once you have more than two branches.
Here's the real cost math. This workflow uses 3 tasks per Zap run (Slack trigger + Formatter + Monday.com action) plus 1 optional task for the Slack confirmation. At 100 flagged messages per month, you're burning 300–400 Zapier tasks. Zapier's Starter plan gives you 750 tasks/month for $19.99/month — you have room. At 300 flagged messages/month, you're at 900–1,200 tasks, which pushes you to the Professional plan at $49/month. Make's Core plan handles the same workflow for $9/month with 10,000 operations — roughly 4x cheaper at high volume.
Make handles multi-branch routing better than Zapier for this use case — you can filter by channel, check emoji type, and route to different boards in a single scenario without paying per-path. n8n is the right call if you want to self-host and store a permanent Slack user ID → Monday.com user ID lookup table in a database node. Power Automate works well if your organization is Microsoft-first and you want to log tasks to Planner instead of Monday.com — but its Slack connector is weaker and requires more manual configuration. Pipedream lets you write the full Slack user lookup and Monday.com item creation in a single async function with cleaner error handling. Zapier still wins here for non-technical teams because the debugging UI — Task History with full input/output per step — makes troubleshooting accessible to anyone on the team without a developer.
Three things you'll hit after going live. First, Slack messages with only images or file attachments have an empty 'Text' field — your Monday.com item gets a blank name. Add a Filter step on day one. Second, if your Slack workspace has Emoji reactions turned off by admins (it happens in regulated industries), the entire trigger approach fails silently. Confirm emoji reactions are enabled in Slack's admin settings before building. Third, Monday.com's API rate limit is 60 requests per minute per token. If your team has a burst of 20+ reactions in under a minute — say, during a busy post-launch incident — some Zap runs will fail with a 429 error. Zapier retries automatically, but tasks can arrive 10–15 minutes late during those bursts.
Ideas for what to build next
- →Route tasks to different Monday.com boards by channel — Add a Paths step in Zapier after the Slack trigger to send reactions from #bugs to a 'Bug Tracker' board and reactions from #feedback to a 'Product Requests' board. Each path gets its own Monday.com action with a different board ID.
- →Add a Monday.com status change → Slack notification reverse loop — Build a second Zap that triggers when a Monday.com item's status changes to 'Done' and posts a completion message back to the original Slack channel. This closes the feedback loop without requiring people to check Monday.com.
- →Capture slash command task creation as an alternative trigger — Add a second Zap using the Slack 'New Slash Command' trigger so team members can type /task [description] to create a Monday.com item with a custom name instead of relying on message text. Both Zaps can feed the same Monday.com 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