Skip to main content

ClickUp

ClickUp is a cloud-based project management and productivity platform that unifies tasks, docs, goals, time tracking, and team collaboration in a single workspace. The ClickUp connector lets Nexla read from and write to ClickUp's REST API, enabling you to sync tasks, lists, folders, spaces, time entries, custom fields, comments, and goals between ClickUp and your other systems.

ClickUp icon

Power end-to-end data operations for your ClickUp API with Nexla. Our bi-directional ClickUp connector is purpose-built for ClickUp, making it simple to ingest data, sync it across systems, and deliver it anywhere — all with no coding required. Nexla turns API-sourced data into ready-to-use, reusable data products and makes it easy to send data to ClickUp or any other destination. With comprehensive monitoring, lineage tracking, and access controls, Nexla keeps your ClickUp workflows fast, secure, and fully governed.

Features

Type: API

SourceDestination

  • Seamless API Integration: Connect to any endpoint as source or destination without coding, with automatic data product creation
  • Visual Composition & Chaining: Build complex integrations using visual templates, chain API calls, and compose workflows with data validation and filtering
  • API Proxy: Expose curated slices of your data securely with a secure and customizable API proxy that validates and transforms data on the fly
  • Request optimization with intelligent batching, retry, and caching to minimize API calls and costs

Prerequisites

The ClickUp connector authenticates to the ClickUp API v2 using a personal API token. This token authorizes Nexla to read and write data on behalf of your ClickUp user account, so it carries the same access permissions as the account that generated it.

Before creating a credential in Nexla, ensure you have the following:

A ClickUp Account with API Access

The user generating the token must be a member or limited member with full edit permissions in the ClickUp Workspace. Limited members with view-only permissions cannot generate or use personal API tokens.

A ClickUp Personal API Token

A personal API token is a string that begins with pk_ and does not expire. To generate your token:

  1. Sign in to ClickUp, click your avatar in the upper-right corner, and select Settings.

  2. In the left sidebar, click Apps.

  3. Under the API Token section, click Generate (or Regenerate if a token already exists).

  4. Click Copy to copy the personal token to your clipboard for use in the steps below.

Keep your token secure

A personal API token grants access to all resources your ClickUp account can reach. Store it securely, do not share it, and regenerate it immediately if you suspect it has been exposed. Regenerating a token invalidates the previous one.

For complete details about ClickUp authentication, including the difference between personal tokens and OAuth apps, refer to the official ClickUp API Authentication documentation.

Authenticate

Create a credential in Nexla

  1. After selecting the data source/destination type, click the Add Credential tile to open the Add New Credential overlay.

  2. Enter a name for the credential in the Credential Name field and a short, meaningful description in the Credential Description field.

  3. ClickUp uses API key authentication. Nexla sends your personal API token in the Authorization header of every request to the ClickUp API and validates the credential against the https://api.clickup.com/api/v2/user endpoint when you save it. Enter your ClickUp personal API token in the API Key field. This is the value beginning with pk_ that you copied from Settings > Apps > API Token in ClickUp.

    Enter only the raw token value (for example, pk_12345678_ABCDEF...). Do not add a Bearer prefix—ClickUp personal tokens are sent as a raw string, and Nexla applies the Authorization header automatically.

  4. Click the Save button at the bottom of the overlay. The newly added credential will now appear in a tile on the Authenticate screen during data source/destination creation.

Use as a data source

To create a new data flow, navigate to the Integrate section, and click the New Data Flow button. Select the ClickUp connector tile, then select the credential that will be used to connect to the ClickUp instance, and click Next; or, create a new ClickUp credential for use in this flow.

Endpoint templates

Nexla provides pre-built templates that can be used to rapidly configure data sources to ingest data from common ClickUp endpoints. Select the endpoint from which this source will fetch data from the Endpoint pulldown menu. Available endpoint templates are listed in the expandable boxes below.

ClickUp organizes data in a hierarchy: a Workspace (referred to as a Team in the API v2) contains Spaces, which contain Folders, which contain Lists, which contain Tasks. Many endpoints require an ID from a higher level in this hierarchy. You can obtain these IDs by first running the corresponding listing endpoint (for example, run Get Spaces to find a Space ID, then Get Folders to find a Folder ID).

Get Current User

This endpoint retrieves the profile information of the user that owns the authenticating personal API token. Use it to confirm connectivity or to capture the acting user's identity, username, and email.

  • This endpoint requires no additional configuration. Select it and proceed to testing.

This endpoint calls GET /api/v2/user and returns a single user record. It is a quick way to verify that your credential is valid before configuring more complex sources.

Get Team

This endpoint retrieves the Workspaces (called Teams in the API v2) that the authenticating user belongs to. Use it to discover the Team IDs needed to configure most other ClickUp endpoints.

  • This endpoint requires no additional configuration. Select it and proceed to testing.

