> For the complete documentation index, see [llms.txt](https://docs.api.intratool.de/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.api.intratool.de/api-reference/chat/chat-user-conversation-settings.md).

# ChatUserConversationSettings

## Introduction

`ChatUserConversationSettings` store mute and archive settings for the current authenticated [User](/api-reference/users.md) and a [ChatConversation](/api-reference/chat/chat-conversations.md).

## Model Definition

**Relations**

| Key                | Relation                                                      | Type       | Relation Field(s)      |
| ------------------ | ------------------------------------------------------------- | ---------- | ---------------------- |
| `user`             | [User](/api-reference/users.md)                               | Belongs to | `user_id`              |
| `chatConversation` | [ChatConversation](/api-reference/chat/chat-conversations.md) | Belongs to | `chat_conversation_id` |

## Show by conversation

Show the current user's settings for a [ChatConversation](/api-reference/chat/chat-conversations.md).

**Definition**

<mark style="color:green;">`GET`</mark> `/api/chat/conversations/{chatConversation}/user-settings`

**Route Parameters**

| Parameter          | Type                  | Description                  |
| ------------------ | --------------------- | ---------------------------- |
| `chatConversation` | `integer` \| `string` | ChatConversation ID or hash. |

**Behavior**

The response is `null` when the current user has no settings for the conversation.

**Example Request**

{% tabs %}
{% tab title="PHP" %}

```php
$client = new GuzzleHttp\Client(['base_uri' => 'https://{tenant}.intratool.de']);
$response = $client->request('GET', '/api/chat/conversations/1/user-settings', [
    'headers' => ['Authorization' => "Bearer {accessToken}"]
]);
```

{% endtab %}
{% endtabs %}

**Example Response**

```json
{
  "id": 1,
  "user_id": 3,
  "chat_conversation_id": 1,
  "settings": {
    "muted_at": null,
    "mute_interval": null,
    "archived_at": "2026-08-06 09:40:00"
  },
  "created_at": "2026-08-06 09:40:00",
  "updated_at": "2026-08-06 09:40:00"
}
```

## Create or update

Create or update the current user's settings for a [ChatConversation](/api-reference/chat/chat-conversations.md).

**Definition**

<mark style="color:yellow;">`POST`</mark> `/api/chat/conversations/{chatConversation}/user-settings`

**Route Parameters**

| Parameter          | Type                  | Description                  |
| ------------------ | --------------------- | ---------------------------- |
| `chatConversation` | `integer` \| `string` | ChatConversation ID or hash. |

**Request Keys**

| Key                      | Type                 | Default | Description                                     |
| ------------------------ | -------------------- | ------- | ----------------------------------------------- |
| `settings`\*             | `object`             | -       | User-specific conversation settings.            |
| `settings.muted_at`      | `datetime` \| `null` | `null`  | Date from which the conversation is muted.      |
| `settings.mute_interval` | `string` \| `null`   | `null`  | ISO 8601 duration after which the mute expires. |
| `settings.archived_at`   | `datetime` \| `null` | `null`  | Date from which the conversation is archived.   |

Keys with `*` are required.

**Behavior**

Missing nested settings are stored as `null`.

**Example Request**

{% tabs %}
{% tab title="PHP" %}

```php
$client = new GuzzleHttp\Client(['base_uri' => 'https://{tenant}.intratool.de']);
$response = $client->request('POST', '/api/chat/conversations/1/user-settings', [
    'headers' => ['Authorization' => "Bearer {accessToken}"],
    'json' => [
        'settings' => [
            'muted_at' => '2026-08-06 09:40:00',
            'mute_interval' => 'PT8H',
            'archived_at' => null
        ]
    ]
]);
```

{% endtab %}
{% endtabs %}

**Example Response**

```json
{
  "status": "success",
  "data": {
    "id": 1,
    "user_id": 3,
    "chat_conversation_id": 1,
    "settings": {
      "muted_at": "2026-08-06 09:40:00",
      "mute_interval": "PT8H",
      "archived_at": null
    },
    "created_at": "2026-08-06 09:40:00",
    "updated_at": "2026-08-06 09:45:00"
  }
}
```

## Delete

Delete the current user's settings for a [ChatConversation](/api-reference/chat/chat-conversations.md).

**Definition**

<mark style="color:red;">`DELETE`</mark> `/api/chat/conversations/{chatConversation}/user-settings`

**Route Parameters**

| Parameter          | Type                  | Description                  |
| ------------------ | --------------------- | ---------------------------- |
| `chatConversation` | `integer` \| `string` | ChatConversation ID or hash. |

**Behavior**

Deleting settings is idempotent. The endpoint returns a successful response with `data` set to `null` when no settings exist.

**Example Request**

{% tabs %}
{% tab title="PHP" %}

```php
$client = new GuzzleHttp\Client(['base_uri' => 'https://{tenant}.intratool.de']);
$response = $client->request('DELETE', '/api/chat/conversations/1/user-settings', [
    'headers' => ['Authorization' => "Bearer {accessToken}"]
]);
```

{% endtab %}
{% endtabs %}

**Example Response**

```json
{
  "status": "success",
  "data": null
}
```
