# 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 %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://api.omicall.com/omicall-api/ticket.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
