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

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

scheduled

Use case type

notification

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

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

ClickUp admin access to connect API and view all team spaces where tasks are assigned
Slack admin permissions to install apps and grant chat:write + users:read scopes
Matching email addresses between ClickUp users and Slack members for user lookup
Active tasks in ClickUp with due dates and assigned team members

Field Mapping

Map these fields between your apps.

FieldAPI Name
Required
Task Namename
Due Datedue_date
Assignee Emailassignees[].email
Task URLurl
Task Statusstatus.status
Slack User ID
2 optional fieldsβ–Έ show
Priority Levelpriority.priority
Project Namefolder.name

Step-by-Step Setup

1

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

  1. 1Click Workflows in the left sidebar
  2. 2Click the New button in top right
  3. 3Click Select a Trigger
  4. 4Choose Cron Scheduler from the list
  5. 5Set schedule to 0 9 * * * for 9 AM daily
βœ“ What you should see: You should see a Cron Scheduler trigger configured with your daily schedule showing next run time.
⚠
Common mistake β€” The cron syntax is strict - test your schedule using a cron validator before saving to avoid unexpected run times.
2

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.

  1. 1Click the + button below the trigger
  2. 2Search for ClickUp in the apps list
  3. 3Select Get Tasks action
  4. 4Click Connect Account button
  5. 5Authorize Pipedream in the ClickUp popup
βœ“ What you should see: You should see a green Connected badge next to your ClickUp account with a dropdown to select your team.
Pipedream settings
Connection
Choose a connection…Add
click Add
ClickUp
Log in to authorize
Authorize Pipedream
popup window
βœ“
Connected
green checkmark
3

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.

  1. 1Select your team from Team dropdown
  2. 2Leave List and Folder fields empty
  3. 3Set due_date_gt to current date
  4. 4Set due_date_lt to next day date
  5. 5Uncheck completed/closed statuses
βœ“ What you should see: The configuration should show filters for today's date range and only active task statuses selected.
⚠
Common mistake β€” ClickUp's date filtering uses Unix timestamps - Pipedream will convert your date inputs automatically but double-check the preview.
ClickUp
CL
trigger
filter
Condition
matches criteria?
yes β€” passes through
no β€” skipped
Slack
SL
notified
4

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.

  1. 1Click + button below ClickUp step
  2. 2Select Code from step types
  3. 3Choose Node.js runtime
  4. 4Clear the default code template
  5. 5Write date calculation logic
βœ“ What you should see: You should see a code editor with Node.js selected as the runtime environment.
⚠
Common mistake β€” Time zones matter here - make sure your date calculation matches your team's time zone or tasks might be filtered incorrectly.

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 };
  }
});
5

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.

  1. 1Click + button to add new code step
  2. 2Reference the ClickUp step data using steps.clickup
  3. 3Loop through tasks array
  4. 4Extract assignee IDs and usernames
  5. 5Format due dates for display
βœ“ What you should see: The code step should output an array of objects containing task names, due dates, and assignee information.
6

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.

  1. 1Click + button to add Slack step
  2. 2Select Send Direct Message action
  3. 3Click Connect Account
  4. 4Authorize with chat:write permissions
  5. 5Verify connection shows green status
βœ“ What you should see: You should see your Slack workspace connected with a green badge and available channels/users populated.
⚠
Common mistake β€” If your ClickUp emails don't match Slack emails exactly, you'll need extra logic to map users between the two platforms.
7

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.

  1. 1Add code step before Slack messaging
  2. 2Use Slack users.lookupByEmail API
  3. 3Match ClickUp assignee emails to Slack IDs
  4. 4Handle mismatched users gracefully
  5. 5Return mapped user data
βœ“ What you should see: Code step outputs an array with Slack user IDs paired with their assigned tasks and due dates.
ClickUp fields
name
status
assignees[0].username
due_date
priority
available as variables:
1.props.name
1.props.status
1.props.assignees[0].username
1.props.due_date
1.props.priority
8

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.

  1. 1Set User to the mapped Slack user ID
  2. 2Write message template with task details
  3. 3Include ClickUp task URL for easy access
  4. 4Add due date with bold formatting
  5. 5Test message format in preview
βœ“ What you should see: The message preview should show a formatted DM with task name, due date, and clickable ClickUp link.
⚠
Common mistake β€” Slack has a 4000 character limit per message - if someone has many due tasks, you might need to split into multiple messages.
9

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.

  1. 1Add code step at the end
  2. 2Wrap previous steps in error handling
  3. 3Log successful message counts
  4. 4Log any user mapping failures
  5. 5Use console.log for debugging info
βœ“ What you should see: Final step should output a summary of reminders sent and any errors encountered during the run.
10

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.

  1. 1Click Test button in top toolbar
  2. 2Verify tasks are found correctly
  3. 3Check Slack DMs are delivered
  4. 4Review execution logs for errors
  5. 5Monitor first scheduled runs
βœ“ What you should see: Test run should complete successfully with logs showing found tasks and sent Slack messages.
⚠
Common mistake β€” Test runs use real data - make sure your test doesn't spam team members with unnecessary reminder messages.
Pipedream
β–Ά Deploy & test
executed
βœ“
ClickUp
βœ“
Slack
Slack
πŸ”” notification
received

Scaling Beyond 50+ tasks due per day+ Records

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

1

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.

2

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.

3

Filter by priority

Only send reminders for high and urgent priority tasks to reduce noise. Let people check ClickUp directly for lower priority items.

4

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

VerdictWhy n8n for this workflow

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.

Cost

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.

Tradeoffs

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

Was this guide helpful?
← ClickUp + Slack overviewPipedream profile β†’