---
title: "Update a conversation"
method: PATCH
path: "/v1/conversation/{conversationId}"
tags: ["Conversation"]
---

# Update a conversation

`PATCH /v1/conversation/{conversationId}`

Update fields on a conversation, such as a CSAT score collected in your own UI. Requires server-to-server API credentials.

## Path parameters

- `conversationId` string, uuid, required

## Request body

- union
  - object
    - `csatScore` 1 | 2 | 3 | 4 | 5, required — Customer satisfaction score for the conversation, from 1 (very dissatisfied) to 5 (very satisfied). Use this to record a CSAT response collected in your own UI.
    - `csatCollectedAt` string, date-time — When the CSAT response was collected (ISO 8601 format). Defaults to the time of the request. Only honoured together with csatScore.
    - `csatDidThatHelp` boolean — The customer's answer to a "did that help?" style prompt.
    - `title` string — The title of the conversation.
  - object
    - `csatDidThatHelp` boolean, required
  - object
    - `title` string, required

## Response `200`

- ConversationUpdateResponseDTO
  - `conversationId` string, required — The ID of the conversation
  - `csatScore` number, nullable, required — Customer satisfaction score for the conversation
  - `csatCollectedAt` string, date-time, nullable, required — When the CSAT response was collected (ISO 8601 format)
  - `csatCollectionMethod` 'workflow' | 'widget_inactivity' | 'widget_close' | 'api', nullable, required — How the CSAT was collected
  - `csatDidThatHelp` boolean, nullable, required — The customer's answer to a "did that help?" style prompt
  - `title` string, nullable, required — The title of the conversation
  - `updatedAt` string, date-time, required — The timestamp of when the conversation was last updated in our system.

## Other responses

- `400` — The conversation ID or request body is invalid
- `403` — Requires server-to-server API credentials
- `404` — Conversation not found

## Changes

- **2026-07-27** `789c7fa93584` — 2 info
  - added the new optional request property `anyOf[subschema #2]/csatCollectedAt`
  - added the new optional request property `anyOf[subschema #2]/csatScore`
- **2026-07-27** `f4befd172a53` — 1 warning, 1 info
  - removed `#/components/schemas/ConversationUpdateDTO, subschema #2` from the request body `allOf` list
  - added `subschema #1, subschema #2` to the request body `anyOf` list
- **2026-07-24** `4b42dad8bef9` — 3 breaking, 4 warning
  - added `#/components/schemas/ConversationUpdateDTO, subschema #2` to the request body `allOf` list
  - the request's body type/format changed from `object`/`` to ``/``
  - the `csatCollectedAt` response's property type/format changed from `object`/`date-time` to `string`/`date-time` for status `200`
  - removed the request property `csatCollectedAt`
  - …3 more
- **2026-07-24** `520022f9197e` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/optechai/apis/lorikeet-api/changes/v1/conversation/:conversationId/patch.md)

---

[API](https://skmtc.dev/optechai/apis/lorikeet-api.md) · [All operations](https://skmtc.dev/optechai/apis/lorikeet-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/optechai/lorikeet-api/revisions/789c7fa93584/schema)
