Intermediate~15 min setupCommunication & Project ManagementVerified April 2026
Slack logo
Wrike logo

How to Post Wrike Standup Summaries to Slack with Power Automate

A scheduled Power Automate flow pulls active task data from Wrike each morning, formats a project status summary, and posts it to a designated Slack channel before your team's standup.

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

Best for

Teams already inside the Microsoft 365 ecosystem who manage projects in Wrike and want a daily Slack digest without anyone manually writing it.

Not ideal for

Teams that need real-time task alerts rather than a once-daily digest — use Zapier's Wrike webhook trigger for that instead.

Sync type

scheduled

Use case type

notification

Real-World Example

💡

A 22-person product team at a SaaS company runs sprints in Wrike and coordinates in Slack. Before this flow, the project manager spent 10-15 minutes each morning copying task statuses into a #standup Slack message. Now the flow fires at 8:45 AM, pulls all tasks due within 48 hours, and posts a formatted summary to #product-standup before anyone opens their laptop. The PM reclaimed 45 minutes per week.

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

Wrike account on a Professional, Business, or Enterprise plan — API access is not available on free Wrike plans
Wrike folder ID for the target project — extract from the folder URL in your browser (the IEAA... string)
Slack workspace admin rights or permission to install third-party apps — needed to authorize the Power Automate Slack connector
Microsoft 365 account with Power Automate access — a Microsoft 365 Business Basic plan or higher is sufficient
Target Slack channel already created — the channel must exist before the flow runs or the post action will fail

Field Mapping

Map these fields between your apps.

FieldAPI Name
Required
Task Titletitle
Task Statusstatus
Due DatedueDate
5 optional fields▸ show
Assignee IDsresponsibleIds
Task Permalinkpermalink
Project / Folder NameparentIds
Task Descriptiondescription
Priorityimportance

Step-by-Step Setup

1

make.powerautomate.com > My flows > + New flow > Scheduled cloud flow

Create a new Scheduled cloud flow

Go to make.powerautomate.com and sign in with your Microsoft 365 account. From the left sidebar, click 'My flows', then click '+ New flow' at the top of the page. Select 'Scheduled cloud flow' from the dropdown — this is the correct type because the standup summary should fire on a fixed daily schedule, not in response to an event. Give the flow a name like 'Wrike Daily Standup to Slack'.

  1. 1Click 'My flows' in the left sidebar
  2. 2Click '+ New flow' near the top right of the page
  3. 3Select 'Scheduled cloud flow' from the menu
  4. 4Enter a name: 'Wrike Daily Standup to Slack'
  5. 5Set the start time to your desired first run (e.g., 8:45 AM) and set 'Repeat every' to 1 Day
What you should see: You should land on the flow canvas with a single 'Recurrence' trigger block already placed at the top showing your configured time and interval.
Common mistake — Power Automate schedules run in UTC by default. If your team is in US/Eastern, 8:45 AM local time means setting the trigger to 13:45 UTC. Get this wrong once and the summary posts at 3 AM.
2

Flow canvas > + New step > Search 'Wrike' > Get tasks > Sign in

Connect your Wrike account

Click '+ New step' below the Recurrence trigger. In the action search bar, type 'Wrike' and select the Wrike connector. Choose the action 'Get tasks' (or 'Search tasks' depending on your connector version). Power Automate will prompt you to create a new Wrike connection — click 'Sign in' and authenticate with your Wrike credentials in the popup window. The connection is saved globally and reused in future steps.

  1. 1Click '+ New step' under the Recurrence trigger
  2. 2Type 'Wrike' in the search bar and press Enter
  3. 3Select the Wrike connector from the results
  4. 4Click 'Get tasks' action
  5. 5Click 'Sign in' and complete Wrike OAuth in the popup window