This endpoint calls GET /api/v2/team and returns one record per Workspace, including each Workspace's ID, name, color, and members. Note the Team ID from the response, as it is required by many of the other endpoints below.

Get Spaces

This endpoint retrieves all Spaces within a Workspace. Spaces are the top-level organizational containers in ClickUp and hold Folders and Lists.

  • Enter the Workspace identifier in the Team ID field. You can obtain this value by first running the Get Team endpoint.

This endpoint calls GET /api/v2/team/{team_id}/space and returns one record per Space, including each Space's ID and name. Use these Space IDs to configure the Get Folders and List Space Tags endpoints.

Get Folders

This endpoint retrieves all Folders within a Space. Folders group related Lists together inside a Space.

  • Enter the identifier of the Space whose Folders you want to retrieve in the Space ID field. You can obtain Space IDs by first running the Get Spaces endpoint.

This endpoint calls GET /api/v2/space/{space_id}/folder and returns one record per Folder. Use the returned Folder IDs to configure the Get Lists endpoint.

Get Lists

This endpoint retrieves all Lists within a Folder. Lists are the containers that hold individual Tasks in ClickUp.

  • Enter the identifier of the Folder whose Lists you want to retrieve in the Folder ID field. You can obtain Folder IDs by first running the Get Folders endpoint.

This endpoint calls GET /api/v2/folder/{folder_id}/list and returns one record per List. Use the returned List IDs to configure task-related endpoints such as Get Tasks.

Get Tasks

This endpoint retrieves all Tasks within a single List. Use it to ingest task data—including names, statuses, assignees, priorities, and due dates—for reporting or synchronization.

  • Enter the identifier of the List whose Tasks you want to retrieve in the List ID field. You can obtain List IDs by first running the Get Lists endpoint.

This endpoint calls GET /api/v2/list/{list_id}/task. Responses are limited to 100 tasks per page; Nexla handles pagination automatically, advancing the page parameter to fetch all available tasks.

Get Task

This endpoint retrieves the full details of a single Task by its ID. Use it when you need detailed information about one specific task rather than a list of tasks.

  • Enter the identifier of the Task to retrieve in the Task ID field. Task IDs are returned by the Get Tasks and Get Filtered Team Tasks endpoints.

This endpoint calls GET /api/v2/task/{task_id} and returns a single task record with its complete field set, including custom fields, assignees, and status.

Get Filtered Team Tasks

This endpoint retrieves tasks across the entire Workspace, supporting filters by assignee, status, tag, due date, and other criteria. Use it when you need a workspace-wide view of tasks rather than tasks from a single List.

  • Enter the Workspace identifier in the Team ID field. You can obtain this value by first running the Get Team endpoint.

This endpoint calls GET /api/v2/team/{team_id}/task and is paginated at 100 tasks per page; Nexla advances the page parameter automatically. To apply additional filters such as status or assignee, configure the source manually and add the corresponding query parameters to the API URL.

Get Time Tracking Entries

This endpoint retrieves time-tracking entries recorded within a Workspace. Use it to analyze how time is being logged against tasks for billing, capacity, or productivity reporting.

  • Enter the Workspace identifier in the Team ID field. You can obtain this value by first running the Get Team endpoint.

This endpoint calls GET /api/v2/team/{team_id}/time_entries and returns one record per time entry, including duration, start time, and the associated task and user.

Get Time Tracking Tags

This endpoint retrieves all tags configured for time tracking within a Workspace. Time-tracking tags are used to categorize and label time entries.

  • Enter the Workspace identifier in the Team ID field. You can obtain this value by first running the Get Team endpoint.

This endpoint calls GET /api/v2/team/{team_id}/time_entries/tags and returns one record per time-tracking tag.

Get List Custom Fields

This endpoint retrieves the custom fields configured for a specific List. Use it to understand the structure of custom data captured on tasks within that List.

  • Enter the identifier of the List whose custom fields you want to retrieve in the List ID field. You can obtain List IDs by first running the Get Lists endpoint.

This endpoint calls GET /api/v2/list/{list_id}/field and returns one record per custom field, including each field's ID, name, and type. These Field IDs are needed to set custom field values from the destination side.

Get Team Custom Fields

This endpoint retrieves the custom fields available across an entire Workspace. Use it to inventory all Workspace-level custom fields in a single call.

  • Enter the Workspace identifier in the Team ID field. You can obtain this value by first running the Get Team endpoint.

This endpoint calls GET /api/v2/team/{team_id}/field and returns one record per custom field defined at the Workspace level.

List Space Tags

This endpoint retrieves all tags defined within a specific Space. Tags are used to label and categorize tasks across a Space.

  • Enter the identifier of the Space whose tags you want to retrieve in the Space ID field. You can obtain Space IDs by first running the Get Spaces endpoint.

