Setu Recipes: reusable digital workers across every app.Browse templates

Integrations / ClickUp

ClickUp

ClickUp work management: browse workspaces, spaces, folders and lists; list, read, create and update tasks; add comments; read and log time entries.

12 actions API key 8 read4 write Calls api.clickup.com

Connect

TypeScript
const conn = await setu.connections.initiate({ userId: "user_1", toolkit: "clickup" });
console.log(conn.connectUrl); // show this to your user
await conn.waitUntilActive();

Permissions requested

This toolkit uses a single credential and requests no scopes.

Actions

Add task commentwriteclickup.add_commentAdd a comment to a task, optionally assigning the comment to a user.
InputTypeDescription
task_idstringRequiredTask id
comment_textstringRequiredComment text
assigneeintegerOptionalUser id to assign the comment to
notify_allbooleanOptionalNotify everyone on the task, including the creator
TypeScript
await setu.execute({
  userId: "user_1",
  action: "clickup.add_comment",
  input: {
    "task_id": "<task_id>",
    "comment_text": "<comment_text>"
  },
});
Create taskwriteclickup.create_taskCreate a task in a List. Dates are Unix milliseconds. Assignees are user ids.
InputTypeDescription
list_idstringRequiredList id
namestringRequiredTask name
descriptionstringOptionalTask description
assigneesarray of integerOptionalUser ids to assign
statusstringOptionalStatus name, must exist in the List
priorityintegerOptional1 urgent, 2 high, 3 normal, 4 low
due_dateintegerOptionalDue date, Unix milliseconds
tagsarray of stringOptionalTag names
TypeScript
await setu.execute({
  userId: "user_1",
  action: "clickup.create_task",
  input: {
    "list_id": "<list_id>",
    "name": "<name>"
  },
});
Create time entrywriteclickup.create_time_entryLog a time entry on a task: start time and duration in Unix milliseconds.
InputTypeDescription
team_idstringRequiredWorkspace id
tidstringOptionalTask id the time is logged on
startintegerRequiredStart, Unix milliseconds
durationintegerRequiredDuration in milliseconds
descriptionstringOptionalWhat was worked on
billablebooleanOptionalMark as billable
TypeScript
await setu.execute({
  userId: "user_1",
  action: "clickup.create_time_entry",
  input: {
    "team_id": "<team_id>",
    "start": 1,
    "duration": 1
  },
});
Get taskreadclickup.get_taskRead one task by id: name, status, priority, assignees, due date, list and URL.
InputTypeDescription
task_idstringRequiredTask id, e.g. 9hx
include_subtasksbooleanOptionalInclude subtasks
TypeScript
await setu.execute({
  userId: "user_1",
  action: "clickup.get_task",
  input: {
    "task_id": "<task_id>"
  },
});
List folderless listsreadclickup.list_folderless_listsList the Lists that sit directly in a Space, outside any Folder.
InputTypeDescription
space_idstringRequiredSpace id from list_spaces
archivedbooleanOptionaltrue to list archived lists
TypeScript
await setu.execute({
  userId: "user_1",
  action: "clickup.list_folderless_lists",
  input: {
    "space_id": "<space_id>"
  },
});
List foldersreadclickup.list_foldersList the Folders in a Space.
InputTypeDescription
space_idstringRequiredSpace id from list_spaces
archivedbooleanOptionaltrue to list archived folders
TypeScript
await setu.execute({
  userId: "user_1",
  action: "clickup.list_folders",
  input: {
    "space_id": "<space_id>"
  },
});
List lists in a folderreadclickup.list_listsList the Lists inside a Folder. Use list_folderless_lists for Lists that sit directly in a Space.
InputTypeDescription
folder_idstringRequiredFolder id from list_folders
archivedbooleanOptionaltrue to list archived lists
TypeScript
await setu.execute({
  userId: "user_1",
  action: "clickup.list_lists",
  input: {
    "folder_id": "<folder_id>"
  },
});
List spacesreadclickup.list_spacesList the Spaces in a Workspace.
InputTypeDescription
team_idstringRequiredWorkspace id from list_workspaces
archivedbooleanOptionaltrue to list archived spaces
TypeScript
await setu.execute({
  userId: "user_1",
  action: "clickup.list_spaces",
  input: {
    "team_id": "<team_id>"
  },
});
List tasks in a listreadclickup.list_tasksList tasks in a List (100 per page), filtered by status or assignee. Closed and sub tasks are excluded unless asked for.
InputTypeDescription
list_idstringRequiredList id
statusstringOptionalOnly tasks with this status name, e.g. in progress
assigneestringOptionalOnly tasks assigned to this user id
include_closedbooleanOptionalInclude closed tasks
subtasksbooleanOptionalInclude subtasks
order_bystringOptionalid, created, updated or due_date
pageintegerOptionalPage number starting at 0
TypeScript
await setu.execute({
  userId: "user_1",
  action: "clickup.list_tasks",
  input: {
    "list_id": "<list_id>"
  },
});
List time entriesreadclickup.list_time_entriesList time entries in a date range (default last 30 days, your own entries unless assignee is given). A negative duration means a timer is running.
InputTypeDescription
team_idstringRequiredWorkspace id
start_dateintegerOptionalRange start, Unix milliseconds
end_dateintegerOptionalRange end, Unix milliseconds
assigneestringOptionalUser id (comma-separated for several)
task_idstringOptionalOnly this task
TypeScript
await setu.execute({
  userId: "user_1",
  action: "clickup.list_time_entries",
  input: {
    "team_id": "<team_id>"
  },
});
List workspacesreadclickup.list_workspacesList the ClickUp Workspaces (called teams in the API) the token can access. Their ids are the team_id for other actions.

No input.

TypeScript
await setu.execute({
  userId: "user_1",
  action: "clickup.list_workspaces",
  input: {},
});
Update taskwriteclickup.update_taskChange a task's name, description, status, priority or due date. Only the fields you pass change.
InputTypeDescription
task_idstringRequiredTask id
namestringOptionalNew name
descriptionstringOptionalNew description
statusstringOptionalNew status name, must exist in the List
priorityintegerOptional1 urgent, 2 high, 3 normal, 4 low
due_dateintegerOptionalNew due date, Unix milliseconds
archivedbooleanOptionaltrue to archive the task
TypeScript
await setu.execute({
  userId: "user_1",
  action: "clickup.update_task",
  input: {
    "task_id": "<task_id>"
  },
});