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

How to Send ClickUp Task Status Alerts to Slack with Pipedream

Automatically notify your Slack channel when ClickUp tasks move to Ready for Review or Blocked status.

Steps and UI details are based on platform versions at time of writing β€” check each platform for the latest interface.

Best for

Development teams tracking code reviews and blockers who need immediate visibility into task status changes.

Not ideal for

Teams wanting status summaries or digest notifications should use scheduled reporting instead.

Sync type

real-time

Use case type

notification

Real-World Example

πŸ’‘

A 12-person product team uses this to notify #dev-updates when tasks move to Ready for Review or get Blocked. Before automation, developers manually announced reviews in Slack, causing 2-4 hour delays. Now blocked tasks get immediate attention and reviews start within 15 minutes.

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 paid plan (Business or higher) for webhook triggers
Admin access to ClickUp workspace for webhook creation
Slack workspace admin approval for app installation
Permission to post messages in target Slack channel

Field Mapping

Map these fields between your apps.

FieldAPI Name
Required
Task Name
New Status
Task URL
4 optional fieldsβ–Έ show
Assignee
List Name
Due Date
Priority

Step-by-Step Setup

1

Workflows > + New > Start with a trigger

Create new Pipedream workflow

Go to pipedream.com and click New Workflow. Choose 'Start with a trigger' from the options. You'll see the workflow builder with an empty trigger step ready for configuration.

  1. 1Click '+ New' in the top navigation
  2. 2Select 'Start with a trigger'
  3. 3Name your workflow 'ClickUp Status Alerts'
βœ“ What you should see: You should see a blank workflow with one trigger step labeled 'trigger'.
2

Trigger Step > Search Apps > ClickUp

Configure ClickUp webhook trigger

Click the trigger step and search for ClickUp in the app list. Select 'New Task Event (Instant)' which fires immediately when task properties change. This uses ClickUp's webhook system for real-time notifications.

  1. 1Click the empty trigger step
  2. 2Search and select 'ClickUp'
  3. 3Choose 'New Task Event (Instant)' trigger
  4. 4Click 'Continue'
βœ“ What you should see: The trigger step now shows the ClickUp logo and 'New Task Event (Instant)' label.
⚠
Common mistake β€” ClickUp's webhook triggers require a paid ClickUp plan. Free accounts only support polling triggers with 15-minute delays.
Pipedream
+
click +
search apps
ClickUp
CL
ClickUp
Configure ClickUp webhook tr…
ClickUp
CL
module added
3

ClickUp Trigger > Connect Account

Connect your ClickUp account

Click 'Connect Account' to authenticate with ClickUp. You'll be redirected to ClickUp's OAuth screen where you need to authorize Pipedream access to your workspace. Make sure the account has admin permissions to create webhooks.

  1. 1Click 'Connect Account' button
  2. 2Authorize Pipedream in the ClickUp popup
  3. 3Select your ClickUp workspace
  4. 4Confirm the connection shows as 'Connected'
βœ“ What you should see: You should see a green 'Connected' status next to your ClickUp account name.
⚠
Common mistake β€” Only workspace admins can create webhooks. Members will get a 403 error during webhook registration.
Pipedream settings
Connection
Choose a connection…Add
click Add
ClickUp
Log in to authorize
Authorize Pipedream
popup window
βœ“
Connected
green checkmark
4

ClickUp Configuration > Workspace > List

Select workspace and list

Choose which ClickUp workspace and list to monitor. The webhook will trigger for any task status change in this list. If you need multiple lists, you'll need separate workflows for each one.

  1. 1Select your workspace from the dropdown
  2. 2Choose the specific list to monitor
  3. 3Leave 'Task Events' selected as the event type
  4. 4Click 'Save and continue'
βœ“ What you should see: The trigger configuration shows your selected workspace and list names.
5

Workflow > + Add Step > Code

Add status filter code step

Click the + button below the trigger to add a code step. We need to filter for only 'Ready for Review' and 'Blocked' status changes. Set the language to Node.js and paste the filtering logic.

  1. 1Click the + button below the trigger
  2. 2Select 'Run custom code'
  3. 3Choose 'Node.js' as the language
  4. 4Name the step 'Filter Status Changes'
βœ“ What you should see: A code editor appears with a basic async function template.
⚠
Common mistake β€” ClickUp sends webhooks for ALL task changes. Without filtering, you'll get notifications for every assignee, due date, and description update.

This code adds smart filtering and user-friendly formatting. Paste it in the status filter step to handle edge cases and improve message readability.

