Event

trigger.clockify_event
TriggerBusiness appsconnection requiredruns in-engine

Registers one Clockify webhook per selected event in the tenant's workspace at publish and starts one run per delivery, checked against Clockify's token.

Start a run when a Clockify workspace event arrives (time entry, project, task, approval…).

Connection

Required
Yes — the node will not save without one
Auth type
API key
Providers
Clockify
Secret shape
the Clockify API key (X-Api-Key)
Resolved by
config.connection_id, else the tenant's single clockify connection
Note
Webhooks may only be created by a workspace owner or admin, so a key generated by a regular member fails at publish. Publishing also needs MANTLE_APP_PUBLIC_BASE_URL set to a URL Clockify can reach.

Configuration

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

FieldTypeRequiredDefaultConstraintsExample
workspace_id
The workspace the webhooks are created in. Only workspace owners and admins may create them, so the connection's key must belong to one.
stringYes——64a687e29ae1f428e7ebe303
events
Which events to subscribe to. One Clockify webhook is registered per event and deleted again when the workflow is unpublished or disabled — and Clockify caps webhooks per workspace (three on the Free plan), so a long list can be refused at publish with Clockify's own message.
arrayNo["NEW_TIME_ENTRY"]≥ 1 characters; array of string—
trigger_source_type
What the ids in 'Trigger source' refer to. Leave WORKSPACE_ID to fire on everything in the workspace; pick PROJECT_ID or USER_ID to narrow it.
stringNoWORKSPACE_IDone of "PROJECT_ID", "USER_ID", "TAG_ID", "TASK_ID", "WORKSPACE_ID", "ASSIGNMENT_ID", "EXPENSE_ID"—
trigger_source
The ids to narrow the subscription to, matching the type above. Leave empty with WORKSPACE_ID — the workspace id is then what gets registered.
arrayNo—array of string—

Example configuration

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

{
  "events": [
    "NEW_TIME_ENTRY"
  ],
  "trigger_source_type": "WORKSPACE_ID",
  "workspace_id": "64a687e29ae1f428e7ebe303"
}

Output

One shape.

clockify event

A flat envelope with Clockify's own object under `payload`. `payload` keys depend on which event fired.

Extra keys beyond the ones listed can appear.

FieldTypeExample
event
The Clockify event name, e.g. NEW_TIME_ENTRY. Empty when the delivery carries no event header — Clockify does not document one, so branch on the payload rather than on this when it matters.
stringNEW_TIME_ENTRY
id
The id of the object the event is about (the time entry, project, task…), lifted out of the payload so the next node need not dig for it.
string65df50f5d2dd8f23a685374e
workspace_id
The Clockify workspace the event happened in, lifted out of the payload.
string64a687e29ae1f428e7ebe303
payload
Clockify's own object, verbatim — a time entry for the TIME_ENTRY_* and TIMER_* events, a project for PROJECT_*, and so on. Its keys depend on the event, which is why this shape is open.
object—
{
  "event": "NEW_TIME_ENTRY",
  "id": "65df50f5d2dd8f23a685374e",
  "payload": {
    "billable": true,
    "description": "Design review",
    "id": "65df50f5d2dd8f23a685374e",
    "projectId": "54a687e29ae1f428e7ebe909",
    "timeInterval": {
      "duration": "PT1H30M",
      "end": "2026-09-08T10:30:00Z",
      "start": "2026-09-08T09:00:00Z"
    },
    "userId": "5a0ab5acb07987125438b60f",
    "workspaceId": "64a687e29ae1f428e7ebe303"
  },
  "workspace_id": "64a687e29ae1f428e7ebe303"
}

Notes

  • Publishing creates one webhook per selected event; unpublishing, disabling or archiving deletes all of them, so a workspace never keeps delivering to a dead workflow.
  • Each delivery is checked against the token Clockify issued for that webhook before any run starts; an unrecognised token is refused with 401.
  • Clockify retries a failed delivery four times over 72 hours. Runs are deduplicated on the event's own content, so a retry rejoins the first run.
  • Clockify's own reference does not name the header the token arrives in, so every documented candidate is checked — see the module docstring.

See Event run in a workflow.

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