Turn Slack message shortcuts into ClickUp tasks using Make.com. Create tasks, include message context and a link, and notify the channel. Set up in minutes.
Introduction
You see an actionable message in Slack and you want it tracked in ClickUp, not lost in a thread. Manually creating tasks from messages is repetitive and error-prone: you copy the message, switch to ClickUp, create a task, paste the text, and then post a confirmation back into Slack.
This guide shows a minimal, reliable Make.com scenario that turns a Slack message shortcut or reaction into a ClickUp task, preserves the message context and a permalink, and posts a short confirmation back into the original thread. You will create a small audit log in Google Sheets so duplicates are prevented and you can troubleshoot fast.
What you will get by the end: the exact Make.com modules to use, the straight-forward field mappings, and the common gotchas to check when you test.
What You’ll Need
- Slack workspace with permission to install the Make.com app or a Slack app that sends message shortcuts to Make
- ClickUp workspace with permission to create tasks in the target List and a ClickUp API token connected in Make.com
- Make.com account to host the scenario (paid plan recommended for production reliability)
- Optional: Google Sheets for a simple dedupe/audit log
Notes: choose a single Slack channel to pilot this workflow so you do not create tasks from noisy chat. Prefer a message action/shortcut (users intentionally run it on a message) rather than a naive watch-every-message trigger.
How It Works (The Logic)
Trigger (Slack message action or emoji reaction) → Extract message text, author, channel, and permalink → Check dedupe ledger (Google Sheets) to avoid duplicates → Create a ClickUp task in the chosen List, mapping name and description → Post a short Slack reply containing the ClickUp task link → Log the operation in Google Sheets.
The trick that makes this reliable is the dedupe ledger and writing the ledger only after ClickUp creation succeeds.
Step-by-Step Setup
- Create the Make.com scenario and Slack trigger
- In Make.com create a new Scenario.
- Add the Slack module for the trigger. Use the Message shortcut or Message action trigger if your Make plan and Slack setup support it. This lets a user run the action against a specific message.
- If you cannot use a shortcut, use an emoji reaction trigger and filter for a chosen emoji, but be prepared to handle accidental reactions.
Test the trigger by running it once on a sample message so Make.com captures a payload.
- Extract the fields you need
From the Slack trigger payload, map these variables in Make:
- slack_message_id (ts)
- slack_channel_id
- slack_user_id (who posted the original message)
- slack_message_text (prefer plain text, trim if too long)
- slack_message_permalink (construct or fetch via Slack API if the payload does not include it)
Clean the text: trim whitespace and optionally keep only the first 800 characters for task titles.
- Add a simple dedupe check (Google Sheets)
Create a Google Sheet with a tab called slack_to_clickup_log and columns:
slack_message_idclickup_task_idcreated_at
In Make, add a Google Sheets Search rows step looking for the slack_message_id. If found, stop the scenario. If not found, continue.
Why this matters: Slack message shortcuts can be triggered twice by mistake, and webhooks can replay. The ledger prevents duplicate tasks.
- Create the ClickUp task
Add the ClickUp Create a Task module. Map fields like these:
-
List ID: the ClickUp List where tasks should go
-
Task name: first 80 characters of slack_message_text, for example
Slack: {{slack_message_text}} -
Description: include an attribution block:
Source Slack message: <{{slack_message_permalink}}|Open message>
Posted by: <@{{slack_user_id}}>
Original text: {{slack_message_text}} -
Assignees: optionally map a default assignee or set no assignee initially
If ClickUp expects epoch ms for dates, leave dates unset unless you parse them from the message.
Common gotcha: the ClickUp module sometimes requires numeric user IDs for assignees. Keep a lookup table in Google Sheets if you want dynamic assignment by Slack user or role.
- Post a short Slack confirmation reply
After ClickUp creation, post a confirmation in the Slack thread so the requester sees the result:
- Message example: "Task created: <{{clickup_task_url}}|Open task> — assigned to @ops (if any)."
- Use the thread timestamp so the confirmation appears under the original message.
- Append the log row in Google Sheets
Only after the ClickUp step and Slack confirmation succeed, append a row to slack_to_clickup_log with:
slack_message_idclickup_task_idcreated_at(Make timestamp)
This final write is your idempotency record for future runs.
- Add an error route for failures
If ClickUp creation fails or Slack API returns an error:
- Post a short error message to a private Slack ops channel with the slack_message_id and the error text.
- Do not write a success row to the ledger. That allows retrying the same message later.
- Test the flow thoroughly
Run these tests before enabling in production:
- Trigger the message shortcut once and confirm a single ClickUp task and a Slack confirmation reply.
- Trigger it again on the same message and confirm no duplicate task is created (ledger prevents it).
- Simulate a ClickUp failure to confirm the error path triggers and no ledger row is written.
Real-World Business Scenario
A remote product team used this pattern for quick bug capture in Slack. Developers and QA used a Slack message shortcut on error report messages. Each shortcut created a ClickUp task that included a permalink back to the original Slack message and a short summary. The team removed the manual copy-paste step, and triage time dropped by several hours per week.
If you need an example of a similar Slack→task pattern built for Slack and ClickUp, see our walkthrough: How to Create a ClickUp Task from a Slack Message Using Make.com.
Common Variations
- Use a Slack modal (interactive form) after the message shortcut so the user can add a priority or pick an assignee before the ClickUp task is created.
- Instead of a Google Sheet ledger, store the mapping in ClickUp custom fields (for instance, write the Slack message id into a custom
source_slack_idfield on the task) and search ClickUp for that id before creating a new task. - Auto-assign using a small Google Sheet lookup table mapping Slack user ids or domains to ClickUp user ids.
Closing notes
You now have a short, practical automation that turns Slack messages into ClickUp tasks using Make.com, includes a Slack confirmation, and prevents duplicates with a simple ledger. If you want this deployed across multiple channels or extended with an approval modal, Olmec Dynamics builds these automations and helps map the exact fields and permissions your team needs.
Related references: If you want a similar pattern that creates tasks from Calendly bookings, see How to Create ClickUp Tasks from Calendly Bookings Using Make.com and Slack. If you are already creating tasks from Slack messages, this guide complements that pattern with an explicit idempotency ledger to keep your ClickUp list clean.