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

How to Create Wrike Tasks from Slack Messages with Zapier

Automatically creates a Wrike task whenever a Slack message is starred or posted with a specific emoji reaction, mapping the message text, sender, and parsed due date to the new task.

Steps and UI details are based on platform versions at time of writing — check each platform for the latest interface.

Best for

Teams that already live in Slack and want to capture action items into Wrike without switching apps or filling out task forms manually.

Not ideal for

Teams that need bidirectional sync — when a Wrike task status changes, this workflow won't post back to Slack without a separate Zap.

Sync type

real-time

Use case type

import

Real-World Example

💡

A 22-person product team at a B2B SaaS company uses this to convert action items from their #sprint-planning Slack channel into Wrike tasks. Before automation, someone had to manually open Wrike after every standup and type out tasks from memory — things slipped. Now, adding a ✅ emoji reaction to any Slack message instantly creates a Wrike task assigned to the message author, with the due date parsed from the message text.

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

Before You Start

Make sure you have everything ready.

Zapier account on the Starter plan or above — the Slack 'New Reaction Added' trigger uses instant webhooks, which require a paid Zapier plan
Slack account with permissions to add emoji reactions in the target channel, and admin access to authorize Zapier's Slack app in your workspace
Wrike account on the Professional plan or above — free Wrike accounts block API access and Zapier cannot create tasks without it
The emoji reaction you choose must already exist in your Slack workspace — create custom emojis in Slack workspace settings before configuring the trigger

Optional

Slack and Wrike accounts must share the same email addresses for assignee auto-matching to work — confirm this across your team before building

Field Mapping

Map these fields between your apps.

FieldAPI Name
Required
Task Titletitle
Parent Folder / ProjectfolderId
6 optional fields▸ show
Descriptiondescription
AssigneesresponsibleIds
Due Datedates.due
Statusstatus
Priorityimportance
Created DatecreatedDate

Step-by-Step Setup

1

zapier.com > Dashboard > Create Zap

Create a new Zap in Zapier

Log into your Zapier account at zapier.com. Click the orange 'Create Zap' button in the left sidebar. You'll land on the Zap editor, which shows a two-panel layout: the step list on the left and the configuration panel on the right. Give your Zap a name at the top — something like 'Slack Reaction → Wrike Task' so your team can find it later.

  1. 1Log in at zapier.com
  2. 2Click the orange 'Create Zap' button in the left sidebar
  3. 3Click the untitled Zap name at the top and type a descriptive name
  4. 4Click the '1. Trigger' block in the left panel to begin configuration
What you should see: You should see a blank Zap editor with a 'Trigger' block highlighted on the left and an empty configuration panel on the right.
2

Zap Editor > Trigger > Choose App & Event

Set Slack as the trigger app

In the trigger configuration panel, click 'Choose App & Event.' Type 'Slack' in the search box and select it from the results. You'll then choose the trigger event — select 'New Reaction Added' from the dropdown. This fires the Zap the moment any team member reacts to a message with an emoji, which is the most reliable way to flag messages as action items without requiring a bot command or a new channel.

  1. 1Click 'Choose App & Event' in the Trigger panel
  2. 2Type 'Slack' in the search box and click the Slack icon
  3. 3Click the 'Trigger Event' dropdown
  4. 4Select 'New Reaction Added' from the list
  5. 5Click 'Continue'
What you should see: You should see 'Slack — New Reaction Added' confirmed in the trigger block, and a 'Choose Account' panel appears below it.
Common mistake — Do not choose 'New Message Posted to Channel' unless your entire channel is action items. That trigger fires on every message and will flood Wrike with hundreds of tasks per day.
Zapier
+
click +
search apps
Slack
SL
Slack
Set Slack as the trigger app
Slack
SL
module added
3

Zap Editor > Trigger > Choose Account > Sign in to Slack

Connect your Slack account

Click 'Sign in to Slack' in the account panel. A popup opens asking you to authorize Zapier's access to your Slack workspace. You must sign in as an account that has access to the channels you want to monitor — a personal Slack account works, but a dedicated integration bot account is better for production. After authorizing, you'll return to Zapier and see your workspace name listed.

  1. 1Click 'Sign in to Slack' in the account selection panel
  2. 2In the popup, select the correct workspace from the top-left dropdown
  3. 3Click 'Allow' to grant Zapier access
  4. 4Close the popup and confirm your workspace name appears in Zapier
What you should see: Your Slack workspace name appears in the account dropdown with a green checkmark. The panel advances to trigger configuration.
Common mistake — Zapier's Slack integration uses your personal OAuth token. If you connect your personal account and later leave the workspace or are deactivated, the Zap will break immediately. Use a shared bot account for production.
Zapier settings
Connection
Choose a connection…Add
click Add
Slack
Log in to authorize
Authorize Zapier
popup window
Connected
green checkmark
4

