ClawLink

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.

Get started for free
OpenClaw
OpenClaw
ClawLink
ClawLink
ClickUp
ClickUp
ClickUpOAUTH2MCP

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.

161 tools

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.

Prompt for OpenClaw
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.

  1. 1

    Install 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. 2

    Connect ClickUp

    One-click OAuth in the dashboard.

  3. 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-plugin

Then 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 login

login 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

ToolWhat it does
Create checklist clickup_create_checklistCreate a checklist in a ClickUp task
Create checklist item clickup_create_checklist_itemCreate an item in a ClickUp checklist
Create folder clickup_create_folderCreate a new ClickUp folder
Create list clickup_create_listCreate a new ClickUp list
Create list comment clickup_create_list_commentAdd a comment to a ClickUp list
Create space clickup_create_spaceCreate a new ClickUp space
Create task clickup_create_taskCreate a new ClickUp task
Create task comment clickup_create_task_commentAdd a comment to a ClickUp task
Get folder clickup_get_folderGet a ClickUp folder by ID
Get folder views clickup_get_folder_viewsList ClickUp folder views
Get folders clickup_get_foldersList ClickUp folders
Get list clickup_get_listGet a ClickUp list by ID
Get list comments clickup_get_list_commentsList comments on a ClickUp list
Get list views clickup_get_list_viewsList ClickUp list views
Get lists clickup_get_listsList ClickUp lists
Get space clickup_get_spaceGet a ClickUp space by ID
Get space views clickup_get_space_viewsList ClickUp space views
Get spaces clickup_get_spacesList ClickUp spaces
Get task clickup_get_taskGet a ClickUp task by ID
Get task comments clickup_get_task_commentsList comments on a ClickUp task
Get task templates clickup_get_task_templatesList ClickUp task templates
Get tasks clickup_get_tasksList ClickUp tasks with optional filters
Get view clickup_get_viewGet a ClickUp view by ID
Get view tasks clickup_get_view_tasksList tasks from a ClickUp view
Start time entry clickup_start_time_entryStart a time entry for a ClickUp task
Stop time entry clickup_stop_time_entryStop the current time entry in ClickUp
Update checklist clickup_update_checklistUpdate a ClickUp checklist
Update checklist item clickup_update_checklist_itemUpdate a ClickUp checklist item
Update comment clickup_update_commentUpdate a ClickUp comment
Update folder clickup_update_folderUpdate 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_spaces requires team_id (the workspace id), clickup_get_lists requires folder_id (not a space id), and clickup_get_tasks requires list_id. There is no clickup_get_authorized_teams_workspaces tool in this registry, and we see agents invent that exact name; the working resolution is clickup_get_authorized_user (no arguments) — its response includes the teams array of workspace ids the connection can see. From there the chain is team id → clickup_get_spacesclickup_get_listsclickup_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 carry arguments.list_id must be a string.
  • team_id is required on the read tools, and a placeholder 0 is the classic failure. Prod logs show arguments.team_id is required as a steady error, and a workspace id of 0 surfaces as Invalid workspace id: 0 from ClickUp itself. The workspace id is the number in your ClickUp URL after app.clickup.com/; it is not the id of the person who connected the account.
  • due_date and the due_date_gt / due_date_lt filters are Unix timestamps in milliseconds, not dates or seconds. "Due tomorrow" sent as 2026-08-03 or 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: false means the date is treated as all-day.
  • clickup_get_tasks returns 100 tasks per page (page starts at 0), so a "show me everything" request silently truncates at 100 unless the agent pages. order_by takes id, created, updated, or due_date. Closed tasks are excluded unless include_closed: true is set, and subtasks are excluded unless subtasks: true — both defaults surprise agents reading a board.
  • Status names are per-list. clickup_create_task / clickup_update_task take a status string, 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 with Status not found. Asking for "in progress" when the list spells it "In Progress" fails the same way.
  • assignees takes 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). parent creates a subtask and must be a task id — the parent must not itself be a subtask.
  • custom_task_ids: true requires team_id to 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.

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.

ManualClawLink
Connection flowRegister 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 maintenanceYou 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 usabilityYou 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.

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.