Skip to content

Update a conversation ​

Change the status of a conversation and/or attach freeform notes. Both fields are optional.

PUT/api/user/conversations/{id}
Required scope: conversations:write
Path parameters
integer
Request body (JSON)
curl -X PUT "https://loopx-console.test/api/user/conversations/27845" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{"status":"paused","notes":["Follow up next week","Customer asked for pricing details"]}'
<?php

use GuzzleHttp\Client;

$client = new Client();
$response = $client->request('PUT', 'https://loopx-console.test/api/user/conversations/27845', [
    'headers' => [
        'Authorization' => 'Bearer $TOKEN',
        'Accept'        => 'application/json',
    ],
    'json' => [
        'status' => 'paused',
        'notes' => [
            'Follow up next week',
            'Customer asked for pricing details'
        ]
    ]
]);

$data = json_decode($response->getBody(), true);
const res = await fetch('https://loopx-console.test/api/user/conversations/27845', {
  method: 'PUT',
  headers: {
    Authorization: 'Bearer $TOKEN',
    Accept: 'application/json',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    "status": "paused",
    "notes": [
      "Follow up next week",
      "Customer asked for pricing details"
    ]
  })
});

const data = await res.json();

Example response

{
  "status": true,
  "code": 200,
  "message": "Conversation updated successfully.",
  "data": {
    "id": 27845,
    "status": "paused"
  }
}

Request body ​

FieldTypeDescription
statusenumactive or paused
notesstring[] | nullArray of note strings — replaces the existing notes list

Errors ​

CodeWhen
403Token missing conversations:write scope
404Conversation not found in your workspace
422Invalid status enum value