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

How to Post Wrike Standups to Slack with Make

Make pulls active tasks and upcoming deadlines from Wrike on a schedule and posts a formatted project status summary to a Slack channel.

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

Best for

Teams running projects in Wrike who want a daily or weekly digest posted to Slack without manual copy-paste.

Not ideal for

Teams that need real-time task alerts as they happen — use a webhook-triggered scenario for that instead.

Sync type

scheduled

Use case type

reporting

Real-World Example

💡

A 20-person product team at a SaaS company runs two or three active projects in Wrike at any time. Before this automation, the engineering lead spent 10 minutes every morning pulling task statuses from Wrike and typing a summary into #eng-standup. Now Make runs at 8:45 AM weekdays, pulls all in-progress and due-soon tasks, and posts a structured digest to the channel before the 9 AM meeting starts.

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.

Wrike account with API access enabled and at least one active project with in-progress tasks
Wrike OAuth credentials — Make needs 'wsReadWrite' scope to read tasks and project data
Slack workspace admin access or a bot token with chat:write and channels:read scopes for the target channel
Make account with at least the Core plan (free tier limits scenarios to 1,000 ops/month, which this workflow may exceed quickly)
The Slack channel already created and the bot or Make Slack app added as a member of that channel

Field Mapping

Map these fields between your apps.

FieldAPI Name
Required
Task Title
Task Status
Due Date
5 optional fields▸ show
Assignee Name
Project/Folder Name
Task Permalink
Priority
Completion Percentage

Step-by-Step Setup

1

make.com > Dashboard > Create a new scenario

Create a new Make scenario

Log in to Make at make.com. Click 'Create a new scenario' from your dashboard. You'll land on the visual canvas with a single empty module circle in the center. This is where your scheduled trigger lives. Make saves automatically, but the scenario won't run until you activate it at the end.

  1. 1Click the blue 'Create a new scenario' button in the top right
  2. 2Click the empty circle module that appears on the canvas
  3. 3Type 'Schedule' in the search box
  4. 4Select 'Schedule' under the Built-in apps section
What you should see: You'll see a clock icon module on the canvas labeled 'Schedule'. A side panel opens showing interval, time, and day settings.
Common mistake — Do not click 'Run once' yet — that skips the schedule trigger entirely and just fires immediately with no recurrence.
2

Schedule Module > Settings Panel

Configure the schedule trigger

In the Schedule module settings, set the trigger to run on weekdays at a specific time — 8:45 AM works for pre-standup delivery. Set 'Run scenario' to 'At regular intervals', then choose 'Days' and specify Monday through Friday. Set the exact time in the 'Time' field. Make uses UTC by default, so calculate your team's local offset before entering the time.

  1. 1Set 'Run scenario' to 'At regular intervals'
  2. 2Set interval unit to 'Days'
  3. 3Enter '1' in the interval count field
  4. 4Set the Time field to your target UTC time (e.g. 13:45 for 8:45 AM EST)
  5. 5Check 'Restrict to days of the week' and select Mon, Tue, Wed, Thu, Fri
What you should see: The Schedule module shows a summary like 'Every day at 13:45 UTC on weekdays'. You can hover over the module to confirm the next scheduled run time.
Common mistake — Make does not automatically adjust for daylight saving time. When clocks change, your standup will post an hour early or late until you manually update the UTC offset.
Make
+
click +
search apps
Slack
SL
Slack
Configure the schedule trigger
Slack
SL
module added
3

Canvas > + > Wrike > Search Tasks

Add the Wrike 'Search Tasks' module

Click the plus icon to the right of the Schedule module to add the next step. Search for 'Wrike' and select it. From the list of Wrike actions, choose 'Search Tasks'. This module queries Wrike's API with filters you define — it returns a batch of tasks matching your criteria rather than a single record. You'll connect your Wrike account here if you haven't already.

  1. 1Click the small '+' circle to the right of the Schedule module
  2. 2Type 'Wrike' in the app search field
  3. 3Select 'Wrike' from the results
  4. 4Choose 'Search Tasks' from the action list
  5. 5Click 'Add' next to the Connection field and authorize your Wrike account via OAuth
What you should see: The Wrike Search Tasks module opens with fields for Folder/Project, Status, and other filters. You should see a green 'Connected' indicator next to your Wrike account name.
Common mistake — Wrike OAuth tokens are scoped to the authorizing user. If that person leaves the company or their account is deactivated, the scenario breaks immediately. Use a shared service account if possible.
4

Wrike Search Tasks Module > Filters

Filter tasks by status and due date

