

How to Send Wrike Milestone Alerts to Slack with Power Automate
When a milestone task in Wrike is marked complete, Power Automate fires a celebratory message to a designated Slack channel with the milestone name, project, and completer.
Steps and UI details are based on platform versions at time of writing — check each platform for the latest interface.
Best for
Microsoft 365 teams already using Power Automate who want automated morale boosts in Slack when Wrike milestones close without buying extra tools.
Not ideal for
Teams needing sub-minute notification speed — Power Automate polls Wrike every 1–5 minutes, so very time-sensitive alerts should use Make with a Wrike webhook instead.
Sync type
real-timeUse case type
notificationReal-World Example
A 22-person product team at a B2B SaaS company tracks quarterly launch phases in Wrike, each phase capped with a milestone task. Before this flow, team leads had to remember to post manually in #product-wins — which happened maybe half the time. Now every milestone completion drops a formatted Slack message into the channel within 3 minutes, including the milestone name, the person who closed it, and a link back to the Wrike task.
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
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.
Field Mapping
Map these fields between your apps.
| Field | API Name | |
|---|---|---|
| Required | ||
| Task ID | id | |
| Task Title | title | |
| Task Type | type | |
| Permalink | permalink | |
| Slack Channel Name | ||
5 optional fields▸ show
| Responsible IDs | responsibleIds |
| Completed Date | completedDate |
| Parent Folder/Project Name | parentIds |
| User First Name | firstName |
| User Last Name | lastName |
Step-by-Step Setup
make.powerautomate.com > My flows > + New flow > Automated cloud flow
Open Power Automate and create a new Automated cloud flow
Go to make.powerautomate.com and sign in with your Microsoft 365 account. In the left sidebar, click 'My flows', then click '+ New flow' at the top left. From the dropdown, select 'Automated cloud flow'. Give the flow a name like 'Wrike Milestone → Slack Celebration'. You will be prompted to choose a trigger — search for 'Wrike' in the trigger search box.
- 1Click 'My flows' in the left sidebar
- 2Click '+ New flow' in the top-left corner
- 3Select 'Automated cloud flow' from the dropdown
- 4Type a name: 'Wrike Milestone → Slack Celebration'
- 5In the trigger search box, type 'Wrike' and press Enter
Flow canvas > Trigger picker > Wrike > When a task is completed
Set the Wrike trigger to 'When a task is completed'
From the Wrike trigger options, select 'When a task is completed'. This trigger polls the Wrike API on a schedule (default every 3 minutes) and fires when any task status changes to completed. You will be prompted to sign in to Wrike — click 'Sign in' and authorize Power Automate with your Wrike credentials in the popup.
- 1Click 'When a task is completed' from the Wrike trigger list
- 2Click 'Sign in' in the connection dialog
- 3Authorize Power Automate in the Wrike OAuth popup that opens
- 4Confirm the connection shows your Wrike account name
Flow canvas > Wrike trigger card > Folder ID field
Configure folder or project scope in the trigger
Inside the trigger card, look for the 'Folder ID' field. Set this to the specific Wrike folder or project that contains your milestones. You can find the Folder ID in Wrike by opening the project, clicking the three-dot menu, and selecting 'Copy link' — the ID is the alphanumeric string after '/folders/' in the URL. Scoping the trigger to one folder dramatically reduces noise and unnecessary API calls.
- 1Open the Wrike trigger card by clicking on it
- 2Click the 'Folder ID' input field
- 3Paste the Folder ID from your Wrike project URL
- 4Leave 'Status' blank — you will filter by task type next, not status
Flow canvas > + New step > Control > Condition
Add a Condition action to filter milestone tasks only
Click '+ New step' below the trigger. Search for 'Condition' and select the built-in Condition control action. This is where you filter so only milestone-type tasks proceed. In Wrike, milestone tasks have a specific task type field value. In the left side of the condition, click 'Choose a value', select 'Dynamic content', and pick 'Task Type' from the Wrike trigger output. Set the operator to 'is equal to' and type 'Milestone' on the right.
- 1Click '+ New step'
- 2Search for 'Condition' and select 'Control - Condition'
- 3Click 'Choose a value' on the left side of the condition row
- 4Select 'Dynamic content' then pick 'Task Type' from the Wrike outputs
- 5Set operator to 'is equal to' and type 'Milestone' on the right
Flow canvas > Condition > If yes branch > Add an action > Wrike > Get task
Add a 'Get task' action to retrieve full milestone details
Inside the 'If yes' branch of the Condition, click 'Add an action'. Search for 'Wrike' and select 'Get task'. This action fetches the complete task record so you have access to fields like description, assignees, and custom fields that the trigger output alone does not include. In the 'Task ID' field, use the dynamic content picker to select 'Task ID' from the trigger output.
- 1Click 'Add an action' inside the 'If yes' branch
- 2Search 'Wrike' and select 'Get task'
- 3Click the 'Task ID' field and select 'Task ID' from dynamic content
- 4Leave all other fields at default
Flow canvas > If yes branch > Add an action > Wrike > Get user
Add a 'Get user' action to resolve the assignee name
Still inside the 'If yes' branch, click 'Add an action' and search for 'Wrike'. Select 'Get user'. In the 'User ID' field, use dynamic content to pick 'Responsible IDs' from the 'Get task' output. This resolves the user ID to a readable name so your Slack message says 'Completed by Sarah Chen' instead of displaying a raw ID string like 'KUABC123'. If a milestone has multiple assignees, this step returns the first in the array.
- 1Click 'Add an action' below 'Get task'
- 2Search 'Wrike' and select 'Get user'
- 3Click 'User ID' and pick 'Responsible IDs Item' from the 'Get task' dynamic content
- 4Save the action
Paste this expression into a 'Compose' action placed between 'Get task' and the Slack 'Post message' action. It formats the completed date from ISO 8601 into a readable string and builds a fallback name when no assignee is present. Reference the Compose output as 'Outputs('Format_Milestone_Message')' in the Slack message body.
JavaScript — Code Step// Power Automate Expression — paste into a Compose action input▸ Show code
// Power Automate Expression — paste into a Compose action input // Builds the full Slack message string with safe fallbacks concat(
... expand to see full code
// Power Automate Expression — paste into a Compose action input
// Builds the full Slack message string with safe fallbacks
concat(
'🏁 Milestone complete: ',
triggerOutputs()?['body/title'],
' — finished by ',
if(
empty(outputs('Get_user')?['body/firstName']),
'Unassigned',
concat(
outputs('Get_user')?['body/firstName'],
' ',
outputs('Get_user')?['body/lastName']
)
),
' on ',
formatDateTime(outputs('Get_task')?['body/completedDate'], 'MMMM d, yyyy'),
'. View it here: ',
outputs('Get_task')?['body/permalink']
)Flow canvas > If yes branch > Add an action > Slack > Post message
Connect your Slack account
Click 'Add an action' below 'Get user'. Search for 'Slack' and select 'Post message'. If you have not connected Slack before, Power Automate will prompt you to sign in. Click 'Sign in' and authorize the Slack app in the OAuth popup — make sure you are authorizing with a Slack account that has permission to post in the target channel. The Slack connection is stored under 'Connections' in the left sidebar for reuse.
- 1Click 'Add an action' below 'Get user'
- 2Search 'Slack' and select 'Post message (V2)' — prefer V2 over the legacy version
- 3Click 'Sign in' when prompted
- 4Authorize Power Automate in the Slack OAuth popup
- 5Confirm your Slack workspace name appears in the connection dropdown
Flow canvas > Slack Post message card > Channel Name + Message Text fields
Configure the Slack message with milestone details
In the 'Post message' action, set the 'Channel Name' to your celebrations channel (e.g. #team-wins). In the 'Message Text' field, build the message using dynamic content tokens: Task Title, project/folder name, and the user's first and last name from the 'Get user' step. Write something direct — avoid emoji overload. You can also add a 'Link' field pointing to the Wrike task URL so the team can open the milestone in one click.
- 1Type or select your Slack channel in the 'Channel Name' field (e.g. #team-wins)
- 2Click the 'Message Text' field
- 3Type your message and insert dynamic tokens: 'Milestone complete: [Task Title] — finished by [First Name] [Last Name]. View it here: [Task Permalink]'
- 4Optionally add a celebratory emoji prefix to the message text directly, e.g. '🏁'
Flow canvas > If yes branch > Add an action > SharePoint > Get items
Add a deduplication check using a SharePoint or Dataverse variable
Because this flow uses polling, there is a real risk of the same milestone triggering multiple Slack messages if the completion event appears in multiple poll cycles. The cleanest fix in Power Automate is to log completed Task IDs to a SharePoint list row after each successful post. At the start of the 'If yes' branch, add a 'Get items' action from SharePoint filtered by Task ID. Add another Condition: if the item already exists, skip posting. If it does not exist, proceed and then add a 'Create item' action to log the Task ID after the Slack post.
- 1Click 'Add an action' at the top of the 'If yes' branch, before the Slack step
- 2Search 'SharePoint' and select 'Get items'
- 3Set 'Site Address' and 'List Name' to a SharePoint list you create for this purpose (columns: TaskID as text, CompletedAt as date)
- 4Set 'Filter Query' to: TaskID eq '[Task ID dynamic token]'
- 5Add a Condition below: if 'value' array length is greater than 0, set the 'If yes' to 'Terminate' (skip), and move Slack post to the 'If no' branch
- 6After the Slack post, add 'Create item' in SharePoint to log the Task ID
Flow canvas > Save > Test > Manually > Run flow
Test the flow with a real Wrike milestone
Click 'Save' in the top toolbar, then click 'Test' in the top right corner. Select 'Manually' and then 'Run flow'. In Wrike, mark a milestone task as complete in the folder you configured. Wait up to 3 minutes for the polling trigger to fire. Return to Power Automate and click 'Refresh' on the flow run history to see if the run succeeded. Open your Slack channel to confirm the message arrived.
- 1Click 'Save' in the toolbar
- 2Click 'Test' in the top right
- 3Select 'Manually' and click 'Run flow'
- 4Switch to Wrike and mark a test milestone task as complete
- 5Return to Power Automate and watch the run history — refresh after 3 minutes
My flows > [flow name] > Three-dot menu > Edit > Flow settings
Turn on the flow and set error notifications
Once the test passes, click 'Turn on' if the flow is not already active. Go to 'My flows', find your flow, click the three-dot menu, and select 'Edit'. Scroll to the top-level flow settings and enable 'Send me an email notification when this flow fails'. This ensures you hear about broken runs rather than silently missing milestone celebrations. Set the poll frequency under the trigger settings — the default is 3 minutes, which is fine for this use case.
- 1Go to 'My flows' and find 'Wrike Milestone → Slack Celebration'
- 2Click the three-dot menu and select 'Edit'
- 3Click the gear icon or 'Flow settings' if available
- 4Toggle on 'Send me an email when this flow fails'
- 5Click 'Save'
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 Power Automate for this if your team already lives in Microsoft 365 and you do not want to introduce another SaaS tool just for automation. The Wrike and Slack connectors are pre-built, the SharePoint deduplication approach reuses infrastructure you likely already have, and IT is not going to ask questions about a tool that is already in the Microsoft license. If your organization has a developer who is comfortable with Node.js and you want sub-minute trigger speed, Pipedream with a Wrike webhook is a better fit — Power Automate's polling lag is the genuine tradeoff.
Power Automate pricing for this flow depends on your Microsoft 365 plan. If Wrike is a standard connector in your tenant, this flow costs nothing extra — it runs on the Power Automate license bundled with Microsoft 365 Business Basic ($6/user/month) or higher. If Wrike is classified as premium in your tenant, you need Power Automate Premium at $15/user/month. At 50 milestone completions per month, that is $0.30 per notification on the premium plan. Make handles the same volume on its free tier (1,000 operations/month), making Make roughly $15/month cheaper per user if you're only using automation for this one workflow.
Make beats Power Automate here on one specific thing: Wrike supports real webhooks in Make, which means zero polling lag — notifications fire in under 30 seconds. Zapier also has a Wrike integration, but its Wrike trigger only watches for new tasks, not completions, so you would need a workaround via status change polling. n8n gives you the most control over message formatting with its Function nodes and handles the deduplication in-memory without needing SharePoint. Pipedream is the fastest to iterate on if you are comfortable with JavaScript. Power Automate wins when your IT department controls the tooling list, when SharePoint is already your data layer, or when you want one fewer vendor invoice.
Three things you will hit after setup: First, the Wrike connector's polling occasionally double-fires the same event during platform congestion — the SharePoint deduplication step in Step 9 is not optional if you want clean results. Second, Power Automate's expression language treats null fields as errors rather than empty strings, so any milestone without an assignee will break the 'Get user' action unless you build an explicit null check using the empty() function. Third, Slack's Power Automate connector does not support Block Kit formatting — you get plain text only. If you want buttons, bold headers, or images in the celebration message, you need to call the Slack API directly via an HTTP action with a custom payload, which adds another 20 minutes of setup.
Ideas for what to build next
- →Add a weekly milestone digest to Slack — Build a second Scheduled cloud flow that runs every Friday at 4 PM, queries Wrike for all milestones completed that week, and posts a single summary message to Slack instead of one message per milestone — better for high-volume project phases.
- →Log milestone completions to a SharePoint report — Extend the existing flow to write each milestone completion to a SharePoint list with fields for project name, completer, and date. This gives project managers a running log to include in monthly stakeholder reports without manual data collection.
- →Trigger a Microsoft Teams adaptive card alongside the Slack message — Add a parallel branch to the flow that posts a formatted Adaptive Card to a Teams channel — useful for organizations where leadership uses Teams while the delivery team uses Slack, so both audiences see the milestone win without duplicate manual announcements.
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