> ## Documentation Index
> Fetch the complete documentation index at: https://docs.nekt.com/llms.txt
> Use this file to discover all available pages before exploring further.

# ClickUp as a destination

> Send your data from Nekt to ClickUp.

ClickUp is a project management and productivity platform that helps teams organize work into tasks, lists, and projects. With this destination you can create and update ClickUp **tasks** directly from your Nekt tables.

## 1. Add your ClickUp access

1. In the [Destinations](https://app.nekt.ai/destinations) tab, click on the "Add destination" button located on the top right of your screen. Then, select the ClickUp option from the list of connectors.

2. Click **Next** and you'll be prompted to add your access:

   * **API Token**: Your ClickUp personal API token (starts with `pk_`). Generate it in ClickUp under **Settings → Apps → API Token**.
   * **List ID**: The default ClickUp List ID where new tasks are created. Required unless you map a `list_id` field per record. It is ignored when updating an existing task.
   * **Enable partial success**: Whether the connector should continue trying to sync records after one fails.

3. Click **Next**.

## 2. Select your data to send

1. The next step is letting us know which data you want to send. Select the layer and then the desired table.

   > Tip: The table can be found more easily by typing its name.

2. Click **Next**.

## 3. Map your data fields

Configure how the columns from your source table should be mapped to ClickUp task fields. Map a column to `name` to create new tasks, and map a column to `id` to update existing ones (matched by their ClickUp task ID).

<AccordionGroup>
  <Accordion title="Task fields">
    Below are the most common ClickUp task fields you can map your data to. See the [ClickUp Create Task reference](https://developer.clickup.com/reference/createtask) for the full list.

    | Field              | Type             | Required | Description                                                                                       |
    | :----------------- | :--------------- | :------- | :------------------------------------------------------------------------------------------------ |
    | `name`             | String           | Yes\*    | The task title. Required to create a task.                                                        |
    | `id`               | String           | No       | The ClickUp task ID. When mapped, the task is **updated** instead of created.                     |
    | `list_id`          | String           | No       | Per-record override of the List a new task is created in.                                         |
    | `description`      | String           | No       | The task description (plain text).                                                                |
    | `markdown_content` | String           | No       | The task description in Markdown (overrides `description`).                                       |
    | `status`           | String           | No       | The task status. Must match a status configured on the destination List.                          |
    | `priority`         | Int              | No       | `1` Urgent, `2` High, `3` Normal, `4` Low.                                                        |
    | `due_date`         | Int (ms)         | No       | Due date as an epoch timestamp in milliseconds. Use the `to_epoch_ms` transform for date strings. |
    | `start_date`       | Int (ms)         | No       | Start date as an epoch timestamp in milliseconds.                                                 |
    | `assignees`        | Array of Ints    | No       | ClickUp user IDs to assign. A single value is wrapped into a list automatically.                  |
    | `tags`             | Array of Strings | No       | Tag names to apply to the task.                                                                   |
    | `parent`           | String           | No       | The parent task ID, to create a subtask.                                                          |
  </Accordion>
</AccordionGroup>

\* Required only when creating tasks (i.e. when no `id` is mapped).

### Transforms

Each mapping rule can apply ordered value transforms before sending: `uppercase`, `lowercase`, `trim`, `to_string`, `to_int`, `round_int`, `to_epoch_ms` (date string → ClickUp millisecond timestamp), `json_parse` (parse a JSON string into a list/object), `yesno_to_bool`, `null_if:<x>`, and `only_if:<x>`.

## 4. Configure your ClickUp data destination

1. Describe your destination for easy identification within your organization. You can inform things like what data it brings, to which team it belongs, etc.

2. To define your [Trigger](https://docs.nekt.com/runs/scheduling-and-triggers), consider how frequently you need to have the data updated on the destination (every day, once a week, only at specific times, etc.).

3. Click **Done**.

### Check your new destination!

1. Once completed, you'll receive confirmation that your new destination is set up!

2. You can view your new destination on the [Destinations](https://app.nekt.ai/destinations) page. Now, for you to be able to see it on ClickUp, you have to wait for the pipeline to run. You can monitor it on the [Destinations](https://app.nekt.ai/destinations) page to see its execution and completion. If needed, manually trigger the pipeline by clicking on the refresh icon. Once executed, your data should be seen on ClickUp.

> If you encounter any issues, reach out to us via Slack, and we'll gladly assist you!
