Beginner~12 min setupCommunication & Project ManagementVerified April 2026
Slack logo
Wrike logo

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-time

Use case type

routing

Real-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.

/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.

Slack account with permission to install apps in your workspace (you need to be a workspace admin or have admin approval)
Make account — free tier works for testing, but you'll need at least the Core plan ($9/month) for scenarios with more than 1,000 operations/month
Wrike account with API access enabled — available on Wrike Professional and above; API access must be turned on under Wrike Account Settings > Apps & Integrations
A defined message convention your team agrees on before activation — e.g., ':task: @firstname — task title — due [date]' — without this the regex won't parse correctly
The Make Slack app installed in your Slack workspace so the webhook connection can be established (install from make.com/en/integrations/slack)

Field Mapping

Map these fields between your apps.

FieldAPI Name
Required
Task Titletitle
Task Statusstatus
Parent Folder / ProjectfolderId
5 optional fields▸ show
Assigned User IDresponsibles
Due Datedates.due
Descriptiondescription
Source Message Linkdescription
Task Durationdates.duration

Step-by-Step Setup

1

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.

  1. 1Go to make.com and log in
  2. 2Click the blue 'Create a new scenario' button in the top right
  3. 3Click the pencil icon at the top left and name the scenario 'Slack → Wrike Task Creator'
  4. 4Click the large circle in the canvas center to open the module picker
What you should see: You should see the module search panel open on the right side of the canvas with a search bar at the top.
Common mistake — Make auto-saves scenario names but does NOT auto-save module configurations. Save manually (Ctrl+S / Cmd+S) after configuring each module.
2

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.

  1. 1Type 'Slack' in the module search bar
  2. 2Click the Slack app icon
  3. 3Select 'Watch Messages' from the triggers list
  4. 4Click 'Add' next to the Connection field
  5. 5In the popup, sign into Slack and click 'Allow' to grant Make access
What you should see: You should see your Slack workspace name appear in the Connection dropdown, and the module config panel will expand to show channel and filter options.
Common mistake — The 'Watch Messages' trigger requires the Slack app added to Make to be installed in your workspace. If you see an 'App not installed' error after authorizing, go to your Slack workspace settings and install the Make app from the App Directory before retrying.
Message template
📬 New entry: {{1.name}}
Email: {{1.email}}
Details: {{1.description}}
message template
🔔 New Record: {{text}} {{user}}
channel: {{channel}}
ts: {{ts}}
#sales
🔔 New Record: Jane Smith
Company: Acme Corp
3

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.

  1. 1Click the Channel dropdown and select your target channel (e.g., #team-tasks)
  2. 2Set Trigger to 'New Message Posted to Channel'
  3. 3Type ':task:' (or your chosen keyword) in the 'Trigger Word or Phrase' field
  4. 4Set 'Include Bot Messages' to 'No'
  5. 5Click OK to save the module
What you should see: The Slack module should show a summary card on the canvas displaying the channel name and trigger word you configured.
Common mistake — Make's Slack trigger matches the trigger word against the full message text — so ':task:' will fire on any message containing that string, including edited messages. Slack's Watch Messages module does NOT fire on message edits by default, but confirm this in your workspace by testing an edited message before going live.
Slack
SL
trigger
filter
Condition
matches criteria?
yes — passes through
no — skipped
Wrike
WR
notified
4

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}}).

  1. 1Click the + icon to the right of the Slack trigger module
  2. 2Search 'Text Parser' and select it
  3. 3Choose 'Match Pattern'
  4. 4In the Pattern field, enter: :task:\s+@?(\S+)\s+[—–-]+\s+(.+?)\s+[—–-]+\s+due\s+(.+)
  5. 5Set the Text field to {{1.text}} using the variable picker
  6. 6Set Global Match to 'No' (you want the first match only)
What you should see: You should see three capture group outputs listed in the module preview: group 1 (assignee), group 2 (task title), group 3 (due date string).
5

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.

  1. 1Click the + icon after the Text Parser module
  2. 2Search 'Wrike' and select it
  3. 3Choose 'List Users'
  4. 4Click 'Add' next to Connection and authorize your Wrike account via OAuth
  5. 5Leave the optional filters blank to return all users
  6. 6Click OK
