

How to Create Wrike Tasks from Slack with Power Automate
When a Slack message is flagged with a specific emoji reaction or posted in a designated channel, Power Automate instantly creates a Wrike task with the message text as the title, assigns it to the sender, and sets a due date parsed from the message.
Steps and UI details are based on platform versions at time of writing — check each platform for the latest interface.
Best for
Teams already on Microsoft 365 who want to capture Slack action items as Wrike tasks without switching tools or writing code.
Not ideal for
Teams who need two-way sync between Slack threads and Wrike task comments — that requires a more complex bidirectional flow.
Sync type
real-timeUse case type
routingReal-World Example
A 22-person product team at a mid-stage SaaS company used Slack for all sprint planning discussions but lost action items in thread history. Engineers missed tasks assigned verbally in #dev-standups. After setting up this flow, any message reacted with 📋 in that channel becomes a Wrike task within 90 seconds, assigned to the person who sent the message, with no manual copy-paste.
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 Power Automate
Copy the pre-built Power Automate blueprint and paste it straight into Power Automate. 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 | |
| Folder or Project ID | folderId | |
6 optional fields▸ show
| Assignee (Wrike User ID) | responsibleIds |
| Due Date | dates/due |
| Task Description | description |
| Slack Message Permalink | |
| Slack Channel Name | |
| Status | status |
Step-by-Step Setup
make.powerautomate.com > Create > Automated cloud flow
Open Power Automate and start a new Automated flow
Go to make.powerautomate.com and sign in with your Microsoft 365 account. Click 'Create' in the left sidebar, then select 'Automated cloud flow' from the three options shown. This flow type fires immediately when a trigger event occurs — which is what you need for real-time Slack capture. Give the flow a name like 'Slack Emoji → Wrike Task' so it's identifiable later.
- 1Sign in at make.powerautomate.com
- 2Click 'Create' in the left sidebar
- 3Select 'Automated cloud flow'
- 4Enter a flow name in the 'Flow name' field
- 5Click 'Skip' on the trigger picker — you'll set it manually in the next step
Flow canvas > Add a trigger > Search 'Slack' > When a reaction is added to a message
Add the Slack trigger for a new reaction added
Click the empty trigger block on the canvas. In the connector search bar, type 'Slack' and select the Slack connector from the results. You'll see a list of available triggers — select 'When a reaction is added to a message'. This trigger fires the moment any user reacts to a Slack message, giving you a reliable, zero-polling hook into conversations.
- 1Click the 'Add a trigger' block on the canvas
- 2Type 'Slack' in the search bar
- 3Click the Slack connector icon
- 4Select 'When a reaction is added to a message' from the trigger list
Trigger block > Sign in > Slack OAuth popup > Channel Name dropdown > Reaction Name field
Connect your Slack account and configure the trigger
Click 'Sign in' inside the trigger block to authenticate the Slack connector. Power Automate will open a browser popup asking you to authorize with your Slack workspace. After authorizing, select the specific channel you want to monitor from the 'Channel Name' dropdown — for example, #dev-standups. In the 'Reaction Name' field, type the emoji name without colons, such as clipboard. Only messages reacted with that exact emoji will trigger the flow.
- 1Click 'Sign in' in the trigger block
- 2Complete Slack OAuth in the popup window
- 3Select your target channel from the 'Channel Name' dropdown
- 4Type your chosen emoji name (e.g., clipboard) in the 'Reaction Name' field
Flow canvas > + New step > Slack > Get message
Fetch the full message text using 'Get message'
The reaction trigger only returns a message timestamp and channel — not the actual message text. You need to add a Slack action to retrieve the full message. Click '+ New step', search for Slack, and select the action 'Get message'. Map the 'Channel' field to the Channel output from your trigger and map the 'Message Timestamp' field to the Message Timestamp output from the trigger. This gives you the raw message text to use as your Wrike task title.
- 1Click '+ New step' below the trigger block
- 2Search 'Slack' and select the Slack connector
- 3Choose the 'Get message' action
- 4Click the 'Channel' field and select 'Channel' from the dynamic content panel
- 5Click the 'Message Timestamp' field and select 'Message Timestamp' from the dynamic content panel
Flow canvas > + New step > Built-in > Data Operation > Compose
Parse the message for due date using a Compose action
Wrike needs a due date in YYYY-MM-DD format. Rather than passing raw message text to Wrike, add a 'Compose' action to extract a date if one is mentioned in the message. In the 'Inputs' field, use the expression editor to write a formula that extracts a date substring or defaults to 7 days from now. This step makes the flow production-ready — Wrike will reject task creation without a properly formatted date if your Wrike folder requires it.
- 1Click '+ New step'
- 2Under 'Built-in', select 'Data Operation'
- 3Choose 'Compose'
- 4Click the 'Inputs' field, then click 'Expression' tab in the dynamic content panel
- 5Enter: formatDateTime(addDays(utcNow(), 7), 'yyyy-MM-dd')
Flow canvas > + New step > Slack > Get user profile
Resolve the Slack user ID to a display name
The reaction trigger returns a Slack user ID like U04XYZABC, not a human name. Wrike's 'Create task' action has an Assignees field that accepts Wrike user IDs — not Slack user IDs. For now, add another Slack action: 'Get user profile'. Map the 'User' field to the 'User' output from the trigger. This gives you the user's real name and email, which you'll use in the next step to find the matching Wrike user.
- 1Click '+ New step'
- 2Search 'Slack' and select the Slack connector
- 3Choose 'Get user profile'
- 4Map the 'User' field to the 'User' dynamic content from the reaction trigger
Paste this expression into a Compose action placed after the 'Get message' Slack step. It extracts a date in MM/DD or MM-DD format from the message text and formats it correctly for Wrike, falling back to 7 days from now if no date is found. Reference the Compose output in the 'Create task' Due Date field using the Outputs token.
JavaScript — Code Stepif(▸ Show code
if(
greater(
length(... expand to see full code
if(
greater(
length(
trim(
replace(
replace(body('Get_message')?['text'], '-', '/'),
'.', '/'
)
)
),
0
),
formatDateTime(
if(
contains(body('Get_message')?['text'], '/'),
concat(
substring(body('Get_message')?['text'],
indexOf(body('Get_message')?['text'], '/') - 2, 5
),
'/', utcNow('yyyy')
),
addDays(utcNow(), 7)
),
'yyyy-MM-dd'
),
formatDateTime(addDays(utcNow(), 7), 'yyyy-MM-dd')
)Flow canvas > + New step > Wrike > Get contacts
Look up the Wrike user by email
Add the Wrike action 'Get contacts' to find the Wrike account user whose email matches the Slack user's email. Map no filter fields — this returns all contacts. You'll then use a Filter Array action in the next step to isolate the right user. Alternatively, if your team is small and stable, you can build a manual mapping table in a SharePoint list and look up the Wrike user ID directly. The Wrike connector requires an active connection — authorize it now if you haven't already.
- 1Click '+ New step'
- 2Search 'Wrike' in the connector search bar
- 3Select the Wrike connector
- 4Choose 'Get contacts' action
- 5Sign in to Wrike via OAuth when prompted
- 6Leave filter fields empty to return all contacts
Flow canvas > + New step > Built-in > Data Operation > Filter array
Filter Wrike contacts to find the matching user
Add a 'Filter array' action from the 'Data Operation' built-in group. Set the 'From' field to the 'data' array output from the 'Get contacts' Wrike action. In the filter condition, set the left side to the 'profiles/email' field from each contact item, set the operator to 'is equal to', and set the right side to the 'Email' output from the Slack 'Get user profile' step. This returns only the one Wrike contact whose email matches.
- 1Click '+ New step'
- 2Select 'Built-in' > 'Data Operation' > 'Filter array'
- 3Set 'From' to the 'data' array from 'Get contacts'
- 4Click 'Add dynamic content' in the left filter field and select 'Current item' then append '/profiles/0/email' via the expression editor
- 5Set the operator to 'is equal to'
- 6Set the right side to 'Email' from 'Get user profile'
Flow canvas > + New step > Wrike > Create task
Create the Wrike task with mapped fields
Add the Wrike action 'Create task'. Set the 'Folder or Project ID' to the Wrike folder or project where tasks should land — you'll need to copy this ID from your Wrike URL (open the folder in Wrike, the ID is the alphanumeric string after /open/). Set the 'Title' to the 'Text' output from the Slack 'Get message' action. Set 'Due Date' to the output of your Compose action. For 'Assignees', use the expression: first(body('Filter_array'))?['id'] to pull the Wrike user ID from the filtered contacts array.
- 1Click '+ New step'
- 2Search 'Wrike' and select 'Create task'
- 3Paste your Wrike folder ID into 'Folder or Project ID'
- 4Set 'Title' to the 'Text' dynamic content from 'Get message'
- 5Set 'Due Date' to the 'Outputs' from the Compose action
- 6Click the 'Assignees' field, switch to 'Expression', and enter: first(body('Filter_array'))?['id']
Flow canvas > + New step > Slack > Post message
Post a Slack confirmation back to the channel
Add a final Slack action: 'Post message'. Set the 'Channel' to the same channel from your trigger. In the 'Message Text' field, write something like: '✅ Task created in Wrike: ' followed by the 'Title' from your Wrike 'Create task' response, then append the Wrike task permalink. This closes the loop — the person who added the emoji reaction sees immediate confirmation that the task was captured, without leaving Slack.
- 1Click '+ New step'
- 2Search 'Slack' and select 'Post message'
- 3Set 'Channel' to the Channel output from the reaction trigger
- 4In 'Message Text', type '✅ Task created in Wrike: ' then insert 'Title' from the Create task response
- 5Optionally append 'Permalink' from the Create task response if available
channel: {{channel}}
ts: {{ts}}
Flow canvas > Save > Test > Manually > [trigger in Slack]
Test the flow end-to-end and turn it on
Click 'Save' in the top right, then click 'Test' and select 'Manually'. Open Slack and react to a message in your configured channel with the emoji you specified. Switch back to Power Automate — the test panel should show each step turning green as the flow runs. Check your Wrike folder to confirm the task appeared with the correct title, assignee, and due date. If all steps pass, click 'Turn on' to make the flow live.
- 1Click 'Save' in the top right corner
- 2Click 'Test', then select 'Manually'
- 3Click 'Test Flow'
- 4In Slack, react to any message in your configured channel with the configured emoji
- 5Return to Power Automate and watch each step complete
- 6Verify the task in Wrike, then click 'Turn on'
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 Power Automate for this if your team is already on Microsoft 365 and your IT department controls app approvals. The Slack and Wrike connectors are both standard tier — no premium connector fees, which saves $15/user/month compared to a setup involving premium connectors. Power Automate also fits here if you want the flow managed under your organization's tenant, with connection credentials owned by a service account rather than an individual's personal Zapier or Make login. If your team has no Microsoft 365 dependency and wants faster setup, Make will build this same flow in about half the time.
Power Automate pricing for this flow: each run consumes approximately 8 actions (trigger, get message, get user profile, get contacts, filter array, compose, create task, post message). The Microsoft 365 included plan gives 6,000 flow runs per month at no extra cost. At 50 Slack reactions per day — a busy team — you're at 1,500 runs/month, well inside the free tier. If your team generates 300+ flagged messages per day, you'll approach the 6,000 limit and may need a per-user Power Automate plan at $15/user/month. Make would handle 1,000 operations for free and costs $9/month for 10,000 — meaningfully cheaper at high volume.
Zapier's equivalent is a two-Zap chain (one for the reaction, one for Wrike task creation) and its 'New Reaction Added' trigger works cleanly, but the user-ID-to-name resolution requires a third Zap step that burns through task limits fast. Make handles the entire flow in one scenario with fewer operations counted. n8n gives you full control over the user lookup logic with a Function node, and if you're self-hosting, the cost is effectively zero — the right call if your team has a developer on staff. Pipedream's Slack source triggers via true webhooks and processes faster than Power Automate's connector polling interval. Power Automate is still the right pick when the decision is made by an IT admin who wants everything inside the Microsoft tenant and auditable via the admin center.
Three things you'll hit post-setup. First, the Slack connector's 'Get message' action occasionally returns the message before Slack finishes rendering link previews, which means the text field includes raw Slack markup like <https://example.com|link text> instead of plain text — you'll need a replace() expression to clean it before it lands in Wrike as the task title. Second, Wrike's API rejects due dates in the past, so if someone reacts to a message that mentions 'yesterday' and your date parser picks it up, the task creation will fail. Add a condition that compares the parsed date to utcNow() and falls back to the default if it's in the past. Third, Power Automate's Wrike connector caches the contacts list aggressively — if a new team member joins Wrike mid-week, the 'Get contacts' action may not return them for several hours, meaning their tasks get created unassigned until the cache refreshes.
Ideas for what to build next
- →Post Wrike task updates back to Slack — Build a second flow that triggers when a Wrike task's status changes and posts the update to the originating Slack channel. This closes the loop so the team sees progress without opening Wrike.
- →Add a priority parser to the message — Extend the Compose step to detect keywords like 'urgent', 'blocking', or 'P0' in the Slack message and map them to Wrike task priority levels. This eliminates manual priority-setting after task creation.
- →Expand to multiple channels with a single flow — Replace the hardcoded channel in the trigger with a condition block that maps different Slack channels to different Wrike folders — for example, #design goes to the Design project, #backend goes to the Engineering project.
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