What you should see: The Wrike action block should show your account email and display parameter fields like 'Folder ID', 'Status', and 'Due date' below the connection badge.
Common mistake — The Wrike connector in Power Automate requires a Wrike account with API access enabled. Free Wrike plans do not expose the API. Confirm your plan before building.
Power Automate settings
Connection
Choose a connection…Add
click Add
Slack
Log in to authorize
Authorize Power Automate
popup window
Connected
green checkmark
3

Flow canvas > Get tasks action > Folder ID field / Status field / Due Date field

Filter tasks by folder and due date

Inside the 'Get tasks' action, you need to scope the query so you only pull relevant tasks — not every task in your entire Wrike account. Set the 'Folder ID' field to the ID of your target project or folder (find this in Wrike under the folder's URL). Set 'Status' to 'Active' and configure the due date range to pull tasks due in the next 48 hours. Use Power Automate's expression editor to set the due date dynamically using the formula: addDays(utcNow(), 2).

  1. 1Click inside the 'Folder ID' field and paste your Wrike folder ID
  2. 2Set the 'Status' dropdown to 'Active'
  3. 3Click inside the 'Due Date Before' field and switch to the Expression tab
  4. 4Enter: addDays(utcNow(), 2) and click OK
  5. 5Leave 'Due Date After' set to utcNow() to capture tasks due between now and 48 hours from now
What you should see: The action block should show your Folder ID, Status as Active, and both due date fields populated with expressions rather than hardcoded dates.
Common mistake — Wrike folder IDs are not displayed by default in the UI — you have to extract them from the URL. Open the folder in Wrike, look at the browser URL, and copy the alphanumeric string after /open/. It starts with 'IEAA'.
Slack
SL
trigger
filter
Condition
matches criteria?
yes — passes through
no — skipped
Wrike
WR
notified
4

Flow canvas > + New step > Data Operations > Parse JSON

Parse the Wrike task response

The Wrike 'Get tasks' action returns a JSON array of task objects. You need to parse this so later steps can reference individual fields. Add a new step and search for 'Parse JSON'. In the 'Content' field, insert the 'Body' dynamic value from the Wrike step. Click 'Generate from sample' and paste a sample Wrike task response — this tells Power Automate the schema so it can surface field names like title, status, dueDate, and assignee as dynamic values downstream.

  1. 1Click '+ New step'
  2. 2Search for 'Parse JSON' under Data Operations
  3. 3In the 'Content' field, select 'Body' from the Wrike dynamic values panel
  4. 4Click 'Generate from sample'
  5. 5Paste a raw Wrike task JSON response and click 'Done'
What you should see: The Parse JSON block should show a Schema field populated with field names including 'data', 'title', 'status', 'dueDate', and 'responsibleIds'. These will appear as selectable dynamic values in later steps.
Common mistake — If the Wrike response wraps tasks inside a 'data' array (it does), your schema must reflect that nesting. If you generate the schema from a response that has only one task, multi-task responses may cause type errors at runtime. Use a sample with at least 2 tasks.
5

Flow canvas > + New step > Variables > Initialize variable

Initialize a variable to build the message string

Before looping through tasks, you need a variable to accumulate the message text. Add a new step, search for 'Initialize variable', and create a String variable named 'StandupMessage'. Set its initial value to a header string like '*Daily Standup Summary — @{formatDateTime(utcNow(), 'dddd, MMM d')}*\n'. This gives every Slack message a date-stamped header automatically.

  1. 1Click '+ New step'
  2. 2Search 'Initialize variable' and select it
  3. 3Set Name to: StandupMessage
  4. 4Set Type to: String
  5. 5In the Value field, type your header using the expression: concat('*Daily Standup — ', formatDateTime(utcNow(), 'dddd, MMM d'), '*', decodeUriComponent('%0A'))
What you should see: A variable block appears on the canvas showing Name: StandupMessage, Type: String, and the header expression in the Value field.
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.
6

Flow canvas > + New step > Control > Apply to each

Loop through tasks and append each to the message

Add an 'Apply to each' control action. Set the 'Select an output from previous steps' field to the parsed task array from your Parse JSON step — specifically the 'data' array. Inside the loop, add an 'Append to string variable' action targeting StandupMessage. Write a template that formats each task as a single line, e.g.: • [task title] — Due: [dueDate] — Status: [status]. Use dynamic values from the Parse JSON output to fill each field.

  1. 1Click '+ New step' and select 'Control' > 'Apply to each'
  2. 2In the input field, select the 'data' array from Parse JSON dynamic values
  3. 3Click 'Add an action' inside the loop
  4. 4Search 'Append to string variable' and select it
  5. 5Set Name to StandupMessage and build the Value with task dynamic fields: title, dueDate, status
What you should see: The canvas shows an Apply to each block containing an Append to string variable action. The Value field should show a mixed expression with bullet text and dynamic field references.
Common mistake — The 'dueDate' field from Wrike is returned as a Unix timestamp or ISO 8601 string depending on your connector version. If you see a raw number in test output, wrap it in formatDateTime() before appending it to the message.
7

Flow canvas > + New step > Control > Condition

Add a condition for empty task lists

After the loop, add a 'Condition' control to check whether StandupMessage still only contains the header (meaning no tasks were found). Use the expression length(variables('StandupMessage')) and compare it to the character count of your header string. If true (no tasks), set a separate string like 'No tasks due in the next 48 hours. Great shape!' to post instead. This prevents an empty-looking Slack message on low-activity days.

  1. 1Click '+ New step' and select 'Control' > 'Condition'
  2. 2In the left field, use Expression: length(variables('StandupMessage'))
  3. 3Set the operator to 'is less than or equal to'
  4. 4In the right field, enter the character count of your header string only (count the header characters manually)
  5. 5In the 'If yes' branch, add 'Set variable' to override StandupMessage with your fallback text
What you should see: A Condition block with two branches appears. The 'If yes' branch has a Set variable action. The 'If no' branch is empty and passes through to the Slack step.
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.
8

Flow canvas > + New step > Search 'Slack' > Post message > Sign in

Connect your Slack account

After the condition block, add a new step on both branches (or after merging) and search for 'Slack' in the action picker. Select 'Post message' action. Power Automate will prompt you to create a Slack connection — click 'Sign in' and authorize the Power Automate app in your Slack workspace in the OAuth popup. You need to be a Slack admin or have permission to install apps into the workspace.

  1. 1Click '+ New step' after the condition block
  2. 2Type 'Slack' in the search bar and press Enter
  3. 3Select the Slack connector
  4. 4Choose 'Post message' action
  5. 5Click 'Sign in' and authorize Power Automate in the Slack OAuth popup
What you should see: The Slack action block should show your workspace name in the connection badge and display the 'Channel Name' and 'Message Text' fields ready to fill.
Common mistake — Power Automate's Slack connector posts as the OAuth app identity, not as a bot with a custom name or icon. If you want a custom bot name like 'StandupBot', you need to route through the Slack API via an HTTP action instead — the native connector does not support this.
9

Flow canvas > Post message action > Channel Name / Message Text fields

Configure the Slack post with channel and message

In the 'Post message' action, set the 'Channel Name' to your standup channel (e.g., #product-standup). In the 'Message Text' field, select StandupMessage from the dynamic values panel — this inserts the full formatted summary you built in the loop. Do not hardcode the message text here; always reference the variable so the flow is reusable across days.

  1. 1Click the 'Channel Name' field and type or select your Slack channel (e.g., product-standup)
  2. 2Click the 'Message Text' field
  3. 3Open the dynamic values panel on the right
  4. 4Select 'StandupMessage' from the Variables section
  5. 5Leave all other fields at default unless you need threaded replies
What you should see: The Slack Post message block should show the channel name and StandupMessage variable as a blue dynamic value pill in the Message Text field.
Common mistake — Slack channel names in the Power Automate connector must be entered without the # symbol. Entering '#product-standup' may cause the action to fail with a 'channel_not_found' error.
message template
🔔 New Record: {{text}} {{user}}
channel: {{channel}}
ts: {{ts}}
#sales
🔔 New Record: Jane Smith
Company: Acme Corp
10

Flow canvas > Save > Test > Manually > Run flow

Test the flow with a manual run

Before enabling the schedule, run the flow manually to validate output. Click 'Save' in the top toolbar, then click 'Test' in the top right and select 'Manually'. Power Automate will execute the flow immediately and show each step's result in a green/red run detail view. Check the Parse JSON output to confirm tasks are being returned, check the StandupMessage variable value after the loop, and verify the Slack post appears in your channel.

  1. 1Click 'Save' in the top toolbar
  2. 2Click 'Test' in the top right corner
  3. 3Select 'Manually' and click 'Run flow'
  4. 4Watch each step turn green as it runs
  5. 5Check your Slack channel for the posted message within 30 seconds
What you should see: Every step should show a green checkmark. The Slack channel should contain a new message with today's date header and a bulleted list of tasks due in the next 48 hours.
Power Automate
▶ Test flow
executed
Slack
Wrike
Wrike
🔔 notification
received
11

make.powerautomate.com > My flows > [Flow name] > Run history

Enable the schedule and monitor run history

Once the manual test passes, the Recurrence trigger takes over automatically — no extra toggle is needed. The flow is live the moment it is saved and enabled. To monitor it, go to My flows, click the flow name, and scroll down to the 28-day run history. Check the first two scheduled runs to confirm the Slack messages look correct with real production data. Set up an email notification under 'Run-only users' if you want failure alerts.

  1. 1Go to My flows and click your flow name
  2. 2Scroll to the '28-day run history' section
  3. 3Click into the first scheduled run after it fires
  4. 4Confirm all steps show green and Slack message body looks correct
  5. 5Optionally click 'Edit' > 'Settings' on the Recurrence trigger to adjust timezone handling
What you should see: Run history shows a green row for each scheduled execution. Clicking into a run lets you expand each step and see exact input/output values including the final Slack message text.
Common mistake — Confirm your workflow timezone matches your business timezone — n8n uses the instance timezone by default. Also verify the workflow is saved and set to Active, since Schedule Triggers won't fire on inactive workflows.

This expression block goes inside the Apply to each loop in the 'Append to string variable' action's Value field. It formats the task title, due date, priority emoji, and a clickable Wrike permalink into a single Slack-compatible line with mrkdwn formatting. Replace 'Apply_to_each' with the exact name Power Automate assigns to your loop action if it differs.

JavaScript — Code Stepconcat(
▸ Show code
concat(
  if(
    equals(items('Apply_to_each')?['importance'], 'High'),

... expand to see full code

concat(
  if(
    equals(items('Apply_to_each')?['importance'], 'High'),
    '🔴 ',
    '⚪ '
  ),
  '*',
  items('Apply_to_each')?['title'],
  '*',
  ' — Due: ',
  formatDateTime(items('Apply_to_each')?['dueDate'], 'MMM d'),
  ' — ',
  items('Apply_to_each')?['importance'],
  ' | <',
  items('Apply_to_each')?['permalink'],
  '|View in Wrike>',
  decodeUriComponent('%0A')
)

Scaling Beyond 100+ tasks per Wrike folder query+ Records

If your volume exceeds 100+ tasks per Wrike folder query records, apply these adjustments.

1

Handle the 100-task API cap

The Power Automate Wrike connector defaults to returning 100 tasks maximum per query. If your folder has more than 100 active tasks, results are silently truncated. Add a filter for due date within 48 hours and status = Active to keep the result set well under 100 before the cap hits.

2

Split large projects into multiple folder queries

If you manage 5+ active Wrike projects, run a separate Get tasks action for each folder and append results to a shared array variable. This keeps each individual API call small and avoids hitting truncation limits on any single project.

3

Respect Wrike API rate limits

Wrike enforces a rate limit of approximately 600 requests per minute per account. A flow that runs 10 folder queries plus 20 user lookups per run is fine in isolation. If multiple Power Automate flows share the same Wrike connection, they share that limit. Add Delay actions between Wrike calls if you see throttling errors.

4

Keep Slack messages under 4,000 characters

Slack's API rejects messages longer than 4,000 characters in a single post. If your task list is long, add a length check on the StandupMessage variable before posting and split into two Slack messages if it exceeds 3,500 characters — leaving a buffer for safety.

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

Use Power Automate for this if your organization is already on Microsoft 365. The Wrike connector is pre-built and the Slack connector works out of the box — no custom API calls needed for the core use case. Power Automate also handles scheduled flows more reliably than free-tier Make, and the run history UI makes it easy for non-technical managers to see what happened. The one scenario where you'd pick something else: if your team needs real-time task alerts (not a daily digest), Zapier's Wrike 'New Task' trigger fires within 1-2 minutes and requires zero expression writing.

Cost

The cost math is straightforward. This flow uses approximately 5-7 actions per run (Recurrence, Get tasks, Parse JSON, Initialize variable, Apply to each with Append, Condition, Post message). At one run per day, that is roughly 210 actions per month. Power Automate's Microsoft 365 plan includes 6,000 actions per month per user — this workflow consumes less than 4% of that. If you are on the standalone Power Automate plan at $15/user/month, the flow costs essentially nothing extra. Make's free tier gives you 1,000 operations per month, which covers this workflow easily too, but Make costs $9/month to get reliable scheduling at 1-minute intervals. Power Automate wins on cost here if you already pay for Microsoft 365.

Tradeoffs

Make handles the text formatting step more elegantly — its built-in text aggregator module is purpose-built for this pattern and requires no variable initialization or expression writing. Zapier has a cleaner UI for non-technical users and the Wrike trigger setup takes half the time, but Zapier's Formatter step for building multi-line messages is clunkier than Power Automate's expressions. n8n gives you full JavaScript inside a Code node, making the message formatting trivial and the due date math flexible — it is the better choice if you want complex grouping logic across many projects. Pipedream's native Wrike + Slack integration is slicker for developers but adds cold start latency to scheduled workflows. Power Automate wins specifically when the team is Microsoft-native and nobody wants to learn a new tool.

Three things you will hit after setup. First, Wrike's dueDate field returns in ISO 8601 UTC format, but most teams set due dates without a specific time in Wrike — which means the time component is 00:00:00Z, and if your standup runs at 8 AM EST (13:00 UTC), tasks due 'today' may look like they're due 'yesterday' depending on how you format the comparison. Test your date filter expressions carefully against your actual timezone. Second, Power Automate's Slack connector does not support Slack Block Kit — you get plain text or basic mrkdwn only. If you want buttons, section dividers, or interactive elements in the standup message, you have to bypass the native connector and call Slack's API directly via an HTTP action with a JSON body. Third, if someone renames or archives the target Slack channel, the flow fails with a generic error that does not name the channel — you will spend time debugging a connection that looks healthy. Add the channel name to the flow description field so future maintainers can find it in 10 seconds.

Ideas for what to build next

  • Add a Weekly Digest VariantClone the flow and set the Recurrence to weekly (Monday mornings). Expand the due date window to 7 days and add a section header grouping tasks by Wrike folder so the weekly digest gives a fuller picture across all active projects.
  • Route Overdue Tasks to a Separate Slack ChannelAdd a Condition action before the Slack post that checks if any task's dueDate is before utcNow(). If overdue tasks exist, post a second targeted message to a #project-escalations channel so overdue items get separate visibility from upcoming ones.
  • Write Standup Replies Back to Wrike as CommentsAfter the Slack post, use the Slack 'Wait for reply' pattern (or a separate flow triggered by a Slack slash command) to collect team responses and write them back to Wrike tasks as comments — closing the loop so project history stays in Wrike, not only in Slack.

Related guides

Was this guide helpful?
Slack + Wrike overviewPower Automate profile →