clickup-automation
npx machina-cli add skill davepoon/buildwithclaude/clickup-automation --openclawClickUp Automation via Rube MCP
Automate ClickUp project management workflows including task creation and updates, workspace hierarchy navigation, comments, and team member management through Composio's ClickUp toolkit.
Toolkit docs: composio.dev/toolkits/clickup
Prerequisites
- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)
- Active ClickUp connection via
RUBE_MANAGE_CONNECTIONSwith toolkitclickup - Always call
RUBE_SEARCH_TOOLSfirst to get current tool schemas
Setup
Get Rube MCP: Add https://rube.app/mcp as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.
- Verify Rube MCP is available by confirming
RUBE_SEARCH_TOOLSresponds - Call
RUBE_MANAGE_CONNECTIONSwith toolkitclickup - If connection is not ACTIVE, follow the returned auth link to complete ClickUp OAuth
- Confirm connection status shows ACTIVE before running any workflows
Core Workflows
1. Create and Manage Tasks
When to use: User wants to create tasks, subtasks, update task properties, or list tasks in a ClickUp list.
Tool sequence:
CLICKUP_GET_AUTHORIZED_TEAMS_WORKSPACES- Get workspace/team IDs [Prerequisite]CLICKUP_GET_SPACES- List spaces in the workspace [Prerequisite]CLICKUP_GET_FOLDERS- List folders in a space [Prerequisite]CLICKUP_GET_FOLDERLESS_LISTS- Get lists not inside folders [Optional]CLICKUP_GET_LIST- Validate list and check available statuses [Prerequisite]CLICKUP_CREATE_TASK- Create a task in the target list [Required]CLICKUP_CREATE_TASK(withparent) - Create subtask under a parent task [Optional]CLICKUP_UPDATE_TASK- Modify task status, assignees, dates, priority [Optional]CLICKUP_GET_TASK- Retrieve full task details [Optional]CLICKUP_GET_TASKS- List all tasks in a list with filters [Optional]CLICKUP_DELETE_TASK- Permanently remove a task [Optional]
Key parameters for CLICKUP_CREATE_TASK:
list_id: Target list ID (integer, required)name: Task name (string, required)description: Detailed task descriptionstatus: Must exactly match (case-sensitive) a status name configured in the target listpriority: 1 (Urgent), 2 (High), 3 (Normal), 4 (Low)assignees: Array of user IDs (integers)due_date: Unix timestamp in millisecondsparent: Parent task ID string for creating subtaskstags: Array of tag name stringstime_estimate: Estimated time in milliseconds
Pitfalls:
statusis case-sensitive and must match an existing status in the list; useCLICKUP_GET_LISTto check available statusesdue_dateandstart_dateare Unix timestamps in milliseconds, not seconds- Subtask
parentmust be a task (not another subtask) in the same list notify_alltriggers watcher notifications; set to false for bulk operations- Retries can create duplicates; track created task IDs to avoid re-creation
custom_item_idfor milestones (ID 1) is subject to workspace plan quotas
2. Navigate Workspace Hierarchy
When to use: User wants to browse or manage the ClickUp workspace structure (Workspaces > Spaces > Folders > Lists).
Tool sequence:
CLICKUP_GET_AUTHORIZED_TEAMS_WORKSPACES- List all accessible workspaces [Required]CLICKUP_GET_SPACES- List spaces within a workspace [Required]CLICKUP_GET_SPACE- Get details for a specific space [Optional]CLICKUP_GET_FOLDERS- List folders in a space [Required]CLICKUP_GET_FOLDER- Get details for a specific folder [Optional]CLICKUP_CREATE_FOLDER- Create a new folder in a space [Optional]CLICKUP_GET_FOLDERLESS_LISTS- List lists not inside any folder [Required]CLICKUP_GET_LIST- Get list details including statuses and custom fields [Optional]
Key parameters:
team_id: Workspace ID from GET_AUTHORIZED_TEAMS_WORKSPACES (required for spaces)space_id: Space ID (required for folders and folderless lists)folder_id: Folder ID (required for GET_FOLDER)list_id: List ID (required for GET_LIST)archived: Boolean filter for archived/active items
Pitfalls:
- ClickUp hierarchy is: Workspace (Team) > Space > Folder > List > Task
- Lists can exist directly under Spaces (folderless) or inside Folders
- Must use
CLICKUP_GET_FOLDERLESS_LISTSto find lists not inside folders;CLICKUP_GET_FOLDERSonly returns folders team_idin ClickUp API refers to the Workspace ID, not a user group
3. Add Comments to Tasks
When to use: User wants to add comments, review existing comments, or manage comment threads on tasks.
Tool sequence:
CLICKUP_GET_TASK- Verify task exists and get task_id [Prerequisite]CLICKUP_CREATE_TASK_COMMENT- Add a new comment to the task [Required]CLICKUP_GET_TASK_COMMENTS- List existing comments on the task [Optional]CLICKUP_UPDATE_COMMENT- Edit comment text, assignee, or resolution status [Optional]
Key parameters for CLICKUP_CREATE_TASK_COMMENT:
task_id: Task ID string (required)comment_text: Comment content with ClickUp formatting support (required)assignee: User ID to assign the comment to (required)notify_all: true/false for watcher notifications (required)
Key parameters for CLICKUP_GET_TASK_COMMENTS:
task_id: Task ID string (required)start/start_id: Pagination for older comments (max 25 per page)
Pitfalls:
CLICKUP_CREATE_TASK_COMMENTrequires all four fields:task_id,comment_text,assignee, andnotify_allassigneeon a comment assigns the comment (not the task) to that user- Comments are paginated at 25 per page; use
start(Unix ms) andstart_idfor older pages CLICKUP_UPDATE_COMMENTrequires all four fields:comment_id,comment_text,assignee,resolved
4. Manage Team Members and Assignments
When to use: User wants to view workspace members, check seat utilization, or look up user details.
Tool sequence:
CLICKUP_GET_AUTHORIZED_TEAMS_WORKSPACES- List workspaces and get team_id [Required]CLICKUP_GET_WORKSPACE_SEATS- Check seat utilization (members vs guests) [Required]CLICKUP_GET_TEAMS- List user groups within the workspace [Optional]CLICKUP_GET_USER- Get details for a specific user (Enterprise only) [Optional]CLICKUP_GET_CUSTOM_ROLES- List custom permission roles [Optional]
Key parameters:
team_id: Workspace ID (required for all team operations)user_id: Specific user ID for GET_USERgroup_ids: Comma-separated group IDs to filter teams
Pitfalls:
CLICKUP_GET_WORKSPACE_SEATSreturns seat counts, not member details; distinguish members from guestsCLICKUP_GET_TEAMSreturns user groups, not workspace members; empty groups does not mean no membersCLICKUP_GET_USERis only available on ClickUp Enterprise Plan- Must repeat workspace seat queries for each workspace in multi-workspace setups
5. Filter and Query Tasks
When to use: User wants to find tasks with specific filters (status, assignee, dates, tags, custom fields).
Tool sequence:
CLICKUP_GET_TASKS- Filter tasks in a list with multiple criteria [Required]CLICKUP_GET_TASK- Get full details for individual tasks [Optional]
Key parameters for CLICKUP_GET_TASKS:
list_id: List ID (integer, required)statuses: Array of status strings to filter byassignees: Array of user ID stringstags: Array of tag name stringsdue_date_gt/due_date_lt: Unix timestamp in ms for date rangeinclude_closed: Boolean to include closed taskssubtasks: Boolean to include subtasksorder_by: "id", "created", "updated", or "due_date"page: Page number starting at 0 (max 100 tasks per page)
Pitfalls:
- Only tasks whose home list matches
list_idare returned; tasks in sublists are not included - Date filters use Unix timestamps in milliseconds
- Status strings must match exactly; use URL encoding for spaces (e.g., "to%20do")
- Page numbering starts at 0; each page returns up to 100 tasks
custom_fieldsfilter accepts an array of JSON strings, not objects
Common Patterns
ID Resolution
Always resolve names to IDs through the hierarchy:
- Workspace name -> team_id:
CLICKUP_GET_AUTHORIZED_TEAMS_WORKSPACESand match by name - Space name -> space_id:
CLICKUP_GET_SPACESwithteam_id - Folder name -> folder_id:
CLICKUP_GET_FOLDERSwithspace_id - List name -> list_id: Navigate folders or use
CLICKUP_GET_FOLDERLESS_LISTS - Task name -> task_id:
CLICKUP_GET_TASKSwithlist_idand match by name
Pagination
CLICKUP_GET_TASKS: Page-based withpagestarting at 0, max 100 tasks per pageCLICKUP_GET_TASK_COMMENTS: Usesstart(Unix ms) andstart_idfor cursor-based paging, max 25 per page- Continue fetching until response returns fewer items than the page size
Known Pitfalls
ID Formats
- Workspace/Team IDs are large integers
- Space, folder, and list IDs are integers
- Task IDs are alphanumeric strings (e.g., "9hz", "abc123")
- User IDs are integers
- Comment IDs are integers
Rate Limits
- ClickUp enforces rate limits; bulk task creation can trigger 429 responses
- Honor
Retry-Afterheader when present - Set
notify_all=falsefor bulk operations to reduce notification load
Parameter Quirks
team_idin the API means Workspace ID, not a user groupstatuson tasks is case-sensitive and list-specific- Dates are Unix timestamps in milliseconds (multiply seconds by 1000)
priorityis an integer 1-4 (1=Urgent, 4=Low), not a stringCLICKUP_CREATE_TASK_COMMENTmarksassigneeandnotify_allas required- To clear a task description, pass a single space
" "toCLICKUP_UPDATE_TASK
Hierarchy Rules
- Subtask parent must not itself be a subtask
- Subtask parent must be in the same list
- Lists can be folderless (directly in a Space) or inside a Folder
- Subitem boards are not supported by CLICKUP_CREATE_TASK
Quick Reference
| Task | Tool Slug | Key Params |
|---|---|---|
| List workspaces | CLICKUP_GET_AUTHORIZED_TEAMS_WORKSPACES | (none) |
| List spaces | CLICKUP_GET_SPACES | team_id |
| Get space details | CLICKUP_GET_SPACE | space_id |
| List folders | CLICKUP_GET_FOLDERS | space_id |
| Get folder details | CLICKUP_GET_FOLDER | folder_id |
| Create folder | CLICKUP_CREATE_FOLDER | space_id, name |
| Folderless lists | CLICKUP_GET_FOLDERLESS_LISTS | space_id |
| Get list details | CLICKUP_GET_LIST | list_id |
| Create task | CLICKUP_CREATE_TASK | list_id, name, status, assignees |
| Update task | CLICKUP_UPDATE_TASK | task_id, status, priority |
| Get task | CLICKUP_GET_TASK | task_id, include_subtasks |
| List tasks | CLICKUP_GET_TASKS | list_id, statuses, page |
| Delete task | CLICKUP_DELETE_TASK | task_id |
| Add comment | CLICKUP_CREATE_TASK_COMMENT | task_id, comment_text, assignee |
| List comments | CLICKUP_GET_TASK_COMMENTS | task_id, start, start_id |
| Update comment | CLICKUP_UPDATE_COMMENT | comment_id, comment_text, resolved |
| Workspace seats | CLICKUP_GET_WORKSPACE_SEATS | team_id |
| List user groups | CLICKUP_GET_TEAMS | team_id |
| Get user details | CLICKUP_GET_USER | team_id, user_id |
| Custom roles | CLICKUP_GET_CUSTOM_ROLES | team_id |
Powered by Composio
Source
git clone https://github.com/davepoon/buildwithclaude/blob/main/plugins/all-skills/skills/clickup-automation/SKILL.mdView on GitHub Overview
Automate ClickUp workflows across tasks, spaces, folders, lists, and team operations using Composio's ClickUp toolkit. This skill covers establishing a Rube MCP connection, querying current schemas with RUBE_SEARCH_TOOLS, and performing create, update, and navigation tasks to keep ClickUp projects in sync.
How This Skill Works
Begin by verifying that Rube MCP is available and that a ClickUp connection is ACTIVE via RUBE_MANAGE_CONNECTIONS. Use a guided tool sequence to discover workspace structure (workspaces, spaces, folders, lists) and then perform actions such as creating or updating tasks, subtasks, and comments, while handling prerequisites and parameter validation for each operation.
When to Use It
- Create a new task in a specific ClickUp list with a defined name, description, due date, and assignees
- Update task properties such as status, assignees, dates, or priority
- Create subtasks under an existing parent task within the same list
- List or filter tasks within a list for reporting or monitoring
- Navigate workspace hierarchy to retrieve IDs for automation and manage folders or lists
Quick Start
- Step 1: Ensure RUBE_SEARCH_TOOLS responds and connect ClickUp via RUBE_MANAGE_CONNECTIONS
- Step 2: Confirm the ClickUp connection status is ACTIVE
- Step 3: Run a workflow to create a task in the target list using CLICKUP_CREATE_TASK
Best Practices
- Always verify current tool schemas by calling RUBE_SEARCH_TOOLS before running workflows
- Use CLICKUP_GET_LIST to validate available statuses and ensure case sensitivity
- Provide timestamps in milliseconds for due_date and start_date
- Avoid duplicates by tracking created task IDs and using idempotent steps
- Validate parent tasks exist in the same list before creating subtasks
Example Use Cases
- Create a task in a target list with a descriptive name, description, due date, and assignees for a new project
- Update a task to a new status and reassign to a different team member when responsibilities shift
- Create a subtask under a parent task to break down a milestone into actionable steps
- List all tasks in a list with filters such as status or assignee for a status report
- Browse workspace hierarchy to fetch spaces and folders, then create a new folder in a space for ongoing organization
Frequently Asked Questions
Related Skills
github-initiative-pulse
athola/claude-night-market
'Outputs markdown digests and CSV exports for GitHub issues and PRs.
basecamp-automation
davepoon/buildwithclaude
Automate Basecamp project management, to-dos, messages, people, and to-do list organization via Rube MCP (Composio). Always search tools first for current schemas.
coda-automation
davepoon/buildwithclaude
Automate Coda tasks via Rube MCP (Composio): manage docs, pages, tables, rows, formulas, permissions, and publishing. Always search tools first for current schemas.
jira-automation
davepoon/buildwithclaude
Automate Jira tasks via Rube MCP (Composio): issues, projects, sprints, boards, comments, users. Always search tools first for current schemas.
linear-automation
davepoon/buildwithclaude
Automate Linear tasks via Rube MCP (Composio): issues, projects, cycles, teams, labels. Always search tools first for current schemas.
monday-automation
davepoon/buildwithclaude
Automate Monday.com work management including boards, items, columns, groups, subitems, and updates via Rube MCP (Composio). Always search tools first for current schemas.