

How to Create ClickUp Tasks from Slack with Pipedream
React to any Slack message with an emoji to instantly create a ClickUp task with the message content as description.
Steps and UI details are based on platform versions at time of writing β check each platform for the latest interface.
Best for
Teams that need to convert Slack discussions into actionable ClickUp tasks without breaking conversation flow
Not ideal for
Teams wanting bulk task creation or complex task relationships - use ClickUp's native bulk import instead
Sync type
real-timeUse case type
notificationReal-World Example
A 12-person product team uses this to turn feature requests and bug reports from #general into ClickUp tasks. Before automation, the PM manually copied 8-12 messages daily into tasks, taking 15 minutes. Now team members just react with π and tasks appear in ClickUp within 3 seconds with full message context.
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 | |
| Space ID | space_id | |
| List ID | list_id | |
5 optional fieldsβΈ show
| Task Description | description |
| Priority | priority |
| Slack Permalink | custom_fields.slack_url |
| Channel Name | custom_fields.channel |
| Message Author | custom_fields.requester |
Step-by-Step Setup
Workflows > New
Create new Pipedream workflow
Go to pipedream.com and click Workflows in the left sidebar. Click the green New button in the top right corner. You'll see a blank workflow canvas with a trigger section at the top.
- 1Click 'Workflows' in the left navigation
- 2Click the green 'New' button
- 3Select 'Start with a trigger'
Trigger > Apps > Slack > New Reaction Added
Add Slack reaction trigger
Click the trigger area and search for 'Slack'. Select the Slack app, then choose 'New Reaction Added' from the trigger list. This webhook fires instantly when someone reacts to any message in your workspace.
- 1Click the trigger section
- 2Type 'Slack' in the app search
- 3Select 'Slack' from results
- 4Choose 'New Reaction Added' trigger
Trigger > Connect Account
Connect your Slack account
Click 'Connect Account' and authorize Pipedream to access your Slack workspace. You need admin permissions or the workspace owner must install the Pipedream app. Choose the workspace if you're in multiple Slack orgs.
- 1Click 'Connect Account' button
- 2Select your Slack workspace
- 3Click 'Allow' to grant permissions
- 4Return to Pipedream
Trigger > Generate Test Event
Test the Slack trigger
Click 'Generate Test Event' to see sample reaction data. If no recent reactions exist, go react to any message in your Slack with any emoji, then click 'Generate Test Event' again. You'll see the message content, reaction emoji, and user info.
- 1Click 'Generate Test Event' button
- 2React to a Slack message with any emoji
- 3Click 'Generate Test Event' again
- 4Review the sample data
Steps > + > Filter
Add emoji filter step
Click the + button below the trigger to add a filter step. Search for 'Filter' and select the built-in Filter component. Set the condition to only proceed when the reaction emoji equals your chosen emoji (like 'memo' for π).
- 1Click the + button below trigger
- 2Type 'Filter' and select it
- 3Set condition to 'steps.trigger.event.reaction'
- 4Choose 'equals' operator
- 5Enter your emoji name like 'memo'
Steps > + > ClickUp > Create Task
Add ClickUp connection step
Add another step and search for ClickUp. Select the ClickUp app, then choose 'Create Task' action. This will create a new task in your specified ClickUp space and list.
- 1Click + to add another step
- 2Search for 'ClickUp'
- 3Select ClickUp app
- 4Choose 'Create Task' action
ClickUp Step > Connect Account
Connect ClickUp account
Click 'Connect Account' and log into ClickUp. Generate an API key from ClickUp Settings > Apps > API Keys if prompted. Copy the key and paste it into Pipedream's connection form.
- 1Click 'Connect Account'
- 2Go to ClickUp Settings > Apps
- 3Click 'Generate' under API Keys
- 4Copy the API key
- 5Paste into Pipedream connection
ClickUp Step > Configuration
Configure task creation fields
Select your target Space and List from the dropdowns. Set the task name to reference the Slack user and channel. Map the message text to the task description field. Add the original Slack message URL in a custom field if needed.
- 1Select your ClickUp Space
- 2Choose the target List
- 3Set name to include user and channel
- 4Map message text to description
- 5Add Slack permalink if desired
Steps > + > Node.js > Code
Add duplicate prevention
Add a Node.js code step before ClickUp to check for existing tasks with the same Slack permalink. Use ClickUp's search API to avoid creating duplicate tasks when multiple people react to the same message.
- 1Add Node.js code step before ClickUp
- 2Import ClickUp SDK or use fetch
- 3Search for tasks with Slack URL
- 4Return early if duplicate found
- 5Continue to ClickUp if unique
Workflow > Deploy
Test the complete workflow
Click 'Deploy' to activate the workflow. Go to Slack and react to a message with your chosen emoji. Check ClickUp to verify the task was created with correct title, description, and assignee information.
- 1Click 'Deploy' in top right
- 2Go to your Slack workspace
- 3React to a message with your emoji
- 4Check ClickUp for the new task
- 5Verify all fields populated correctly
This Node.js code prevents duplicate tasks when multiple people react to popular messages. Paste it in a code step before the ClickUp action to search for existing tasks with the same Slack URL.
JavaScript β Code Stepexport default defineComponent({βΈ Show code
export default defineComponent({
async run({ steps, $ }) {
const slackUrl = steps.trigger.event.item.message.permalink... expand to see full code
export default defineComponent({
async run({ steps, $ }) {
const slackUrl = steps.trigger.event.item.message.permalink
const listId = '123456789' // Your ClickUp List ID
const searchResponse = await $.send.http({
method: 'GET',
url: `https://api.clickup.com/api/v2/list/${listId}/task`,
headers: {
'Authorization': steps.clickup.$auth.api_token,
'Content-Type': 'application/json'
},
params: {
custom_fields: JSON.stringify([{
field_id: 'slack_url_field_id',
operator: '=',
value: slackUrl
}])
}
})
if (searchResponse.body.tasks.length > 0) {
console.log('Task already exists for this message')
return $.flow.exit('Duplicate task prevented')
}
return {
proceed: true,
slack_url: slackUrl,
message_text: steps.trigger.event.item.message.text
}
}
})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 your team creates 50+ tasks daily from Slack discussions and needs custom duplicate prevention logic. The instant webhook trigger fires within 2 seconds of emoji reactions, and Node.js code steps let you build sophisticated filtering. Skip Pipedream if you just want basic task creation without custom logic - ClickUp's native Slack app handles simple cases better.
This costs 1 credit per reaction across your entire Slack workspace. At 200 emoji reactions monthly (realistic for active 15-person teams), you'll hit 200 credits on Pipedream's free tier. The paid plan at $29/month handles 10,000 credits. Zapier charges per task created, making it 3x more expensive at this volume since you pay for filtered-out reactions too.
Zapier's Slack trigger has better channel filtering options and catches threaded messages more reliably than Pipedream. Make offers more visual conditional logic for routing different emojis to different lists without code. n8n gives you the same Node.js flexibility for free if self-hosted. Power Automate integrates better with Microsoft teams using Slack. But Pipedream's instant webhook processing and built-in error handling makes it the most reliable for high-activity channels.
You'll hit ClickUp's 100 requests/minute rate limit if your team goes emoji-crazy on popular messages. The Slack app permissions break randomly and need re-authorization every few months. Message text extraction fails on complex formatted messages with code blocks or attachments - you'll need fallback logic to handle plain text conversion.
Ideas for what to build next
- βAdd priority mapping β Use different emojis (π₯, β‘, π) to automatically set ClickUp priority levels and route to appropriate lists.
- βCreate task assignment rules β Automatically assign tasks to specific team members based on source channel or message keywords using ClickUp's assignee field.
- βBuild reverse notification β Send Slack notifications back to the original channel when ClickUp tasks are completed or status changes occur.
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