# Gọi tự động sử dụng callBot

## Gọi tự động tới một số điện thoại khách hàng

<mark style="color:green;">`POST`</mark> `[URL]/api/call_bot/execute_by_phone`

Tạo một phiên callBot với tham số đầu vào là một kịch bản callbot và 1 danh sách các thông tin liên hệ

#### Query Parameters

| Name                                  | Type   | Description                                                                                               |
| ------------------------------------- | ------ | --------------------------------------------------------------------------------------------------------- |
| cid<mark style="color:red;">\*</mark> | String | <p>Số hotline hay số SIP sẽ thực hiện chạy phiên.</p><p></p><p>Nếu gọi nội mạng, truyền giá trị rỗng.</p> |

#### Headers

| Name                                        | Type   | Description               |
| ------------------------------------------- | ------ | ------------------------- |
| Content-type                                | string | application/json          |
| Authorization                               | string | Access Token Bearer token |
| x-api-key<mark style="color:red;">\*</mark> | String | API key được cung cấp     |

#### Request Body

<table><thead><tr><th>Name</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>speed</td><td>number</td><td><p>Tốc độ đọc.Từ chậm : -3. Đến nhanh : 3. </p><p>Mặc định là 0</p></td></tr><tr><td>voice</td><td>string</td><td><p>Giọng đọc, có thể một trong các giá trị sau<br>+ "northern_female_ngocanh" : Ngọc Anh</p><p>+ "southern_female_honganh" : Hồng Anh</p><p>+ "southern_male_tienhuy" : Tiến HuyQ</p></td></tr><tr><td>cid</td><td>string</td><td>Đầu số dùng để gọi tự động. <br><em>Nếu không truyền, mặc định ưu tiên gọi nội mạng</em></td></tr><tr><td>name</td><td>string</td><td>Tên của phiên gọi tự động</td></tr><tr><td>num_retry</td><td>Integer</td><td>Số lần gọi lại khi không nghe máy. Mặc định là 0</td></tr><tr><td>num_per_call</td><td>Integer</td><td>Số cuộc gọi mỗi lần. Mặc định là 15 </td></tr><tr><td>distance_per_call</td><td>Integer</td><td>Khoảng cách thời gian , giữa các lần gọi. Mặc định là 30s</td></tr><tr><td>distance_retry</td><td>Integer</td><td>Khoảng cách giữa các lần gọi lại . Mặc định là 0</td></tr><tr><td>bot_script_id</td><td>String</td><td>Id kịch bản, được lấy ở danh sách trong hệ thống</td></tr><tr><td>send_time</td><td>Number</td><td><p>Thời gian thực hiện phiên (milisecond)</p><p></p><p>Nếu không truyền giá trị, sẽ thực hiện gọi ngay</p></td></tr><tr><td>contact_info<mark style="color:red;">*</mark></td><td>Array</td><td><p>Danh sách contact cần gọi</p><p>Giá trị:</p><pre><code>{
            "phone":"0395187***",
            "email":"",
            "ext_contact_code":"",
            "mapping_variables":{
                "gender1":"Anh",
                "full_name":"Trần Văn Tiến",
                "address":"Phan Huy Ích",
                "mail":"tientv@***.com",
                "birthday":"11/10/19***"
            }
        }
</code></pre><ul><li>phone : Số điện thoại KH</li><li>email: Email khách hàng nếu có</li><li>ext_contact_code : Mã KH bên thứ 03</li><li>mapping_variables : Hỗ trợ cho phép truyền biến động từ đối tác. Danh sách và chi tiết biến động cần truyền trong (API lấy danh sách KB Callbot)</li></ul></td></tr><tr><td>ext_session_id</td><td>String</td><td><p>Mã định danh phiên bên ngoài CRM (tránh trường hợp lên trùng phiên do double summit)</p><p>Nếu có giá trị field này, mới kiểm tra trùng</p></td></tr><tr><td>auto_pause</td><td>Boolean (true, false)</td><td>Cho phép phiên tự động dừng khi không có nhân viên hiệu lực không. Cấu hình này chỉ áp dụng cho kịch bản gọi vào nhóm nội bộ</td></tr></tbody></table>

{% tabs %}
{% tab title="200 Thông tin phiên gọi tự động" %}

```
{
    "instance_id": "stg",
    "payload": {
        "bot_script_id": "653b155db0f794**********",
        "autocall_id": "6552de1891be25**********"
    },
    "instance_version": "1.2.164",
    "key_enabled": false,
    "status_code": 9999
}
```

{% endtab %}
{% endtabs %}

Hướng dẫn liên kết biến động trong CallBot AI

## Tạo phiên gọi tự động v2

<mark style="color:green;">`POST`</mark> `[URL]/api/v2/call-bot/request`

