> ## Documentation Index
> Fetch the complete documentation index at: https://docs.open.cx/llms.txt
> Use this file to discover all available pages before exploring further.

# Update a Connect thread

> Report order status to drive the thread lifecycle, adjust Supervisor modes per lane, or force-lock a thread. The one write you call as the order progresses.

Update a thread as the order progresses. Reporting `order_status` is the normal use — the [lifecycle](/connect/threads) reacts automatically.

## Path

<ParamField path="thread_id" type="string" required>
  Thread ID (`th_…`) or your `reference`.
</ParamField>

## Request

<ParamField body="order_status" type="string">
  `confirmed`, `preparing`, `ready`, `picked_up`, `delivered`, or `cancelled`. `delivered` starts the wrap-up window; `cancelled` locks immediately. Custom statuses pass through to the Supervisor and the UI status chip.
</ParamField>

<ParamField body="status" type="string">
  Force a lifecycle transition: `locked` locks now (skips the wrap-up window). Reopening a locked thread is not supported — escalate to a [session](/api-reference/chat-sessions/create) instead.
</ParamField>

<ParamField body="supervisor" type="object">
  Same shape as on [create](/api-reference/connect/create-thread): thread- or lane-level `mode`, `nudge_after_seconds`, escalation rules.
</ParamField>

<ParamField body="lanes" type="array">
  Enable an optional lane mid-thread, e.g. `["merchant_courier"]` when a pickup goes sideways.
</ParamField>

<ParamField body="custom_data" type="object">
  Merged into existing custom data (top-level keys replace).
</ParamField>

## Response

The updated thread object.

<RequestExample>
  ```bash cURL theme={"dark"}
  curl -X PATCH https://api.open.cx/connect/threads/order_84421 \
    -H "Authorization: Bearer YOUR_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{ "order_status": "delivered" }'
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={"dark"}
  {
    "id": "th_9f2c4e",
    "reference": "order_84421",
    "status": "wrap_up",
    "order_status": "delivered",
    "wrap_up_ends_at": "2026-07-31T15:20:44Z"
  }
  ```
</ResponseExample>