In the Wrike Search Tasks module, set the Folder or Project ID to the project you want to report on. Set Status to 'In Progress' to catch active work. Add a second filter for due date — set 'Due Date' to less than or equal to 7 days from today to surface upcoming deadlines. You can use Make's date formula addDays(now; 7) directly in the Due Date field. Leave the result limit at 50 unless your projects routinely have more active tasks than that.

  1. 1Click the Folder ID field and select or paste your target Wrike project ID
  2. 2Set the Status filter to 'In Progress'
  3. 3Click 'Add filter' and choose 'Due Date'
  4. 4Set the operator to 'Less than or equal to'
  5. 5Type addDays(now; 7) in the Due Date value field
What you should see: When you click 'Run once' to test, Make returns a list of task records in the output panel. Each record shows task name, assignee, status, due date, and permalink.
Common mistake — Wrike paginates at 100 tasks per API call. If a project has more than 100 in-progress tasks, Search Tasks silently drops the rest. Add a second iterator or narrow your filters before going live.
Slack
SL
trigger
filter
Status
matches criteria?
yes — passes through
no — skipped
Wrike
WR
notified
5

Canvas > + > Built-in > Text Aggregator

Add an Aggregator to build the message body

After the Wrike module, add a 'Text Aggregator' module. This loops over all returned tasks and concatenates them into a single Slack-ready string. In the Text field, map Wrike task fields to build one line per task. A good format is: • {{task.title}} — Due: {{formatDate(task.dueDate; 'MMM D')}} — Assignee: {{task.responsibles[].name}}. The separator field should be a newline character \n.

  1. 1Click '+' after the Wrike module
  2. 2Search 'Text Aggregator' in the Built-in section
  3. 3Set 'Source Module' to your Wrike Search Tasks module
  4. 4In the 'Text' field, map: • {{1.title}} — Due: {{formatDate(1.dueDate; "MMM D")}} — {{1.responsibles[].name}}
  5. 5Set 'Row separator' to 'New row (\n)'
What you should see: Run a test and the Text Aggregator output shows a single bundle with one long string containing one formatted line per task.
Common mistake — If a task has no assignee in Wrike, `responsibles[].name` outputs an empty string. The line still appears but looks incomplete. Add an `if(isEmpty(1.responsibles[].name); 'Unassigned'; 1.responsibles[].name)` formula to handle this.
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
6

Canvas > Right-click Schedule module > Add Router > + (second path) > Wrike > Search Tasks

Add an overdue task filter and second Wrike query

You probably want to call out overdue tasks separately from upcoming ones — they need more attention in standup. Add a second Wrike Search Tasks module after the Schedule trigger using a Router. Set this module to filter for Status 'In Progress' AND Due Date less than today using now. Run this in parallel with your first query so both results feed into the final message independently.

  1. 1Right-click the connection line between Schedule and Wrike Search Tasks
  2. 2Select 'Add a router'
  3. 3On the second router path, click '+' and add another Wrike Search Tasks module
  4. 4Set the same project folder ID
  5. 5Set Due Date filter to 'Less than' and enter now
What you should see: Your canvas now shows a router with two paths — one fetching upcoming tasks (due in 7 days), one fetching overdue tasks (due before today). Each path has its own Text Aggregator.
Common mistake — Filters are the most common place setups break. Double-check the field name and value exactly match what your app sends — a single capital letter difference will block everything.
7

Canvas > + (after both aggregators) > Built-in > Text Aggregator

Merge both aggregated strings with a second Text Aggregator

After both paths produce their aggregated strings, add a final Text Aggregator that receives output from both aggregators. Use this module to build the full Slack message with section headers. Structure it as: *🔴 Overdue*\n{{overdue_text}}\n\n*📅 Due This Week*\n{{upcoming_text}}. This creates the complete message body in a single variable you'll pass to Slack. Map overdue output first so it gets team attention at the top.

  1. 1Add a new Text Aggregator after both parallel paths converge
  2. 2In the Text field, type the header: *🔴 Overdue*\n
  3. 3Map the overdue aggregator's output text bundle
  4. 4Add \n\n*📅 Due This Week*\n as a separator
  5. 5Map the upcoming aggregator's output text bundle
What you should see: The final Text Aggregator produces one clean string with two labeled sections ready to paste into Slack.
Common mistake — If the overdue query returns zero tasks, the 'Overdue' section header still posts with nothing under it. Wrap it with `if(isEmpty(overdueText); ''; '*🔴 Overdue*\n' & overdueText & '\n\n')` to suppress empty sections.
8

Canvas > + > Slack > Create a Message

Connect your Slack account and choose the channel