Zap Editor > Trigger > Configure > Reaction / Channel

Configure the Slack trigger settings

Now configure which reaction and which channel to watch. In the 'Reaction' field, type the emoji name without colons — for example, type 'white_check_mark' to watch for ✅ reactions. In the 'Channel' dropdown, select the channel or channels your team uses for action items. Leave 'Channel Type' set to 'Channel' unless you also want to capture DM reactions. Click 'Continue' when done.

  1. 1Type the emoji name in the 'Reaction' field (e.g., 'white_check_mark')
  2. 2Click the 'Channel' dropdown and select your target channel
  3. 3Leave 'Channel Type' as 'Channel'
  4. 4Click 'Continue'
What you should see: The trigger configuration panel shows your chosen emoji and channel name. You'll see a 'Test trigger' button appear below.
Common mistake — Emoji names are case-sensitive and workspace-specific. Custom workspace emojis work, but the name must match exactly what appears in Slack's emoji picker — hover over the emoji in Slack to confirm the exact name.
5

Zap Editor > Trigger > Test Trigger

Test the Slack trigger

Click 'Test trigger.' Zapier will look for recent reactions in your chosen channel. Go to Slack right now, find any message, and add your chosen emoji reaction if you haven't already — then return to Zapier and click 'Find new records.' You'll see a JSON payload showing the message text, the user who added the reaction, the channel ID, the timestamp, and the original message sender. Review these fields carefully — you'll map them in later steps.

  1. 1Click 'Test trigger'
  2. 2Switch to Slack and add your chosen emoji to any recent message
  3. 3Return to Zapier and click 'Find new records'
  4. 4Expand the returned data to review all available fields
What you should see: You should see at least one record with fields including 'Text', 'User', 'Channel', 'Timestamp', and 'Permalink'. If you see 'We didn't find any records', no reactions exist yet — add one in Slack and retry.
Zapier
▶ Turn on & test
executed
Slack
Wrike
Wrike
🔔 notification
received
6

Zap Editor > + > Formatter by Zapier > Text > Extract Pattern

Add a Formatter step to parse due dates

Click the '+' button below the trigger to add a new step. Search for 'Formatter by Zapier' and select it. Choose 'Text' as the action, then 'Extract Pattern' as the transform type. In the 'Input' field, select the Slack message 'Text' field from your trigger data. In the 'Pattern' field, enter a regex that matches your team's date format — for example, '\d{1,2}/\d{1,2}/\d{4}' to catch dates like '3/15/2025'. This extracts a due date from the message text so you can pass it to Wrike cleanly.

  1. 1Click the '+' icon to add a step below the trigger
  2. 2Search for 'Formatter by Zapier' and select it
  3. 3Choose 'Text' as the action event
  4. 4Select 'Extract Pattern' as the transform
  5. 5Map the 'Input' field to Slack's 'Text' output
  6. 6Enter your date regex in the 'Pattern' field
What you should see: The Formatter step tests successfully and returns the extracted date string — for example, '3/15/2025' — in the output. If no date is found, it returns an empty string, which Wrike will accept without error.
Common mistake — If your team writes dates inconsistently — some people write '3/15', others write 'March 15' — you'll need multiple Formatter steps or a Code by Zapier step to normalize them. Wrike's due date field requires ISO format (YYYY-MM-DD) or a parseable date string, not freeform text.
Message template
📬 New entry: {{1.name}}
Email: {{1.email}}
Details: {{1.description}}
7

Zap Editor > + > Formatter by Zapier > Text > Truncate

Add a second Formatter step to clean the task title

Add another Formatter step. Choose 'Text' and then 'Truncate.' Map the input to the Slack 'Text' field. Set the max length to 255 characters — Wrike's task title field has a 255-character limit and will error if you exceed it. This also prevents you from sending an entire long Slack thread as the task name. You'll use this truncated text as the Wrike task title in the next step.

  1. 1Click '+' to add another step
  2. 2Select 'Formatter by Zapier' again
  3. 3Choose 'Text' then 'Truncate'
  4. 4Map the Input to Slack 'Text'
  5. 5Set 'Max Length' to 255
  6. 6Click 'Continue' and run the test
What you should see: The output shows the Slack message text, cut to 255 characters if it was longer. The test result confirms the truncated string in the output panel.
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}}

This Code by Zapier step runs in the action sequence after the Slack trigger. It parses the raw message text to extract a date in multiple formats, cleans up Slack user mention syntax, and returns normalized values ready to pass directly to the Wrike Create Task step. Paste this into a 'Code by Zapier' step using JavaScript, placed between your Slack trigger and your Wrike action.

