外呼任务
零、注意事项:
0.1 格式说明
所有API,若未特殊注明,Content-Type
全部使用 application/json
。
0.2 出参约定格式
如无特殊说明,出参固定为以下格式:
参数 | 类型 | 说明 |
---|---|---|
code | int | 状态码,0 - 成功, 其余为失败 |
message | string | 提示信息 |
data | mixed | 数据 |
data 具体格式见每个接口具体说明
0.3 域名
如果无特殊说明,以下 API 中,所有域名均为: https://autocall.icsoc.net
一、外呼-任务创建/更新
建议您直接在后台管理系统中创建及更新外呼任务,以便获得更好的操作体验。
1.1 路由
POST/PUT /api/v3/projects/updateOrCreate
1.2 入参
参数 | 类型 | 说明 | 必填 | 默认值 |
---|---|---|---|---|
id | int | 项目id,当更新时必填 | 否 | |
dept_id | int | 部门ID | 否 | 0 |
type | int | 项目类型1-预测式外呼,3-自动外呼,4-机器人外呼 | 是 | |
name | string | 项目名称 | 是 | |
status | int | 状态:0-关闭,1-开启,2-暂停 | 否 | 0 |
priority | int | 任务的权重,数字越大,呼叫时的比例就越大,0~255 | 否 | 100 |
concurrent | int | 并发线路 | 是 | |
callers | array | 任务的主叫号码 | 否 | |
max_conn_secs | int | 最长通话时长 | 否 | 300 |
timeout_secs | int | 外呼超时时间,从超过此时间未接通则挂断 | 否 | 30 |
max_queue_secs | int | 数据时效性,数据从收到后需要在此时长内发起呼叫,如果超过此时间,则不呼叫,0为不限 | 否 | 0 |
enable_asr | bool | 是否开通ASR识别 | 否 | false |
config | config | 配置 | 是 | |
recall_strategies | recallStrategies | 重呼策略 | 否 | |
assigned_users | assignedUsers[] | 分配的坐席详情(type为1时必填,type=4 并且 config.enable_scheduler=true 时必填) | 否 | |
worktime | worktime | 外呼时间段详情 参照 1.2.3 | 是 | |
filter_rules | filterRules | 数据过滤规则 | 否 | |
context | string | 预测式外呼(即,type=1) 传入固定值:mc_transque; 自动外呼(即,type=3) 传入固定值:mc_transivr; 机器人外呼(即,type=4) 传入固定值:mc_transai | 是 | |
trans_to | int | string | 当 mc_transque 时,为技能组ID;当mc_transivr时,为ivr code;当mc_transai时,为机器人的话术id | 是 |
1.2.1 recallStrategies
key 值定义:1-用户忙、2-无法接通、3-关机、4-停机、5-空号、11-呼叫限制
参数 | 类型 | 说明 | 必填 | 默认值 |
---|---|---|---|---|
default | object | 默认重呼策略(enable_asr=false) | 否 | |
recall | int | 默认策略状态 0-关闭 1-开启 | 否 | |
recall_max_times | int | 默认策略重呼次数 | 否 | |
recall_interval | array | 默认策略重呼间隔分钟数 | 否 | |
recall_strategies.asr | object | asr 重呼策略(enable_asr=true) key 值定义:1-用户忙、2-无法接通、3-关机、4-停机、5-空号、11-呼叫限制 | 否 |
{
"default": {
"recall": 1,
"recall_interval_type": 0,
"recall_max_times": 1,
"recall_interval": [
12
]
},
"asr": {
"1": {
"recall": 1,
"recall_interval_type": 0,
"recall_max_times": 1,
"recall_interval": [
1
]
},
"2": {
"recall": 1,
"recall_interval_type": 1,
"recall_max_times": 2,
"recall_interval": [
1,
2
]
},
"3": {
"recall": 0,
"recall_interval_type": 0,
"recall_max_times": 0,
"recall_interval": []
},
"4": {
"recall": 0,
"recall_interval_type": 0,
"recall_max_times": 0,
"recall_interval": []
},
"5": {
"recall": 0,
"recall_interval_type": 0,
"recall_max_times": 0,
"recall_interval": []
},
"11": {
"recall": 0,
"recall_interval_type": 0,
"recall_max_times": 0,
"recall_interval": []
}
}
}
1.2.2 assignedUsers
参数 | 类型 | 说明 | 必填 | 默认值 |
---|---|---|---|---|
user_id | int | 分配的坐席Id (坐席工号和坐席Id 二选一,注意:当type=4并且config.enable_scheduler=true 时,当前坐席信息必须归属于 config.que_id 的技能组下) | 是 | |
user_num | string | 分配的坐席工号 (坐席工号和坐席Id 二选一) | 是 | |
conn_limit | int | 坐席接通上限 | 否 | 0 |
[
{
"user_id": 100000,
"conn_limit": 200
},
{
"user_num": "1001",
"conn_limit": 0
}
]
1.2.3 worktime
参数 | 类型 | 说明 | 必填 | 默认值 |
---|---|---|---|---|
working | object | 具体的工作时间(0 ~ 6 代表 周日至周六) | 否 | |
name | string | 工作时间别名 | 否 |
{
"working": {
"1": [
[
"09:00:00",
"10:00:00"
],
[
"12:00:00",
"16:00:00"
]
],
"2": [
[
"09:00:00",
"10:00:00"
],
[
"12:00:00",
"16:00:00"
]
],
"3": [
[
"09:00:00",
"10:00:00"
],
[
"12:00:00",
"16:00:00"
]
],
"4": [
[
"09:00:00",
"10:00:00"
],
[
"12:00:00",
"16:00:00"
]
],
"5": [
[
"09:00:00",
"10:00:00"
],
[
"12:00:00",
"16:00:00"
]
],
"6": [
[
"09:00:00",
"10:00:00"
],
[
"12:00:00",
"16:00:00"
]
],
"0": [
[
"09:00:00",
"10:00:00"
],
[
"12:00:00",
"16:00:00"
]
]
}
}
1.2.4 config
参数 | 类型 | 说明 | 必填 | 默认值 |
---|---|---|---|---|
webhook | webhook | webhook 设置 | 是 | |
makecall_flag | int | 是否开启全程录音:0-否;8-全程录音 | 是 | |
call_ratio_type | int | 预测式外呼呼叫系数(type=1时必填):0-自动调整; 1-手动指定 | 否 | |
manual_call_ratio | float | 预测式外呼手动指定方式下的外呼呼叫系数(call_ratio_type=1时必填) | 否 | |
max_call_ratio | float | 最大的呼叫系数(type为1或4时必填) | 否 | |
init_call_ratio | float | 初始呼叫系数 | 否 | 1 |
tts | tts | 机器人外呼场景下的 tts 配置(type=4时必填) | 否 | |
nlp_silence_time | int | 机器人外呼场景下语音断句检测时长(type=4时必填) | 否 | |
enable_scheduler | bool | 机器人外呼场景下智能调度开关(type=4时必填) | 是 | |
agent_wait_time | int | 机器人外呼场景下智能调度坐席等待时长,单位秒(type=4时必填) 说明:座席等待时长为配置让座席等待配置的时长后再进线,例如配置为30s,则座席空闲30秒后再将来电分配给他,这个30s为至少的时长,有可能实际等待时长会超过此时长 | 是 | |
que_id | int | 机器人外呼场景下智能调度转人工技能组ID(type=4时必填) | 是 |
{
"makecall_flag": 8,
"call_ratio_type": 0,
"manual_call_ratio": 10,
"max_call_ratio": 8,
"enable_scheduler": true,
"agent_wait_time": 0,
"que_id": 10123,
"tts": {
"provider": "ali",
"name": "xiaoyun",
"voice": "xiaoyun",
"pitch": 0,
"speed": 0,
"volume": 50,
"options": {}
},
"nlp_silence_time": 500,
"webhook": {
"enable": true,
"ids": [23, 24]
}
}
1.2.4.1 webhook 格式
参数 | 类型 | 说明 | 必填 | 默认值 |
---|---|---|---|---|
enable | bool | webhook 是否开启 | 是 | |
ids | int[] | 配置的 webhook 主键ID | 是 |
1.2.4.2 tts 格式
参数 | 类型 | 说明 | 必填 | 默认值 |
---|---|---|---|---|
provider | string | ali-阿里;tx-腾讯 | 是 | |
name | string | 腾讯音色;阿里音色 | 是 | |
voice | string | 音色,同 name 值 | 是 | |
speed | int | 语速,见各文档 | 是 | |
pitch | int | 语调,见各文档 | 是 | |
volume | int | 音量,见各文档 | 是 |
{
"provider": "ali",
"name": "xiaoyun",
"voice": "xiaoyun",
"pitch": 0,
"speed": 0,
"volume": 50
}
1.2.5 filterRules
参数 | 类型 | 说明 | 必填 | 默认值 |
---|---|---|---|---|
history | bool | 导入任务历史数据过滤 | 否 | |
blacklist | bool | 导入任务黑名单数据过滤 | 否 | |
call_blacklist | bool | 呼叫时黑名单数据过滤 | 否 | |
crm_protected_client | bool | 呼叫时crm受保护客户数据过滤 | 否 |
{
"history": false,
"blacklist": false,
"call_blacklist": false,
"crm_protected_client": false
}
1.3 出参
参数 | 类型 | 说明 |
---|---|---|
id | int | 项目id |
mame | string | 项目名称 |
type | int | 任务类型:1-预测式外呼,3-自动外呼,4-机器人外呼 |
type_string | string | 任务类型名称 |
status | int | 状态:1-开启,2-暂停 |
created_at | string | 创建时间 |
updated_at | string | 更新时间 |
1.4 举例
1.4.1 入参
{
"name": "yansongda",
"type": 1,
"concurrent": 10,
"status": 1,
"priority": 10,
"callers": [
"02136093491",
"02136093495"
],
"timeout_secs": 110,
"max_conn_secs": 200,
"max_queue_secs": 10,
"enable_asr": 1,
"config": {
"call_ratio_type": 0,
"max_call_ratio": 8,
"manual_call_ratio": null,
"makecall_flag": 8
},
"recall_strategies": {
"asr": {
"1": {
"recall": 1,
"recall_interval_type": 0,
"recall_interval": 2,
"recall_max_times": [
0
]
},
"2": {
"recall": 1,
"recall_interval_type": 0,
"recall_interval": 1,
"recall_max_times": [
0
]
},
"3": {
"recall": 1,
"recall_interval_type": 0,
"recall_interval": 2,
"recall_max_times": [
0
]
},
"4": {
"recall": 1,
"recall_interval_type": 0,
"recall_interval": 1,
"recall_max_times": [
0
]
},
"5": {
"recall": 1,
"recall_interval_type": 0,
"recall_interval": 1,
"recall_max_times": [
0
]
},
"11": {
"recall": 1,
"recall_interval_type": 0,
"recall_interval": 1,
"recall_max_times": [
0
]
}
}
},
"worktime": {
"working": {
"1": [
[
"17:01:00",
"17:02:00"
],
[
"18:01:00",
"18:03:00"
]
]
}
},
"assigned_users": [
{
"user_id": 11,
"conn_limit": 13
},
{
"user_id": 12,
"conn_limit": 14
}
]
}
1.4.2 出参
{
"code": 0,
"message": "success",
"request_id": "3xNIhChsN9IA4DAtL1tjkj2twswhyatu",
"data": {
"id": 10000
}
}
二、外呼-任务删除
2.1 路由
DELETE/POST /api/v3/projects/delete
2.2 入参
参数 | 类型 | 说明 | 必填 |
---|---|---|---|
ids | int[] | 项目id | 是 |
is_force | bool | 是否强制删除 0-否 1-是 默认0 | 否 |
2.3 出参
2.4 举例
{
"code": 0,
"message": "success",
"request_id": "3xNIhChsN9IA4DAtL1tjkj2twswhyatu"
}
三、外呼-任务列表
3.1 路由
GET/POST /api/v3/projects/lists
3.2 入参
参数 | 类型 | 说明 | 必填 |
---|---|---|---|
type | int | 项目类型1-预测式外呼,3-自动外呼,4-机器人外呼 | 是 |
current_page | int | 当前页 | 否 |
per_page | int | 每页数据量 | 否 |
status | int | 状态:0-关闭,1-开启 | 否 |
name | string | 项目名称,模糊搜索 | 否 |
3.3 出参
参数 | 类型 | 说明 |
---|---|---|
current_page | int | 当前页码 |
total_page | int | 总页数 |
per_page | int | 每页条数 |
total | int | 总条数 |
empty | boll | 是否空 |
results | Project[] | 项目列表 |
3.3.1 Project 定义
参数 | 类型 | 说明 |
---|---|---|
id | int | 项目id |
name | string | 项目名称 |
type | int | 任务类型:1-预测式外呼,3-自动外呼,4-机器人外呼 |
type_string | string | 任务类型名称 |
dept_name | string | 部门名称 |
status | int | 状态:1-开启,2-暂停 |
status_string | string | 任务呼叫状态 |
waiting_count | int | 待呼叫条数 |
recall_waiting_count | int | 待重呼数 |
recall_pending_count | int | 未到重呼时间的重呼数 |
calling_count | int | 呼叫中数 |
created_at | string | 创建时间 |
updated_at | string | 更新时间 |
updated_user_name | string | 更新人 |
3.4 举例
3.4.1 入参
{
"current_page": 1,
"per_page": 10,
"name": "项目1",
"status": 1
}
3.4.2 出参
{
"code": 0,
"message": "操作成功",
"request_id": "6dc089b0179c4f57761ba2060ffd1871",
"data": {
"current_page": 1,
"totalPage": 1,
"per_page": 20,
"total": 10,
"empty": false,
"results": [
{
"id": 10015,
"name": "test",
"type": 1,
"concurrent": 22,
"status": 1,
"priority": 22,
"context": "mc_transque",
"exten": "ivr_in",
"trans_to": "266",
"callers": [
"01212345671",
"01212345674"
],
"timeout_secs": 30,
"max_conn_secs": 600,
"enable_asr": false,
"config": {
"call_ratio_type": 0,
"max_call_ratio": 8,
"manual_call_ratio": null,
"makecall_flag": 8
},
"recall_strategies": {
"asr": {
"1": {
"recall": 1,
"recall_interval_type": 0,
"recall_interval": 2,
"recall_max_times": [
0
]
},
"2": {
"recall": 1,
"recall_interval_type": 0,
"recall_interval": 1,
"recall_max_times": [
0
]
},
"3": {
"recall": 1,
"recall_interval_type": 0,
"recall_interval": 2,
"recall_max_times": [
0
]
},
"4": {
"recall": 1,
"recall_interval_type": 0,
"recall_interval": 1,
"recall_max_times": [
0
]
},
"5": {
"recall": 1,
"recall_interval_type": 0,
"recall_interval": 1,
"recall_max_times": [
0
]
},
"11": {
"recall": 1,
"recall_interval_type": 0,
"recall_interval": 1,
"recall_max_times": [
0
]
}
}
},
"worktime": {
"working": {
"1": [
[
"17:01:00",
"17:02:00"
],
[
"18:01:00",
"18:03:00"
]
]
}
},
"created_at": "2021-03-22 07:30:02",
"created_user_name": "1 | 开发环境",
"updated_at": "2021-03-22 16:27:14",
"updated_user_name": "yansongda | yansongda",
"un_called": 0,
"total_called": 0,
"status_string": "启用",
"type_string": "预测式外呼",
"call_ratio_type_string": "自动调整",
"call_type_string": "正常"
}
]
}
}
四、外呼-任务详情
GET/POST /api/v3/projects/detail
4.1 入参
参数 | 类型 | 说明 | 必填 |
---|---|---|---|
id | int | 项目id | 是 |
4.2 出参
参数 | 类型 | 说明 |
---|---|---|
id | int | 项目id,当更新时必填 |
name | string | 项目名称 |
type | int | 任务类型:1-预测式外呼,3-自动外呼,4-机器人外呼 |
type_string | string | 任务类型 |
status | int | 状态:1-开启,2-暂停 |
status_string | string | 状态 |
priority | int | 任务的权重,数字越大,呼叫时的比例就越大,0~255 |
concurrent | int | 并发线路 |
callers | array | 任务的主叫号码 |
max_conn_secs | int | 最长通话时长 |
timeout_secs | int | 外呼超时时间,从超过此时间未接通则挂断 |
enable_asr | bool | 是否开通ASR识别 |
recall_strategies | object | 重呼策略 参照 任务新建 1.2 |
worktime | object | 外呼时间段详情 参照 任务新建 1.2 |
config | object | 呼叫配置信息 参照 任务新建 1.2 |
assigned_users | array | 坐席用户列表 参照 任务新建 1.2 |
4.3 举例
4.3.1 出参
{
"code": 0,
"message": "操作成功",
"request_id": "6dc089b0179c4f57761ba2060ffd1871",
"data": {
"id": 10015,
"name": "test",
"type": 1,
"concurrent": 22,
"status": 1,
"priority": 22,
"context": "mc_transque",
"exten": "ivr_in",
"trans_to": "266",
"callers": [
"01212345671",
"01212345674"
],
"timeout_secs": 30,
"max_conn_secs": 600,
"enable_asr": false,
"config": {
"call_ratio_type": 0,
"max_call_ratio": 8,
"manual_call_ratio": null,
"makecall_flag": 0
},
"recall_strategies": {
"asr": {
"1": {
"recall": 1,
"recall_interval": [
1
],
"recall_interval_type": 0,
"recall_max_times": 1
},
"2": {
"recall": 1,
"recall_interval": [
2
],
"recall_interval_type": 0,
"recall_max_times": 1
},
"3": {
"recall": 1,
"recall_interval": [
1
],
"recall_max_times": 2
},
"4": {
"recall": 1,
"recall_interval": [
3
],
"recall_interval_type": 0,
"recall_max_times": 1
},
"5": {
"recall": 1,
"recall_interval": [
1
],
"recall_interval_type": 0,
"recall_max_times": 2
},
"11": {
"recall": 1,
"recall_interval": [
1
],
"recall_interval_type": 0,
"recall_max_times": 1
}
}
},
"worktime": {
"working": {
"1": [
[
"17:01:00",
"17:02:00"
],
[
"18:01:00",
"18:03:00"
]
]
}
},
"created_at": "2021-03-22 07:30:02",
"created_user_name": "1 | 开发环境",
"updated_at": "2021-03-22 16:27:14",
"updated_user_name": "yansongda | yansongda",
"un_called": 0,
"total_called": 0,
"status_string": "启用",
"type_string": "预测式外呼",
"call_ratio_type_string": "自动调整",
"call_type_string": "正常"
}
}
五、外呼-启动/禁用任务
POST /api/v3/projects/status/update
5.1 入参
参数 | 类型 | 说明 | 必填 |
---|---|---|---|
id | int | 项目id | 是 |
status | int | 状态:1-开启,2-暂停 | 是 |
5.2 出参
无
六、外呼-所有任务
6.1 路由
GET /api/v3/projects/all
6.2 入参
参数 | 类型 | 说明 | 必填 |
---|---|---|---|
type | int | 项目类型1-预测式外呼,3-自动外呼,4-机器人外呼 | 是 |
6.3 出参
参数 | 类型 | 说明 |
---|---|---|
code | int | 状态码,0 - 成功, 其余为失败 |
message | int | 提示信息 |
data | array | 项目数据,见 detail 接口 |
6.4 举例
6.4.1 出参
{
"code": 0,
"message": "success",
"request_id": "MTBlk4aU4TfnBpdERgKjlOipN2jQKq9R",
"data": [
{
"id": 2,
"name": "test",
"type": 1,
"concurrent": 10,
"status": 1,
"priority": 10,
"context": "mc_transag",
"exten": "ivr_in",
"trans_to": 1,
"transId": 0,
"callers": [
"01212345670"
],
"timeout_secs": 110,
"max_conn_secs": 200,
"maxQueueSecs": 10,
"enable_asr": false,
"ttsOptions": null,
"call_ratio_type": 1,
"manual_call_ratio": 1,
"max_call_ratio": 8,
"created_at": "2021-02-25 09:32:06",
"created_user_name": "yansongda | yansongda",
"updated_at": "2021-03-01 02:53:45",
"updated_user_name": "5470 | yansongda",
"status_string": "启用",
"type_string": "预测试外呼",
"call_ratio_type_string": "手动调整",
"un_called": 2,
"totalCall": 1
}
]
}