Intermediate~15 min setupProject Management & CommunicationVerified April 2026
ClickUp logo
Slack logo

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

scheduled

Use case type

notification

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

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

ClickUp API token with read access to tasks and team data
Slack bot token with users:read.email and chat:write scopes
ClickUp Team ID from your workspace settings
Slack bot installed in your workspace with DM permissions

Field Mapping

Map these fields between your apps.

FieldAPI Name
Required
Task Namename
Due Datedue_date
Assignee Emailassignees.email
Task Statusstatus.status
3 optional fields▸ show
Task URLurl
Project Namelist.name
Priority Levelpriority.priority

Step-by-Step Setup

1

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.

  1. 1Click 'My flows' in the left navigation
  2. 2Click the blue '+ New flow' button
  3. 3Select 'Scheduled cloud flow'
  4. 4Enter flow name: 'ClickUp Due Date Reminders'
  5. 5Set recurrence to 'Day' with interval of 1
What you should see: You should see the flow designer with a 'Recurrence' trigger set to run daily.
Common mistake — Set the trigger time before your team's workday starts - the API calls take 2-3 minutes to complete.
2

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.

  1. 1Click '+ New step' under the recurrence trigger
  2. 2Type 'HTTP' in the search box
  3. 3Select the 'HTTP' action
  4. 4Set Method dropdown to 'GET'
  5. 5Keep URI field empty for now
What you should see: You should see an HTTP action card with Method set to GET and an empty URI field.
3

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.

  1. 1Click 'Show advanced options' in the HTTP card
  2. 2Click 'Add new parameter'
  3. 3Check the 'Headers' checkbox
  4. 4In the Headers field, enter key: Authorization
  5. 5Enter value: Bearer YOUR_CLICKUP_API_TOKEN
What you should see: The HTTP action shows a Headers section with Authorization properly configured.
Common mistake — Generate your ClickUp API token from Settings > Apps. Personal tokens expire after 1 year.
4

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.

  1. 1Click in the URI field
  2. 2Enter: https://api.clickup.com/api/v2/team/YOUR_TEAM_ID/task
  3. 3Add query parameter: ?due_date_gt=TODAY
  4. 4Add query parameter: &due_date_lt=TOMORROW
  5. 5Add Content-Type header with value: application/json
What you should see: The HTTP action shows a complete ClickUp API URL with date filters and proper headers.
Common mistake — Find your Team ID in ClickUp by going to Settings > Workspaces and copying the number from the URL.
5

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.

  1. 1Click '+ New step' before the HTTP action
  2. 2Search for 'Compose' and select it
  3. 3Click in Inputs field, then Expression tab
  4. 4Enter: formatDateTime(utcnow(),'yyyy-MM-dd')
  5. 5Add second Compose action for tomorrow's date
What you should see: Two Compose actions showing today's and tomorrow's dates in YYYY-MM-DD format.
Common mistake — ClickUp expects dates in Unix timestamp format - you'll need to convert these dates in the next step.
ClickUp
CL
trigger
filter
Condition
matches criteria?
yes — passes through
no — skipped
Slack
SL
notified
6

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.

  1. 1Click '+ New step' after the HTTP action
  2. 2Select 'Parse JSON' from Data Operations
  3. 3Set Content to 'body' from HTTP action
  4. 4Click 'Use sample payload to generate schema'
  5. 5Paste ClickUp task JSON sample from their API docs
What you should see: Parse JSON action shows a complete schema for ClickUp task objects with fields like id, name, assignees, due_date.
7

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.

  1. 1Click '+ New step' after Parse JSON
  2. 2Search for 'Apply to each' in Control actions
  3. 3Select 'Apply to each'
  4. 4Click the input field
  5. 5Select 'tasks' from Parse JSON dynamic content
What you should see: An 'Apply to each' container appears with 'tasks' selected as the input array.
Common mistake — If you don't see 'tasks' in dynamic content, your Parse JSON schema might be incorrect.
8

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.

  1. 1Click '+ Add an action' inside the first Apply to each
  2. 2Select 'Apply to each' again
  3. 3Set the input to 'assignees' from current item
  4. 4This creates a nested loop for multiple assignees
What you should see: A nested 'Apply to each' loop specifically for processing task assignees.
Common mistake — Tasks without assignees will skip this loop - add a condition check if you want to handle unassigned tasks differently.
9

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

  1. 1Click '+ Add an action' in the assignee loop
  2. 2Select HTTP action
  3. 3Set Method to POST
  4. 4URI: https://slack.com/api/users.lookupByEmail
  5. 5Add Authorization header with Slack bot token
What you should see: HTTP action configured to call Slack's user lookup API with proper authentication.
Common mistake — Your Slack bot needs users:read.email scope. Create the bot in api.slack.com and install it to your workspace.
10

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.

  1. 1Add another HTTP action
  2. 2Set Method to POST
  3. 3URI: https://slack.com/api/chat.postMessage
  4. 4Set Content-Type header to application/json
  5. 5Build JSON body with channel, text, and task details
What you should see: HTTP action ready to send formatted task reminders as Slack DMs with dynamic task information.
Common mistake — Test with your own user ID first. Slack rate limits bot messages to 1 per second per channel.

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'
)
message template
🔔 New Record: {{name}} {{status}}
assignees[0].username: {{assignees[0].username}}
due_date: {{due_date}}
#sales
🔔 New Record: Jane Smith
Company: Acme Corp

Scaling Beyond 50+ tasks due per day+ Records

If your volume exceeds 50+ tasks due per day records, apply these adjustments.

1

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.

2

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.

3

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

VerdictWhy n8n for this workflow

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.

Cost

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.

Tradeoffs

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 notificationsModify the flow to send a single summary message to project managers listing all overdue tasks instead of individual DMs.
  • Include task urgency indicatorsParse ClickUp priority levels and add emoji or formatting to make high-priority tasks stand out in Slack messages.
  • Set up escalation remindersCreate a separate flow that checks for tasks overdue by 2+ days and notifies team leads or project managers.

Related guides

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