

How to Send Sprint Summaries from ClickUp to Slack with Power Automate
Automatically post a sprint completion summary to Slack showing completed vs incomplete tasks when a ClickUp sprint finishes.
Steps and UI details are based on platform versions at time of writing — check each platform for the latest interface.

Best for
Development teams using ClickUp sprints who want automated sprint retrospectives in Slack channels.
Not ideal for
Teams that need complex sprint analytics or custom formatting beyond basic task counts.
Sync type
real-timeUse case type
notificationReal-World Example
A 12-person development team runs 2-week sprints in ClickUp and posts results to #dev-updates in Slack. Before automation, the scrum master manually counted completed tasks and typed summaries every sprint end. Now they get instant notifications showing 23/30 tasks completed with a breakdown by assignee.
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 | ||
| Sprint Name | ||
| Sprint Status | ||
| Task Array | ||
| Task Status | ||
2 optional fields▸ show
| Sprint End Date | |
| Assignee Names |
Step-by-Step Setup
My flows > New flow > Automated cloud flow
Create New Automated Flow
Open make.powerautomate.com and sign in with your Microsoft account. Click 'My flows' in the left sidebar, then 'New flow' at the top. Select 'Automated cloud flow' from the dropdown menu. Name your flow 'ClickUp Sprint Summary to Slack'.
- 1Click 'My flows' in the left navigation
- 2Click 'New flow' button at the top
- 3Select 'Automated cloud flow'
- 4Enter flow name: ClickUp Sprint Summary to Slack
Choose your flow's trigger > HTTP
Configure ClickUp Webhook Trigger
Search for 'HTTP' in the trigger list and select 'When an HTTP request is received'. This creates a webhook endpoint that ClickUp will call when a sprint completes. Power Automate will generate a unique URL after you save the flow. Leave the JSON schema blank for now.
- 1Type 'HTTP' in the trigger search box
- 2Select 'When an HTTP request is received'
- 3Leave Request Body JSON Schema empty
- 4Click 'Create' to proceed
New step > Data Operations > Parse JSON
Add Parse JSON Action
Click 'New step' and search for 'Parse JSON'. Select 'Parse JSON' from Data Operations. This will extract the sprint data from ClickUp's webhook payload. In the Content field, select 'body' from the dynamic content menu. Leave the Schema field empty for now - we'll populate it after testing.
- 1Click 'New step' below the HTTP trigger
- 2Search for 'Parse JSON' in actions
- 3Select 'Parse JSON' from Data Operations
- 4Click Content field and select 'body' from dynamic content
New step > Variables > Initialize variable
Initialize Variables for Task Counting
Add 'Initialize variable' action and create three integer variables: CompletedTasks, IncompleteTasks, and TotalTasks. Set all initial values to 0. These will store the task counts we calculate from the sprint data. You'll need to add this action three times, once for each variable.
- 1Click 'New step' and search for 'Initialize variable'
- 2Set Name to 'CompletedTasks', Type to 'Integer', Value to 0
- 3Add another Initialize variable for 'IncompleteTasks'
- 4Add a third Initialize variable for 'TotalTasks'
New step > Control > Apply to each
Add Apply to Each Loop
Add 'Apply to each' action to loop through tasks in the sprint. In the 'Select an output from previous steps' field, you'll reference the tasks array from the parsed JSON. Since we don't have the schema yet, type this expression manually: body('Parse_JSON')?['tasks']. This loops through each task to count completed vs incomplete.
- 1Click 'New step' and search for 'Apply to each'
- 2Click the output field and select 'Expression' tab
- 3Type: body('Parse_JSON')?['tasks']
- 4Click OK to confirm the expression
Inside Apply to each > Control > Condition
Add Task Status Condition
Inside the Apply to each loop, add a Condition action. Configure it to check if the current task status equals 'Complete' or 'Done'. In the left side, select 'items()?['status']' from dynamic content. Set the operator to 'is equal to' and enter 'Complete' in the right field. This separates completed from incomplete tasks.
- 1Click 'Add an action' inside the Apply to each loop
- 2Search for and select 'Condition'
- 3Set left value to items()?['status'] using expression
- 4Set condition to 'is equal to' and value to 'Complete'
Condition branches > Variables > Increment variable
Increment Task Counters
In the 'Yes' branch of the condition, add 'Increment variable' and select CompletedTasks. In the 'No' branch, increment IncompleteTasks. After the Apply to each loop, add a 'Set variable' action to calculate TotalTasks by adding CompletedTasks and IncompleteTasks using the expression add(variables('CompletedTasks'), variables('IncompleteTasks')).
- 1In 'Yes' branch, add 'Increment variable' for CompletedTasks
- 2In 'No' branch, add 'Increment variable' for IncompleteTasks
- 3After the loop, add 'Set variable' for TotalTasks
- 4Use expression: add(variables('CompletedTasks'), variables('IncompleteTasks'))
New step > Slack > Post message
Connect to Slack
Add 'Post message' action and search for Slack. Select 'Post message' from the Slack connector. Power Automate will prompt you to sign in to Slack and authorize access. Choose the workspace where you want to post sprint summaries. You'll need admin permissions to add the Power Automate app to your Slack workspace.
- 1Click 'New step' and search for 'Slack'
- 2Select 'Post message' from Slack actions
- 3Click 'Sign in' when prompted for connection
- 4Authorize Power Automate in your Slack workspace
Slack Post message > Channel and Message
Configure Slack Message
Select your target channel from the dropdown (like #dev-updates or #sprint-reports). In the message field, build a summary using dynamic content and expressions. Include the sprint name, completion date, and task statistics. Format it like: 'Sprint @{body('Parse_JSON')?['sprint_name']} completed! ✅ @{variables('CompletedTasks')} tasks done ❌ @{variables('IncompleteTasks')} incomplete (@{variables('TotalTasks')} total)'.
- 1Select target channel from Channel dropdown
- 2Click in Message field and select 'Expression' tab
- 3Build message with sprint name and task counts
- 4Include emojis and formatting for readability
Top toolbar > Save > Test
Save and Test Flow
Click 'Save' at the top to save your flow. Power Automate will generate the webhook URL in the HTTP trigger. Copy this URL - you'll need it for ClickUp webhook configuration. Test the flow by clicking 'Test' and selecting 'Manually'. The flow will wait for a webhook call from ClickUp.
- 1Click 'Save' button in the top toolbar
- 2Copy the webhook URL from HTTP trigger
- 3Click 'Test' and select 'I'll perform the trigger action'
- 4Click 'Save & Test' to start listening
ClickUp Settings > Integrations > Webhooks
Configure ClickUp Webhook
In ClickUp, go to your workspace settings and find Webhooks. Create a new webhook pointing to your Power Automate URL. Set the event to trigger when a List (sprint) status changes to 'Complete' or 'Done'. Include task data in the payload by checking the appropriate boxes. Test the webhook by completing a test sprint in ClickUp.
- 1Open ClickUp workspace settings
- 2Navigate to Integrations > Webhooks
- 3Click 'Create Webhook' and paste Power Automate URL
- 4Select 'List updated' event and set status filter to 'Complete'
Add this expression to the Slack message field to calculate completion percentage and format a more detailed summary with sprint metrics.
JavaScript — Code Stepconcat(▸ Show code
concat(
'Sprint ', body('Parse_JSON')?['name'], ' completed! 📊\n',
'✅ Completed: ', variables('CompletedTasks'), '\n',... expand to see full code
concat(
'Sprint ', body('Parse_JSON')?['name'], ' completed! 📊\n',
'✅ Completed: ', variables('CompletedTasks'), '\n',
'❌ Incomplete: ', variables('IncompleteTasks'), '\n',
'📈 Success Rate: ',
if(equals(variables('TotalTasks'), 0), '0%',
concat(string(div(mul(variables('CompletedTasks'), 100), variables('TotalTasks'))), '%')
)
)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 you're already deep in the Microsoft ecosystem and want to avoid managing another integration platform. The HTTP trigger handles ClickUp webhooks reliably, and the built-in Slack connector includes proper error handling and retry logic. Power Automate also gives you expressions for calculating completion percentages without external code. Skip this if you need complex sprint analytics or custom formatting - n8n handles that better.
At 10 sprint completions per month, you'll use roughly 30 Power Automate actions per run (loops count as separate actions). That's 300 actions monthly, well within the 2,000-action free tier if you have Microsoft 365. Pure usage costs hit around $15/month for teams completing 100+ sprints monthly. Zapier charges per task in the loop, making it 3x more expensive for the same volume.
Zapier beats Power Automate with a native ClickUp trigger that doesn't require webhook setup - just point and click. Make offers better conditional logic for complex sprint rules and custom status mappings. n8n gives you full JavaScript for advanced sprint analytics like velocity trending. Pipedream handles ClickUp API rate limits more gracefully with built-in exponential backoff. But Power Automate wins on enterprise compliance and integration with Teams if your company uses Microsoft everything.
You'll hit ClickUp's webhook payload inconsistencies first - task arrays sometimes come back empty or malformed depending on sprint size. Power Automate's Parse JSON throws cryptic errors when the schema doesn't match, so build error handling early. The Apply to each loop gets slow with 100+ tasks per sprint, adding 2-3 seconds of processing time that delays your Slack notifications.
Ideas for what to build next
- →Add Sprint Metrics — Extend the message to include story points, assignee breakdown, and sprint velocity calculations.
- →Create Digest Version — Build a weekly flow that summarizes multiple sprint completions into a single report.
- →Add Error Notifications — Send alerts to a separate channel when sprints complete with high numbers of incomplete tasks.
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