Confluye
Endpoints

Human Tasks

Read-only monitoring of durable workflow Human Tasks for external agents and API clients.

Endpoints for durable workflow Human Tasks under /api/v1/human-tasks. A Human Task is the control-plane projection of a workflow run that has parked at an approval (Human Task) node: the run's checkpoint and wait token remain the execution source of truth, and the task record models lifecycle, assignment, work state, dates, and outcome.

Endpoints

MethodPathDescription
GET/api/v1/human-tasksList tasks the caller is authorized for
GET/api/v1/human-tasks/{id}Get one authorized task projection

Both require a workspace-scoped bearer API key. Authorization is resolved against the key owner's current workspace membership and task eligibility at request time (KTD9): a revoked or cross-workspace principal sees no task, even for a task issued earlier.

Listing tasks

GET /api/v1/human-tasks accepts these optional query params:

ParamDescription
filtereligible | mine | unassigned | open | due | overdue | completed
runIdRestrict to tasks for one run
limitMax results, default 25, clamped 1–100
offsetPagination offset; the response returns nextOffset (or null at the end)

An unknown filter returns 400. The response is { tasks, nextOffset, links }, where links maps each taskId to its detail path.

Task projection

Each task is a redacted summary. It never includes draft values, form contents, signal payloads, or resume secrets — only field presence flags and digestible metadata.

FieldMeaning
idTask id
workspaceIdOwning workspace
workflowId, runId, nodeIdLinked workflow, run, and Human Task node
taskTypeTask kind (e.g. approval, form)
lifecycleStateopen | completed | canceled | expired
workStateready | started | paused (independent of lifecycle)
priorityTask priority
assigneeUserIdCurrent assignee, or null when unassigned
eligibleRolesRoles eligible to claim/complete
outcomesNamed outcomes the completing human may select
instructionsReviewer instructions, or null
dueAt, followUpAt, escalateAtDue, follow-up, and escalation timestamps
terminalOutcomeThe winning outcome once terminal, else null
hasFormSchema, hasFormDraftPresence flags only — contents are never returned
revisionCompare-and-set revision guarding concurrent transitions
createdAt, updatedAtTimestamps

Lifecycle

Lifecycle is separate from assignment and work state. A task stays open while it is claimed, reassigned, drafted, started, paused, reminded, or escalated; only a terminal transition consumes the linked wait token exactly once:

  • completed — an eligible human selected a named outcome; the run resumes down that branch.
  • canceled — the run or task was canceled.
  • expired — a hard timeout elapsed; the run follows its configured timeout branch. An expired task is never silently treated as approval.

Reminders and escalations update task and audit state and notify the target, but they do not resume the run. When completion races a timeout or cancellation, one checkpoint compare-and-set wins and the loser receives a terminal conflict without a second resume.

  • Human-only session routes: /api/human-tasks (claim, save draft, complete, reassign) and pending Agent tool confirmations at /api/human-tasks/agent-confirmations.
  • Recovery: see the durable Human Task recovery runbook.