Connectors / Service / ClickUp

Artisan IMG > ClickUp (clickup)

ClickUp

ClickUp is a productivity platform that provides a fundamentally new way to work.

Overview

ClickUp is a productivity platform that provides a fundamentally new way to work. More than just task management - ClickUp offers notes, reminders, goals, calendar, scheduling, and even an inbox. Fully customizable, ClickUp works for every type of team, so all teams can use the same app to plan, organize, and collaborate.

API INFO: The Base URL used for the ClickUp connector is https://api.clickup.com/api/. More information can be found on their main API documentation (v2.0) site.

Authentication

Within the workflow builder, highlight the ClickUp connector.

In the ClickUp connector properties panel to the right of the builder, click on the Authenticate tab and the 'Add new authentication' button.

add-auth

This will result in a Tray.io authentication pop-up modal. The first page will ask you to name your authentication and select the type of authentication you wish to create ('Personal' or 'Organisational').

The next page asks you for your 'Client ID', 'Client secret', 'Authentication URL', 'Access token URL', and 'Base URL'.

clickup-auth-all-fields-modal

In order to get your 'Client ID' and 'Client secret', you need to create your own ClickUp app. To do so, refer to the ClickUp document on Create your own app.

Once you are done creating your own ClickUp app; as a result, you receive values for the Client ID and Client Secret fields. Copy and paste these credentials on the authentication pop-up window.

The other fields i.e., 'Authentication URL', 'Access token URL', and 'Base URL', are auto-populated for ease of the users.

clickup-auth-complete-fields-modal

Now, click the 'Create authentication' button.

Go back to your settings authentication field (within the workflow builder properties panel), and select the recently added authentication from the dropdown options now available.

Your connector authentication setup should now be complete.

ClickUp trigger

If you wish your workflow to be kicked off by a particular action in ClickUp, you can use the ClickUp Trigger.

The ClickUp trigger allows you to receive notifications and trigger workflows when given events occur within ClickUp. This can be set up using the Selected event(s) operation and configuring the options to your needs.

Trigger operations available:

  • Selected event(s)

When creating a new workflow choose ClickUp as your trigger at the 'Create new workflow' section and wait to be redirected to your new workflow.

trigger-select

Use the instructions above to authenticate your trigger, and select the 'Selected event(s)' operation. Select the events you would like the workflow to be triggered from. from the options available the event you want your trigger to listen to, in order to set off the workflow itself:

selected-events

To identify what event occurred to trigger the workflow, a field called 'event' is always present within the trigger payload. This field provides a string identifying what event occurred to trigger the workflow.

Check out the example below regarding how to extract and use the information from the trigger.

Available Operations

The examples below show one or two of the available connector operations in use.

Please see the Full Operations Reference at the end of this page for details on all available operations for this connector.

Example usage

TRAY POTENTIAL: Tray.io is extremely flexible. By design there is no fixed way of working with it - you can pull whatever data you need from other services and work with it using our core and helper connectors. This demo which follows shows only one possible way of working with Tray.io and the ClickUp connector. Once you've finished working through this example please see our Introduction to working with data and jsonpaths page and Data Guide for more details.

This example will walk through the creation of a workflow that will alert the project manager when a task has changed status in ClickUp, via Slack. It uses the ClickUp trigger and connector as well as the Slack connector.

To find out more information about the Slack connector, you can find the documentation

  1. Setup the Clickup trigger to be list specific.

  2. Get the task information.

  3. Message a member of your team to notify them about the update using the Slack trigger.

The final outcome should look like this:

clickup-complete-workflow

1 - Setup trigger

Once you have clicked 'Create new workflow' on your main Tray.io dashboard (and named said new workflow), select the 'Clickup Trigger' from the trigger options available:

trigger-select

Once you have been redirected to the Tray.io workflow dashboard, select your Clickup authentication, and set the operation to 'Selected event(s)'. You will see the option to select 'Subscribe to all events' - we will not be needing this ability as we will be looking to trigger our workflow based on a specific event occurring, instead of "all".

Under 'Selected events' you will see the option to add an item, by pressing the grey 'Add Item' button.

clickup-subscribe-events-add-item

Choose the dropdown option 'Task Status Updated'. This will mean that whenever a task has changed its status, ClickUp will send a notification and trigger your workflow.

In this example, we want to only receive notifications when tasks in a certain list have been changed.