JavaScript β€” Code Stepexport default defineComponent({
β–Έ Show code
export default defineComponent({
  async run({ steps, $ }) {
    const task = steps.trigger.event.body;

... expand to see full code

export default defineComponent({
  async run({ steps, $ }) {
    const task = steps.trigger.event.body;
    const targetStatuses = ['Ready for Review', 'Blocked'];
    
    // Check if status actually changed to target values
    const currentStatus = task.status?.status || task.status;
    if (!targetStatuses.includes(currentStatus)) {
      return $.end('Status not relevant');
    }
    
    // Get assignee name from user object
    const assigneeName = task.assignees?.[0]?.username || 
                         task.assignees?.[0]?.email?.split('@')[0] || 
                         'Unassigned';
    
    // Format priority with emoji
    const priorityEmoji = {
      'urgent': '🚨',
      'high': 'πŸ”΄', 
      'normal': '🟑',
      'low': '🟒'
    };
    
    const formattedTask = {
      name: task.name,
      status: currentStatus,
      assignee: assigneeName,
      url: task.url,
      priority: task.priority ? 
        `${priorityEmoji[task.priority.priority?.toLowerCase()] || ''} ${task.priority.priority}` : 
        'Not set',
      emoji: currentStatus === 'Blocked' ? '🚫' : 'πŸ”'
    };
    
    return formattedTask;
  }
});
ClickUp
CL
trigger
filter
Status
matches criteria?
yes β€” passes through
no β€” skipped
Slack
SL
notified
6

Code Step > Editor

Configure status filtering logic

Replace the default code with logic to check if the task status changed to our target statuses. The code examines the webhook payload and only continues processing for 'Ready for Review' or 'Blocked' status changes.

  1. 1Clear the existing code template
  2. 2Paste the status filtering code
  3. 3Check the code references the correct ClickUp field names
  4. 4Click 'Test' to validate syntax
βœ“ What you should see: The code editor shows no syntax errors and the step is marked as configured.
⚠
Common mistake β€” Filters are the most common place setups break. Double-check the field name and value exactly match what your app sends β€” a single capital letter difference will block everything.
7

Workflow > + Add Step > Slack

Add Slack notification step

Add another step and search for Slack. Choose 'Send Message to Channel' action. This will post a formatted message to your specified Slack channel when the status filter passes.

  1. 1Click + below the code step
  2. 2Search for and select 'Slack'
  3. 3Choose 'Send Message to Channel'
  4. 4Click 'Continue' to proceed
βœ“ What you should see: The Slack step appears with configuration options for channel and message content.
⚠
Common mistake β€” The Slack app must be installed in your workspace and have permission to post in the target channel.
8

Slack Step > Connect Account

Connect Slack account

Authorize Pipedream to access your Slack workspace. You'll need permissions to post messages in the target channel. If you're not a workspace admin, ask one to approve the app installation.

  1. 1Click 'Connect Account'
  2. 2Select your Slack workspace
  3. 3Review and approve the requested permissions
  4. 4Confirm the connection is established
βœ“ What you should see: Slack account shows 'Connected' status with your workspace name displayed.
9

Slack Configuration > Channel > Message

Configure Slack message format

Select your target channel and build the message template using ClickUp data from the trigger. Include task name, new status, assignee, and a direct link to the task. Use Pipedream's step reference syntax to pull data.

  1. 1Select the target Slack channel from dropdown
  2. 2Build message text using ClickUp trigger data
  3. 3Include task URL, status, and assignee fields
  4. 4Preview the message format
βœ“ What you should see: The message preview shows properly formatted text with ClickUp data populated.
⚠
Common mistake β€” ClickUp assignee data comes as user IDs. You may need additional code to convert these to readable names.
10

Workflow > Test > Deploy

Test the complete workflow

Use Pipedream's test feature to simulate a ClickUp webhook. Change a task status in ClickUp to 'Ready for Review' or 'Blocked' and verify the Slack message appears correctly formatted with all the expected data.

  1. 1Click 'Test' at the workflow level
  2. 2Go to ClickUp and change a task status
  3. 3Check that the webhook fires in Pipedream
  4. 4Verify the Slack message appears correctly
  5. 5Click 'Deploy' to activate the workflow
βœ“ What you should see: The test shows successful execution and your Slack channel receives the formatted notification.
⚠
Common mistake β€” Webhook delivery can take 10-30 seconds. Don't assume it's broken if the message doesn't appear instantly.
Pipedream
β–Ά Deploy & test
executed
βœ“
ClickUp
βœ“
Slack
Slack
πŸ”” notification
received

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 instant webhook processing and custom filtering logic. The Node.js code steps make it easy to transform ClickUp's raw webhook data into readable Slack messages. Pipedream's instant webhook endpoints also mean zero delay between status changes and notifications. Skip Pipedream if you just want basic field mapping without custom logic - Zapier's simpler for that.

Cost

Real costs: each status change burns 1 credit. At 200 status changes per month, you'll hit $20/month on the Developer plan. ClickUp's webhook volume can surprise you - busy teams generate 500+ task updates daily. Make handles the same volume for $10.59/month, but you lose the instant webhook advantage.

Tradeoffs

Make has better visual filtering with conditional paths instead of code. Zapier's ClickUp integration includes more trigger options like 'Task Status Changed' specifically. n8n gives you the same Node.js flexibility for free if you self-host. Power Automate struggles with ClickUp webhooks - their connector is polling-only. But Pipedream wins on webhook reliability and credit efficiency for this exact use case.

You'll hit ClickUp's user ID problem fast - assignees come through as cryptic IDs, not names. The webhook payload structure also changes between ClickUp plan tiers, so test thoroughly after any plan upgrades. Some teams also underestimate webhook volume - ClickUp fires events for every field change, not just status updates, so your filtering code becomes critical for avoiding notification spam.

Ideas for what to build next

  • β†’
    Add @channel mentions for blocked tasks β€” Modify the Slack message to ping the entire channel when tasks are blocked, ensuring immediate attention for critical issues.
  • β†’
    Create digest for completed reviews β€” Build a separate scheduled workflow that summarizes all tasks that moved from Ready for Review to Done each day.
  • β†’
    Extend to other status changes β€” Add triggers for In Progress or Done status changes to track the full development lifecycle in your Slack channels.

Related guides

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