# Ticket

## Lấy danh sách ticket

<mark style="color:green;">`POST`</mark> `/api/v2/ticket/search`

#### Query Parameters

<table><thead><tr><th width="144.3828125">Name</th><th width="163.37890625">Type</th><th>Description</th></tr></thead><tbody><tr><td>page<mark style="color:red;">*</mark></td><td>Integer</td><td>Chỉ số trang, bắt đầu bằng 1</td></tr><tr><td>size<mark style="color:red;">*</mark></td><td>Integer</td><td>Kích thước trang, mặc định là 50</td></tr></tbody></table>

#### Request Body

<table><thead><tr><th width="144.0859375">Name</th><th width="167.1171875">Type</th><th>Description</th></tr></thead><tbody><tr><td>keyword</td><td>String</td><td>Từ khóa tìm kiếm, Id ticket, nhân viên tiếp nhận hoặc nhân viên liên quan</td></tr><tr><td>ranges</td><td>Array</td><td><p>Bộ lọc tìm kiếm theo khoảng tham chiếu. Mẫu như sau:</p><p>[{ "field" : "last_updated_date", "from" : 1722445201000, "to" : 1724016602000 } ]</p></td></tr><tr><td>sort</td><td>Object</td><td>Giá trị sort. {"field" : "last_updated_date" , "isAsc" : true}</td></tr></tbody></table>

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
   "status_code":9999,
   "instance_id":"stg",
   "instance_version":"1.2.163",
   "payload":{
      "items":[
         {
            "_id":"61c04292530c6a0efa4fa171",
            "created_date":1639989906385,
            "last_updated_date":1640101239690,
            "create_by":{ // Người tạo
               
            },
            "last_updated_by":null,
            "priority":"medium", // Độ ưu tiên (low,medium,high)
            "name":"", // Tựa đề
            "description":"", // Mô tả
            "current_status":1,  // Trạng thái
            "is_expired":false, // hết hạn
            "unique_id":"2188", // Id ticket
         },
         .....
      ],
      "page_number":1,
      "page_size":15,
      "total_items":165,
      "total_pages":11,
      "has_next":true,
      "next_page":2,
      "has_previous":false,
      "previous_page":1,
      "extension":null
   },
   "key_enabled":false
}
            
```

{% endtab %}
{% endtabs %}

## Lấy thông tin ticket theo id

<mark style="color:green;">`GET`</mark> `/api/v2/ticket/getById?id=<ticket_id>`&#x20;

#### Query Parameters

<table><thead><tr><th width="144.3828125">Name</th><th width="163.37890625">Type</th><th>Description</th></tr></thead><tbody><tr><td>id<mark style="color:red;">*</mark></td><td>String</td><td>Id ticket</td></tr></tbody></table>

#### Response Body

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
   "status_code":9999,
   "instance_id":"stg",
   "instance_version":"1.2.163",
   "payload": {
      "_id":"61c04292530c6a0efa4fa171",
      "created_date":1639989906385,
      "last_updated_date":1640101239690,
      "create_by":{ // Người tạo
         
      },
      "last_updated_by":null,
      "priority":"medium", // Độ ưu tiên (low,medium,high)
      "name":"", // Tựa đề
      "description":"", // Mô tả
      "current_status":1,  // Trạng thái
      "is_expired":false, // hết hạn
      "unique_id":"2188", // Id ticket
   },
   "key_enabled":false
}
            
```

{% endtab %}
{% endtabs %}

## Tạo ticket

<mark style="color:green;">`POST`</mark> `/api/ticket/create`

#### Request Body