This can be achieved by using 'List ID' input. To further our specifications, we also only want to receive notifications when a task in the list 'Sprint 1' has been updated.

Your trigger setup should eventually end up looking similar to below - depending on your Team ID's etc:

PLEASE NOTE: If you want to use the dropdown options - as we have in this example - thefields 'Team ID', 'Space ID' and 'Folder ID' will need to be selected in that order

selected-events

2 - Get task info

The trigger should now return us a task_id in the payload. You can view this in the debug panel, within the output section.

Make sure to scroll down to the BOTTOM in order to find it amongst the rest of the payload information generated.

clickup-trigger-payload

To get more information about the task that has been changed, we need to use the operation 'Get task'.

From the connectors panel the left, add an Clickup connector to your second step and set the operation as specified ('Get task').

get-task

Using JSONPaths we can provide the ID from the trigger into the required 'Task ID' field in the 'Get task' operation. The JSONPath we will use $.steps.trigger.task_id.

JSONPATHS: For more information on what jsonpaths are and how to use jsonpaths with Tray.io, please see our Intro page and Data Guide for more details.

Note that this can be easily generated using the connector-snake:

CONNECTOR-SNAKE: The simplest and easiest way to generate your jsonpaths is to use our feature called the Connector-snake. Please see the main page for more details.

3 - Notify via Slack

Now we have the information about the task that has changed, we can send a message to our project manager via Slack.

Select the Slack connector and bring it into the workflow's next step. To send a message, we use the 'Send message' operation. The recipient of our message will be '@project-manager' and we want the message to be readable and useable for them to understand.

This message can be created using jsonpaths AND string interpolation:

INTERPOLATION: When you wish to include JSON generated data within another input/output result, use our Interpolation method as described here.

In the snippet below, we are creating a string that will pull information from the first connector step 'clickup-1' (note that this is technically the SECOND step in the actual workflow, after the trigger). More specifically we will be pulling in the name of the task, and it's new status:

Task: "{$.steps.clickup-1.name}" has had a status change: {$.steps.clickup-1.status.status}

For example, if a task with the name of "Example Task" had its status changed to "In Progress", then the actual output that would be generated would be:

Task: "Example task" has had a status change: In Progress

Your step should look similar to this:

clickup-slack-message

Now, when a task has had its status changed in the list: 'Sprint 1', a message is sent to the project manager in Slack.

slack-message

Within three steps we have managed to create a very useful workflow that will let the Project Manager stay on top of all work going on within ClickUp - congratulations!

All Operations

Latest version:

2.1

Add custom field to list

Add an existing field to a list. We want to reuse fields as much as possible instead of creating unique ones. So if you have an existing field in another location, you can add it to a list with this route.

Bulk add task comment

Add multiple task comments in one API call

Bulk add task tag

Create multiple task tags in one API call

Bulk create task

Create multiple tasks in one API call

Bulk delete task tag

Delete tags from multiple tasks in one API call

Bulk move task

Move multiple tasks in one API call

Bulk update task assignee

Update multiple task assignees in one API call

Bulk update task due date

Update multiple tasks due date in one API call

Bulk update task priority

Update multiple task priorities in one API call

Bulk update task statuses

Update multiple task statuses in one API call

Create task

Creates a task within a list.

Delete task

Deletes a task.

Get authorized user

Retrieve the authorized user.

List folders

Lists folders.

List folders DDL

List list custom fields

List custom fields that belong to a given list

List list custom fields DDL

List task members

Retrieve a task's members.

List tasks

Lists tasks.

List teams

List teams

List teams DDL

Raw HTTP request (advanced)

Perform a raw HTTP request with some pre-configuration and processing by the connector, such as authentication.

Update task

Updates a task.

Update widget integration value

Use this operation to adjust a widget's integration value.

Create custom fields

Create custom fields that belong to a given list. To create multiple fields, you would need to make multiple requests

Create folder

Creates a folder within a space.

Create folderless list

Creates a folderless list within a space.

Create list

Creates a list within a folder.

Create status

Creates a status within a list.

Get list

Retrieve a list by its ID.

Get space

Get space

Get task

Retrieves a task by ID.

Get widget

Retrieves a widget by ID.

List authorized teams

List the authorized teams.

List filtered team tasks

Lists filtered team tasks.

List list members

List members of a given list

List lists

Lists tasks.

List lists DDL

List spaces

List spaces

List spaces DDL

List task comments

Retrieve a task's comments.