

How to Post Wrike Standup Summaries to Slack with Zapier
A scheduled Zapier workflow pulls active task data from Wrike each morning and posts a formatted project status summary to a designated 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 of 5-20 people who track project work in Wrike and want a daily digest in Slack without anyone manually pulling status updates.
Not ideal for
Teams with 10+ active projects across multiple workspaces — Wrike's API returns one folder at a time, so you'd need separate Zaps per project or switch to Make's iterator module.
Sync type
scheduledUse case type
reportingReal-World Example
A 12-person product team at a B2B SaaS company uses this to post a morning digest to #product-standup at 8:45 AM every weekday. Before automation, a project manager spent 15 minutes each morning manually checking Wrike, copying task names and due dates, and pasting a formatted update into Slack. They missed overdue tasks regularly because they only checked the top-level view. The Zap pulls every task due within 48 hours from their Sprint folder and posts them as a structured Slack message with assignee names and status labels.
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
Before You Start
Make sure you have everything ready.
Field Mapping
Map these fields between your apps.
| Field | API Name | |
|---|---|---|
| Required | ||
| Task Title | ||
| Task Status | ||
| Due Date | ||
| Assignee Name | ||
| Slack Channel ID | ||
| Message Text | ||
4 optional fields▸ show
| Task Permalink | |
| Project / Folder Name | |
| Priority | |
| Bot Name |
Step-by-Step Setup
Zapier Dashboard > Create Zap > Trigger > Schedule by Zapier
Create a new Zap and set the Schedule trigger
Log into Zapier and click the orange 'Create Zap' button in the top left. On the trigger step, search for 'Schedule by Zapier' and select it from the app list. This built-in trigger fires at a time you define — no external service needed. You'll use this to kick off the Wrike data pull every weekday morning before your standup.
- 1Click 'Create Zap' in the top left of the Zapier dashboard
- 2In the trigger search box, type 'Schedule' and select 'Schedule by Zapier'
- 3Choose 'Every Day' or 'Every Week' as the event type
- 4Set the time to 8:45 AM in your team's local timezone
- 5Under 'Day of the Week', deselect Saturday and Sunday if you want weekdays only
Zap Editor > Action > App & Event > Wrike > Find Tasks
Connect your Wrike account
Add a new action step and search for 'Wrike' in the app picker. Select Wrike and choose the 'Find Tasks' action — this lets you query tasks by folder, status, or date range rather than just fetching a single record. Click 'Sign in to Wrike' and complete the OAuth flow in the popup window. You'll need to grant Zapier read access to your Wrike workspace.
- 1Click the '+' button below the Schedule trigger to add an action
- 2Search for 'Wrike' and select it from the app list
- 3Choose 'Find Tasks' as the action event
- 4Click 'Sign in to Wrike' and complete OAuth in the popup
- 5Once connected, click 'Continue' to proceed to configuration
Zap Editor > Wrike Action > Configure > Folder ID / Status / Due Date
Configure the Wrike task search parameters
In the Wrike 'Find Tasks' action, you'll configure which tasks Zapier fetches. Set the Folder ID to the sprint or project folder you want to report on. Set Status to 'Active' or leave it blank to include all statuses. Use the 'Due Date' field to filter for tasks due within the next 48 hours by using a dynamic date. Zapier's date formatting here is critical — Wrike expects ISO 8601 format like '2024-01-15T00:00:00Z'.
- 1Click the 'Folder ID' field and paste in your Wrike folder's ID (found in the folder's URL in Wrike)
- 2Set 'Status' to 'Active' to exclude completed tasks
- 3In 'Due Date (before)', click the field and use Zapier's built-in date formatter to set 'today + 2 days'
- 4Leave 'Assignee' blank unless you want to filter by a specific person
- 5Click 'Continue' to test this step
Zap Editor > + Add Action > Code by Zapier > Run JavaScript
Add a Code by Zapier step to format the task list
The Wrike 'Find Tasks' action returns raw data — task names, assignees, and due dates as separate fields for each task. You need to combine these into a single readable Slack message. Add a 'Code by Zapier' action and select 'Run JavaScript'. Paste in the formatting script from the Pro Tip section below. This step transforms the raw array of tasks into a bulleted text block ready for Slack.
- 1Click '+' to add a new action after the Wrike step
- 2Search for 'Code by Zapier' and select 'Run JavaScript'
- 3In the 'Input Data' section, map 'tasks' to the Wrike task output from the previous step
- 4Paste the formatting script into the 'Code' field
- 5Click 'Test step' to verify the output looks like a formatted Slack message
📬 New entry: {{1.name}}
Email: {{1.email}}
Details: {{1.description}}Paste this into the Code by Zapier 'Run JavaScript' step. Map the Wrike task array output to an input variable named 'tasks' in the Input Data section before running. The script handles both single-task objects and multi-task arrays, sorts by due date ascending, adds a priority emoji indicator, and outputs a single 'message' string ready to drop directly into the Slack message field.
JavaScript — Code Stepconst rawTasks = inputData.tasks;▸ Show code
const rawTasks = inputData.tasks;
const taskList = Array.isArray(rawTasks) ? rawTasks : [rawTasks];
const priorityEmoji = (p) => {... expand to see full code
const rawTasks = inputData.tasks;
const taskList = Array.isArray(rawTasks) ? rawTasks : [rawTasks];
const priorityEmoji = (p) => {
if (!p) return '⚪';
const lower = p.toLowerCase();
if (lower === 'high') return '🔴';
if (lower === 'normal') return '🟡';
return '⚪';
};
const formatDate = (isoString) => {
if (!isoString) return 'No due date';
const d = new Date(isoString);
return d.toLocaleDateString('en-US', { month: 'short', day: 'numeric' });
};
const sorted = taskList
.filter(t => t && t.title)
.sort((a, b) => {
const da = a.dueDate ? new Date(a.dueDate) : new Date('9999-12-31');
const db = b.dueDate ? new Date(b.dueDate) : new Date('9999-12-31');
return da - db;
});
if (sorted.length === 0) {
output = [{ message: '' }];
} else {
const lines = sorted.map(t => {
const emoji = priorityEmoji(t.priority);
const due = formatDate(t.dueDate);
const assignee = t.responsibleIds || 'Unassigned';
const link = t.permalink || '';
return `${emoji} ${t.title} — ${assignee} — Due: ${due}${link ? ' → ' + link : ''}`;
});
const message = lines.join('\n');
output = [{ message }];
}Zap Editor > + Add Action > Filter by Zapier > Only continue if...
Add a Filter step to skip weekends or empty results
Add a 'Filter by Zapier' action after the Code step. Set the condition to check whether the formatted message from the Code step contains any task entries. If Wrike returns zero tasks (e.g., nothing is due today), you don't want an empty Slack message posting. Set the filter to 'Only continue if message is not exactly empty string'. This prevents noisy blank posts on days with no active tasks.
- 1Click '+' to add a new action after the Code step
- 2Search for 'Filter by Zapier' and select it
- 3In the condition field, select the 'message' output from the Code step
- 4Set the condition to '(Text) Does not exactly match' and leave the value field blank
- 5Click 'Continue' — no test needed for filter steps
Zap Editor > + Add Action > Slack > Send Channel Message > Sign In
Connect your Slack account
Add a new action, search for Slack, and select 'Send Channel Message' as the event. Click 'Sign in to Slack' and complete the OAuth flow. Zapier will request permission to post messages to your workspace. You'll need to be a Slack workspace admin or have the admin pre-authorize the Zapier app — standard member accounts cannot authorize bot posting without admin approval in some workspace configurations.
- 1Click '+' to add a new action after the Filter step
- 2Search for 'Slack' and select 'Send Channel Message'
- 3Click 'Sign in to Slack' and authorize Zapier in the OAuth popup
- 4Select your workspace from the dropdown if you belong to multiple
- 5Click 'Continue' once the green checkmark appears next to your Slack account
Zap Editor > Slack Action > Configure > Channel / Message Text / Bot Name
Configure the Slack message content and channel
In the Slack action configuration, select the target channel from the dropdown — type the channel name to search if you have many. Set the 'Message Text' field by clicking into it and selecting the 'message' output from the Code by Zapier step. Add a static header line like '*📋 Morning Standup — Wrike Tasks Due Soon*' before the dynamic content so the message has context. Set 'Send as Bot' to Yes and give the bot a name like 'Standup Bot'.
- 1Click the 'Channel' dropdown and select your standup channel (e.g., #product-standup)
- 2Click into the 'Message Text' field and type your header line: '*📋 Morning Standup — Wrike Tasks Due Soon*'
- 3Press Enter, then click the '+' insert button to add the 'message' output from the Code step
- 4Set 'Send as Bot' to 'Yes'
- 5Set 'Bot Name' to 'Standup Bot' and optionally set a Bot Icon emoji like ':clipboard:'
📬 New entry: {{1.name}}
Email: {{1.email}}
Details: {{1.description}}Zap Editor > Slack Action > Test Step > Check Slack Channel
Test the full Zap end to end
Click 'Test step' on the Slack action. Zapier will attempt to post a real message to your selected Slack channel using the sample data from the Wrike step. Go to Slack and confirm the message actually appeared in the channel — do not rely solely on Zapier's 'Success' confirmation, which only tells you the API accepted the request, not that the message is visible. Check the formatting looks correct and the task list is readable.
- 1Click 'Test step' on the Slack action panel
- 2Wait 10-15 seconds, then open Slack
- 3Navigate to your target channel and look for the test message
- 4Verify the task names, assignees, and due dates render correctly
- 5If the message looks garbled, go back to the Code step and adjust the formatting script
Zap Editor > Publish > Zap Detail Page > Run Zap / Task History
Turn on the Zap and verify the first scheduled run
Click 'Publish' in the top right of the Zap editor to activate the Zap. Zapier will now wait until the scheduled time to run. To confirm it works before waiting overnight, go to the Zap's detail page and click 'Run Zap' to trigger it manually. Check Zapier's task history after 2-3 minutes to confirm all steps passed. If the Code step shows a warning icon, the JavaScript threw an error — click the step to see the error message.
- 1Click the 'Publish' button in the top right corner of the Zap editor
- 2On the Zap detail page, click 'Run Zap' to trigger a manual test run
- 3Wait 2-3 minutes, then click 'Task History' in the left sidebar
- 4Click on the most recent task entry and check each step for a green checkmark
- 5If any step shows a yellow warning or red error, click it to read the error details
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 Zapier for this if your team needs the standup live within 30 days and nobody on the team writes code regularly. The Schedule trigger plus Code by Zapier covers the hard parts — time-based firing and text formatting — without leaving the Zapier UI. Setup takes under an hour. The one scenario where you'd skip Zapier: if you're posting summaries for more than 5 separate projects to different channels. That's 5+ Zaps, which gets messy fast. Make handles that with a single scenario using an iterator and a router.
The cost math is simple. Each weekday run consumes 4 Zapier tasks (Code step, Filter step, Slack step, plus the Schedule trigger itself). At 22 working days per month, that's 88 tasks. Zapier's Starter plan costs $19.99/month and includes 750 tasks — so this workflow alone uses about 12% of your monthly budget. If you're already running other Zaps, audit your task count before adding this. Make's equivalent scenario runs for free up to 1,000 operations per month, which would cover this workflow with room to spare.
Make does one thing better here: its Wrike module supports pagination, so if your folder has more than 100 tasks it fetches all of them automatically. Zapier hard-caps at 100 tasks per Find Tasks call with no workaround. n8n gives you full control over the message format with its Function node and no task limits, but requires self-hosting or n8n Cloud at $20/month. Power Automate has a native Wrike connector in the premium tier, but the scheduled recurrence trigger has a minimum 1-minute interval and the Wrike connector costs extra on top of your Microsoft 365 license. Pipedream is the best pure-code option — it can hit Wrike's REST API directly, handle pagination, and post to Slack in a single Node.js step — but it has no visual builder, so it's only worth it if your team is already comfortable with JavaScript. Zapier wins here because the no-code path is genuinely complete for teams under 100 tasks per folder, and the Code step handles the one non-trivial part (text formatting) without leaving the platform.
Three things you will hit after a week in production. First, Wrike's 'Find Tasks' API call in Zapier does not support filtering by custom fields — if your workflow uses Wrike custom statuses or custom date fields, the standard action won't see them. You'll need to use Zapier's webhook action to hit Wrike's REST API directly and handle the response in Code by Zapier. Second, Slack's block kit formatting (the rich layout with dividers and buttons) is not available through Zapier's Send Channel Message action — it only supports basic mrkdwn text. If you want a formatted card-style message, you need to use Zapier's POST webhook action to hit Slack's chat.postMessage endpoint with a blocks payload. Third, if your Wrike workspace is on EU data residency, the API base URL is different (app-eu.wrike.com instead of app.wrike.com) and Zapier's standard Wrike app may not route to the correct endpoint — test with a manual API call before assuming the integration will work.
Ideas for what to build next
- →Add a Weekly Summary Digest — Create a second Zap on the same pattern but scheduled for Friday at 4 PM that pulls all tasks completed that week from Wrike and posts a 'What we shipped' summary to a #wins Slack channel. Use the Wrike 'Find Tasks' status filter set to 'Completed' with a date range of the past 7 days.
- →Route Overdue Tasks to a Separate Alert Channel — Add a parallel Zap that runs 30 minutes after the standup post, checks Wrike for tasks where due date is before today and status is still Active, and posts them to a #overdue-alerts channel with @mentions to the assignees. This separates urgent escalations from the general standup noise.
- →Write Slack Standup Replies Back to Wrike — Use a second Zap triggered by new messages in your standup Slack channel to parse replies and create Wrike comments on the relevant task. This creates a two-way audit trail — your Wrike tasks accumulate standup notes over time without anyone switching tools.
Related guides
How to Share Notion Meeting Notes to Slack with Pipedream
~15 min setup
How to Share Notion Meeting Notes to Slack with Power Automate
~15 min setup
How to Share Notion Meeting Notes to Slack with n8n
~20 min setup
How to Send Notion Meeting Notes to Slack with Zapier
~8 min setup
How to Share Notion Meeting Notes to Slack with Make
~12 min setup
How to Create Notion Tasks from Slack with Pipedream
~15 min setup