<table><thead><tr><th>Name</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>name<mark style="color:red;">*</mark></td><td>String</td><td>Tên ticket</td></tr><tr><td>description<mark style="color:red;">*</mark></td><td>String</td><td>Mô tả ticket</td></tr><tr><td>priority<mark style="color:red;">*</mark></td><td>String</td><td>Độ ưu tiên (mặc định là medium)</td></tr><tr><td>assignee<mark style="color:red;">*</mark></td><td>String</td><td>Email nhân viên được gán</td></tr><tr><td>created_by</td><td>String</td><td>Email nhân viên tạo ticket, nếu rỗng thì là Admin </td></tr><tr><td>ticket_category_id</td><td>String</td><td>Id chủ đề (API danh sách chủ đề)</td></tr><tr><td>type_uuid</td><td>String</td><td>UUID của phân loại, (Trong API danh sách chủ đề )</td></tr><tr><td>work_list</td><td>Object[]</td><td><p>Danh sách công việc cho nhân viên:</p><pre class="language-json" data-overflow="wrap"><code class="lang-json">[
    {
        "uuid": "57b91d30-294f-11f0-959d-636559b3604c", // random uuid
        "content": "task 1", // nội dung công việc
        "index": 0, // index
        "is_done": false, // trạng thái hoàn thành
        "assignee_id": "687a085be6382948e6154741" // _id của nhân viên tiếp nhận
    },
    ...
]
</code></pre></td></tr><tr><td>embed_files</td><td>Object[]</td><td><p>Danh sách file đính kèm:</p><pre class="language-json" data-overflow="wrap"><code class="lang-json">[
   { 
      "link": "https://www.alleycat.org/wp-content/uploads/2019/03/FELV-cat.jpg", // file url
      "name": "my_photo.jpg" // tên file
   },
   ...
]
</code></pre></td></tr><tr><td>notify_before_unit</td><td>String</td><td><p>Đơn vị của thời gian thông báo trước khi đến hạn. Chấp nhận các giá trị sau: </p><pre class="language-postman_json" data-overflow="wrap"><code class="lang-postman_json">second, minute, hour, day, week, month, year
</code></pre></td></tr><tr><td>notify_before</td><td>Number</td><td>Thời gian thông báo trước khi đến hạn</td></tr><tr><td>notify_type</td><td>String</td><td><p>Loại thông báo. Chấp nhận các giá trị sau:</p><pre class="language-postman_json" data-overflow="wrap"><code class="lang-postman_json">web, web_email, mobile, email, none
</code></pre></td></tr><tr><td>due_date</td><td>Number</td><td>Ngày hết hạn</td></tr><tr><td>created_by_email</td><td>String</td><td>Email của nhân viên tạo phiếu ghi (mặc định là chủ doanh nghiệp nếu không truyền)</td></tr></tbody></table>

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
    // Thông tin chi tiết 1 ticket
}
```

{% endtab %}
{% endtabs %}

## Cập nhật ticket

<mark style="color:green;">`POST`</mark> `/api/ticket/update/:ticket_id`&#x20;

#### **Path Parameters**

| Name                                         | Type   | Description  |
| -------------------------------------------- | ------ | ------------ |
| ticket\_id<mark style="color:red;">\*</mark> | String | Id phiếu ghi |

#### Request Body

<table><thead><tr><th>Name</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>name<mark style="color:red;">*</mark></td><td>String</td><td>Tên ticket</td></tr><tr><td>description<mark style="color:red;">*</mark></td><td>String</td><td>Mô tả ticket</td></tr><tr><td>assignee_contact_id<mark style="color:red;">*</mark></td><td>String</td><td>_id của nhân viên được gán</td></tr><tr><td>priority</td><td>String</td><td>Độ ưu tiên (low, high, medium)</td></tr><tr><td>work_list</td><td>Object[]</td><td><p>Danh sách công việc cho nhân viên:</p><pre class="language-json" data-overflow="wrap"><code class="lang-json">[
    {
        "uuid": "57b91d30-294f-11f0-959d-636559b3604c", // random uuid
        "content": "task 1", // nội dung công việc
        "index": 0, // index
        "is_done": false, // trạng thái hoàn thành
        "assignee_id": "687a085be6382948e6154741" // _id của nhân viên tiếp nhận
    },
    ...
]
</code></pre></td></tr><tr><td>embed_files</td><td>Object[]</td><td><p>Danh sách file đính kèm:</p><pre class="language-json" data-overflow="wrap"><code class="lang-json">[
   { 
      "link": "https://www.alleycat.org/wp-content/uploads/2019/03/FELV-cat.jpg", // file url
      "name": "my_photo.jpg" // tên file
   },
   ...
]
</code></pre></td></tr><tr><td>notify_before_unit</td><td>String</td><td><p>Đơn vị của thời gian thông báo trước khi đến hạn. Chấp nhận các giá trị sau: </p><pre class="language-postman_json" data-overflow="wrap"><code class="lang-postman_json">second, minute, hour, day, week, month, year
</code></pre></td></tr><tr><td>notify_before</td><td>Number</td><td>Thời gian thông báo trước khi đến hạn</td></tr><tr><td>notify_type</td><td>String</td><td><p>Loại thông báo. Chấp nhận các giá trị sau:</p><pre class="language-postman_json" data-overflow="wrap"><code class="lang-postman_json">web, web_email, mobile, email, none
</code></pre></td></tr><tr><td>due_date</td><td>Number</td><td>Ngày hết hạn</td></tr><tr><td>type_uuid</td><td>String</td><td>UUID của phân loại, (Trong API danh sách chủ đề )</td></tr><tr><td>updated_by_email</td><td>String</td><td>Email của nhân viên cập nhật phiếu ghi (mặc định là chủ doanh nghiệp nếu không truyền)</td></tr></tbody></table>

**Response**

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

```json
{
    // Thông tin chi tiết ticket vừa cập nhật
}
```

{% endtab %}
{% endtabs %}

## Xoá ticket

<mark style="color:green;">`DELETE`</mark> `/api/ticket/delete/:ticket_id`&#x20;

#### **Path Parameters**

| Name                                         | Type   | Description  |
| -------------------------------------------- | ------ | ------------ |
| ticket\_id<mark style="color:red;">\*</mark> | String | Id phiếu ghi |

**Response**

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

```json
{
    "instance_id": "stg",
    "payload": true, // true nếu xoá thành công
    "instance_version": "1.2.164",
    "key_enabled": false,
    "status_code": 9999
}
```

{% endtab %}
{% endtabs %}

## Cập nhật trạng thái ticket

<mark style="color:green;">`POST`</mark> `/api/ticket/update_status/:ticket_id`

#### Path Parameters

| Name                                         | Type   | Description |
| -------------------------------------------- | ------ | ----------- |
| ticket\_id<mark style="color:red;">\*</mark> | String | Id ticket   |

#### Request Body

| Name                                                    | Type   | Description                                                                             |
| ------------------------------------------------------- | ------ | --------------------------------------------------------------------------------------- |
| status<mark style="color:red;">\*</mark>                | Number | Index của trạng thái mới                                                                |
| assignee\_contact\_id<mark style="color:red;">\*</mark> | String | Id nhân viên tiếp nhận mới                                                              |
| note                                                    | String | Ghi chú chuyển trạng thái                                                               |
| updated\_by\_email                                      | String | Email của nhân viên cập nhật trạng thái (mặc định là chủ doanh nghiệp nếu không truyền) |

**Response**

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
    // Thông tin chi tiết ticket được update
}
```

