---
title: ClickUp
---

# ClickUp

> **Status:** in-development. Enable it via `AMC_SHOW_CLICKUP=1` env var or the
> Lab toggle once released; the "ClickUp" sidebar row appears once it is on.

## What it is

A first-party AMC integration that connects to your real ClickUp workspace via
the ClickUp API v2. It surfaces as a **"ClickUp" row in the projects sidebar**
(purple ListChecks icon) that opens a kanban board view of any ClickUp list.

It is gated through the unreleased-feature registry (`clickup`), same pattern as
Jira board and Pull Requests.

## Where to find it

Turn the feature on first, in **Settings → Lab → ClickUp**. Once it is on, a **ClickUp** row appears in the projects sidebar (purple checklist icon), and that row is the whole surface — it opens a kanban board for whichever ClickUp list you choose. Connecting happens inside that panel rather than on a Settings page: the connect screen offers **Set up ClickUp**, which opens a drawer for your ClickUp personal API token, and shows **Fix connection** if a saved token stops working.

## How it behaves

### How to use it

1. **Enable it:** Set `AMC_SHOW_CLICKUP=1` or toggle in Settings → Lab → ClickUp.
2. **Connect (in-panel):** Open the **ClickUp** sidebar row and click **Set up
   ClickUp** on the connect screen, then paste your ClickUp Personal API Token in
   the drawer and Save (it tests the connection on save). Get a token from
   ClickUp → Settings → Apps → API Token. If a saved token stops working, the
   screen shows **Fix connection** to re-enter it. (ClickUp uses the shared
   in-app connection stack — the same gear/drawer as the Jira, Linear, and Notion
   boards — not a separate Settings page.)
3. Once connected, open the **ClickUp** sidebar row:
   - The **sidebar** shows your workspaces, spaces, folders, and lists.
   - Select a **list** to see its tasks as a kanban board grouped by status.
   - Click a **task card** to open the detail drawer (name, description, priority,
     due date, assignees, tags, checklists, comments).
   - Add a task from the **+ Add task** row at the bottom of any board column.
   - Use **Search** to find tasks across your workspace by name.
   - Use **My Tasks** to see tasks assigned to you.

**Working tasks (no browser needed):**

- **Create** a task in any column (seeded with that column's status).
- **Edit** a task's name, description, priority, due date, and assignees in the
  drawer; move its status by dragging on the board.
- **Delete** a task (confirmed).
- **Comments:** add, edit, and delete comments.
- **Checklists:** tick / untick checklist items.
- Tags, custom fields, and time tracking are read-only in this pass (edit them in
  ClickUp for now).
- Tasks assigned to you appear in your **Inbox** (when inbox is enabled).

## For agents

### CLI routes (for AI agents)

- `POST /clickup/update-task-status` — `{ taskId, status }` moves a task.
- `POST /clickup/create-task` — `{ listId, name, ... }` creates a task.
- `POST /clickup/update-task` — `{ taskId, name?, description?, status?, priority?, dueDate?, assignees?, tags? }` edits a task.
- `POST /clickup/delete-task` — `{ taskId }` deletes a task.
- `POST /clickup/comment` — `{ taskId, text }` posts a comment.
- `POST /clickup/edit-comment` — `{ commentId, text }` edits a comment.
- `POST /clickup/delete-comment` — `{ commentId }` deletes a comment.
- `POST /clickup/update-checklist-item` — `{ checklistId, checklistItemId, resolved?, name? }` updates a checklist item.

All are bearer-authenticated via the CLI server token and 404 when the feature is off.

### Inbox source

When `clickupInboxEnabled` is on, tasks assigned to you appear in the unified
Inbox. The poller runs every few minutes and pushes `INBOX_CLICKUP_UPDATED` when
changes are detected (diff by `updated_at`).

### Architecture

- **Auth:** Personal API Token (raw `Authorization: <token>` header, not OAuth).
- **SSRF guard:** Fixed host `api.clickup.com` — all requests validate origin.
- **Rate limiting:** 4 concurrent requests max, auto-retry on 429 with
  `retry-after` / `x-ratelimit-reset` header respect.
- **ClickUp hierarchy:** Workspace → Space → Folder → List → Task.
- **Workflow trigger:** none — ClickUp is not (yet) a workflow-engine trigger source
  (unlike Jira/Linear/Notion/Monday/Airtable). Only the inbox poller reacts to changes.

### Troubleshooting

- **"ClickUp not connected"** — open the ClickUp board and click **Set up ClickUp**
  (or **Fix connection** if a saved token is unreachable) to enter your API token
  in the connection drawer.
- **Rate limit errors** — the queue auto-retries; if persistent, check your
  ClickUp plan's API quota (100 req/min on most plans).
- **Task not showing** — ensure the task is in the selected list and not archived.

## Related

The other board integrations built the same way — the same in-panel connect drawer and the same kind of sidebar row — are [Jira](jira-board.md), [Linear](linear-board.md) and [Notion](notion-board.md). Tasks assigned to you also land in the unified queue described on the [Inbox Overview](inbox-overview.md) page.