What you should see: The Wrike module card should show your Wrike workspace name. Running the scenario once will populate a bundle of user objects including id, firstName, lastName, and profiles[].email.
Common mistake — Wrike's API rate limit is 600 requests per minute per account. If your team fires many Slack messages simultaneously, the List Users call adds one API call per scenario run. At high volume this stacks up — consider caching users with a Make data store instead of calling List Users every time.

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'
  )
)}}
6

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.

  1. 1Click + after the Wrike List Users module
  2. 2Search 'Flow Control' and select 'Iterator'
  3. 3Set the Array field to {{3.users}}
  4. 4Click OK, then click the wrench icon on the route between Iterator and next module
  5. 5Click 'Set up a filter'
  6. 6Set condition: {{item.firstName}} + ' ' + {{item.lastName}} — Contains — {{2.captures[].value[1]}}
  7. 7Click OK to save the filter
What you should see: The filter badge should appear on the connector line. When you run a test, only one user bundle (the matching assignee) should pass through.
Common mistake — Slack handles and Wrike display names often don't match exactly — 'jordan' in Slack vs 'Jordan Lee' in Wrike. Build your team's convention around first names or email handles, and document it in your Slack channel description so the regex stays reliable.
7

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.

  1. 1Click + after the Iterator/filter step
  2. 2Search 'Tools' and select 'Set Variable'
  3. 3Set Variable Name to: due_date_formatted
  4. 4Set Variable Value to: formatDate(parseDate({{2.captures[].value[3]}}; 'dddd'; 'en'); 'YYYY-MM-DD')
  5. 5Click OK
What you should see: When you run the scenario with a test message containing 'due Friday', the Set Variable module output should show due_date_formatted as the upcoming Friday's date in YYYY-MM-DD format (e.g., 2025-06-20).
Common mistake — Make's parseDate() with 'dddd' format only resolves to the NEXT occurrence of that weekday from the current date. If someone types 'due last Friday', it will resolve incorrectly. Enforce future-only due dates in your team convention.
Message template
📬 New entry: {{1.name}}
Email: {{1.email}}
Details: {{1.description}}
8

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}}).

  1. 1Click + after the Set Variable module
  2. 2Search 'Wrike' and select 'Create Task'
  3. 3Set Folder/Project to your target Wrike project using the dropdown
  4. 4Map Title to {{2.captures[].value[2]}}
  5. 5Map Assigned Users to {{item.id}}
  6. 6Map Due Date to {{7.due_date_formatted}}
  7. 7Set Status to 'Active'
  8. 8Click OK
What you should see: The Create Task module card should show your target project name. Running a test should produce a new task in Wrike with the correct title, assignee, and due date visible in the task detail panel.
Common mistake — Wrike's Folder/Project field only accepts Wrike folder IDs, not display names. The dropdown in Make resolves this for you — but if you type the project name manually it will fail silently. Always use the dropdown picker.
9

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.

  1. 1Click + after the Wrike Create Task module
  2. 2Search 'Slack' and select 'Send a Message'
  3. 3Set Channel to the same channel from step 3
  4. 4Paste your confirmation message template into the Text field
  5. 5Map {{8.permalink}} from the Wrike Create Task output bundle
  6. 6Click OK
What you should see: After a successful test run, you should see a confirmation message appear in your Slack channel with the task title, assignee, due date, and a clickable Wrike link.
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 entry: {{1.name}}
Email: {{1.email}}
Details: {{1.description}}
10

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.

  1. 1Right-click the Wrike Create Task module
  2. 2Select 'Add error handler'
  3. 3Choose 'Break'
  4. 4Click the gear icon in the bottom toolbar to open Scenario Settings
  5. 5Enable 'Send email notification on scenario error'
  6. 6Enter your email address and click Save
What you should see: You should see a red error handler route appear below the Wrike module. The Scenario Settings panel should show your email address saved under notifications.
11

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.

  1. 1Click the blue toggle in the bottom left of the canvas to set scenario to Active
  2. 2Go to your Slack channel and post: ':task: @jordan — write Q3 release notes — due Friday'
  3. 3Return to Make and click the 'History' tab in the top toolbar
  4. 4Click the most recent run entry to see the execution detail
  5. 5Verify the Wrike Create Task module shows a green checkmark and task ID in the output
What you should see: You should see a green run entry in History. Clicking it should show all 6+ modules with green checkmarks. The Wrike task should appear in your target project with title, assignee, and due date correctly populated.
Common mistake — Make's free tier only logs the last 30 days of execution history. If you're troubleshooting an issue from a while back, the logs may be gone. On the free plan, export run logs manually for incidents you want to review later.
Make
▶ Run once
executed
Slack
Wrike
Wrike
🔔 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 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.

Cost

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.

Tradeoffs

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 SlackBuild 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 sourceCreate 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 channelAdd 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

Was this guide helpful?
Slack + Wrike overviewMake profile →