ClickUp
Let an agent run the follow-ups in ClickUp without rewriting the plan. It finds and reads tasks, creates and updates them, changes status, tags, comments and works checklists, and deleting a task or assigning a person can wait for a person.
- host
- api.clickup.com
- connect
- API key, per user
Create task
clickup-create-task
Update task
clickup-update-task
Set task status
clickup-set-task-status
Add assignee
clickup-add-assignee
Reads and writes in ClickUp. Writes are off until you switch them on.
Each one is a named operation from the pack. Reads change nothing.
Writes
Create task
read backclickup-create-task
Create one task in a list, with a name and optionally a description, status, priority, due date, assignees, tags or a parent task (which makes it a subtask). ClickUp notifies the assignees. Returns the task with its id.
Update task
read backclickup-update-task
Change a task's name, description, priority or due date. Fields left out stay as they are. Use set-task-status for the status and add-assignee or remove-assignee for people.
Set task status
read backclickup-set-task-status
Move a task to another status of its list, for example to close it. Take the status names from get-list. ClickUp can run the list's automations on a status change.
Add assignee
read backclickup-add-assignee
Assign one person to a task, keeping its other assignees. ClickUp notifies them.
Remove assignee
read backclickup-remove-assignee
Take one person off a task, keeping its other assignees.
Comment on task
read backclickup-comment-on-task
Add one comment to a task, as plain text. ClickUp notifies the task's assignees and watchers. Returns the comment's id.
Add tag
read backclickup-add-tag
Put one existing tag of the task's space on a task. Take the name from list-space-tags.
Remove tag
read backclickup-remove-tag
Take one tag off a task. The tag stays in the space.
Create checklist
read backclickup-create-checklist
Add an empty checklist to a task. Returns the checklist with its id; add items with add-checklist-item.
Add checklist item
read backclickup-add-checklist-item
Add one item to a checklist, optionally assigned to a person. The checklist id comes from get-task (checklists[].id) or create-checklist. Returns the checklist with its items.
Resolve checklist item
acknowledgedclickup-resolve-checklist-item
Mark one checklist item done, or not done with resolved: false. The ids come from get-task (checklists[].id and checklists[].items[].id).
Delete task
acknowledgedclickup-delete-task
Delete one task. ClickUp moves it to the workspace's trash, where a person can restore it in the ClickUp app.
Reads
List workspaces
clickup-list-workspaces
List the workspaces the token can reach, with each one's id, name and members (user id and name). A workspace id is the team_id the other actions take. ClickUp returns them all at once, with no paging; a workspace with very many members can be cut at 64 KB.
List spaces
clickup-list-spaces
List the spaces in one workspace, with each one's id, name, statuses and enabled features. ClickUp returns them all at once, with no paging.
List folders
clickup-list-folders
List the folders in one space, with each one's id, name, task count and the lists inside it. ClickUp returns them all at once, with no paging.
List lists
clickup-list-lists
List the lists in one folder, with each one's id, name, task count, status and due date. ClickUp returns them all at once, with no paging.
List folderless lists
clickup-list-folderless-lists
List the lists that sit directly in a space, outside any folder, with the same fields as list-lists. ClickUp returns them all at once, with no paging.
Get list
clickup-get-list
Get one list: name, description, task count, due date, folder, space, and the statuses its tasks can take (statuses[].status). Use those names with set-task-status and the status filters.
List tasks
clickup-list-tasks
List the tasks whose home is one list, with name, status, assignees, tags, priority, due date and URL. Filter by status, assignee, tag and dates; closed tasks and subtasks are left out unless asked for. Pass page (from 0) for the next page until last_page is true. ClickUp fixes the page at 100 tasks and has no smaller page size, so a page of long tasks can be cut at 64 KB: narrow it with the filters.
Search tasks
clickup-search-tasks
Find tasks across a workspace, narrowed to a space, folder or list, and by status, assignee, tag and dates. Returns the same fields as list-tasks. Closed tasks and subtasks are left out unless asked for. Pass page (from 0) for the next page; an empty tasks list means there are no more. ClickUp fixes the page at 100 tasks and has no smaller page size, so a page of long tasks can be cut at 64 KB: narrow it with the filters.
Get task
clickup-get-task
Get one task: name, description, status, assignees, watchers, tags, priority, dates, checklists with their items, custom fields, parent, list, folder, space and URL. Pass include_subtasks for its subtasks, and include_markdown_description for the description in Markdown. A very long task can be cut at 64 KB.
List task comments
clickup-list-task-comments
List a task's comments, 25 at a time, newest to oldest, with each one's id, text, author, date and reply count. For older comments, pass the date and id of the oldest comment on this page as start and start_id.
List comment replies
clickup-list-comment-replies
List the replies in one comment's thread, with each reply's id, text, author and date. The comment id comes from list-task-comments. ClickUp returns the whole thread at once, with no paging.
List space tags
clickup-list-space-tags
List the tags of one space, with each tag's name and colours. Use these names with add-tag, remove-tag and the tag filters. ClickUp returns them all at once, with no paging.
How do users connect? Each one brings their own ClickUp.
- 1.Call for the userYour server invokes the action for the signed-in user. Without a ClickUp connection, the SDK throws EndUserNotConnectedError with a connect link.
- 2.The user pastes a keyThe link opens a form that shows where in ClickUp's settings to create the key. The link lasts 10 minutes and works once.
- 3.Anlyon checks itThe key is checked with ClickUp before it is kept, and bound to api.clickup.com. It is never shown back.
- 4.Your server confirmsYour server confirms the connection for the user who is signed in, and the call goes through.
Guardrails. Suggested limits and approvals, for you to review.
Suggested limits
- 100 tasks created a day
- 200 task updates a day
- 200 status changes a day
- 50 assignees added a day
- 50 assignees removed a day
- 200 comments a day
- 200 tags added a day
- 200 tags removed a day
- 50 checklists created a day
- 200 checklist items added a day
- 200 checklist items resolved a day
- 20 tasks deleted a day
Suggested approvals
- A person approves deleting a task
- A person approves commenting on a task
- A person approves assigning a person
- A person approves unassigning a person
What the key must allow
- A personal API token, which starts with pk_
- It acts as you in every workspace you belong to
Good to know
- Create the token from an account that is a member of only the spaces your agent should reach.
- ClickUp has no idempotency key for these writes. Anlyon sends each one once and never repeats it.
For your own account
- 1.In ClickUp, open your avatar, Settings, Apps, and generate an API token.
- 2.In Anlyon, open Actions, then Integrations, choose ClickUp and paste the token.
- 3.Anlyon checks the token with ClickUp before storing it. It becomes a secret named CLICKUP, bound to api.clickup.com.
ClickUp in your code. For one of your users, or for your own account.
Act for one of your users from your server, or connect your company's own ClickUp with the CLI.
import { Client, EndUserNotConnectedError } from "@anlyonhq/sdk";const anlyon = new Client({ apiKey: process.env.ANLYON_API_KEY! });try { const { data } = await anlyon .forUser(session.userId) .actions.invoke("clickup-create-task", { list_id: "901204567890", name: "Follow up with Acme" }); return { status: "done", grade: data.grade };} catch (error) { if (error instanceof EndUserNotConnectedError) { // The user connects their own ClickUp, then you call again. return { status: "connect_required", url: error.connectUrl }; } throw error;}Other integrations. Under the same limits, approvals and receipts.
Available
Stripe
Payments · API key
Refunds under a money ceiling, and every customer, payment and invoice to read.
Available
GitHub
Code · API key
Issues, pull requests and code, in the repositories you choose.
Available
HubSpot
CRM · Sign in
Contacts, companies and deals: search them and change them.
- Anlyon app
- Available
- Your own app
- Recommended for production