This endpoint calls GET /api/v2/space/{space_id}/tag and returns one record per tag, including each tag's name and colors.

List Team Goals

This endpoint retrieves all Goals defined for a Workspace. Goals track measurable targets composed of one or more Targets (key results) in ClickUp.

  • Enter the Workspace identifier in the Team ID field. You can obtain this value by first running the Get Team endpoint.

This endpoint calls GET /api/v2/team/{team_id}/goal and returns one record per Goal, including progress and owner information.

List Comments

This endpoint retrieves all comments posted on a specific List. Use it to ingest List-level discussion and collaboration data.

  • Enter the identifier of the List whose comments you want to retrieve in the List ID field. You can obtain List IDs by first running the Get Lists endpoint.

This endpoint calls GET /api/v2/list/{list_id}/comment and returns one record per comment, including the comment text, author, and timestamp.

Get Task Comments

This endpoint retrieves all comments posted on a specific Task. Use it to ingest task-level discussion threads.

  • Enter the identifier of the Task whose comments you want to retrieve in the Task ID field. Task IDs are returned by the Get Tasks and Get Filtered Team Tasks endpoints.

This endpoint calls GET /api/v2/task/{task_id}/comment and returns one record per comment.

Get List Members

This endpoint retrieves all members who have access to a specific List. Use it to audit access or to map task assignees to users.

  • Enter the identifier of the List whose members you want to retrieve in the List ID field. You can obtain List IDs by first running the Get Lists endpoint.

This endpoint calls GET /api/v2/list/{list_id}/member and returns one record per member, including each member's ID, username, and email.

Once the selected endpoint template has been configured, click the Test button to the right of the endpoint selection menu to retrieve a sample of the data that will be fetched. Sample data will be displayed in the Endpoint Test Result panel on the right, allowing you to verify that the source is configured correctly before saving.

Manual configuration

ClickUp data sources can also be manually configured to ingest data from any valid ClickUp API endpoint, including endpoints not covered by the pre-built templates, chained API calls, or custom query-parameter filters such as status, assignee, due-date ranges, or subtasks. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, endpoint URL, date/time and lookup macros, path to data, metadata, and request headers.

ClickUp read endpoints use the GET method against base URLs such as https://api.clickup.com/api/v2/list/{list_id}/task, and accept filters such as ?statuses[]=open or ?include_closed=true as query parameters. Date/time macros are useful for filters like due_date_gt or date_updated_gt. ClickUp responses wrap records in a named array—enter $.tasks[*] as the Path to Data for the Get Tasks endpoint, $.lists[*] for Get Lists, or $.spaces[*] for Get Spaces. The Authorization header containing your personal API token is applied automatically and does not need to be added manually.

Once all of the relevant settings have been configured, click the Create button in the upper right corner of the screen to save and create the new ClickUp data source. Nexla will now begin ingesting data from the configured endpoint and will organize any data that it finds into one or more Nexsets.

Use as a destination

Click the + icon on the Nexset that will be sent to the ClickUp destination, and select the Send to Destination option from the menu. Select the ClickUp connector from the list of available destination connectors, then select the credential that will be used to connect to the ClickUp Workspace, and click Next; or, create a new ClickUp credential for use in this flow.

Endpoint templates

Nexla provides pre-built templates that can be used to rapidly configure destinations to send data to common ClickUp endpoints. Select the endpoint to which data will be sent from the Endpoint pulldown menu. Then, click on the template in the list below to expand it, and follow the instructions to configure additional endpoint settings.

ClickUp write operations target a specific location in the Workspace hierarchy (a List, Task, or Workspace), so most destination templates require an ID identifying where the data should be written. You can obtain these IDs by configuring a ClickUp data source with the corresponding listing endpoint (for example, run Get Lists to find a List ID or Get Tasks to find a Task ID).

Create Task

This endpoint creates a new Task in a specified List. The task name, description, status, assignees, priority, due date, and custom fields are taken from each record in the Nexset.

  • Enter the identifier of the List in which Tasks will be created in the List ID field. You can obtain List IDs from a ClickUp data source configured with the Get Lists endpoint.
  • Ensure each record in the Nexset includes at least a name field, which is required by ClickUp to create a task.

This endpoint sends a POST request to /api/v2/list/{list_id}/task with each record as the JSON body. For the full list of supported task fields, refer to the Create Task reference.

Update Task

This endpoint updates an existing Task, supporting changes to status, assignees, due date, priority, description, and custom fields.

  • Enter the identifier of the Task to update in the Task ID field. Task IDs are returned by the Get Tasks and Get Filtered Team Tasks source endpoints.
  • Include only the fields you want to change in each Nexset record; ClickUp updates only the fields present in the request body.

This endpoint sends a PUT request to /api/v2/task/{task_id} with each record as the JSON body. For details, refer to the Update Task reference.

Delete Task

