

How to Send ClickUp Due Date Reminders to Slack with Power Automate
Check ClickUp daily for tasks due within 24 hours and automatically DM each assignee in Slack.
Steps and UI details are based on platform versions at time of writing — check each platform for the latest interface.

Best for
Teams using ClickUp for project management who need proactive task deadline notifications in Slack
Not ideal for
Teams wanting instant notifications when due dates change (use webhooks instead)
Sync type
scheduledUse case type
notificationReal-World Example
A 25-person marketing agency runs this flow every morning at 9 AM to check for tasks due that day. Before automation, project managers manually reviewed ClickUp boards and pinged people in Slack channels. Now each team member gets a direct message with their specific tasks, reducing missed deadlines by 40%.
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 Name | name | |
| Due Date | due_date | |
| Assignee Email | assignees.email | |
| Task Status | status.status | |
3 optional fields▸ show
| Task URL | url |
| Project Name | list.name |
| Priority Level | priority.priority |
Step-by-Step Setup
My flows > + New flow > Scheduled cloud flow
Create a Scheduled Cloud Flow
Navigate to make.powerautomate.com and sign in with your Microsoft account. Click 'My flows' in the left sidebar, then the blue '+ New flow' button. Select 'Scheduled cloud flow' from the dropdown menu. Name it 'ClickUp Due Date Reminders' and set it to run daily at your preferred time.
- 1Click 'My flows' in the left navigation
- 2Click the blue '+ New flow' button
- 3Select 'Scheduled cloud flow'
- 4Enter flow name: 'ClickUp Due Date Reminders'
- 5Set recurrence to 'Day' with interval of 1
Flow designer > + New step > HTTP
Add ClickUp Connection
Click '+ New step' below the recurrence trigger. Search for 'HTTP' in the connector search box and select 'HTTP' action. ClickUp doesn't have a native Power Automate connector, so we'll use their REST API. Set the method to GET and enter the ClickUp API base URL.
- 1Click '+ New step' under the recurrence trigger
- 2Type 'HTTP' in the search box
- 3Select the 'HTTP' action
- 4Set Method dropdown to 'GET'
- 5Keep URI field empty for now
HTTP action > Show advanced options > Headers
Configure ClickUp API Authentication
In the HTTP action, click 'Show advanced options'. Add a new header by clicking 'Add new parameter' and selecting 'Headers'. Create a header with key 'Authorization' and value 'Bearer YOUR_API_TOKEN'. Replace YOUR_API_TOKEN with your actual ClickUp API token from ClickUp Settings > Apps > API Token.
- 1Click 'Show advanced options' in the HTTP card
- 2Click 'Add new parameter'
- 3Check the 'Headers' checkbox
- 4In the Headers field, enter key: Authorization
- 5Enter value: Bearer YOUR_CLICKUP_API_TOKEN
HTTP action > URI field
Set Up ClickUp Tasks Query
In the URI field of the HTTP action, enter the ClickUp API endpoint to get tasks. Use this URL format: https://api.clickup.com/api/v2/team/TEAM_ID/task with query parameters for due dates. Add another header 'Content-Type' with value 'application/json' to ensure proper API communication.
- 1Click in the URI field
- 2Enter: https://api.clickup.com/api/v2/team/YOUR_TEAM_ID/task
- 3Add query parameter: ?due_date_gt=TODAY
- 4Add query parameter: &due_date_lt=TOMORROW
- 5Add Content-Type header with value: application/json
Flow designer > + New step > Data Operations > Compose
Add Date Calculations for Due Date Filter
We need to replace TODAY and TOMORROW with actual timestamps. Click '+ New step' and add a 'Compose' action from Data Operations. In the Inputs field, click the expression tab and enter utcnow() to get today's date. Add another Compose action for tomorrow using addDays(utcnow(),1). These will generate the Unix timestamps ClickUp expects.
- 1Click '+ New step' before the HTTP action
- 2Search for 'Compose' and select it
- 3Click in Inputs field, then Expression tab
- 4Enter: formatDateTime(utcnow(),'yyyy-MM-dd')
- 5Add second Compose action for tomorrow's date
HTTP action > + New step > Data Operations > Parse JSON
Configure Parse JSON for ClickUp Response
Add a 'Parse JSON' action after the HTTP call to structure ClickUp's response. In the Content field, select 'body' from the HTTP action output. For the Schema, you'll need ClickUp's task object structure. Click 'Use sample payload to generate schema' and paste a sample JSON response from ClickUp's API documentation.
- 1Click '+ New step' after the HTTP action
- 2Select 'Parse JSON' from Data Operations
- 3Set Content to 'body' from HTTP action
- 4Click 'Use sample payload to generate schema'
- 5Paste ClickUp task JSON sample from their API docs
Parse JSON > + New step > Control > Apply to each
Add Apply to Each for Task Processing
Since ClickUp returns multiple tasks, add an 'Apply to each' control to process each task individually. In the 'Select an output from previous steps' field, choose 'tasks' from the Parse JSON output. This creates a loop that will process every task with an upcoming due date.
- 1Click '+ New step' after Parse JSON
- 2Search for 'Apply to each' in Control actions
- 3Select 'Apply to each'
- 4Click the input field
- 5Select 'tasks' from Parse JSON dynamic content
Apply to each > + Add an action > Control > Apply to each
Extract Task Assignee Information
Inside the Apply to each loop, add another 'Apply to each' for assignees since ClickUp tasks can have multiple assignees. Select 'assignees' from the current task item. This nested loop ensures every assigned person gets notified for each task they're responsible for.
- 1Click '+ Add an action' inside the first Apply to each
- 2Select 'Apply to each' again
- 3Set the input to 'assignees' from current item
- 4This creates a nested loop for multiple assignees
Inner Apply to each > + Add an action > HTTP
Add Slack User Lookup
Before sending DMs, we need to find Slack user IDs from ClickUp usernames. Add an HTTP action to call Slack's users.lookupByEmail API. Set the method to POST, use https://slack.com/api/users.lookupByEmail as the URI, and add Authorization header with 'Bearer YOUR_SLACK_BOT_TOKEN'.
- 1Click '+ Add an action' in the assignee loop
- 2Select HTTP action
- 3Set Method to POST
- 4URI: https://slack.com/api/users.lookupByEmail
- 5Add Authorization header with Slack bot token
User lookup HTTP > + Add an action > HTTP
Send Slack Direct Message
Add another HTTP action to send the DM using Slack's chat.postMessage API. Set method to POST, URI to https://slack.com/api/chat.postMessage. In the body, include the channel (user ID from previous step), and a formatted message with task name and due date. Use JSON format with proper Content-Type header.
- 1Add another HTTP action
- 2Set Method to POST
- 3URI: https://slack.com/api/chat.postMessage
- 4Set Content-Type header to application/json
- 5Build JSON body with channel, text, and task details
Add this expression in a Compose action to format ClickUp's Unix timestamp into a readable date for your Slack messages. Place it after parsing the ClickUp response and reference it in your message text.
JavaScript — Code StepformatDateTime(▸ Show code
formatDateTime(
addToTime(
'1970-01-01T00:00:00.000Z',... expand to see full code
formatDateTime(
addToTime(
'1970-01-01T00:00:00.000Z',
int(items('Apply_to_each')?['due_date']),
'Second'
),
'MMM dd, yyyy'
)assignees[0].username: {{assignees[0].username}}
due_date: {{due_date}}
Scaling Beyond 50+ tasks due per day+ Records
If your volume exceeds 50+ tasks due per day records, apply these adjustments.
Batch Slack API calls
Use compose actions to build an array of messages, then process them with delays to avoid hitting Slack's 1 message per second rate limit.
Filter by team or priority
Add query parameters to ClickUp API call to only fetch high-priority tasks or specific team assignments to reduce processing volume.
Implement smart caching
Store processed task IDs in SharePoint or Dataverse to prevent duplicate notifications if the flow runs multiple times.
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 is already in the Microsoft ecosystem and you need solid scheduling reliability. The platform excels at daily recurring flows and has excellent error logging through the admin center. Power Automate's expression language handles date calculations cleanly, which you'll need for the 24-hour due date window. Skip it if you need instant notifications - the scheduled trigger approach means tasks assigned during the day won't generate alerts until the next morning.
Real costs add up fast here. Each flow run hits ClickUp's API once plus one Slack API call per assignee. With 20 tasks averaging 1.5 assignees each, that's 31 API calls daily or 930/month. Power Automate Premium costs $15/month per user but includes unlimited API calls. Make charges per operation - the same volume would cost around $10/month on their Core plan, making Power Automate more expensive unless you're already paying for Microsoft licenses.
Make handles this workflow better with native ClickUp and Slack connectors that include built-in rate limiting and retry logic. You get visual debugging and easier JSON parsing without writing expressions. Zapier's ClickUp integration is more limited but simpler to configure for basic due date triggers. n8n gives you the most control with custom HTTP requests and complex data transformation, plus it's free if self-hosted. Power Automate wins on enterprise features like detailed audit logs, compliance certifications, and integration with Microsoft Teams for escalations.
You'll hit ClickUp's API rate limits if you have large teams - they allow 100 requests per minute per token. Slack's user lookup API sometimes returns stale data for recently added team members, causing DM failures. The trickiest issue is timezone handling - ClickUp stores due dates in UTC but your team expects notifications in local time, requiring timezone conversion expressions that break when daylight saving changes.
Ideas for what to build next
- →Add digest notifications — Modify the flow to send a single summary message to project managers listing all overdue tasks instead of individual DMs.
- →Include task urgency indicators — Parse ClickUp priority levels and add emoji or formatting to make high-priority tasks stand out in Slack messages.
- →Set up escalation reminders — Create a separate flow that checks for tasks overdue by 2+ days and notifies team leads or project managers.
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