{% endtab %}
{% endtabs %}

## Lấy danh sách chủ đề phiếu ghi

<mark style="color:blue;">`GET`</mark> `/api/ticket/category/get_all`

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
    "status_code": 9999,
    "instance_id": "stg",
    "instance_version": "1.2.163",
    "payload": [
        {
            "_id": "6209c98561c1cb163ded2600",
            "created_date": 1644808581632,
            "last_updated_date": 1644808581632,
            "create_by": {
                "user_name": "OMI Hotline",
                "user_id": "6209c98561c1cb163ded25fa",
                "contact_id": null
            },
            "last_update_by": {
                "user_name": "OMI Hotline",
                "user_id": "6209c98561c1cb163ded25fa",
                "contact_id": null
            },
            "is_deleted": false,
            "status_set_id": "6209c98561c1cb163ded25fd",
            "dynamic_attribute_id": "6209c98561c1cb163ded25fe",
            "default_status": 0,
            "tenant_id": "6209c98461c1cb163ded25f7",
            "name": "Công việc",
            "name_unsigned": "Cong viec",
            "is_not_default": true,
            "type_config": null,
            "has_type_config": false,
            "types": [
                {
                    "uuid": "0",
                    "name": "Cá nhân",
                    "name_unsigned": "Ca nhan",
                    "index": 0,
                    "color": null,
                    "is_default": false,
                    "default_data": null,
                    "unit_price": null
                },
                {
                    "uuid": "1",
                    "name": "Tư vấn",
                    "name_unsigned": "Tu van",
                    "index": 1,
                    "color": null,
                    "is_default": false,
                    "default_data": null,
                    "unit_price": null
                },
                {
                    "uuid": "2",
                    "name": "Báo giá",
                    "name_unsigned": "Bao gia",
                    "index": 2,
                    "color": null,
                    "is_default": false,
                    "default_data": null,
                    "unit_price": null
                },
                {
                    "uuid": "3",
                    "name": "Chăm sóc",
                    "name_unsigned": "Cham soc",
                    "index": 3,
                    "color": null,
                    "is_default": false,
                    "default_data": null,
                    "unit_price": null
                }
            ],
            "contact_ids": null,
            "contact_category_ids": null,
            "role_enable": false,
            "has_default_value": true,
            "priority": "medium",
            "modify_priority_allowed": true,
            "modify_assignee_allowed": true,
            "modify_reporter_allowed": true,
            "modify_expire_allowed": true,
            "reopen": null,
            "assignee_contact_id": null,
            "assignee_contact_ids": null,
            "reporter_contact_ids": null,
            "assignee": null,
            "reporters": null,
            "notify_before": 15,
            "notify_before_unit": "minute",
            "notify_type": "web_email",
            "notify_at": null,
            "limit_days": 30,
            "processing_term": 7,
            "duration": null,
            "maximum_time": {
                "unit": "day",
                "value": 30
            },
            "minimum_time": {
                "unit": "hour",
                "value": 6
            },
            "description": null,
            "work_list": [],
            "has_hide_option": false,
            "hide_option": {
                "hide_after": null,
                "hide_after_unit": "day",
                "apply_for_assignee": false,
                "apply_for_reporter": false,
                "apply_for_creator": false,
                "apply_for_other_agent": false
            },
            "payment": null,
            "ticketStatusSet": {
                "_id": "6209c98561c1cb163ded25fd",
                "created_date": 1644808581573,
                "last_updated_date": 1644808581573,
                "create_by": {
                    "user_name": "OMI Hotline",
                    "user_id": "6209c98561c1cb163ded25fa",
                    "contact_id": null
                },
                "last_update_by": null,
                "is_deleted": false,
                "name": "Công việc",
                "name_unsigned": null,
                "tenant_id": "6209c98461c1cb163ded25f7",
                "status": [
                    {
                        "uuid": null,
                        "index": 0,
                        "sort_index": 0,
                        "color": "#4ca750",
                        "name": "Mới tạo",
                        "finish": false
                    },
                    {
                        "uuid": null,
                        "index": 1,
                        "sort_index": 1,
                        "color": "#267aff",
                        "name": "Đang xử lý",
                        "finish": false
                    },
                    {
                        "uuid": null,
                        "index": 2,
                        "sort_index": 2,
                        "color": "#57bfdb",
                        "name": "Từ chối",
                        "finish": false
                    },
                    {
                        "uuid": null,
                        "index": 3,
                        "sort_index": 3,
                        "color": "#2d4563",
                        "name": "Đã hoàn thành",
                        "finish": false
                    },
                    {
                        "uuid": null,
                        "index": 4,
                        "sort_index": 4,
                        "color": "#fea220",
                        "name": "Đóng",
                        "finish": true
                    }
                ],
                "is_not_default": true
            },
            "total": 4
        }
    ],
    "key_enabled": false
}
```

{% endtab %}
{% endtabs %}

## Tương tác ticket

<mark style="color:green;">`POST`</mark> `/api/ticket/log/list?page=&size=`

Danh sách các thay đổi của ticket

**Headers**

| Name          | Value              |
| ------------- | ------------------ |
| Content-Type  | `application/json` |
| Authorization | `Bearer <token>`   |

**Body**

<table><thead><tr><th width="152.03125">Name</th><th width="127.8125">Type</th><th>Description</th></tr></thead><tbody><tr><td>ticket_id</td><td>string</td><td>Id của ticket</td></tr><tr><td>range_filter</td><td>object</td><td><p>Bộ lọc </p><p>"range_filter": {<br>"from_date": 1759856400000,<br>"to_date": 1759942799999<br>}</p></td></tr><tr><td>keyword</td><td>String</td><td>Từ khoá tìm kiếm</td></tr></tbody></table>

**Response**

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

```json
{
    "instance_id": "stg",
    "payload": {
        "items": [
            ... Nội dung tương tác ticket
        ],
        "page_number": 1,
        "page_size": 10,
        "total_items": 1000,
        "total_pages": 100,
        "has_next": true,
        "next_page": 2,
        "has_previous": false,
        "previous_page": 1,
        "extension": null
    },
    "instance_version": "1.2.164",
    "key_enabled": false,
    "status_code": 9999
}
```

{% endtab %}
{% endtabs %}

## Tạo ghi chú

<mark style="color:green;">`POST`</mark> `/api/ticket/log/create`

Tạo ghi chú cho ticket

**Headers**

| Name          | Value              |
| ------------- | ------------------ |
| Content-Type  | `application/json` |
| Authorization | `Bearer <token>`   |

**Body**

<table><thead><tr><th width="140.8046875">Name</th><th width="143.12890625">Type</th><th>Description</th></tr></thead><tbody><tr><td>ticket_id</td><td>string</td><td>Id của ticket</td></tr><tr><td>message</td><td>string</td><td>Nội dung tin nhắn</td></tr><tr><td>created_by_email</td><td>string</td><td>Email của nhân viên tạo ghi chú (mặc định là chủ doanh nghiệp nếu không truyền)</td></tr></tbody></table>

**Response**

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

```json
{
    "keyEnabled": false,
    "payload": {
        "_id": "68e82cd354672f6932d4821b",
        "tenant_id": "6209c98461c1cb163ded25f7",
        "created_by": {
            "id": "6209c98561c1cb163ded25fa",
            "name": "Trần Văn Tiến",
            "type": "USER",
            "email": "contact@omicrm.com",
            "ref_id": "6209c98c067f745da47367d1",
            "avatar_url": "6209c98461c1cb163ded25f7/contact_avatar/2023/04/9e950b35-4b26-4d05-976e-405efd01f460.jpg"
        },
        "created_date": 1760046291711,
        "last_updated_date": 1760046291711,
        "is_deleted": false,
        "source": "WEB",
        "ticket_id": "67a30d7dda070e198d38c3ba",
        "message": "<div>Kh&aacute;ch h&agrave;ng hẹn gọi lại sau</div>",
        "action": "reply",
        "embed_files": [],
        "is_proceed": false,
        "has_details": false
    },
    "vertxInstance": null,
    "statusCode": 9999,
    "status_code": 9999
}
```

{% endtab %}
{% endtabs %}

## Chỉnh sửa ghi chú

<mark style="color:green;">`POST`</mark> `/api/ticket/log/update`

Chỉnh sửa ghi chú cho ticket

**Headers**

| Name          | Value              |
| ------------- | ------------------ |
| Content-Type  | `application/json` |
| Authorization | `Bearer <token>`   |

**Body**

<table><thead><tr><th width="140.8046875">Name</th><th width="143.12890625">Type</th><th>Description</th></tr></thead><tbody><tr><td>log_id<mark style="color:red;">*</mark></td><td>string</td><td>_id của ghi chú có được thông qua API tạo ghi chú hoặc lấy danh sách tương tác phiếu ghi</td></tr><tr><td>message<mark style="color:red;">*</mark></td><td>string</td><td>Nội dung tin nhắn</td></tr><tr><td>updated_by_email</td><td>string</td><td>Email của nhân viên chỉnh sửa ghi chú (mặc định là chủ doanh nghiệp nếu không truyền)</td></tr></tbody></table>

**Response**

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

```json
{
    "keyEnabled": false,
    "payload": {
        "_id": "68e82cd354672f6932d4821b",
        "tenant_id": "6209c98461c1cb163ded25f7",
        "created_by": {
            "id": "6209c98561c1cb163ded25fa",
            "name": "Trần Văn Tiến",
            "type": "USER",
            "email": "contact@omicrm.com",
            "ref_id": "6209c98c067f745da47367d1",
            "avatar_url": "6209c98461c1cb163ded25f7/contact_avatar/2023/04/9e950b35-4b26-4d05-976e-405efd01f460.jpg"
        },
        "created_date": 1760046291711,
        "last_updated_date": 1760046291711,
        "is_deleted": false,
        "source": "WEB",
        "ticket_id": "67a30d7dda070e198d38c3ba",
        "message": "<div>Kh&aacute;ch h&agrave;ng hẹn gọi lại sau</div>",
        "action": "reply",
        "embed_files": [],
        "is_proceed": false,
        "has_details": false
    },
    "vertxInstance": null,
    "statusCode": 9999,
    "status_code": 9999
}
```

{% endtab %}
{% endtabs %}

## Xoá ghi chú

<mark style="color:green;">`DELETE`</mark> `/api/ticket/log/delete/:log_id`

Xoá ghi chú phiếu ghi

**Headers**

| Name          | Value              |
| ------------- | ------------------ |
| Content-Type  | `application/json` |
| Authorization | `Bearer <token>`   |

**Query Parameters**

| Name               | Value                                                                           |
| ------------------ | ------------------------------------------------------------------------------- |
| deleted\_by\_email | Email của nhân viên xoá ghi chú (mặc định là chủ doanh nghiệp nếu không truyền) |

**Response**

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

```json
{
    "instance_id": "stg",
    "payload": true, // true nếu xoá thành công
    "instance_version": "1.2.164",
    "key_enabled": false,
    "status_code": 9999
}
```

{% endtab %}
{% endtabs %}

## Báo cáo tổng quan ticket

<mark style="color:green;">`POST`</mark> `/api/ticket/statistics`

Báo cáo tổng quan về ticket

**Headers**

<table><thead><tr><th width="206.01171875">Name</th><th>Value</th></tr></thead><tbody><tr><td>Content-Type</td><td><code>application/json</code></td></tr><tr><td>Authorization</td><td><code>Bearer &#x3C;token></code></td></tr></tbody></table>

**Body**

<table><thead><tr><th width="209.4921875">Name</th><th width="136.5">Type</th><th>Description</th></tr></thead><tbody><tr><td>from_date</td><td>number</td><td>Từ ngày</td></tr><tr><td>to_date</td><td>number</td><td>Đến ngày</td></tr><tr><td>assignee_contact_ids</td><td>List</td><td>Id nhân viên</td></tr></tbody></table>

**Response**

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

```json
{
    "keyEnabled": false,
    "payload": {
        "general": {
            "total_reopen": 0.0,
            "total_ticket": 0,
            "total_expired": 0.0,
            "total_on_schedule": 0.0,
            "total_behind_schedule": 0.0,
            "total_end_state": 0.0,
            "total_change_status": 0.0,
            "total_close": 0.0,
            "total_active_state": 0.0
        },
        "group_by_date": [],
        "list_total_ticket": [],
        "list_active_state": [],
        "list_end_state": [],
        "list_on_schedule": [],
        "list_behind_schedule": [],
        "list_expired": [],
        "list_finish": []
    },
    "vertxInstance": null,
    "statusCode": 9999,
    "status_code": 9999
}
```

{% endtab %}
{% endtabs %}

## Bộ tiêu chí đánh giá ticket

<mark style="color:green;">`GET`</mark> `/api/ticket/evaluation_criteria/get_all`

Danh sách bộ tiêu chí đánh giá

**Headers**

| Name          | Value              |
| ------------- | ------------------ |
| Content-Type  | `application/json` |
| Authorization | `Bearer <token>`   |

**Response**

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

```json
{
    "instance_id": "stg",
    "payload": {
        "items": [
            {
                "created_date": 1759907691998,
                "last_updated_date": 1759907691998,
                "_id": "68e60f6b09111713ccb91d5b",
                "last_update_by": null,
                "is_deleted": false,
                "tenant_id": "6209c98461c1cb163ded25f7",
                "name": "Khả năng hỗ trợ",
                "name_unsigned": "kha nang ho tro",
                "scopes": [
                    "ticket"
                ],
                "contact_ids": [],
                "contact_category_ids": []
            },
            {
                "created_date": 1759907547436,
                "last_updated_date": 1759907547436,
                "_id": "68e60edbccb1722434276c1e",
                "last_update_by": null,
                "is_deleted": false,
                "tenant_id": "6209c98461c1cb163ded25f7",
                "name": "Chất lượng chăm sóc",
                "name_unsigned": "chat luong cham soc",
                "scopes": [
                    "ticket"
                ],
                "contact_ids": [],
                "contact_category_ids": []
            }
        ],
        "page_number": 1,
        "page_size": 10,
        "total_items": 2,
        "total_pages": 1,
        "has_next": false,
        "next_page": 1,
        "has_previous": false,
        "previous_page": 1,
        "extension": null
    },
    "instance_version": "1.2.164",
    "key_enabled": false,
    "status_code": 9999
}
```

{% endtab %}
{% endtabs %}

## Đánh giá phiếu ghi

<mark style="color:green;">`POST`</mark> `/api/ticket/evaluation/create`

Đánh giá phiếu ghi

**Headers**

| Name          | Value              |
| ------------- | ------------------ |
| Content-Type  | `application/json` |
| Authorization | `Bearer <token>`   |

**Body**

<table><thead><tr><th width="115.984375">Name</th><th width="166.4765625">Type</th><th>Description</th></tr></thead><tbody><tr><td>ticket_id</td><td>String</td><td>Id ticket</td></tr><tr><td>values</td><td>Array Object</td><td><p>Mảng tiêu chí đánh giá + thang điểm </p><p>"values": [<br>{<br>"criteria_id": "67170d615aeef678f673c715",<br>"name": "Chất lượng phiếu ghi",<br>"point": 4 // 1-5<br>}<br>]</p></td></tr><tr><td>comment</td><td>String</td><td>Ghi chú</td></tr><tr><td>created_by_email</td><td>String</td><td>Email của nhân viên tạo đánh giá (mặc định là chủ doanh nghiệp nếu không truyền)</td></tr></tbody></table>

**Response**

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

```json
{
    "keyEnabled": false,
    "payload": {
        "target": {
            "created_date": 1760046066582,
            "is_deleted": false,
            "_id": "68e82bf21aa88048c2c7e579",
            "tenant_id": "6209c98461c1cb163ded25f7",
            "ticket_id": "67a30d7dda070e198d38c3ba",
            "point": 2.5,
            "values": [
                {
                    "name": "Khả năng hỗ trợ",
                    "point": 4.0,
                    "criteria_id": "68e60f6b09111713ccb91d5b"
                },
                {
                    "name": "Chất lượng chăm sóc",
                    "point": 5.0,
                    "criteria_id": "68e60edbccb1722434276c1e"
                }
            ],
            "comment": "Good"
        },
        "_id": "68e82bf21aa88048c2c7e57d",
        "tenant_id": "6209c98461c1cb163ded25f7",
        "created_by": {
            "id": "6209c98561c1cb163ded25fa",
            "name": "Trần Văn Tiến",
            "type": "USER",
            "ref_id": "6209c98c067f745da47367d1"
        },
        "last_updated_by": {
            "id": "6209c98561c1cb163ded25fa",
            "name": "Trần Văn Tiến",
            "type": "USER",
            "ref_id": "6209c98c067f745da47367d1"
        },
        "created_date": 1760046066582,
        "last_updated_date": 1760046066582,
        "is_deleted": false,
        "source": "WEB",
        "ticket_id": "67a30d7dda070e198d38c3ba",
        "message": "Good",
        "action": "evaluation",
        "target_type": "evaluation",
        "target_value": "68e82bf21aa88048c2c7e579",
        "embed_files": [],
        "is_proceed": false,
        "has_details": false
    },
    "vertxInstance": null,
    "statusCode": 9999,
    "status_code": 9999
}
```

{% endtab %}
{% endtabs %}

## Chuyển đổi nhân viên phụ trách phiếu ghi

<mark style="color:green;">`POST`</mark> `[URL]/api/v3/agent/ticket/transfer`&#x20;

Chuyển toàn bộ phiếu ghi trong vòng 6 tháng gần nhất do nhân viên gốc phụ trách hoặc có liên quan đến nhân viên gốc sang cho nhân viên mới

#### Headers

| Name      | Type   | Description |
| --------- | ------ | ----------- |
| x-api-key | String | API Key     |

#### Request Body

<table><thead><tr><th>Name</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>sourceEmail<mark style="color:red;">*</mark></td><td>String</td><td>Email nhân viên gốc</td></tr><tr><td>targetEmail<mark style="color:red;">*</mark></td><td>String</td><td>Email nhân viên mới</td></tr><tr><td>previewChanges</td><td>Boolean</td><td><ul><li>true: Xem trước số lượng phiếu ghi sẽ bị thay đổi sau cập nhật (không khởi tạo tiến trình cập nhật) </li><li>false (mặc định): Khởi tạo tiến trình cập nhật</li></ul></td></tr><tr><td>callbackResultConfig</td><td>Object</td><td><p>Thông tin hook nhận kết quả sau khi hoàn tất tiến trình:</p><ul><li>url: url nhận hook</li><li>headers (optional): danh sách headers muốn gửi kèm khi nhận hook</li></ul><pre class="language-json"><code class="lang-json">{
    "url": "https://...",
    "headers": {
        "key1": "value1"
    }
}
</code></pre></td></tr></tbody></table>

{% tabs %}
{% tab title="202 Khởi tạo tiến trình thành công " %}

```json
{
    "instance_id": "stg",
    "payload": {
        "requestId": "270ea881-a6e1-44fb-9400-a89eb4ceab4b" // unique request id, trả về kèm theo webhook nếu có khai báo "callbackResultConfig"
    },
    "instance_version": "1.2.164",
    "key_enabled": false,
    "status_code": 9999
}
```

{% endtab %}

{% tab title="Webhook" %}

```json
{
  "requestId": "270ea881-a6e1-44fb-9400-a89eb4ceab4b", // unique request id
  "requestTimeMs": 1769163675593, // thời gian request
  "action": "TICKET_AGENT_TRANSFER", // loại tiến trình
  "status": "SUCCESS", // trạng thái SUCCESS/ERROR
  "responseTimeMs": 1769163675890, // thời gian kết thúc
  "payload": {
    "updatedRecords": 8 // Số lượng record được cập nhật
  }
}
```

{% endtab %}
{% endtabs %}