Tạo một phiên gọi tự động bằng callBot với danh sách khách hàng, kịch bản gọi và cấu hình callback kết quả (không bắt buộc).

#### Headers

| Name         | Type   | Required | Description        |
| ------------ | ------ | -------- | ------------------ |
| x-api-key    | String | Yes      | API key            |
| Content-Type | String | Yes      | `application/json` |

#### Request Body

| Field                         | Type   | Required | Description                                                                          |
| ----------------------------- | ------ | -------- | ------------------------------------------------------------------------------------ |
| contacts                      | Array  | Yes      | Danh sách khách hàng cần gọi                                                         |
| contacts\[].phoneNumber       | String | Yes      | Số điện thoại khách hàng                                                             |
| contacts\[].extendVariableMap | Object | No       | Biến động để map vào kịch bản callBot                                                |
| sipNumbers                    | Array  | Yes      | Danh sách số SIP/đầu số thực hiện gọi                                                |
| scriptId                      | String | Yes      | ID kịch bản callBot                                                                  |
| sessionName                   | String | No       | Tên phiên gọi                                                                        |
| voice                         | String | No       | Giọng đọc, ví dụ: `northern_female_ngocanh`                                          |
| timeSlots                     | Array  | No       | Danh sách khung giờ gọi. Mỗi phần tử có dạng `{\"from\":\"HH:mm\",\"to\":\"HH:mm\"}` |
| numberRetryCall               | Number | No       | Số lần gọi lại khi chưa kết nối thành công                                           |
| retryCallAfterSeconds         | Number | No       | Số giây chờ trước khi gọi lại                                                        |
| callbackResultConfig          | Object | No       | Cấu hình callback nhận kết quả                                                       |
| callbackResultConfig.url      | String | No       | URL webhook nhận callback kết quả gọi                                                |

#### Example cURL

```bash
curl --location '[URL]/api/v2/call-bot/request' \
--header 'x-api-key: <your_api_key>' \
--header 'Content-Type: application/json' \
--data '{
    "contacts" : [
        {
            "phoneNumber" : "0123456789",
            "extendVariableMap" : {
                "var1" : "test"
            }
        }
    ],
    "sipNumbers" : ["0238923xxx"],
    "scriptId" : "6915460746197d6920ca1xxx",
    "sessionName" : "Test session",
    "voice" : "northern_female_ngocanh",
    "timeSlots" : [],
    "numberRetryCall" : 1,
    "retryCallAfterSeconds" : 120,
    "callbackResultConfig" : {
        "url" : "hook_url"
    }
}'
```

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

```json
{
    "instance_id": "stg",
    "payload": true,
    "instance_version": "1.2.164",
    "key_enabled": false,
    "status_code": 9999
}
```

{% endtab %}
{% endtabs %}

## Lấy danh sách kịch bản bot

<mark style="color:blue;">`GET`</mark> `[URL]/api/call_bot/script/list`

Lấy danh sách kịch bản callBot do khách hàng thiết lập

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

```json
{
	"instance_id": "stg",
	"payload": [
		{
			"id": "64915bc76a690c0edad14723",
			"name": "Thông báo điểm thi",
			"variables": [
				{
					"field_name": "tên thí sinh",
					"field_code": "tên thí sinh",
					"field_value": "",
					"field_type": "",
					"type": "",
					"is_dynamic_attribute": true
				},
				{
					"field_name": "Toán",
					"field_code": "uB131frQEU",
					"field_value": "",
					"field_type": "single_text",
					"type": "CONTACT",
					"is_dynamic_attribute": true
				}
			]
		},
		{
			"id": "64a922f61900954f5419d503",
			"name": "Cảnh báo từ khóa tiêu cực",
			"variables": [
				{
					"field_name": "",
					"field_code": "nhanvien",
					"field_value": "",
					"field_type": "",
					"type": "",
					"is_dynamic_attribute": true
				},
				{
					"field_name": "",
					"field_code": "tenkhachhang",
					"field_value": "",
					"field_type": "",
					"type": "",
					"is_dynamic_attribute": true
				},
				{
					"field_name": "",
					"field_code": "sodienthoai",
					"field_value": "",
					"field_type": "",
					"type": "",
					"is_dynamic_attribute": true
				},
				{
					"field_name": "",
					"field_code": "thoigiangoi",
					"field_value": "",
					"field_type": "",
					"type": "",
					"is_dynamic_attribute": true
				},
				{
					"field_name": "",
					"field_code": "diem",
					"field_value": "",
					"field_type": "",
					"type": "",
					"is_dynamic_attribute": true
				}
			]
		}
	],
	"instance_version": "1.2.164",
	"key_enabled": false,
	"status_code": 9999
}
```

{% endtab %}
{% endtabs %}