JavaScript — Code Step// Code by Zapier — JavaScript
▸ Show code
// Code by Zapier — JavaScript
// Normalizes Slack message text before creating a Wrike task
// Input fields from Zapier: inputData.message_text, inputData.sender_email

... expand to see full code

// Code by Zapier — JavaScript
// Normalizes Slack message text before creating a Wrike task
// Input fields from Zapier: inputData.message_text, inputData.sender_email

const text = inputData.message_text || '';
const senderEmail = inputData.sender_email || '';

// Remove Slack user mention syntax: <@U04ABCD12> → @username not resolvable,
// so we strip the ID wrapper to avoid raw IDs in task titles
const cleanText = text.replace(/<@[A-Z0-9]+>/g, '@user').replace(/<[^>]+>/g, '').trim();

// Truncate to Wrike's 255-char title limit
const taskTitle = cleanText.substring(0, 255);

// Extract due date — supports MM/DD/YYYY, M/D/YYYY, YYYY-MM-DD
const datePatterns = [
  { regex: /(\d{4})-(\d{2})-(\d{2})/, format: 'iso' },
  { regex: /(\d{1,2})\/(\d{1,2})\/(\d{4})/, format: 'us' }
];

let dueDate = null;
for (const pattern of datePatterns) {
  const match = text.match(pattern.regex);
  if (match) {
    if (pattern.format === 'iso') {
      dueDate = `${match[1]}-${match[2]}-${match[3]}`;
    } else {
      const month = match[1].padStart(2, '0');
      const day = match[2].padStart(2, '0');
      dueDate = `${match[3]}-${month}-${day}`;
    }
    break;
  }
}

output = [
  {
    task_title: taskTitle,
    due_date: dueDate,
    sender_email: senderEmail,
    original_length: text.length,
    was_truncated: text.length > 255
  }
];
8

Zap Editor > + > Wrike > Create Task > Choose Account

Add Wrike as the action app

Click '+' to add the final action step. Search for 'Wrike' and select it. Choose 'Create Task' as the action event. Click 'Continue.' You'll be prompted to connect your Wrike account — click 'Sign in to Wrike,' which opens an OAuth popup. Sign in with your Wrike credentials and click 'Allow.' You need to be a Wrike account member with task creation permissions in the target project or folder.

  1. 1Click '+' to add a new step
  2. 2Search for 'Wrike' and select it
  3. 3Choose 'Create Task' as the action event
  4. 4Click 'Continue'
  5. 5Click 'Sign in to Wrike' and complete the OAuth flow
  6. 6Confirm your Wrike account name appears and click 'Continue'
What you should see: Your Wrike account name appears in the account selector with a checkmark. The action configuration panel opens showing all mappable Wrike task fields.
Common mistake — Zapier's Wrike integration requires your Wrike account to be on the Professional plan or above to access API-based task creation. Free Wrike accounts cannot use the API. Confirm your plan before building the rest of the Zap.
9

Zap Editor > Action > Wrike > Create Task > Configure

Map Slack fields to Wrike task fields

Now map your data. In the 'Title' field, select the truncated text output from your Formatter step. In the 'Description' field, insert the Slack message permalink so team members can jump to the original conversation. Set 'Assignees' by mapping the Slack 'User' field — Wrike will try to match by email, so this works best if your Slack and Wrike accounts share the same email addresses. Set 'Due Date' to the extracted date from your first Formatter step. Select the target Folder or Project from the 'Parent Folder' dropdown.

  1. 1Map 'Title' to the Formatter truncated text output
  2. 2Map 'Description' to Slack's 'Permalink' field
  3. 3Map 'Assignees' to Slack's 'User' field (email match)
  4. 4Map 'Due Date' to the Formatter extracted date output
  5. 5Click the 'Parent Folder' dropdown and select your Wrike project or folder
  6. 6Click 'Continue'
What you should see: All mapped fields show the correct dynamic values highlighted in blue. The 'Parent Folder' field shows the name of your chosen Wrike project, not an ID.
Common mistake — The 'Assignees' field in Wrike's Zapier integration accepts Wrike User IDs, not email addresses or Slack user names. If you map the raw Slack user field, the task will likely be created unassigned. See the troubleshooting section for the lookup workaround.
Slack fields
text
user
channel
ts
thread_ts
available as variables:
1.props.text
1.props.user
1.props.channel
1.props.ts
1.props.thread_ts
10

Zap Editor > Action > Wrike > Test Action

Test the full Zap end to end