Add a Slack module after the final Text Aggregator. Choose 'Create a Message' as the action. Authorize your Slack workspace via OAuth if not already connected. In the Channel field, type the channel name where you want standups posted — for example, #eng-standup. Make resolves channel names automatically, but you can also use the channel ID for reliability.

  1. 1Click '+' after the final Text Aggregator
  2. 2Search 'Slack' and select it
  3. 3Choose 'Create a Message'
  4. 4Click 'Add' next to Connection and authorize via Slack OAuth
  5. 5In the Channel field, type your channel name or paste the Slack channel ID
What you should see: You see a Slack module with a green connection indicator and the channel field populated. The Text field is ready to receive your message.
Common mistake — The Slack OAuth scope must include `chat:write` and `channels:read`. If you authorized Make's Slack app before these scopes existed in your workspace settings, you'll get a `missing_scope` error — re-authorize from scratch.
Make settings
Connection
Choose a connection…Add
click Add
Slack
Log in to authorize
Authorize Make
popup window
Connected
green checkmark
9

Slack Create a Message Module > Text / Blocks

Build the Slack message with Block Kit formatting

In the Slack Create a Message module, map the final aggregated text into the 'Text' field. For better formatting, enable 'Use Block Kit' if the module supports it. Prefix the message with a date header: *📋 Daily Standup — {{formatDate(now; 'dddd, MMM D')}}*\n followed by the aggregated task string. Set 'As User' to true so the message posts under the connected bot name rather than a generic Slack app label.

  1. 1In the Text field, type: *📋 Daily Standup — then map formatDate(now; 'dddd, MMM D') then *
  2. 2Add a newline then map the final aggregated message string
  3. 3Set 'As User' toggle to 'Yes'
  4. 4Leave 'Thread Timestamp' empty unless you want replies threaded
  5. 5Set 'Reply Broadcast' to 'No'
What you should see: Your Text field shows a preview like: *📋 Daily Standup — Monday, Jan 13*\n🔴 Overdue\n• Task Name — Due: Jan 10 — Sarah Chen
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 > Bottom Toolbar > Run once

Test the full scenario end-to-end

Click 'Run once' in the bottom toolbar to fire the scenario manually without waiting for the schedule. Watch each module execute in sequence — Make highlights them green as they complete. Check the output of each module by clicking the bubble that appears above it. Confirm the Slack message lands in your channel with the correct data before activating the schedule.

  1. 1Click 'Run once' in the bottom toolbar
  2. 2Watch each module light up green as it executes
  3. 3Click the output bubble above the Wrike module to verify tasks are returned
  4. 4Click the output bubble above the final Slack module to see the message payload
  5. 5Open Slack and confirm the message appears in the correct channel
What you should see: A formatted standup message appears in your Slack channel. All task names, due dates, and assignees match what's in Wrike. No errors show in Make's execution log.
Common mistake — If Wrike returns zero tasks during your test (e.g., no in-progress tasks right now), the Slack message still posts but with empty sections. Create a test task in Wrike first so you can verify the formatting is correct.
Make
▶ Run once
executed
Slack
Wrike
Wrike
🔔 notification
received
11

Canvas > Bottom Left > Activate scenario toggle

Activate the scenario and confirm scheduling

Click the blue 'Activate scenario' toggle in the bottom left of the canvas. The toggle turns green and Make shows the next scheduled run time. You can verify this by clicking 'Schedule' on the scenario detail page — it lists past runs and the upcoming trigger time. Set up email notifications for scenario errors in Make's notification settings so you hear about failures before your team notices a missing standup.

  1. 1Click the grey toggle labeled 'Inactive' in the bottom left
  2. 2Confirm the toggle turns green and reads 'Active'
  3. 3Click the scenario name in the breadcrumb to go to scenario detail
  4. 4Confirm the 'Next run' timestamp matches your intended schedule
  5. 5Go to Account Settings > Notifications and enable error alerts via email
What you should see: The scenario status shows 'Active' with a green indicator. The next scheduled run timestamp is correct. You'll receive an email if any future run fails.

Paste this formula into the Text Aggregator's Text field to build a richer per-task line that includes priority emoji, completion percentage, and a clickable link. The `if()` and `substring()` calls handle missing fields so the message never breaks on incomplete Wrike tasks.

