# ClickUp

{% hint style="info" %}
The following documentation is for **ClickUp v1.0.0** *(BDK)*.
{% endhint %}

## Overview

ClickUp brings together tasks, docs, goals, and team collaboration in one comprehensive productivity platform. This integration allows you to automatically create tasks, update project statuses, track progress, and manage workflows.

## Prerequisites

### 1. Required Books

The following Book(s) need to be added to your agent so it can learn and understand the automation procedures defined within them:

* **ClickUp**

#### How to Add the Book(s)

1. Go to **Books** → **All Books**.
2. Search for the name of the book and click on it.
3. Click on <kbd>**Install**</kbd> or <kbd>**Add Connection**</kbd> to add the book to your agent.
4. If adding a connection, you'll be prompted for [**connectivity**](#connectivity) details.

## Connectivity

This section outlines the available methods for connecting to the Book, along with the required configuration details for each.

### Connect using Personal API Token

Connects to an API using the provided API token.

| Label              | Description                             | Type        |
| ------------------ | --------------------------------------- | ----------- |
| Personal API Token | The API token to be used for connecting | `sensitive` |

## Procedures

### to create a (task) in a (list)

Creates a new task in a list

**Input Concepts**

| Concept                                    | Description                    | Type                        | Required | Default Value |
| ------------------------------------------ | ------------------------------ | --------------------------- | -------- | ------------- |
| [`list`](#clickup-list)                    | The list to create the task in | `clickup list`              | Yes      | (no default)  |
| [`task input`](#clickup-create-task-input) | The input for the new task     | `clickup create task input` | Yes      | (no default)  |

**Output Concepts**

| Concept                 | Description      | Type           |
| ----------------------- | ---------------- | -------------- |
| [`task`](#clickup-task) | The created task | `clickup task` |

**Examples**

Create a task in a list

```generic
get a list from "https://app.clickup.com/123/v/li/123"
use the above as the project
>>>
the string is '{"name": "New Bug found", "description": "A new bug was found, lets fix it"}'
get the string as json
use the above as the new bug
>>>
create a task in the project
    the task input is the new bug
```

### to get a (list) from (list url)

Gets a list from its url

**Input Concepts**

| Concept    | Description         | Type   | Required | Default Value |
| ---------- | ------------------- | ------ | -------- | ------------- |
| `list url` | The URL of the list | `text` | Yes      | (no default)  |

**Output Concepts**

| Concept                 | Description              | Type           |
| ----------------------- | ------------------------ | -------------- |
| [`list`](#clickup-list) | The ClickUp list concept | `clickup list` |

**Examples**

Get a list from a url

```generic
get a list from "https://app.clickup.com/123/v/li/123"
```

### to get some (list's tasks)

![FILTER - CAPABLE](https://img.shields.io/static/v1?label=FILTER\&message=CAPABLE\&color=blue)

Gets all tasks in a list

**Input Concepts**

| Concept                 | Description                         | Type           | Required | Default Value |
| ----------------------- | ----------------------------------- | -------------- | -------- | ------------- |
| [`list`](#clickup-list) | The list to retrieve the tasks from | `clickup list` | Yes      | (no default)  |

**Output Concepts**

| Concept                         | Description             | Type           |
| ------------------------------- | ----------------------- | -------------- |
| [`list's tasks`](#clickup-task) | The tasks from the list | `clickup task` |

**Examples**

Get all tasks in a list

```generic
get a list from "https://app.clickup.com/123/v/li/123"
use the above as the project
>>>
get the project's tasks
```

Get a task by name from a list

```generic
...
get the project's task whose name is "Task with Different Assignee"
```

Get tasks in a given status from a list

```generic
...
get the project's tasks whose status is "in progress"
```

### to get some (list's users)

![FILTER - CAPABLE](https://img.shields.io/static/v1?label=FILTER\&message=CAPABLE\&color=blue)

Gets the users that have access to a list

**Input Concepts**

| Concept                 | Description                                 | Type           | Required | Default Value |
| ----------------------- | ------------------------------------------- | -------------- | -------- | ------------- |
| [`list`](#clickup-list) | The list concept to retrieve the users from | `clickup list` | Yes      | (no default)  |

**Output Concepts**

| Concept                         | Description             | Type           |
| ------------------------------- | ----------------------- | -------------- |
| [`list's users`](#clickup-user) | The users from the list | `clickup user` |

**Examples**

Get all users in a list

```generic
get a list from "https://app.clickup.com/123/v/li/123"
use the above as the project
>>>
get the project's users
```

Get a user by name from a list

```generic
...
get the project's user whose name is "Integration User"
```

### to update a (task)

Updates an existing task in ClickUp

**Input Concepts**

| Concept                 | Description                                   | Type           | Required | Default Value |
| ----------------------- | --------------------------------------------- | -------------- | -------- | ------------- |
| [`task`](#clickup-task) | The task concept with updated fields to apply | `clickup task` | Yes      | (no default)  |

**Output Concepts**

| Concept                 | Description      | Type           |
| ----------------------- | ---------------- | -------------- |
| [`task`](#clickup-task) | The updated task | `clickup task` |

**Examples**

Update a task

```generic
...
use the above as the new task
>>>
the new task's status is "in progress"
>>>
update the new task
```

## Concepts

### Clickup list

A list in ClickUp which contains tasks

| Field Name | Description                       | Type   |
| ---------- | --------------------------------- | ------ |
| `id`       | The unique identifier of the list | `text` |
| `name`     | The name/title of the list        | `text` |

### Clickup create task input

Data for creating a task in ClickUp

| Field Name                   | Description                          | Type                             |
| ---------------------------- | ------------------------------------ | -------------------------------- |
| `name`                       | The name/title of the task           | `text`                           |
| `status`                     | The current status of the task       | `optional[text]`                 |
| `description`                | The detailed description of the task | `text`                           |
| [`assignees`](#clickup-user) | List of users assigned to this task  | `optional[list of clickup user]` |

### Clickup user

A User in ClickUp

| Field Name | Description                       | Type     |
| ---------- | --------------------------------- | -------- |
| `id`       | The unique identifier of the user | `number` |
| `name`     | The username of the user          | `text`   |

### Clickup task

A task in ClickUp

| Field Name                   | Description                             | Type                   |
| ---------------------------- | --------------------------------------- | ---------------------- |
| `id`                         | The unique identifier of the task       | `text`                 |
| `list_id`                    | The ID of the list this task belongs to | `text`                 |
| `name`                       | The name/title of the task              | `text`                 |
| `status`                     | The current status of the task          | `text`                 |
| `description`                | The detailed description of the task    | `text`                 |
| [`assignees`](#clickup-user) | List of users assigned to this task     | `list of clickup user` |
