Event

trigger.clickup_event
TriggerBusiness appsconnection requiredruns in-engine

Registers a webhook in the tenant's ClickUp Workspace on publish and starts one run per delivered event, verified against ClickUp's X-Signature.

Start a run when ClickUp reports a change (task, list, folder, goal).

Connection

Required
Yes — the node will not save without one
Auth type
API key
Providers
ClickUp
Secret shape
the ClickUp personal API token (pk_…)
Resolved by
config.connection_id, else node.connection_id
Note
The token must belong to a member of the Workspace named in team_id — ClickUp answers 401 for a Workspace the token cannot see. Publishing also needs MANTLE_APP_PUBLIC_BASE_URL set to a URL ClickUp can reach.

Configuration

6 fields, 1 required. A dotted path is a nested object and name[] an array of objects — the editor renders the same tree.

FieldTypeRequiredDefaultConstraintsExample
team_id
The Workspace to watch — ClickUp's 'team' id, the number that appears in the URL of any page in that Workspace. A webhook belongs to a Workspace.
stringYes—matches ^\d{1,32}$9012345678
events
Which ClickUp events to subscribe to. "*" subscribes to every event (noisy — each one starts a run).
arrayNo["taskCreated"]1–29 characters; array of string—
space_id
Only deliver events from this Space. Leave blank for the whole Workspace; a webhook narrows to one location at most.
stringNo—matches ^\d{1,32}$—
folder_id
Only deliver events from this Folder. Leave blank for the whole Workspace; a webhook narrows to one location at most.
stringNo—matches ^\d{1,32}$—
list_id
Only deliver events from this List. Leave blank for the whole Workspace; a webhook narrows to one location at most.
stringNo—matches ^\d{1,32}$—
task_id
Only deliver events about this one task, by its short id (c0j). Leave blank for the whole Workspace; a webhook narrows to one location at most.
stringNo—matches ^[A-Za-z0-9_-]{1,64}$—

Example configuration

Every value below is the contract’s own example or default — nothing invented.

{
  "events": [
    "taskCreated"
  ],
  "team_id": "9012345678"
}

Output

One shape.

clickup event

A flat envelope over ClickUp's body. ClickUp sends the id that changed and a history diff, never the whole task.

Extra keys beyond the ones listed can appear.

FieldTypeExample
event
The ClickUp event name, e.g. taskStatusUpdated. Branch on this when the webhook subscribes to more than one.
stringtaskStatusUpdated
webhook_id
ClickUp's id for the webhook that delivered this event. Half of the idempotency key.
string7689a169-a000-4985-8676-6902b96d6627
resource_type
What changed — task, list, folder, space, goal or key_result — read off whichever id ClickUp put on the body.
stringtask
resource_id
The id of the thing that changed, whatever kind it is.
stringc0j
task_id
The task id, when this is a task event — the one id most workflows reach for, so it is lifted out as well. Empty for list, folder, space and goal events.
stringc0j
history_item_id
The id of the change ClickUp reported. The other half of the idempotency key ClickUp documents; empty on events that carry no history (a creation, a deletion).
string2800763136717140857
history_items
The diff: one entry per changed field, each with the field name and its before/after values and the user who made the change.
array—
payload
ClickUp's body exactly as it arrived, for anything the fields above do not lift out.
object—
{
  "event": "taskStatusUpdated",
  "history_item_id": "2800763136717140857",
  "history_items": [
    {
      "after": {
        "status": "in progress",
        "type": "custom"
      },
      "before": {
        "status": "to do",
        "type": "open"
      },
      "date": "1717070400000",
      "field": "status",
      "id": "2800763136717140857",
      "type": 1,
      "user": {
        "email": "ada@example.com",
        "id": 183,
        "username": "Ada"
      }
    }
  ],
  "payload": {
    "event": "taskStatusUpdated",
    "task_id": "c0j",
    "webhook_id": "7689a169-a000-4985-8676-6902b96d6627"
  },
  "resource_id": "c0j",
  "resource_type": "task",
  "task_id": "c0j",
  "webhook_id": "7689a169-a000-4985-8676-6902b96d6627"
}

Notes

  • Publishing creates the webhook in ClickUp; unpublishing, disabling or archiving deletes it. A workflow that is off is off at ClickUp too.
  • Each delivery is verified against ClickUp's X-Signature (HMAC-SHA256 of the raw body, keyed on the webhook's own secret) before any run starts.
  • A webhook narrows to ONE location: set at most one of space_id, folder_id, list_id and task_id, or publishing is refused.
  • One run per delivery, idempotent on ClickUp's own {webhook_id}:{history_item_id} pair.
  • The body carries the id that changed and a history diff — fetch the task with clickup.get_task when the workflow needs its current state.

See Event run in a workflow.

In a technical demo we add the ClickUp connection, drop the node on the canvas and let Workflow Health pre-flight it before the first real run.