JavaScript — Custom Function{{if(
▸ Show code
{{if(
  1.priority = "High";
  "🔴";

... expand to see full code

{{if(
  1.priority = "High";
  "🔴";
  if(
    1.priority = "Normal";
    "🟡";
    "⚪"
  )
)}} • {{1.title}}
   Due: {{formatDate(1.dueDate; "MMM D, YYYY")}}
   Assigned to: {{if(isEmpty(1.responsibles[].name); "Unassigned"; 1.responsibles[].name)}}
   Progress: {{if(isEmpty(1.completionPercent); "0"; 1.completionPercent)}}%
   🔗 {{if(isEmpty(1.permalink); "No link"; substring(1.permalink; 0; 80))}}

Scaling Beyond More than 100 in-progress tasks per project+ Records

If your volume exceeds More than 100 in-progress tasks per project records, apply these adjustments.

1

Narrow filters before pagination

Wrike's Search Tasks API caps results at 100 per call. Before adding pagination logic, tighten your filters — limit to tasks due within 3 days or only High priority. Most standups don't need 80+ tasks listed. A message with 50 items is unreadable anyway.

2

Split by project folder, not one giant query

Instead of querying at the space level, run separate Wrike Search Tasks modules per folder. Each call returns up to 100 tasks for that folder. This also lets you label sections by project in the Slack message, which is more useful than one undifferentiated wall of tasks.

3

Watch Make operation count at high task volumes

Each Wrike task returned counts as one Make operation through the iterator and aggregator. At 80 tasks per run and 22 runs per month, you're at 1,760 operations just for task processing — before auth calls and Slack posts. On Make's Core plan (10,000 ops/month), you have headroom. On the free tier (1,000 ops/month), you'll hit the ceiling in week one.

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 wants a scheduled digest with conditional formatting and multi-project routing without writing a single line of server code. Make's visual Router module lets you pull from three Wrike projects simultaneously, aggregate them into separate sections, and post to different Slack channels — all in one scenario. The Text Aggregator is the specific feature that makes this clean: it loops over all returned tasks and collapses them into one string automatically, which is exactly what a standup formatter needs. The one scenario where you'd skip Make: if your team already lives in Microsoft 365 and wants standup summaries sent via Teams instead of Slack — Power Automate handles that natively with no extra connectors.

Cost

The math on cost is straightforward. Each scenario run uses roughly 20–25 Make operations: 2 for the scheduler and router, up to 10 for Wrike task records, 3 for aggregators, 1 for Slack. At 22 weekday runs per month, that's 440–550 operations. Make's free tier allows 1,000 ops/month, so a single-project standup fits in free. Add a second project and you're at 880–1,100 ops — just over the free cap. Make's Core plan at $10.59/month gives you 10,000 ops, which covers 18+ projects with room to spare. Zapier charges $29.99/month for the equivalent multi-step workflow, so Make is 65% cheaper here.

Tradeoffs

Zapier has one real edge: its Wrike integration is simpler to configure for non-technical users, and the trigger setup takes about 4 minutes vs. Make's 12–15 for the full scenario with aggregators. n8n beats Make on customization — you can write JavaScript directly in the node to build exactly the Slack Block Kit JSON you want, which Make's formula syntax can't fully replicate for complex layouts. Power Automate wins if your Wrike data lives alongside SharePoint or Planner, since it can pull from both in one flow without separate API calls. Pipedream is faster to iterate on if you're comfortable with Node.js and want to version-control your standup logic in GitHub. Make is still the right call here because it hits the middle ground: more powerful than Zapier for multi-path routing, more visual than Pipedream for non-developers, and cheaper than both for this specific volume.

Three things you'll hit after setup. First, Wrike's API returns assignees as an array of user objects — if a task has multiple assignees, your formula needs to handle the array join or it only shows the first person. Use join(map(1.responsibles; name); ', ') in Make's formula editor. Second, Slack's message length limit is 4,000 characters per block. If your project has 60+ tasks, the aggregated string will be truncated silently — the message just cuts off with no error. Cap your Wrike results at 30 tasks and add '…and X more' by counting the result set. Third, Make's Schedule trigger fires based on when you first activated the scenario, not a fixed clock time. If you activate at 8:47 AM, it fires at 8:47 AM daily — not 8:45. Set the exact time in the Schedule module's 'Time' field to override this.

Ideas for what to build next

  • Add a Weekly Summary VariantClone the scenario and change the Schedule module to run only on Fridays. Expand the Wrike filter to pull tasks completed that week using the completedDate field, so the Friday post acts as a week-in-review rather than a standup.
  • Route Summaries to Multiple Channels by ProjectAdd a Router after the Schedule trigger with one path per Wrike project, each posting to a different Slack channel. A product team gets #product-standup and the engineering team gets #eng-standup — same scenario, different filters and destinations.
  • Add Error Alerting to a Separate Slack ChannelCreate a Make error handler path that catches any Wrike API or Slack posting failure and sends a direct message to the team lead in Slack. Without this, a broken scenario just silently skips the post and nobody knows until standup starts.

Related guides

Was this guide helpful?
Slack + Wrike overviewMake profile →