Skip to main content
PATCH
/
api
/
work-tasks
/
{task_uid}
Update or resolve work task
curl --request PATCH \
  --url https://dev.exante.app/api/work-tasks/{task_uid} \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "title": "<string>",
  "description": "<string>",
  "assign_to": {
    "type": "user",
    "user_uid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "agent_uid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "full_name": "<string>",
    "name": "<string>",
    "avatar_url": "<string>"
  },
  "priority": "urgent",
  "due_date": "2023-12-25",
  "status": "todo",
  "context_entities": [
    {
      "entity_type": "invoice",
      "entity_uid": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
    }
  ]
}
'
{
  "status": "success",
  "status_code": 200,
  "message": "<string>",
  "data": {
    "uid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "title": "<string>",
    "type": "task",
    "status": "todo",
    "priority": "urgent",
    "due_date": "2023-12-25",
    "created_at": "2023-11-07T05:31:56Z",
    "assign_to": {
      "type": "user",
      "user_uid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "agent_uid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "full_name": "<string>",
      "name": "<string>",
      "avatar_url": "<string>"
    },
    "origin": {
      "type": "user",
      "user_uid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "agent_uid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "user_name": "<string>",
      "agent_name": "<string>",
      "avatar_url": "<string>",
      "trigger_type": "<string>"
    },
    "description": "<string>",
    "updated_at": "2023-11-07T05:31:56Z",
    "context_entities": [
      {
        "entity_type": "invoice",
        "entity_uid": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
      }
    ],
    "change_log": [
      {
        "at": "2023-11-07T05:31:56Z",
        "by_name": "<string>",
        "action": "<string>",
        "details": {}
      }
    ],
    "reasoning": "<string>",
    "tool_args": {},
    "trigger": {}
  }
}
This endpoint handles two distinct operations depending on the task type:
  • User tasks (type: "task") — partial update of task fields
  • HIL approval tasks (type: "hil_approval") — resolve the approval request

Updating a user task

Only provided fields are changed. All changes are recorded in the task’s change log.

Update status and priority

{
  "status": "in_progress",
  "priority": "urgent"
}

Reassign a task

{
  "assign_to": {
    "type": "user",
    "user_uid": "550e8400-e29b-41d4-a716-446655440000"
  }
}
To unassign, pass null or {}:
{
  "assign_to": null
}

Update context entities

Providing context_entities replaces the full set of linked entities:
{
  "context_entities": [
    { "entity_type": "invoice", "entity_uid": "inv-uuid-here" },
    { "entity_type": "party", "entity_uid": "party-uuid-here" }
  ]
}

Resolving an HIL approval task

For hil_approval tasks, the request body must use the resolve schema:

Approve

{
  "action": "approve",
  "resolution_note": "Looks good, proceed with sending"
}

Reject

{
  "action": "reject",
  "resolution_note": "Wrong recipient — should go to billing@acme.com"
}

Approve with edits

Modify the tool arguments before approving:
{
  "action": "approve",
  "tool_args": {
    "subject": "Updated: Invoice INV-2026-0042 - Payment Overdue",
    "to": ["billing@acme.com"]
  },
  "resolution_note": "Changed recipient to billing contact"
}
FieldRequiredDescription
actionYes"approve" or "reject"
tool_argsNoModified tool arguments (for approve-with-edits)
resolution_noteNoExplanation for the decision

Follow-up agent run

After resolving an HIL task, the endpoint triggers a follow-up agent run if the task has a configured trigger. If the trigger fails, the response includes a _warning field but the resolution itself is not rolled back:
{
  "status": "success",
  "data": {
    "uid": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
    "status": "done",
    "_warning": "Follow-up agent run could not be started"
  }
}
The resolve schema (action, tool_args, resolution_note) is only accepted for HIL approval tasks. Sending these fields when updating a user task will result in a validation error.

Response

Returns the updated task with full detail, matching the Get work task response shape.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Path Parameters

task_uid
string<uuid>
required

Work task UID

Body

application/json

Only provided fields are changed; omitted fields remain unchanged.

title
string
Required string length: 1 - 255
description
string
assign_to
object

Polymorphic assignee. Fields vary by type.

priority
enum<string>
Available options:
urgent,
high,
medium,
low
due_date
string<date> | null
status
enum<string>
Available options:
todo,
in_progress,
in_review,
done,
canceled
context_entities
object[]

Response

Task updated or resolved

status
string
Example:

"success"

status_code
integer
Example:

200

message
string
data
object