Connect Slack to ClickUp using Make.com: create tasks from Slack messages with exact modules, field mappings, and common gotchas for reliable task creation.
Introduction
Turning a Slack message into a tracked ClickUp task is a daily need for teams that manage requests in chat. Right now you might be copying message text, switching to ClickUp, creating a task, pasting the message, and adding assignees manually. That costs minutes per request and leads to lost context when somebody forgets the channel or timestamp.
By the end you will have a working Make.com scenario that takes a Slack message, creates a task in a specified ClickUp list, maps the message, preserves a link back to the message, and posts a confirmation in the channel.
What You'll Need
- Slack workspace with permission to install apps or create an app, and a bot token if using Slack app methods (paid plans not required for basic message triggers but workspace admin rights may be required).
- ClickUp account with API access and a target List ID where tasks will be created. You need a ClickUp API token (available from your ClickUp profile settings).
- Make.com account. A free Make.com account can run simple scenarios but you will likely need a paid tier for higher frequency or multiple runs.
- Basic familiarity with Make.com scenarios and JSON mapping.
How It Works (The Logic)
Trigger: a new message in a Slack channel or a message action you run on a message. Action 1: Make.com receives the Slack event, extracts message text, author, channel, and timestamp. Action 2: Make.com calls ClickUp Create Task API (via the ClickUp module) to create a task in the chosen List, mapping name, description, assignee(s), and a link back to the originating Slack message. Action 3: Make.com posts a confirmation message back to Slack with the new ClickUp task link.
Step-by-Step Setup
-
Prepare ClickUp and Slack credentials
- In ClickUp, create or identify the List where tasks should go. Copy the List ID from the ClickUp UI or via the ClickUp API. Generate a ClickUp personal API token from your profile settings.
- In Slack, decide whether you want: a) a channel-level "watch messages" trigger, or b) a message action / shortcut a user can run on a specific message. Message actions require a Slack app and bot token.
-
Create a new Make.com scenario
- Module 1: Slack > Watch Messages in a Channel (or Slack > Watch Message Actions if using a shortcut). Configure the module for the target channel, and set the polling interval appropriate for your plan.
- Gotcha: If you use "Watch Messages", Make will pick up every message. Add a condition in the scenario to filter messages (for example, only messages that contain a keyword or that are reacted to with a specific emoji). If using a message action, you avoid noisy triggers.
-
Add a filter or Router (optional but recommended)
- Add a Make filter right after the Slack trigger that checks for your condition: e.g., message contains "/task" or message has the :task: reaction. This prevents creating tasks for every chat line.
- Example filter expression: contains(Text, "/task") or contains(Reactions, "task-reaction").
-
Module 2: ClickUp > Create a Task
- Add the ClickUp "Create a Task" module. Authenticate using the ClickUp personal API token.
- Map fields:
- List ID: paste the target List ID.
- Name: map from Slack message text but keep it short. Use the first 80 characters of the message, for example substring(Text;0;80) or a custom extracted title field.
- Description: map the full Slack message text, then add a context block with the message author, channel name, and the Slack message link. Example description: "From <@{{user}}> in #{{channel}} at {{ts}}\n\n{{text}}\n\nOriginal message: https://slack.com/archives/{{channel}}/p{{ts_no_dot}}"
- Assignees: optional. Map to ClickUp user IDs if you can reliably map Slack users to ClickUp users. If you cannot, leave unassigned.
- Due date / Priority / Custom fields: map if your process requires them. For dates, convert Slack date text to epoch milliseconds as ClickUp expects.
- Gotcha: ClickUp requires timestamps in milliseconds for due_date. Use Make functions to convert human dates or omit due_date if you do not supply one.
-
Module 3: Slack > Post Message (confirmation)
- Add a Slack "Post Message" action that replies in-thread or posts to the channel confirming task creation. Map the ClickUp task URL returned by the Create Task module.
- Example text: "Task created: <{{clickup_task_url}}|{{task_name}}> by {{clickup_creator}}"
-
Test the scenario
- Run the scenario in Make.com with a sample message. Verify the ClickUp task name, description, and link back to Slack are correct.
- Verify the Slack confirmation message contains the ClickUp task link and appears in the expected channel or thread.
-
Turn on the scenario and monitor
- Enable scenario scheduling. Monitor runs for the first 24–72 hours to catch mapping errors or rate limits. If you hit rate limits, add batching or reduce polling frequency.
Real-World Business Scenario
A small digital agency used this exact flow to stop losing creative requests posted in Slack. They configured a message action so any team member could click "Create ClickUp Task" on a message. The task description included the full message plus the Slack permalink and the designer was automatically assigned when the message included an @mention mapping. This removed the 2–3 minute manual task creation step and reduced missed requests by 90 percent.
Common Variations
- Use a Slack message shortcut with a lightweight modal that prompts the user for task title, due date, and assignee before creating the ClickUp task. This prevents needing to parse the message for title or dates.
- Instead of creating tasks for every trigger, create tasks only when a message receives a specific emoji reaction. This works well to separate noise from actionable items.
- Add a final Make step to update a Google Sheet or a Notion database recording who created the task and the ClickUp ID for simple reporting.
Final notes and next steps
You have a minimal, reliable Slack→ClickUp automation using Make.com that preserves message context, maps fields, and confirms back in Slack. No related posts were found during the topic check, so this is a fresh, focused how-to on this specific integration. If you want Olmec Dynamics to build this for your workspace or extend it into a full request intake system, see what we do at Olmec Dynamics for automation projects.
Find out more about our services at Olmec Dynamics.