How to connect ClickUp to OpenClaw
Connect ClickUp to OpenClaw with ClawLink in one click — 161 tools your AI agent can call from chat via hosted OAuth. No API keys, no manual setup.


Manage tasks, docs, goals, and sprints. Once connected, OpenClaw can read and act on ClickUp from chat — pairing, token refresh, and tool wiring handled for you.
The usual route to ClickUp access for OpenClaw is an MCP server you configure and keep running, plus your own OAuth app or API keys. ClawLink gives OpenClaw a more practical ClickUp setup: install one ClawHub skill, connect ClickUp in the browser, and OpenClaw can call real ClickUp actions from any chat surface with no auth, token refresh, or tool wiring to build yourself.
Copy this prompt into OpenClaw, or open the ClickUp skill on ClawHub.
Before installing anything, inspect the ClawHub skill metadata and setup requirements.
If the skill asks you to install a third-party package or CLI, verify its source, maintainer, and package contents before running the install command.
Install the skill "ClickUp" (hith3sh/clickup-tasks) from ClawHub only after those checks pass.
Skill page: https://clawhub.ai/hith3sh/clickup-tasks
Keep the work scoped to this skill only.
After install, help me finish setup from verified skill metadata.
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.Setup
It takes three steps to connect OpenClaw to ClickUp.
1Install the plugin
Paste the setup prompt into OpenClaw, or install from the terminal and ask OpenClaw to pair:
openclaw plugins install clawhub:clawlink-plugin- 2
Connect ClickUp
One-click OAuth in the dashboard.
- 3
Use it from chat
Ask OpenClaw: "What can you do with ClickUp?"
Install by command
The setup prompt above does all of this in one paste. By hand, it is one install command plus a browser approval:
openclaw plugins install clawhub:clawlink-pluginThen ask OpenClaw to set up ClawLink. It starts browser pairing and prints an approval link — open it, approve the device, return to the chat, and say done. Finally, connect ClickUp in the ClawLink dashboard — a one-click OAuth approval, no API keys.
Verify the connection by asking OpenClaw:
Run clickup_get_authorized_user and show me the teams array with the workspace names and ids, then list the spaces in my default workspace with clickup_get_spaces using that team_id.
Using a different agent?
The OpenClaw plugin is one client of ClawLink's MCP server. Claude Code, Cursor, Codex, or any agent that can run a shell command pairs with the same ClawLink account through the CLI:
npx -y @useclawlink/cli loginlogin opens the same browser approval and stores a credential locally. Once ClickUp is connected in the dashboard, that agent calls the same 161 ClickUp tools over MCP. Full setup for MCP clients and shell agents: connect apps to any AI agent.
ClickUp MCP for OpenClaw
Looking for a ClickUp MCP server for OpenClaw? ClawLink connects ClickUp to OpenClaw and exposes 161 ClickUp tools your agent can call over MCP, with hosted auth and nothing to run or maintain yourself. Using Hermes instead? The Hermes ClickUp integration works the same way.
Can OpenClaw use ClickUp without an API key? Yes. That is what this page is for. The hosted connection runs ClickUp's OAuth flow on ClickUp's own consent screen, so no pk_ personal token is ever created, and the agent calls the ClickUp API through ClawLink rather than through browser automation. "OpenClaw ClickUp Team not authorized" is the one error that still trips this route up, and it has a named fix: the workspace the agent calls must have been granted during consent (see the troubleshooting card with that exact string).
The route map: four ways to give OpenClaw ClickUp access
Every guide above this page in the search results uses one of two methods — a personal API token, or a self-hosted MCP server. It is worth being precise about all four routes, because they are genuinely different tradeoffs:
- ClawLink — connect in the browser, authorize on ClickUp's own consent screen (where you pick which workspaces to grant), and OpenClaw calls 161 ClickUp tools from the next message. No personal token (
pk_...) in your config, no app to register, nothing to keep running. You revoke access from ClickUp's app settings or by deleting the connection. - A personal API token — what rapidevelopers, skywork, clawdir, and the playbook guides describe. Generate a
pk_token in ClickUp → Settings → Apps. The token carries exactly the access of the account that created it, never expires, and is rate-limited at 100 requests/minute on Free, Unlimited, and Business workspaces. It is fine for a single user; it becomes a standing credential in every machine that holds the config, and there is no per-workspace consent boundary. - A DIY OAuth app — ClickUp's OAuth 2.0 (authorization code) flow. Only workspace owners or admins can create the app, each user picks the workspaces they grant, and ClickUp's docs note the access token currently does not expire. This is the most control and the most setup: a registered app, a redirect URI, and your own token storage for every user.
- ClickUp's official MCP server (
https://mcp.clickup.com/mcp) — free and first-party, in public beta at the time of writing. OAuth-only (no personal-token authentication), and deliberately no deletion tools. Without the Everything AI add-on it is rate-limited to 50 calls per 24 hours on the Free plan and 300 per 24 hours on Unlimited and above — a ceiling to know before wiring an agent to it.
ClawLink is not a replacement for ClickUp's MCP server: we do not run an MCP endpoint, and we do not cover ClickUp Docs, Brain, or goal objects — the toolkit is the API tools you see on this page. The honest way to choose is by what you will not maintain: the token route costs nothing to run and nothing to share; the hosted routes trade a little control for no credential handling at all.
What the OpenClaw ClickUp integration can do
161 ClickUp tools are ready for OpenClaw once the account is connected. The 30 below are the ones people reach for most; your agent can call all 161.
30 of 161 ClickUp tools for OpenClaw
| Tool | What it does |
|---|---|
Create checklist clickup_create_checklist | Create a checklist in a ClickUp task |
Create checklist item clickup_create_checklist_item | Create an item in a ClickUp checklist |
Create folder clickup_create_folder | Create a new ClickUp folder |
Create list clickup_create_list | Create a new ClickUp list |
Create list comment clickup_create_list_comment | Add a comment to a ClickUp list |
Create space clickup_create_space | Create a new ClickUp space |
Create task clickup_create_task | Create a new ClickUp task |
Create task comment clickup_create_task_comment | Add a comment to a ClickUp task |
Get folder clickup_get_folder | Get a ClickUp folder by ID |
Get folder views clickup_get_folder_views | List ClickUp folder views |
Get folders clickup_get_folders | List ClickUp folders |
Get list clickup_get_list | Get a ClickUp list by ID |
Get list comments clickup_get_list_comments | List comments on a ClickUp list |
Get list views clickup_get_list_views | List ClickUp list views |
Get lists clickup_get_lists | List ClickUp lists |
Get space clickup_get_space | Get a ClickUp space by ID |
Get space views clickup_get_space_views | List ClickUp space views |
Get spaces clickup_get_spaces | List ClickUp spaces |
Get task clickup_get_task | Get a ClickUp task by ID |
Get task comments clickup_get_task_comments | List comments on a ClickUp task |
Get task templates clickup_get_task_templates | List ClickUp task templates |
Get tasks clickup_get_tasks | List ClickUp tasks with optional filters |
Get view clickup_get_view | Get a ClickUp view by ID |
Get view tasks clickup_get_view_tasks | List tasks from a ClickUp view |
Start time entry clickup_start_time_entry | Start a time entry for a ClickUp task |
Stop time entry clickup_stop_time_entry | Stop the current time entry in ClickUp |
Update checklist clickup_update_checklist | Update a ClickUp checklist |
Update checklist item clickup_update_checklist_item | Update a ClickUp checklist item |
Update comment clickup_update_comment | Update a ClickUp comment |
Update folder clickup_update_folder | Update a ClickUp folder |
Try it: find the ClickUp tool you need
Browse the 30 ClickUp tools
Click any tool to see exactly what OpenClaw can do and copy a ready-to-use prompt.
Example prompts
Run clickup_get_authorized_user and show me the teams array with the workspace names and ids, then list the spaces in my default workspace with clickup_get_spaces using that team_id.
Create a task in ClickUp in the list at https://app.clickup.com/list/901201234567/ with name "Draft Q3 report", priority 2 (High), due_date tomorrow at 17:00 as a Unix timestamp in milliseconds with due_date_time true, assignee [user id from their ClickUp profile URL], and tag "planning". Show me the arguments before you send them.
List the tasks in my "Sprint 14" ClickUp list (list_id 901201234567) ordered by due_date, including closed tasks, and summarize what is overdue this week, what is due next, and which tasks have no assignee.
Find the ClickUp task "Fix login timeout" in list 901201234567, show me its current status and the list's configured statuses, then move it to the exact status string that represents done in that list and add a comment summarizing why.
ClickUp tool arguments that trip agents up
These are the failures we actually see in production, with the argument names and limits taken from the live tool schemas. They are worth knowing because an agent will usually guess wrong on the first try.
- ClickUp ids are strings, not numbers — and there is no discovery tool named what agents expect.
clickup_get_spacesrequiresteam_id(the workspace id),clickup_get_listsrequiresfolder_id(not a space id), andclickup_get_tasksrequireslist_id. There is noclickup_get_authorized_teams_workspacestool in this registry, and we see agents invent that exact name; the working resolution isclickup_get_authorized_user(no arguments) — its response includes theteamsarray of workspace ids the connection can see. From there the chain is team id →clickup_get_spaces→clickup_get_lists→clickup_get_tasks. The ids themselves are the numbers in the ClickUp URL (app.clickup.com/list/9012.../view/...), and the schema rejects casts: prod logs carryarguments.list_id must be a string. team_idis required on the read tools, and a placeholder0is the classic failure. Prod logs showarguments.team_id is requiredas a steady error, and a workspace id of0surfaces asInvalid workspace id: 0from ClickUp itself. The workspace id is the number in your ClickUp URL afterapp.clickup.com/; it is not the id of the person who connected the account.due_dateand thedue_date_gt/due_date_ltfilters are Unix timestamps in milliseconds, not dates or seconds. "Due tomorrow" sent as2026-08-03or as a 10-digit epoch is accepted as a wrong date. Priority is an integer,1(Urgent),2(High),3(Normal),4(Low).due_date_time: falsemeans the date is treated as all-day.clickup_get_tasksreturns 100 tasks per page (pagestarts at 0), so a "show me everything" request silently truncates at 100 unless the agent pages.order_bytakesid,created,updated, ordue_date. Closed tasks are excluded unlessinclude_closed: trueis set, and subtasks are excluded unlesssubtasks: true— both defaults surprise agents reading a board.- Status names are per-list.
clickup_create_task/clickup_update_tasktake astatusstring, and it must be a status that exists in that specific list's statuses (custom statuses included) — a status from another list in the workspace fails withStatus not found. Asking for "in progress" when the list spells it "In Progress" fails the same way. assigneestakes ClickUp user ids, not names or emails. Get them from the workspace member list the user provides (there is no member-listing tool in this registry, so the agent should ask for the person's ClickUp profile URL rather than guess).parentcreates a subtask and must be a task id — the parent must not itself be a subtask.custom_task_ids: truerequiresteam_idto be passed too — the schema makes that pairing explicit, and omitting the team id is a common failure once a team starts using custom task numbering.
ClawLink vs. building it yourself
The alternative to ClawLink is usually manual OAuth app setup plus your own token handling, permission troubleshooting, and tool plumbing for OpenClaw. That is fine if you want to build and maintain the integration yourself. Most teams just want ClickUp working from chat.
| Manual | ClawLink | |
|---|---|---|
| Connection flow | Register a ClickUp app, configure redirect URLs, manage consent details, and reconnect users when auth settings drift. | Users connect ClickUp through the hosted browser flow and ClawLink keeps the token lifecycle out of your app code. |
| Ongoing maintenance | You own refresh logic, permission debugging, environment config, and every provider-specific edge case for ClickUp. | ClawLink handles the repetitive integration plumbing so your team can focus on the workflow instead of the infrastructure. |
| Agent usability | You still need to expose the right ClickUp actions to the runtime in a format your agent can reliably use. | 161 tools for ClickUp are already exposed through ClawLink, so the agent can read and act from chat immediately. |
ClawLink vs. Composio
Composio also exposes ClickUp to AI agents. It is developer infrastructure: Python and TypeScript SDKs, an MCP server, and a catalog past 1,000 apps, aimed at teams shipping agent products. ClawLink is built for OpenClaw users instead. You install the plugin once, connect ClickUp in the browser, and the 161 tools above work from chat. There is no SDK, no config file, and no API key handling. Choosing between them? Read the full Composio alternatives comparison.
Troubleshooting
OpenClaw installed the ClickUp skill but can't call the tools
The ClawHub skill teaches OpenClaw about ClickUp, but the calls run through the ClawLink plugin and your connected account. Make sure ClickUp is connected in the dashboard, then start a fresh chat so OpenClaw reloads the tool catalog. If OpenClaw runs as a persistent gateway, restart it so the new tools register.
Connection succeeds but no tools appear
Reconnect ClickUp from the dashboard, then start a fresh chat if the runtime still has the old tool catalog loaded.
"Tool schema not loaded yet" error when calling ClickUp tools
ClickUp tool schemas load on demand the first time a tool runs and are cached after that, so this error usually clears on its own: wait a few seconds and retry the same request. If every ClickUp call keeps failing with it in a fresh chat, reconnect from the dashboard, and contact support if it still persists — that pattern points to a configuration problem on our side, not something you can fix by reconnecting again.
ClickUp returns 403 or "permission denied" on one action while others work
Two usual causes. The connected account may not have access to the specific workspace, inbox, store, or project in the request — check that first. If access looks right, the agent may have sent a placeholder value (like "YOUR_ID" or an example id from documentation) instead of a real one: ask it to run a list or search tool first, then retry the action with a real id from those results. Most failures at this stage are one of these two, not ClawLink bugs.
ClickUp returns \{"err":"Team not authorized","ECODE":"OAUTH_027"\}
ClickUp throws the OAUTH_027 family (also OAUTH_023 and OAUTH_192, "Team(s) not authorized" / "Workspace not authorized") when the workspace named in the request was not granted to the token. In ClawLink's hosted flow the usual cause is the consent step: ClickUp's authorization screen asks which workspaces to allow, and if the one the agent is calling was not selected — or the account joined the workspace after connecting — the token is valid but that workspace is not authorized. The fix is on the workspace side, not the argument side: reconnect ClickUp from the dashboard, select the workspace during consent, and make sure the connected account is a member of the workspace (private spaces additionally require membership in that space). This is also the error you get when the id being passed is not a real ClickUp id at all — the Make and Zapier communities hit the same string with a stale task id from an earlier step — so if reconnect does not fix it, have the agent run clickup_get_authorized_user and use a workspace id from the teams array it returns.
Ask the agent to diagnose it:
Run clickup_get_authorized_user and show me the teams array it returns. Then tell me which workspace id you are using for this call, and whether the connected account was granted that workspace in the ClickUp consent screen.ClickUp returns \{"err":"Status not found","ECODE":"CRTSK_001"\}
The status name passed to create or update a task does not exist in that list. ClickUp statuses are configured per list — including custom statuses — so a status that works in one list is not automatically valid in another, and the match is case-sensitive. The reliable fix is to read the list's actual statuses first: ask the agent to fetch the task's list (or have the user paste the list URL) and use a status string from the list's own setup, then retry. We see this most often with agents sending the generic ClickUp defaults ("To Do", "In Progress") into workspaces that renamed them.
Ask the agent to diagnose it:
Do not guess the status. Show me the statuses configured in that ClickUp list — ask the user for the list URL if needed — then create the task with an exact status string from that list.arguments.team_id is required
Workspace-scoped tools — clickup_get_spaces above all — need the numeric workspace/team id and there is no tool in the registry that lists authorized teams under the name agents reach for (clickup_get_authorized_teams_workspaces does not exist; ClawLink replies with a "Did you mean" list when it is called). The working discovery call is clickup_get_authorized_user, which takes no arguments and returns the connected user with a teams array of workspace ids. The team id is also the number in the workspace URL. Once you have it, pass it explicitly to every workspace-scoped tool rather than leaving the agent to invent one.
Ask the agent to diagnose it:
Run clickup_get_authorized_user, show me the teams array, and retry get_spaces with the workspace id from it. Do not use 0 or a placeholder.arguments.list_id must be a string
ClickUp ids are strings in the schema even though they look like numbers, and the validation rejects them once an agent casts or parses them as integers. The same applies to task and view ids. Keep them as the exact strings from the ClickUp URL (https://app.clickup.com/list/\<list_id>/...) and pass them through unchanged — no parseInt, no stripping of the 9012... prefix, no quoting differences.
Ask the agent to diagnose it:
Show me the exact list_id you are sending, copied verbatim from the ClickUp URL. Then retry without converting it to a number.Tool 'clickup_get_authorized_teams_workspaces' not found
That tool does not exist in ClawLink's ClickUp registry, and agents hallucinate it regularly — the error message itself returns the closest real names (clickup_get_teams, clickup_get_authorized_user, clickup_get_workspace_plan). The tool that answers the actual question is clickup_get_authorized_user: no arguments, and the response includes the teams array with the workspace ids the connection can access. Have the agent read the "Did you mean" line and use clickup_get_authorized_user instead of inventing another variant.
Ask the agent to diagnose it:
Read the Did-you-mean suggestions in the error, run clickup_get_authorized_user, and use a team id from its response for the workspace-scoped call.OAuth finished in the browser but the account is still missing
Try reconnecting ClickUp and complete the consent flow in the same browser session. Partial OAuth approvals or switching accounts mid-flow can leave the connection incomplete.
FAQ
Is there a OpenClaw ClickUp integration?
Yes. ClawLink is the fastest way to connect OpenClaw to ClickUp: link your ClickUp account once in the browser and OpenClaw can call the ClickUp API through 161 ready-made tools — no custom code or token handling.
How do I add ClickUp to OpenClaw with ClawLink?
Paste the setup prompt from this page into OpenClaw. It installs the ClawLink ClickUp skill from ClawHub, then you click Connect in the dashboard to authorize ClickUp. OpenClaw calls the tools from the next message — no config files or API keys to manage.
How long does it take to connect ClickUp to OpenClaw?
About two minutes. Sign in, click Connect next to ClickUp in the dashboard, authenticate, and OpenClaw can use it from the next chat message.
Why use ClawLink instead of wiring ClickUp up myself?
The alternative to ClawLink is usually manual OAuth app setup plus your own token handling, permission troubleshooting, and tool plumbing for OpenClaw. That is fine if you want to build and maintain the integration yourself. Most teams just want ClickUp working from chat.
Why does ClickUp return "Team not authorized" to my OpenClaw agent?
ClickUp throws "Team not authorized" (error codes OAUTH_023, OAUTH_026, OAUTH_027, and OAUTH_029–045) when a workspace was not granted to the token. In ClawLink's hosted flow the cause is usually the consent screen: you authorize ClickUp in the browser and select which workspaces the connection may use — if the workspace the agent is calling was not selected, or the account joined it after connecting, the call fails with this error while other calls keep working. Reconnect ClickUp from the dashboard and select the workspace during consent; for private spaces the connected account must also be a member of the space. If a fresh connect does not fix it, the id being passed is not a real ClickUp id — have the agent run clickup_get_authorized_user and use a workspace id from the teams array it returns.
Does the ClickUp API require a paid plan?
No. ClickUp's public API is available on all plans, including Free Forever — some endpoints (inviting and managing users and guests) and a few parameters are Enterprise-only. That is worth knowing because several OpenClaw ClickUp guides claim the API needs an Unlimited plan or higher; that is outdated, and a personal token from any plan works. What does change by plan is the rate limit: 100 requests per minute per token on Free, Unlimited, and Business, 1,000 on Business Plus, and 10,000 on Enterprise.
What's the difference between ClawLink and ClickUp's official MCP server?
ClickUp's MCP server (https://mcp.clickup.com/mcp) is ClickUp's own first-party server, in public beta at the time of writing. It is OAuth-only — it will not accept a personal API token — and deliberately has no deletion tools. Without the Everything AI add-on it allows 50 calls per 24 hours on the Free plan and 300 per 24 hours on Unlimited and above, which is a hard ceiling for an agent that works a full board. ClawLink is a different shape: 161 hosted tools over OpenClaw's own plugin, no MCP endpoint, no per-day call ceiling tied to ClickUp's AI add-on, and no beta. It also does not cover everything ClickUp's MCP does — we do not serve ClickUp Docs, Brain, or goal objects.
OpenClaw installed the ClickUp skill but can't call the tools
The ClawHub skill teaches OpenClaw about ClickUp, but the calls run through the ClawLink plugin and your connected account. Make sure ClickUp is connected in the dashboard, then start a fresh chat so OpenClaw reloads the tool catalog. If OpenClaw runs as a persistent gateway, restart it so the new tools register.