

How to Create Wrike Tasks from Slack Messages with Make
Watches a Slack channel for messages containing a specific emoji or keyword, then creates a Wrike task with the parsed title, assignee, and due date — no manual copy-paste required.
Steps and UI details are based on platform versions at time of writing — check each platform for the latest interface.
Best for
Teams that capture action items in Slack but lose track of them before they make it into Wrike
Not ideal for
Teams that need two-way sync so Wrike task updates post back to Slack — use a separate scenario for that
Sync type
real-timeUse case type
routingReal-World Example
A 12-person product team at a B2B SaaS company uses this to convert :task: emoji-tagged Slack messages into Wrike tasks during sprint planning discussions. Before this, the team lead manually copied action items from #product-planning into Wrike every morning — a 20-minute daily ritual that still left 3-4 tasks unlogged per week. Now a message like ':task: @jordan — update onboarding copy — due Friday' creates a task in under 90 seconds.
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 Title | title | |
| Task Status | status | |
| Parent Folder / Project | folderId | |
5 optional fields▸ show
| Assigned User ID | responsibles |
| Due Date | dates.due |
| Description | description |
| Source Message Link | description |
| Task Duration | dates.duration |
Step-by-Step Setup
Make Dashboard > Scenarios > + Create a new scenario
Create a new scenario in Make
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 an empty canvas with a large circle in the center — this is where your trigger module goes. Name your scenario something like 'Slack → Wrike Task Creator' using the pencil icon at the top left so it's easy to find later.
- 1Go to make.com and log in
- 2Click the blue 'Create a new scenario' button in the top right
- 3Click the pencil icon at the top left and name the scenario 'Slack → Wrike Task Creator'
- 4Click the large circle in the canvas center to open the module picker
Canvas > Module Picker > Slack > Watch Messages
Add the Slack 'Watch Messages' trigger
In the module search panel, type 'Slack' and select the Slack app. From the list of triggers, choose 'Watch Messages' — this uses a webhook so it fires the moment a message is posted, not on a polling interval. You'll be prompted to either connect an existing Slack account or create a new connection. Click 'Add' to create a new connection and authorize Make to access your Slack workspace.
- 1Type 'Slack' in the module search bar
- 2Click the Slack app icon
- 3Select 'Watch Messages' from the triggers list
- 4Click 'Add' next to the Connection field
- 5In the popup, sign into Slack and click 'Allow' to grant Make access
📬 New entry: {{1.name}}
Email: {{1.email}}
Details: {{1.description}}channel: {{channel}}
ts: {{ts}}
Slack > Watch Messages > Channel / Trigger Word
Configure the trigger: channel, filter, and trigger word
In the Watch Messages module config, set the Channel field to the specific Slack channel you want to monitor (e.g., #team-tasks or #general). Set 'Trigger' to 'New Message Posted to Channel'. In the 'Trigger Word or Phrase' field, enter the keyword or emoji your team will use to flag action items — a colon-wrapped emoji like ':task:' works well because it's unambiguous. Leave 'Bot Messages' set to 'No' so the scenario doesn't trigger on its own confirmation messages later.
- 1Click the Channel dropdown and select your target channel (e.g., #team-tasks)
- 2Set Trigger to 'New Message Posted to Channel'
- 3Type ':task:' (or your chosen keyword) in the 'Trigger Word or Phrase' field
- 4Set 'Include Bot Messages' to 'No'
- 5Click OK to save the module
Canvas > + > Text Parser > Match Pattern
Add a Text Parser to extract task title, assignee, and due date
Click the + icon to the right of the Slack module to add the next module. Search for 'Text Parser' and select 'Match Pattern'. This module uses regex to pull structured data out of the free-form Slack message. Your team messages will follow a loose convention like ':task: @jordan — update onboarding copy — due Friday', and this step extracts the three key pieces. Set the Pattern field to the regex shown in the pro tip below, and set Text to the Slack message body variable ({{1.text}}).
- 1Click the + icon to the right of the Slack trigger module
- 2Search 'Text Parser' and select it
- 3Choose 'Match Pattern'
- 4In the Pattern field, enter: :task:\s+@?(\S+)\s+[—–-]+\s+(.+?)\s+[—–-]+\s+due\s+(.+)
- 5Set the Text field to {{1.text}} using the variable picker
- 6Set Global Match to 'No' (you want the first match only)
Canvas > + > Wrike > List Users
Add a Wrike 'List Users' module to resolve assignee name to ID
Wrike's Create Task API requires a user ID for assignment — not a display name or Slack handle. Add a Wrike module next and choose 'List Users' to fetch all workspace members. This gives you a data bundle to search against in the next step. Connect your Wrike account when prompted by clicking 'Add' and completing the OAuth flow. You only need to run this once per scenario execution, and Make caches the bundle for the filter step.
- 1Click the + icon after the Text Parser module
- 2Search 'Wrike' and select it
- 3Choose 'List Users'
- 4Click 'Add' next to Connection and authorize your Wrike account via OAuth
- 5Leave the optional filters blank to return all users
- 6Click OK
Paste this formula into Make's Set Variable module (step 7) as the 'Value' field to handle both natural-language day names (Friday, Monday) and ISO date strings (2025-06-20) in a single expression, without branching your scenario into two routes.
JavaScript — Custom Function{{if(▸ Show code
{{if(
contains({{2.captures[].value[3]}}; '-');
formatDate(... expand to see full code
{{if(
contains({{2.captures[].value[3]}}; '-');
formatDate(
parseDate({{2.captures[].value[3]}}; 'YYYY-MM-DD');
'YYYY-MM-DD'
);
formatDate(
parseDate(
if(
contains(lower({{2.captures[].value[3]}}); 'next ');
substring({{2.captures[].value[3]}}; 5);
{{2.captures[].value[3]}}
);
'dddd';
'en'
);
'YYYY-MM-DD'
)
)}}Canvas > + > Flow Control > Iterator / Filters panel
Add an Array Aggregator or Iterator to find the matching user ID
After List Users, add a 'Tools > Array Aggregator' or use a 'Flow Control > Iterator' followed by a filter. The cleaner approach: add an Iterator on the Wrike users array ({{3.users}}), then immediately add a Filter (the hexagonal icon between modules) set to match where {{item.firstName}} + ' ' + {{item.lastName}} contains the parsed assignee from step 4 ({{2.captures[].value[1]}}). This narrows the iterator output to the single matching user so you can grab their Wrike ID in the next module.
- 1Click + after the Wrike List Users module
- 2Search 'Flow Control' and select 'Iterator'
- 3Set the Array field to {{3.users}}
- 4Click OK, then click the wrench icon on the route between Iterator and next module
- 5Click 'Set up a filter'
- 6Set condition: {{item.firstName}} + ' ' + {{item.lastName}} — Contains — {{2.captures[].value[1]}}
- 7Click OK to save the filter
Canvas > + > Tools > Set Variable
Parse the due date string into a valid date format
Wrike expects dates in YYYY-MM-DD format, but your Slack message will contain natural language like 'Friday' or 'next Tuesday'. Add a 'Tools > Set Variable' module and use Make's parseDate() and formatDate() functions to convert the string. Set Variable Name to 'due_date_formatted' and Value to: formatDate(parseDate({{2.captures[].value[3]}}; 'dddd'; 'en'); 'YYYY-MM-DD'). If your team uses absolute dates like '2025-03-14', you can skip this and map the raw string directly.
- 1Click + after the Iterator/filter step
- 2Search 'Tools' and select 'Set Variable'
- 3Set Variable Name to: due_date_formatted
- 4Set Variable Value to: formatDate(parseDate({{2.captures[].value[3]}}; 'dddd'; 'en'); 'YYYY-MM-DD')
- 5Click OK
📬 New entry: {{1.name}}
Email: {{1.email}}
Details: {{1.description}}Canvas > + > Wrike > Create Task
Add the Wrike 'Create Task' module
Add a new Wrike module and choose 'Create Task'. This is where you map all the parsed fields into a real Wrike task. Your Wrike connection is already set up from step 5. Set the Folder/Project field to the target Wrike project where tasks should land. Map Title to the parsed task name from the Text Parser ({{2.captures[].value[2]}}), Assigned Users to the matched user's Wrike ID ({{item.id}} from the iterator), and Due Date to the formatted date variable from step 7 ({{7.due_date_formatted}}).
- 1Click + after the Set Variable module
- 2Search 'Wrike' and select 'Create Task'
- 3Set Folder/Project to your target Wrike project using the dropdown
- 4Map Title to {{2.captures[].value[2]}}
- 5Map Assigned Users to {{item.id}}
- 6Map Due Date to {{7.due_date_formatted}}
- 7Set Status to 'Active'
- 8Click OK
Canvas > + > Slack > Send a Message
Post a Slack confirmation message back to the channel
Add one more Slack module — 'Send a Message' — to post a confirmation in the same channel so the team knows the task was created. Set Channel to the same channel ID from step 3. Set the Message text to something like: 'Task created in Wrike: *{{2.captures[].value[2]}}* — assigned to {{2.captures[].value[1]}}, due {{7.due_date_formatted}}. View: {{8.permalink}}'. Wrike's Create Task response includes a permalink to the task, which makes this confirmation immediately actionable.
- 1Click + after the Wrike Create Task module
- 2Search 'Slack' and select 'Send a Message'
- 3Set Channel to the same channel from step 3
- 4Paste your confirmation message template into the Text field
- 5Map {{8.permalink}} from the Wrike Create Task output bundle
- 6Click OK
📬 New entry: {{1.name}}
Email: {{1.email}}
Details: {{1.description}}Canvas > Module right-click > Add error handler > Break / Scenario Settings > Notifications
Add error handling with a Break directive
Click the small clock/wrench icon on any module (start with Create Task) and set the error handler to 'Break'. This tells Make to stop the scenario and log the failed run rather than silently skipping it. Go to Scenario Settings (bottom toolbar, gear icon) and enable email notifications for failed runs. Without this, if a Slack message is malformed and the regex returns no match, Make will silently skip task creation and your team won't know.
- 1Right-click the Wrike Create Task module
- 2Select 'Add error handler'
- 3Choose 'Break'
- 4Click the gear icon in the bottom toolbar to open Scenario Settings
- 5Enable 'Send email notification on scenario error'
- 6Enter your email address and click Save
Canvas > Toggle (bottom left) > Active / History tab
Activate the scenario and run a live test
Toggle the scenario to Active using the blue On/Off switch in the bottom left of the canvas. Then go to your Slack channel and post a test message following your convention, e.g.: ':task: @jordan — write Q3 release notes — due Friday'. Watch the Make scenario execution history (History tab, top toolbar) for a green checkmark. Click the run to inspect each module's input/output and confirm the task appeared in Wrike with the right fields.
- 1Click the blue toggle in the bottom left of the canvas to set scenario to Active
- 2Go to your Slack channel and post: ':task: @jordan — write Q3 release notes — due Friday'
- 3Return to Make and click the 'History' tab in the top toolbar
- 4Click the most recent run entry to see the execution detail
- 5Verify the Wrike Create Task module shows a green checkmark and task ID in the output
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 already lives in Make for other automations, or if you want to parse structured data out of Slack messages without writing a backend service. Make's visual module chain is genuinely useful here: the Text Parser, Iterator, and filter combination gives you regex extraction, user lookup, and conditional routing in a single canvas that a non-developer can read and edit. The one scenario where you'd pick something else: if your team is already on Zapier and the message format is simple enough that Zapier's Formatter step handles the text parsing — Zapier's setup is faster for that exact case, even though it costs more at scale.
The math on Make is reasonable. Each scenario run uses roughly 6-8 operations (Slack trigger + Text Parser + List Users + Iterator + Set Variable + Create Task + Slack confirmation = 7 modules). At 200 task-tagged messages per month, that's 1,400 operations. Make's Core plan ($9/month) includes 10,000 operations, so you'd spend $9/month total until you hit roughly 1,400 messages/month. Zapier's equivalent — a multi-step Zap with a Formatter step — would run on the Professional plan at $49/month minimum for the same volume. That's $480/year difference for the same outcome.
Zapier is faster to set up if your message format is dead simple — no regex, just a keyword trigger and fixed field mapping. It'll take 15 minutes vs Make's 45. n8n gives you more control: you can write a JavaScript node to handle any message format without regex limitations, and it's free to self-host, but you're maintaining infrastructure. Power Automate has a native Wrike connector and deep Microsoft 365 integration — if your team uses Teams instead of Slack, Power Automate is the obvious pick, not Make. Pipedream lets you write the full extraction logic in Node.js with access to the raw Slack event payload, which is better if your message formats are inconsistent across teams. Make wins here specifically because the visual Text Parser + Iterator combo handles the structured-but-informal Slack message format without code, at a price that doesn't require justification to finance.
Three things you'll hit after going live. First: Wrike's 'duration required with due date' rule is not documented prominently — you'll create tasks with blank due dates and spend 20 minutes debugging before finding it. Always map dates.duration: 1 alongside any due date. Second: Slack's Watch Messages webhook occasionally delivers messages out of order during high-traffic periods, which can cause Make to process a reply before the original task message. This is rare but adds noise to your Wrike project — add a 5-second delay module before the Create Task step if you're seeing phantom duplicates. Third: Make's Text Parser regex engine doesn't support lookaheads. If your team's message convention evolves to something more complex (e.g., optional priority flags), you'll hit the regex ceiling fast and need to switch to a Code module or restructure the extraction logic.
Ideas for what to build next
- →Sync Wrike task status back to Slack — Build a second Make scenario that watches for Wrike task status changes (e.g., Active → Completed) and posts an update back to the original Slack channel. This closes the loop so teammates know when work is done without checking Wrike manually.
- →Add a Wrike custom field for Slack message source — Create a custom field in Wrike called 'Slack Source URL' and map the Slack message permalink to it. This lets your team filter all Wrike tasks that originated from Slack and measure how many action items from meetings actually get captured.
- →Route tasks to different Wrike projects based on channel — Add a Router module after the Text Parser that branches based on which Slack channel fired the trigger. Tasks from #design go to the Design Sprint project, tasks from #engineering go to the Dev Backlog. One scenario handles all channels instead of duplicating setups.
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