

How to send ClickUp due date reminders to Slack with Pipedream
Automatically check ClickUp daily for tasks due within 24 hours and send personalized DMs to 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 who need proactive task deadline notifications without checking ClickUp constantly throughout the day.
Not ideal for
Teams who prefer digest-style notifications or already have project managers manually tracking deadlines.
Sync type
scheduledUse case type
notificationReal-World Example
A 12-person marketing agency runs this daily at 9 AM to catch any tasks due that day. Before automation, their project manager spent 45 minutes each morning manually checking ClickUp and pinging people in Slack. Three team members missed deliverable deadlines in one month because they forgot to check their ClickUp assignments.
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 Pipedream
Copy the pre-built Pipedream blueprint and paste it straight into Pipedream. 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 URL | url | |
| Task Status | status.status | |
| Slack User ID | ||
2 optional fieldsβΈ show
| Priority Level | priority.priority |
| Project Name | folder.name |
Step-by-Step Setup
Workflows > New > Select a Trigger > Cron Scheduler
Create new workflow in Pipedream
Head to pipedream.com and click Workflows in the left sidebar. Hit the New button in the top right corner. You'll see a blank workflow canvas. Click on Select a Trigger at the top of the workflow builder. Choose Cron Scheduler from the trigger list and set it to run daily at your preferred time (9 AM works well for most teams).
- 1Click Workflows in the left sidebar
- 2Click the New button in top right
- 3Click Select a Trigger
- 4Choose Cron Scheduler from the list
- 5Set schedule to 0 9 * * * for 9 AM daily
Add Step > Apps > ClickUp > Get Tasks
Connect your ClickUp account
Click the + button below your trigger to add a new step. Search for ClickUp and select it from the apps list. Choose the Get Tasks action from the dropdown. You'll be prompted to connect your ClickUp account - click Connect Account and authorize Pipedream access. Make sure the account you connect has access to all spaces where you want to monitor tasks.
- 1Click the + button below the trigger
- 2Search for ClickUp in the apps list
- 3Select Get Tasks action
- 4Click Connect Account button
- 5Authorize Pipedream in the ClickUp popup
ClickUp Step > Configuration
Configure task filtering parameters
In the Get Tasks step, you need to set up the date filtering. Set the Team dropdown to your ClickUp team. Leave List and Folder empty to search across all spaces. In the Due Date section, set due_date_gt to today's date and due_date_lt to tomorrow's date. This creates a 24-hour window of tasks due soon. Set the Statuses field to exclude completed tasks by selecting only active status types.
- 1Select your team from Team dropdown
- 2Leave List and Folder fields empty
- 3Set due_date_gt to current date
- 4Set due_date_lt to next day date
- 5Uncheck completed/closed statuses
Add Step > Code
Add code step for date calculation
Click the + button to add another step, then select Code from the step types. This step will dynamically calculate tomorrow's date for the due date filter instead of hardcoding it. In the code editor, you'll write JavaScript that gets today's date, adds 24 hours, and formats it properly for ClickUp's API. This ensures your workflow always checks the correct date range even when running daily.
- 1Click + button below ClickUp step
- 2Select Code from step types
- 3Choose Node.js runtime
- 4Clear the default code template
- 5Write date calculation logic
This code goes in the user mapping step to handle email mismatches and prevent failed DM sends. Paste it into the Node.js code step between ClickUp data processing and Slack messaging.
JavaScript β Code Stepexport default defineComponent({βΈ Show code
export default defineComponent({
async run({ steps, $ }) {
const tasks = steps.clickup.return_value.tasks || [];... expand to see full code
export default defineComponent({
async run({ steps, $ }) {
const tasks = steps.clickup.return_value.tasks || [];
const slackUsers = [];
// Manual email mapping for mismatched accounts
const emailMap = {
'[email protected]': '[email protected]',
'[email protected]': '[email protected]'
};
for (const task of tasks) {
if (!task.assignees || task.assignees.length === 0) continue;
for (const assignee of task.assignees) {
const emailToLookup = emailMap[assignee.email] || assignee.email;
try {
const slackUser = await $.send({
method: 'GET',
url: `https://slack.com/api/users.lookupByEmail`,
headers: {
'Authorization': `Bearer ${auths.slack.oauth_access_token}`
},
params: { email: emailToLookup }
});
if (slackUser.ok) {
slackUsers.push({
slack_id: slackUser.user.id,
task_name: task.name,
due_date: new Date(parseInt(task.due_date)).toLocaleDateString(),
task_url: task.url,
priority: task.priority?.priority || 'normal'
});
} else {
console.log(`No Slack user found for ${assignee.email}`);
}
} catch (error) {
console.error(`Error looking up ${assignee.email}:`, error.message);
}
}
}
return { users_to_notify: slackUsers };
}
});Add Step > Code
Process task assignees and due dates
Add another code step to loop through the tasks returned from ClickUp and extract assignee information. You'll iterate over each task, check if it has assignees, and prepare the data for Slack messaging. The code should handle cases where tasks have multiple assignees and format the due date in a human-readable way. Store each assignee-task pair in an array for the next step.
- 1Click + button to add new code step
- 2Reference the ClickUp step data using steps.clickup
- 3Loop through tasks array
- 4Extract assignee IDs and usernames
- 5Format due dates for display
Add Step > Apps > Slack > Send Direct Message
Connect Slack account
Add a new step and select Slack from the apps list. Choose the Send Direct Message action. Click Connect Account and authorize Pipedream to access your Slack workspace. Make sure you grant the chat:write scope so Pipedream can send DMs. You'll also need users:read scope to look up users by their ClickUp email addresses if they don't match exactly.
- 1Click + button to add Slack step
- 2Select Send Direct Message action
- 3Click Connect Account
- 4Authorize with chat:write permissions
- 5Verify connection shows green status
Add Step > Code
Map ClickUp users to Slack users
Before sending messages, add a code step to match ClickUp assignees with their Slack user IDs. Use the Slack Web API to search for users by email address since ClickUp provides email but Slack needs user IDs for DMs. Handle cases where emails don't match by logging warnings. This step prevents failed message sends due to user mapping issues.
- 1Add code step before Slack messaging
- 2Use Slack users.lookupByEmail API
- 3Match ClickUp assignee emails to Slack IDs
- 4Handle mismatched users gracefully
- 5Return mapped user data
Slack Step > Message Configuration
Configure Slack message content
In the Slack step, set the User field to the mapped Slack user ID from your code step. Write a clear message template that includes the task name, due date, and a link back to ClickUp. Use Slack's markdown formatting to make due dates bold and include emojis for urgency. The message should be concise but contain all the info the assignee needs to take action.
- 1Set User to the mapped Slack user ID
- 2Write message template with task details
- 3Include ClickUp task URL for easy access
- 4Add due date with bold formatting
- 5Test message format in preview
Add Step > Code
Add error handling and logging
Wrap your workflow in try-catch blocks to handle API failures gracefully. Add a final code step that logs successful notifications and any errors to Pipedream's built-in logging. This helps debug issues like tasks not being found, users not matching between platforms, or Slack delivery failures. Include the number of reminders sent in your log output.
- 1Add code step at the end
- 2Wrap previous steps in error handling
- 3Log successful message counts
- 4Log any user mapping failures
- 5Use console.log for debugging info
Workflow > Test > Deploy
Test and deploy workflow
Click the Test button to run your workflow manually with current data. Check that it finds due tasks correctly and sends test DMs to the right people. Review the logs to make sure date filtering works and user mapping succeeds. Once testing passes, your workflow will automatically run on the schedule you set. Monitor the first few scheduled runs to catch any edge cases.
- 1Click Test button in top toolbar
- 2Verify tasks are found correctly
- 3Check Slack DMs are delivered
- 4Review execution logs for errors
- 5Monitor first scheduled runs
Scaling Beyond 50+ tasks due per day+ Records
If your volume exceeds 50+ tasks due per day records, apply these adjustments.
Implement batching for heavy users
Group multiple tasks per person into single Slack messages instead of individual DMs. This reduces Slack API calls and prevents notification spam.
Use Slack rate limiting
Add delays between API calls (1 second minimum) to stay within Slack's rate limits. Consider using Slack's batch messaging endpoints for efficiency.
Filter by priority
Only send reminders for high and urgent priority tasks to reduce noise. Let people check ClickUp directly for lower priority items.
Cache user mappings
Store the ClickUp-to-Slack email mapping in Pipedream's data store to avoid repeated user lookup API calls on every run.
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 Pipedream for this if you need custom logic for user mapping or want to batch multiple due tasks per person into single messages. The Node.js code steps handle complex date calculations and API responses better than drag-and-drop platforms. Pipedream's built-in logging also makes debugging failed reminders much easier. Skip Pipedream if you want a simple point-and-click setup without any code β Zapier handles basic ClickUp-to-Slack notifications with zero programming.
This workflow costs about 2 credits per run on Pipedream's pricing. If you run daily with 20 team members averaging 3 due tasks each, that's 60 credit per month or roughly $6. Zapier would cost $20/month for the same volume since each task reminder counts as a separate task. Make.com is cheapest at $9/month for 1000 operations, but their ClickUp integration doesn't handle date filtering as cleanly.
Make has better visual debugging when your date filters break β you can see exactly what data ClickUp returned at each step. Zapier's ClickUp trigger fires instantly when due dates change, while this Pipedream workflow only checks once daily. N8n gives you more control over Slack message formatting with their rich text editor. Power Automate connects better if your team already uses Microsoft tools. But Pipedream wins because the async/await code handles user lookups and error cases that break simpler platforms.
You'll hit timezone issues where ClickUp due dates don't match your team's work hours. ClickUp sometimes returns due dates in Unix timestamps, sometimes in ISO format β your parsing code needs to handle both. Slack user lookups fail silently if emails don't match exactly between platforms, so you'll need manual mapping for contractors or people with different email addresses in each system.
Ideas for what to build next
- βAdd digest mode for managers β Send a daily summary of all due tasks to project managers instead of individual assignee notifications.
- βInclude overdue task alerts β Modify the date filter to catch tasks that are past due and send more urgent reminder messages.
- βConnect to calendar apps β Add Google Calendar or Outlook integration to block time for due tasks automatically when reminders are sent.
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