

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-timeUse case type
notificationReal-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.
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 | ||
| New Status | ||
| Task URL | ||
4 optional fieldsβΈ show
| Assignee | |
| List Name | |
| Due Date | |
| Priority |
Step-by-Step Setup
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.
- 1Click '+ New' in the top navigation
- 2Select 'Start with a trigger'
- 3Name your workflow 'ClickUp Status Alerts'
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.
- 1Click the empty trigger step
- 2Search and select 'ClickUp'
- 3Choose 'New Task Event (Instant)' trigger
- 4Click 'Continue'
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.
- 1Click 'Connect Account' button
- 2Authorize Pipedream in the ClickUp popup
- 3Select your ClickUp workspace
- 4Confirm the connection shows as 'Connected'
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.
- 1Select your workspace from the dropdown
- 2Choose the specific list to monitor
- 3Leave 'Task Events' selected as the event type
- 4Click 'Save and continue'
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.
- 1Click the + button below the trigger
- 2Select 'Run custom code'
- 3Choose 'Node.js' as the language
- 4Name the step 'Filter Status Changes'
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;
}
});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.
- 1Clear the existing code template
- 2Paste the status filtering code
- 3Check the code references the correct ClickUp field names
- 4Click 'Test' to validate syntax
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.
- 1Click + below the code step
- 2Search for and select 'Slack'
- 3Choose 'Send Message to Channel'
- 4Click 'Continue' to proceed
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.
- 1Click 'Connect Account'
- 2Select your Slack workspace
- 3Review and approve the requested permissions
- 4Confirm the connection is established
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.
- 1Select the target Slack channel from dropdown
- 2Build message text using ClickUp trigger data
- 3Include task URL, status, and assignee fields
- 4Preview the message format
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.
- 1Click 'Test' at the workflow level
- 2Go to ClickUp and change a task status
- 3Check that the webhook fires in Pipedream
- 4Verify the Slack message appears correctly
- 5Click 'Deploy' to activate the workflow
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 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.
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.
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
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