This endpoint permanently deletes a Task by its ID. Use it to remove tasks from ClickUp based on records in the Nexset.

  • Enter the identifier of the Task to delete in the Task ID field. Task IDs are returned by the Get Tasks and Get Filtered Team Tasks source endpoints.

This endpoint sends a DELETE request to /api/v2/task/{task_id}. Deletion is permanent and cannot be undone, so verify your Task IDs before activating the destination. For details, refer to the Delete Task reference.

Create Task Comment

This endpoint adds a new comment to a specific Task. Use it to post automated updates or notes onto tasks.

  • Enter the identifier of the Task to comment on in the Task ID field. Task IDs are returned by the Get Tasks and Get Filtered Team Tasks source endpoints.
  • Ensure each record includes a comment_text field containing the body of the comment.

This endpoint sends a POST request to /api/v2/task/{task_id}/comment with each record as the JSON body. For details, refer to the Create Task Comment reference.

Create Time Entry

This endpoint records a new time-tracking entry within a Workspace, optionally associated with a Task. Use it to push logged time from external systems into ClickUp.

  • Enter the Workspace identifier in the Team ID field. You can obtain this value from a ClickUp data source configured with the Get Team endpoint.
  • Include the time-entry details (such as start, duration, and the associated tid task ID) in each Nexset record.

This endpoint sends a POST request to /api/v2/team/{team_id}/time_entries with each record as the JSON body. For details, refer to the Create a Time Entry reference.

Update Time Entry

This endpoint updates an existing time-tracking entry—for example, to correct a duration or change the task it is associated with.

  • Enter the Workspace identifier in the Team ID field, and the identifier of the time entry to update in the Timer ID field.
  • Include only the time-entry fields you want to change in each Nexset record.

This endpoint sends a PUT request to /api/v2/team/{team_id}/time_entries/{timer_id} with each record as the JSON body. For details, refer to the Update a Time Entry reference.

Create List

This endpoint creates a new List inside a specified Folder. Use it to provision Lists programmatically from your Nexset data.

  • Enter the identifier of the Folder in which Lists will be created in the Folder ID field. You can obtain Folder IDs from a ClickUp data source configured with the Get Folders endpoint.
  • Ensure each record includes a name field for the List to be created.

This endpoint sends a POST request to /api/v2/folder/{folder_id}/list with each record as the JSON body. For details, refer to the Create List reference.

Set Custom Field Value

This endpoint sets or updates the value of a custom field on a specific Task. Use it to populate custom data on tasks from external systems.

  • Enter the identifier of the Task to update in the Task ID field, and the identifier of the custom field to set in the Field ID field. Field IDs are returned by the Get List Custom Fields and Get Team Custom Fields source endpoints.
  • Ensure each record includes a value field formatted according to the custom field's type.

This endpoint sends a POST request to /api/v2/task/{task_id}/field/{field_id} with each record as the JSON body. For details, refer to the Set Custom Field Value reference.

Create Webhook

This endpoint registers a new webhook subscription so that an external endpoint receives real-time ClickUp events such as task creation or status changes.

  • Enter the Workspace identifier in the Team ID field. You can obtain this value from a ClickUp data source configured with the Get Team endpoint.
  • Include the webhook configuration (such as the endpoint URL and the list of events to subscribe to) in each Nexset record.

This endpoint sends a POST request to /api/v2/team/{team_id}/webhook with each record as the JSON body. For details, refer to the Create Webhook reference.

Manual configuration

ClickUp destinations can also be manually configured to send data to any valid ClickUp API endpoint. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, data format, endpoint URL, request headers, attribute exclusions, record batching, and response webhooks.

ClickUp write endpoints use POST to create resources, PUT to update them, and DELETE to remove them, and expect the request body in application/json format. For update or delete operations, include the ID of the object to be modified at the end of the URL—for example, https://api.clickup.com/api/v2/task/{task_id} to update a specific Task. The Authorization header containing your personal API token is applied automatically and does not need to be added manually.

ClickUp's task, comment, and time-entry write endpoints operate on a single resource per request, so records are typically sent individually and record batching is best left disabled for ClickUp destinations.

Enabling the response webhook option is particularly useful for endpoints such as Create Task, Create List, and Create Webhook (to capture the ID of the newly created resource) or Create Task Comment (to capture the new comment ID).

Test data is written to ClickUp

Sending a test payload makes a live API call to your ClickUp Workspace. For create, update, or delete endpoints, this will modify real ClickUp data. Use a test List or Workspace when validating destination configuration.

Save & activate

Once all endpoint settings have been configured, click the Done button in the upper right corner of the screen to save and create the destination. To begin sending data to ClickUp, open the destination resource menu, and select Activate.

The Nexset data will not be sent to ClickUp until the destination is activated. Destinations can be activated immediately or at a later time, providing full control over data movement.