Click 'Test action' in the Wrike step. Zapier will use your sample Slack data and attempt to create a real task in Wrike. Switch to Wrike after the test completes and navigate to the folder you selected — you should see a new task with the Slack message as the title and the permalink in the description. Check that the due date and assignee populated correctly. If anything looks wrong, go back and adjust the field mapping before turning the Zap on.

  1. 1Click 'Test action' in the Wrike step
  2. 2Wait for the success confirmation in Zapier
  3. 3Open Wrike and navigate to your target folder
  4. 4Verify the task title, description, due date, and assignee
What you should see: A new task appears in your Wrike folder. The title matches the Slack message text, the description contains a clickable Slack link, and the due date field is populated if the message contained a date.
11

Zap Editor > Publish > Toggle On

Turn the Zap on

Click the 'Publish' button in the top right corner of the Zap editor. Toggle the Zap to 'On.' The status indicator turns green. Zapier will now listen via Slack's Events API for new reactions matching your configured emoji in your chosen channel. Go to Slack, react to a message with your emoji, and within 2 minutes you should see a new Wrike task appear. Run this test with a real team member to confirm the assignee mapping works end to end.

  1. 1Click the 'Publish' button in the top right
  2. 2Toggle the Zap status switch to 'On'
  3. 3Confirm the green 'On' badge appears
  4. 4Test with a live Slack reaction from another team member's account
What you should see: The Zap status shows 'On' in green. Within 1-2 minutes of adding the emoji reaction in Slack, a new task appears in your Wrike folder.

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 Zapier for this workflow

Use Zapier for this if your team has no technical resources and needs something running today. The guided Zap builder walks through every step with dropdowns — no JSON, no code, no API documentation to read. Setup realistically takes 25-35 minutes including testing. The Slack 'New Reaction Added' trigger is available on Zapier's Starter plan and fires via webhook, so there's no polling delay. The one scenario where you'd skip Zapier: if you need the task description to include the full Slack thread context, not just the single message. Zapier can't fetch thread replies without extra steps that quickly become fragile.

Cost

The math here matters. Each emoji reaction consumes roughly 3 Zapier tasks — one for each Formatter step plus the Wrike action. At 150 reactions per month (a realistic number for a 20-person team), that's 450 tasks/month. Zapier's Starter plan includes 750 tasks/month at $19.99/month. You're fine at that volume. At 300+ reactions/month, you'll hit the Starter cap and need the Professional plan at $49/month. Make handles the same workflow for free up to 1,000 operations/month, so if cost is the primary driver and you have someone who can spend 2 hours learning Make's module system, Make wins on price by $49/month.

Tradeoffs

Make's scenario builder handles this workflow with a more visual multi-path setup — you can add conditional branches without extra modules, and Make's text parsing functions are built in rather than requiring a separate Formatter step. n8n does this well too and lets you self-host, which matters if your Slack messages contain sensitive project data you don't want passing through Zapier's servers. Power Automate has a Slack connector but it's limited — the reaction trigger doesn't exist natively and you'd need a workaround. Pipedream gives you full JavaScript and can fetch thread context via Slack's API, which solves the thread problem Zapier can't. Zapier is still the right call here if your team will actually maintain it: the Zap editor is the only interface on this list that a non-technical project manager can debug on their own at 9pm without calling a developer.

Three things will bite you after go-live. First, the assignee mapping. Wrike's Zapier integration takes a Wrike User ID in the assignee field, and almost nobody realizes this until they see every task created unassigned. You need a lookup step or you need to hardcode assignments. Second, Slack messages with @mentions pass through as raw user IDs like '<@U04ABCD12>' — your Wrike task titles will look like garbage unless you add a Formatter step to clean them. Third, if your team uses Wrike's custom workflow statuses instead of the default Active/Completed/Deferred set, the 'Status' field in Zapier will only show you the default options. You'll need to pass the custom status ID directly, which means digging into your Wrike workspace settings to find it.

Ideas for what to build next

  • Post a Slack confirmation when the task is createdAdd a second Wrike action step that sends a Slack message back to the original channel with the Wrike task URL, so the person who added the emoji knows the task was captured and can find it immediately.
  • Sync Wrike task status changes back to SlackBuild a second Zap in the opposite direction — trigger on 'Task Status Changed' in Wrike and post a message to the originating Slack channel. This closes the loop so the team knows when action items are completed without checking Wrike manually.
  • Route tasks to different Wrike projects based on the Slack channelAdd a Zapier Paths step that checks which Slack channel triggered the Zap and routes the task to the matching Wrike project — #marketing reactions go to the Marketing project, #engineering reactions go to the Engineering project — without needing separate Zaps for each channel.

Related guides

Was this guide helpful?
Slack + Wrike overviewZapier profile →