智能外呼

优质
小牛编辑
132浏览
2023-12-01

1、接口声明

业务流程图:
图片

2、接口调用

2.1、校验账号

接口说明:

接口类型:主动调用接口

接口作用:校验登录账号是否与appid符合。

请求方式:

GET

请求地址:

https://icall.sobot.com/api/icall/5/task/check_login_name

请求参数:

参数类型必填名称备注
appid字符串智齿分配
signature字符串智齿分配
email字符串登录邮箱账号

返回参数:

参数类型必填名称备注
ret_code字符串执行结果码
ret_msg字符串返回信息
check_result整形校验结果:1 校验通过,0:校验不通过
reason字符串校验失败原因

请求示例:

https://icall.sobot.com/api/icall/5/task/check_login_name?appid=XXXX&signature=XXXX&email=XXXX@sobot.com

返回示例:

{
    "check_result": 1,
    "ret_msg": "校验成功",
    "ret_code": "000000"
}

2.2、查询模板

接口说明:

接口类型:主动调用接口

接口作用:查询智能外呼系统中可用的模板,用于接口创建任务。

请求方式:

GET

请求地址:

https://icall.sobot.com/api/icall/5/task/query_template

请求参数:

参数类型必填名称
appid字符串智齿分配
signature字符串智齿分配

返回参数:

参数类型必填名称备注
ret_code字符串执行结果码
ret_msg字符串返回信息
data对象返回结果详见下文

返回data:

参数类型必填名称
templateid字符串模板id
template_name字符串模板名称
content字符串首节点话术
record字符串首节点录音地址或tts语音,多个以英文逗号隔开。

请求示例:

https://icall.sobot.com/api/icall/5/task/query_template?appid=XXXXXX&signature=XXXXXX

返回示例:

{
    "data": [
        {
            "template_name": "内容输出测试",
            "record": "http://sobot-test.oss-cn-beijing.aliyuncs.com/call/ai/TTS/4401f750a3eef4c41805df1341218166.mp3",
            "templateid": "6a9b98410bd44470ae4660275c14792f",
            "content": "你好,请问您要卖车吗?"
        },
        {
            "template_name": "测试0312",
            "record": "http://sobot-test.oss-cn-beijing.aliyuncs.com/call/ai/TTS/1031cfafda3f770ac4a7b51e5f164981.mp3",
            "templateid": "1bf61b127bbd4921b482eb35fde5d215",
            "content": "你好"
        },
        {
            "template_name": "接口调用",
            "record": "",
            "templateid": "6a6d592bf37e4898bcfafd1cb4384f29",
            "content": ""
        },
        {
            "template_name": "测试11",
            "record": "http://sobot.oss-cn-beijing.aliyuncs.com/icall/voice/7201f49f125d47e79d5bdd1421b14c25/f1bafa17e5e1492ba1de859a8abba66e.wav,http://sobot.oss-cn-beijing.aliyuncs.com/icall/voice/7201f49f125d47e79d5bdd1421b14c25/0d6e655090ad4f8993eebb6b1ab79dd5.wav",
            "templateid": "43016bcbf54740b78672788ba2aab59a",
            "content": "开场白"
        }
    ],
    "ret_msg": "查询成功",
    "ret_code": "000000"
}

2.3、查询可用机器人数

接口说明:

接口类型:主动调用接口

接口作用:查询智能外呼系统中可用机器人数,用于接口创建任务。

请求方式:

GET

请求地址:

https://icall.sobot.com/api/icall/5/task/query_robot_num

请求参数:

参数类型必填名称备注
appid字符串智齿分配
signature字符串智齿分配

返回参数:

参数类型必填名称备注
ret_code字符串执行结果码
ret_msg字符串返回信息
robot_num整形返回结果可用机器人数量

请求示例:

https://icall.sobot.com/api/icall/5/task/query_robot_num?appid=XXXXXX&signature=XXXXXX

返回示例:

{
    "robot_num": 4,
    "ret_msg": "查询成功",
    "ret_code": "000000"
}

2.4、查询外显号码信息

接口说明:

接口类型:主动调用接口

接口作用:查询智能外呼系统中的外显号码信息,用于接口创建任务。

请求方式:

GET

请求地址:

https://icall.sobot.com/api/icall/5/task/query_number

请求参数:

参数类型必填名称备注
appid字符串智齿分配
signature字符串智齿分配

返回参数:

参数类型必填名称备注
ret_code字符串执行结果码
ret_msg字符串返回信息
total_count整形总并发
data对象线路信息详见下文

返回data:

参数类型必填名称备注
telephone字符串外显号码
count字符串并发

请求示例:

https://icall.sobot.com/api/icall/5/task/query_number?appid=XXXXXX&signature=XXXXXX

返回示例:

{
    "data": [
        {
            "count": 2,
            "telephone": "02180344315"
        }
    ],
    "total_count": 2,
    "ret_msg": "查询成功",
    "ret_code": "000000"
}

2.5、创建任务

接口说明:

接口类型:主动调用接口

接口作用:在智能外呼系统中创建一个机器人外呼任务。

请求方式:

POST

请求地址:

https://icall.sobot.com/api/icall/5/task/add_task

请求参数:

参数类型必填名称
appid字符串智齿分配
signature字符串智齿分配
templateid字符串模板id
task_name字符串任务名称
line_type整型线路类型,1:固话
telephone字符串外显号码,多个用","分隔
start_time时间戳自定义有效期开始时间,13位
end_time时间戳自定义有效期结束时间,13位
robot_num整型机器人数
time_type整型有效期 1:自定义 ;2:永久
call_time_slot字符串拨打时间段,示例:10:00-19:00,多个时间段以英文逗号隔开例如:09:00-20:00,21:00-22:00
task_status整型任务状态传0即可
push_url字符串结果推送地址
push_type整型结果推送方式,1:转人工后推送 2:通话结束后推送
number_hide整型号码隐藏,默认不开启。0:不开启,1:隐藏后四位,2:隐藏中间四位。
export_status整型允许结果导出,默认允许。0:允许,1:不允许。

返回参数:

参数类型必填名称备注
ret_code字符串执行结果码
ret_msg字符串返回信息
data对象返回结果详见下文

返回data:

参数类型必填名称
taskid字符串任务id

请求示例:

{
    "appid":"xxxxxxxxxx",             //智齿提供的appid
    "signature": "xxxxxxxxxxxxx",   //智齿提供的signature
    "templateid":"模板id",         //拨打电话时使用的模板,需在系统中提前设置模板
    "task_name": "任务名称",           //本次任务的名称
    "line_type":"线路类型",             //本次任务拨打时用的线路类型1:固话
    "telephone":"telephone",         //本次任务拨打时需要显示的外显号码(需提前配置外显号)
    "robot_num": "机器人数目",         //本次任务拨打时机器人的数目(需提前配置)
    "time_type":"有效期",                 //本次任务的有效期1:自定义  ;2:永久
    "start_time": "13位时间戳",          //本次任务有效期为自定义时的开始时间
    "end_time":"13位时间戳",       // 本次任务有效期为自定义时的结束时间
    "call_time_slot": "拨打时间段",      //本次任务将在此时间段进行拨打
    "task_status":"0",
    "push_url":"结果推送接收地址",  
    "push_type":"结果推送方式"       
}

返回示例:

{
	"ret_code": "000000",
	"ret_msg": "创建任务成功",
	"data": {
		"taskid": "XXXXXX"
	}
}

2.6、结果推送说明

接口说明:

接口类型:被动推送接口

接口作用:智能外呼系统会将呼叫结果根据创建任务时设置的推送方式和推送地址推送进行推送。

推送方式:

POST

推送地址:

创建任务时push_type设置的地址。

推送参数:

智能外呼系统将拨打结果以JSON的形式推送,字段含义见2.8、查看数据详情示-返回参数 ,例如下:

{
    "result":{
    "data":{
        "msg":[{
                "callid":"soboticallbcf37279feb441ee99f33a9814d26b00",
                "msg":"您好,我是XXXX的体验专员,今天给您来电是想了解一下,您第一次在我们平台下单的体验怎么样?",
                "date_time":1576551750959,
                "sender_type":1,
                "remark":null
            },
            {
                "callid":"soboticallbcf37279feb441ee99f33a9814d26b00",
                "msg":"挺好的",
                "date_time":1576551784241,
                "sender_type":0,
                "remark":"匹配到:【开场白#肯定】"
            },
            {
                "callid":"soboticallbcf37279feb441ee99f33a9814d26b00",
                "msg":"了解了,我们会继续努力给您提供更好的服务,我们给您准备了一张10元无门槛的红包,希望您还可以继续支持我们。",
                "date_time":1576551784243,
                "sender_type":1,
                "remark":null
            }
        ],
        "detail":{
            "callid":"soboticallbcf37279feb441ee99f33a9814d26b00",
            "answer_time":1576551759848,
            "voice_url":"http: \/\/sobot-test.oss-cn-beijing.com\/call\/ai\/123456\/20191217\/20191217110230_soboticallbcf37279feb441ee99f33a9814d26b00.wav",
            "end_time":1576551789308,
            "fee_duration":29460,
            "user_msg_count":1,
            "call_duration":39440,
            "start_time":1576551749868,
            "caller":02180344315,
            "outid":1234554321123666,
            "tel":18207736077,
            "intention_name":"有意向购买\u0001满意",
            "status":2
        }
    },
    "ret_code":000000
    }
}

2.7、提交数据

接口说明:

接口类型:主动调用接口

接口作用:在智能外呼系统中的某一个任务下上传外呼的数据。

请求方式:

POST

请求地址:

https://icall.sobot.com/api/icall/5/task/add_task_data

请求参数:

参数类型必填名称备注
appid字符串智齿分配
signature字符串智齿分配
taskid字符串任务id,创建任务接口返回的任务id
data字符串对象数组任务数据见下文

data说明:

json数组,数据格式如下,示例: [{"telephone":"xxx","outi d":"xxx","variable":"会议地点^银海大厦|参会人性别^先生"}]

传入参数data格式:

参数类型必填名称
telephone字符串用户电话,不符合电话格式的数据将会被过滤掉。
outid字符串数据id,需要保证唯一,请自行传值,查看数据详情也用到该id
variable字符串见下文

variable参数说明:

模板变量,变量名与变量值用^分隔,多个变量用|分隔,示例"变量名1^变量值1|变量名2^变量值2"

返回参数:

参数类型必填名称
ret_code字符串执行结果码
ret_msg字符串返回信息

请求示例:

{
    "appid":"xxxxxxxxxx",             //智齿提供的appid
    "signature": "xxxxxxxxxxxxx",             //智齿提供的signature
    "taskid":"xxxx",             //提交的任务id,在创建任务接口返回
    "data": [{
        "telephone":"15988888888",             //拨打的电话号码
        "outid":"xxxxxxxx",             //任务数据的id,需唯一,根据此字段查看数据拨打详情
        "variable":"会议地点^银海大厦|参会人性别^先生"             //变量,需在配置模板时有相应的变量字段
    }]
}

返回示例:

{
	"ret_code": "000000",
	"ret_msg": "提交数据成功"
}

2.8、文件提交数据

接口说明:

接口类型:主动调用接口

接口作用:在智能外呼系统中的某一个任务下excel文件上传外呼的数据。

请求方式:

POST

请求地址:

/api/icall/5/task/add_task_file_data

请求参数:

参数类型必填名称备注
appid字符串智齿分配
signature字符串智齿分配
taskid字符串任务id,创建任务接口返回的任务id
data_fileExcel文件任务数据文件接口对接通过MultipartFile方式发送发送请求,文件大小限制不大于5MB,数据条数限制不超过10万条。

返回参数:

参数类型必填名称备注
ret_code字符串执行结果码
ret_msg字符串返回信息
counts整型上传总条数
defeat_counts整型失败条数
repeat_counts整型重复条数
success_counts整型成功条数
filter_count整型过滤条数
error_data集合错误数据行号

返回示例:

{
    "counts": 2,
    "defeat_counts": 1,
    "repeat_counts": 0,
    "success_counts": 1,
    "ret_msg": "本次导入数据2条,成功1条,过滤免打扰客户数据0条,失败1条",
    "filter_count": 0,
    "ret_code": "000000",
    "error_data": [
        3
    ]
}

2.9、查看数据详情

接口说明:

接口类型:主动调用接口

接口作用:在智能外呼系统中查看某个任务的数据详情。

请求方式:

GET

请求地址:

https://icall.sobot.com/api/icall/5/task/query_task_data

请求参数:

参数类型必填名称
appid字符串智齿分配
signature字符串智齿分配
outid字符串数据id
taskid字符串数据所在任务id

返回参数:

参数类型必填名称备注
ret_code字符串执行结果码
ret_msg字符串返回信息
data对象返回结果信息详见下文

data对象:

参数类型必填名称备注
detail对象基本通话信息详见下文
msg对象数组通话详情详见下文

detail对象:

参数类型必填名称备注
callid字符串通话id
start_time时间戳呼叫开始时间,毫秒级时间戳
answer_time时间戳接通时间,毫秒级时间戳
end_time时间戳结束时间,毫秒级时间戳
call_duration整型呼叫时长,外呼时:从拨号开始计时,单位:毫秒
fee_duration整型通话时长,从用户/机器人摘机开始计时,单位:毫秒
intention_name字符串客户意向
status整型拨打状态 0:未拨打 1:拨打中 2:已接通 3:无人接听 4:关机 5:停号 6:空号 7:拒接 9:用户正忙
tel字符串用户号码
caller字符串外显号码
user_msg_count整型用户消息数
voice_url字符串录音地址

msg对象:

参数类型必填名称备注
callid字符串通话Id
date_time字符串时间戳,13位
msg字符串通话内容
sender_type字符串发送者类型,0用户,1机器人

请求示例:

https://icall.sobot.com/api/icall/5/task/query_task_data?appid=XXXXXX&signature=XXXXXX&outid=XXXXXX& taskid=XXXXXX

返回示例:

{
"ret_code": "000000", 
    "data": {
        "msg": [
            {
                "callid": "soboticallebb1c75dc9794510aa0c1ed76fb0c576",
                "msg": "您好,我是XXX的体验专员,今天给您来电是想了解一下,您第一次在我们平台下单的体验怎么样?",
                "date_time": "1570607971174",
                "sender_type": "1"
            },
            {
                "callid": "soboticallebb1c75dc9794510aa0c5ed76fb0c576",
                "msg": "挺好的",
                "date_time": "1570608002233",
                "sender_type": "0"
            }
        ],
        "detail": {
            "callid": "soboticallebb1c75dc9794510aa0c1ed76fb0c576",
            "answer_time": 1570607985848,
            "start_time": 1570607970268,
            "caller": "02180344315",
            "voice_url": "http://sobot-test.oss-cn-beijing.com/call/ai/d8c3a878727c4beda55bae9ec183297f/20191009/20191009155930_soboticallebb1c75dc9794510aa0c5ed76fb0c576.wav",
            "end_time": 1570608025308,
            "fee_duration": 39460,
            "tel": "182****6077",
            "user_msg_count": 1,
            "call_duration": 55040,
            "intention_name": "",
            "status": 2
        }
    }
}

2.10、查询任务

接口说明:

接口类型:主动调用接口

接口作用:查询该公司下所有非完结任务

请求方式:

GET

请求地址:

https://icall.sobot.com/api/icall/5/task/query_task

请求参数:

参数类型必填名称
appid字符串智齿分配
signature字符串智齿分配

返回参数:

参数类型必填名称备注
ret_code字符串执行结果码
ret_msg字符串返回信息
data对象返回结果信息详见下文

返回data:

参数类型必填名称备注
taskid字符串任务id
task_name字符串任务名称
task_status整型任务状态0未开始,1进行中,2已完结,3拨打时间段外,4排队中,5暂停中

请求示例:

https://icall.sobot.com/api/icall/5/task/query_task?appid=XXXXXX&signature=XXXXXX

返回示例:

{
	"ret_code": "000000",
	"ret_msg": "继续任务成功",
    "data": [
            {
                "task_name": "任务1",
                "task_status": 0,
                "taskid": "100018163bcf0dc314eadaf7e13280548658c"
            },
            {
                "task_name": "任务2",
                "task_status": 1,
                "taskid": "10001de2077f6e3724924a978afdf86070ad6"
            },
            {
                "task_name": "任务2",
                "task_status": 5,
                "taskid": "1000182e3744c81954b6d9306cb0343527aab"
            }
        ]
}

2.11、编辑任务

接口说明:

接口类型:主动调用接口

接口作用:编辑修改任务属性

请求方式:

GET

请求地址:

https://icall.sobot.com/api/icall/5/task/editor_task

请求参数:

参数类型必填名称备注
appid字符串智齿分配
signature字符串智齿分配
taskid字符串任务id
task_name字符串任务名称
telephone字符串外显号码,多个用","分隔
start_time时间戳自定义有效期开始时间,13位
end_time时间戳自定义有效期结束时间,13位
robot_num整型机器人数
time_type整型有效期 1:自定义 ;2:永久
call_time_slot字符串拨打时间段,示例:10:00-19:00,多个时间段以英文逗号隔开例如:09:00-20:00,21:00-22:00

返回参数:

参数类型必填名称备注
ret_code字符串执行结果码
ret_msg字符串返回信息

请求示例:

{
    "appid":"xxxxxxxxxx",             //智齿提供的appid
    "signature": "xxxxxxxxxxxxx",   //智齿提供的signature
    "taskid":"任务id",			//本次任务得id
    "task_name": "任务名称",           //本次任务的名称
    "telephone":"telephone"          //本次任务拨打时需要显示的外显号码(需提前配置外显号)
    "robot_num": "机器人数目",         //本次任务拨打时机器人的数目(需提前配置)
    "time_type":"有效期"                  //本次任务的有效期1:自定义  ;2:永久
    "start_time": "13位时间戳",          //本次任务有效期为自定义时的开始时间
    "end_time":"13位时间戳",       // 本次任务有效期为自定义时的结束时间
    "call_time_slot": "拨打时间段",      //本次任务将在此时间段进行拨打
    "
}

返回示例:

{
	"ret_code": "000000",
	"ret_msg": "编辑任务成功"
}

2.12、暂停任务

接口说明:

接口类型:主动调用接口

接口作用:对进行中、拨打时间段外、排队中的任务进行暂停。

请求方式:

GET

请求地址:

https://icall.sobot.com/api/icall/5/task/pause_task

请求参数:

参数类型必填名称备注
appid字符串智齿分配
signature字符串智齿分配
taskid字符串任务id

返回参数:

参数类型必填名称备注
ret_code字符串执行结果码
ret_msg字符串返回信息

请求示例:

https://icall.sobot.com/api/icall/5/task/pause_task?appid=XXXXXX&signature=XXXXXX&taskid=XXXXXX

返回示例:

{
	"ret_code": "000000",
	"ret_msg": "暂停成功"
}

2.13、继续任务

接口说明:

接口类型:主动调用接口

接口作用:对暂停中的任务继续执行

请求方式:

GET

请求地址:

https://icall.sobot.com/api/icall/5/task/resume_task

请求参数:

参数类型必填名称
appid字符串智齿分配
signature字符串智齿分配
taskid字符串任务id

返回参数:

参数类型必填名称
ret_code字符串执行结果码
ret_msg字符串返回信息

请求示例:

https://icall.sobot.com/api/icall/5/task/resume_task?appid=XXXXXX&signature=XXXXXX&taskid=XXXXXX

返回示例:

{
	"ret_code": "000000",
	"ret_msg": "继续任务成功"
}

2.14、完结任务

接口说明:

接口类型:主动调用接口

接口作用:完结终止任务

请求方式:

GET

请求地址:

https://icall.sobot.com/api/icall/5/task/end_task

请求参数:

参数类型必填名称
appid字符串智齿分配
signature字符串智齿分配
taskid字符串任务id

返回参数:

参数类型必填名称
ret_code字符串执行结果码
ret_msg字符串返回信息

请求示例:

/api/icall/5/task/end_task?appid=XXXXXX&signature=XXXXXX& taskid =XXXXXX

返回示例:

{
	"ret_code": "000000",
	"ret_msg": "完结成功"
}

2.15、查看任务详情

接口说明:

接口类型:主动调用接口

接口作用:查询智能外呼系统中某个任务详情,支持多个任务查询。

请求方式:

GET

请求地址:

https://icall.sobot.com/api/icall/5/task/query_task_info

请求参数:

参数类型必填名称备注
appid字符串智齿分配
signature字符串智齿分配
taskid字符串任务id,多个用","分隔,最多不超过15个。

返回参数:

参数类型必填名称备注
ret_code字符串执行结果码
ret_msg字符串返回信息
data对象返回结果列表详见下文

返回data:

参数类型必填名称备注
taskid字符串任务id
task_name字符串任务名称
task_status字符串任务状态 -1 已删除,0未开始,1进行中,2 已完结, 3拨打时间段外,4排队中,5暂停中
telephone字符串外显号码,多个用","分隔
robot_num整型机器人数
call_time_slot字符串拨打时间段,示例:10:00-19:00
time_type整型有效期 1:自定义 ;2:永久
start_time时间戳自定义有效期开始时间,13位
end_time时间戳自定义有效期结束时间,13位
call_total_data整型任务数据总量
call_times整型已拨打数据量
call_connected_times整型已接通数据量
call_intent_times整型有意向的数据量

请求示例:

https://icall.sobot.com/api/icall/5/task/query_task_info?appid=XXXXXX&signature=XXXXXX

返回示例:

{
    "data": [
        {
            "call_times": 115,
            "call_intent_times": 1,
            "task_name": "1212-01",
            "call_total_data": 508,
            "task_status": 5,
            "time_type": 2,
            "call_time_slot": "09:00-20:00",
            "end_time": null,
            "robot_num": 4,
            "telephone": "02180344315",
            "start_time": null,
            "call_connected_times": 5,
            "taskid": "1000110d35472707c4067808f68271e07e787"
        },
        {
            "call_times": 6,
            "call_intent_times": 0,
            "task_name": "1227",
            "call_total_data": 6,
            "task_status": 2,
            "time_type": 2,
            "call_time_slot": "09:00-20:00",
            "end_time": null,
            "robot_num": 1,
            "telephone": "02180344315",
            "start_time": null,
            "call_connected_times": 6,
            "taskid": "10001ec873e088ee0419293886b75ed9db814"
        }
    ],
    "ret_msg": "查询成功",
    "ret_code": "000000"
}

2.16、删除任务

接口说明:

接口类型:主动调用接口

接口作用:删除智能外呼系统中某个任务。

请求方式:

GET

请求地址:

https://icall.sobot.com/api/icall/5/task/delete_task

请求参数:

参数类型必填名称备注
appid字符串智齿分配
signature字符串智齿分配
taskid字符串任务id

返回参数:

参数类型必填名称备注
ret_code字符串执行结果码
ret_msg字符串返回信息

请求示例:

https://icall.sobot.com/api/icall/5/task/delete_task?appid=XXXXXX&signature=XXXXXX&taskid=XXXXXX

返回示例:

{
    "ret_msg": "删除成功",
    "ret_code": "000000"
}

2.17、删除拨打数据

接口说明:

接口类型:主动调用接口

接口作用:删除智能外呼系统中某个任务中的拨打数据。

请求方式:

POST

请求地址:

/api/icall/5/task/delete_task_data

请求参数:

参数类型必填名称备注
appid字符串智齿分配
signature字符串智齿分配
taskid字符串任务id
outid字符串数据id,多个用英文逗号隔开,单次最多100条,如有重复一并删除

返回参数:

参数类型必填名称备注
ret_code字符串执行结果码
ret_msg字符串返回信息
del_counts整型删除条数

请求示例:

{
    "appid": "xxxxxxxxxx", //智齿提供的appid
    "signature": "xxxxxxxxxxxxx", //智齿提供的signature
    "taskid": "xxxxxxxxxxxxx", //任务id
    "outid": "xxxxxxxx,xxxxxxxx" //任务id
}

返回示例:

{
    "ret_msg": "删除成功",
    "ret_code": "000000",
    "del_counts": 2
}

2.18、查询时间段内拨打量

接口说明:

接口类型:主动调用接口

接口作用:获取指定时间段内指定任务的外呼已完成数据总数。

请求方式:

GET

请求地址:

https://icall.sobot.com/api/icall/5/task/calls_count

请求参数:

参数类型必填名称备注
appid字符串智齿分配
signature字符串智齿分配
taskid字符串任务id,多个用","分隔,最多不超过15个。
begin_time时间戳13位毫秒时间戳
end_time时间戳13位毫秒时间戳

返回参数:

参数类型必填名称备注
ret_code字符串执行结果码
ret_msg字符串返回信息
data对象返回结果列表详见下文

返回data:

参数类型必填名称备注
taskid字符串任务id
task_name字符串任务名称
count整型该时段内指定任务下已完成外呼数据的总数

请求示例:

https://icall.sobot.com/api/icall/5/task/calls_count?appid=XXXX&signature=XXXX&taskid=100017add6b22e5884678a6c1c861f73beae8,100010484d4fb8d734888b0ec89f0978d5e20&begin_time=1577436030000&end_time=1579086041000

返回示例:

{
    "data": [
        {
            "task_name": "20.01.15测试",
            "count": 25,
            "taskid": "100017add6b22e5884678a6c1c861f73beae8"
        },
        {
            "task_name": "测试任务",
            "count": 1,
            "taskid": "100010484d4fb8d734888b0ec89f0978d5e20"
        }
    ],
    "ret_msg": "查询成功",
    "ret_code": "000000"
}

2.19、获取指定时间段内外呼数据详情

接口说明:

接口类型:主动调用接口

接口作用:获取指定时间段内外呼数据详情。

请求方式:

GET

请求地址:

https://icall.sobot.com/api/icall/5/task/query_time_task_data

请求参数:

参数类型必填名称备注
appid字符串智齿分配
signature字符串智齿分配
taskid字符串数据所在任务id
begin_time时间戳13位毫秒时间戳
end_time时间戳13位毫秒时间戳
page_size整型每页大小,最大不超过15
page_num整型页码

返回参数:

参数类型必填名称备注
ret_code字符串执行结果码
ret_msg字符串返回信息
page_count整型总页数
total_count整型总数据量
data对象集合返回结果集合详见下文

data对象:

参数类型必填名称备注
detail对象基本通话信息详见下文
msg对象数组通话详情详见下文

detail对象:

参数类型必填名称备注
callid字符串通话id
start_time时间戳呼叫开始时间,毫秒级时间戳
answer_time时间戳接通时间,毫秒级时间戳
end_time时间戳结束时间,毫秒级时间戳
call_duration整型呼叫时长,外呼时:从拨号开始计时,单位:毫秒
fee_duration整型通话时长,从用户/机器人摘机开始计时,单位:毫秒
intention_name字符串客户意向
status整型拨打状态 0:未拨打 1:拨打中 2:已接通 3:无人接听 4:关机 5:停号 6:空号 7:拒接 9:用户正忙
tel字符串用户号码
caller字符串外显号码
user_msg_count整型用户消息数
voice_url字符串录音地址
del_flag整型删除标志 1:正常,-1:删除

msg对象:

参数类型必填名称备注
callid字符串通话Id
date_time字符串时间戳,13位
msg字符串通话内容
sender_type字符串发送者类型,0用户,1机器人

请求示例:

https://icall.sobot.com/api/icall/5/task/query_time_task_data?appid=XXXX&signature=XXXXXX&taskid=100017add6b22e5884678a6c1c861f73beae8&begin_time=1575189630001&end_time=1579086041000&page_size=2&page_num=1

返回示例:

{
    "data": [
        {
            "msg": [
                {
                    "callid": "soboticall7b2e7dbb3006439195d03daed5088ff5",
                    "msg": "您好,我是XXXX的体验专员,今天给您来电是想了解一下,您第一次在我们平台下单的体验怎么样?",
                    "date_time": "1579084972898",
                    "sender_type": "1"
                }
            ],
            "detail": {
                "callid": "soboticall7b2e7dbb3006439195d03daed5088ff5",
                "answer_time": "0",
                "del_flag": "-1",
                "voice_url": "http://sobot-test.oss-cn-beijing.aliyuncs.com/call/ai/123456/20200115/20200115184252_soboticall7b2e7dbb3006439195d03daed5088ff5.wav",
                "end_time": "1579084974374",
                "fee_duration": "0",
                "user_msg_count": "0",
                "call_duration": "1930",
                "start_time": "1579084972444",
                "caller": "02180344315",
                "tel": "18201666077",
                "intention_name": "",
                "status": "3"
            }
        },
        {
            "msg": [
                {
                    "callid": "soboticall51d0048b18394c4d9bcaa5981bcb08f3",
                    "msg": "您好,我是XXXX的体验专员,今天给您来电是想了解一下,您第一次在我们平台下单的体验怎么样?",
                    "date_time": "1579084972897",
                    "sender_type": "1"
                },
                {
                    "callid": " soboticall51d0048b18394c4d9bcaa5981bcb08f3",
                    "msg": "挺好的",
                    "date_time": "1579084975134",
                    "sender_type": "0"
                }
            ],
            "detail": {
                "callid": "soboticall51d0048b18394c4d9bcaa5981bcb08f3",
                "answer_time": "0",
                "del_flag": "1",
                "voice_url": "http://sobot-test.oss-cn-beijing.aliyuncs.com/call/ai/123456/20200115/20200115184252_soboticall51d0048b18394c4d9bcaa5981bcb08f3.wav",
                "end_time": "1579084974547",
                "fee_duration": "0",
                "user_msg_count": "0",
                "call_duration": "2120",
                "start_time": "1579084972427",
                "caller": "02180344315",
                "tel": "18500974776",
                "intention_name": "",
                "status": "3"
            }
        }
    ],
    "total_count": 25,
    "ret_code": "000000",
    "page_count": 13
}

2.20、开放接口demo

Demo:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import net.sf.json.JSONArray;

/**
*智能外呼开放接口请求示例 
*该示例包括两个接口:创建任务和提交数据
*/
  public class PlatformDemo {
  private static String BASEURI = " [https://icall.sobot.com/api/icall/5/task/]( https://icall.sobot.com/api/icall/5/task/)";

  public static void main(String[] args) {
      System.out.println(addTask()); // 创建任务
      System.out.println(addTaskData()); // 提交数据
  }
  // 创建任务
  public static String addTask() {
      // 链接
      String addTaskUri = BASEURI + " add_task ";
      // 参数
      Map<String, Object> parmaMap = new HashMap<String, Object>();
      parmaMap.put("appid", "xxxxxx");
      parmaMap.put("signature", "xxxxxxxxxxxxxxxxxx");
      parmaMap.put("templateid", "xxxxxxxxxxxxxxxxxxxxx");
      parmaMap.put("task_name", "创建任务");
      parmaMap.put("line_type", "1");
      parmaMap.put("telephone", "xxxxxxxx");
      parmaMap.put("robot_num", "1");
      parmaMap.put("time_type", "2");
      parmaMap.put("call_time_slot", "8:00-19:00");
      parmaMap.put("task_status", "0");
      String result = sendPost(addTaskUri, parmaMap);
      return result;
  }

  // 添加任务数据
  public static String addTaskData() {
      // 链接
      String addTaskUri = BASEURI + " add_task_ata";
      // 参数
      Map<String, Object> parmaMap = new HashMap<String, Object>();
      parmaMap.put("appid", "xxxxxxx");
      parmaMap.put("signature", "xxxxxxxxxxxxxxxxxxxxxxxxxx");
      parmaMap.put("taskid", "xxxxxxxxxxxxxxxxxxxxxxxx");
      // 变量信息
      List<Map<String, String>> dataList = new ArrayList<Map<String, String>>();
      Map<String, String> dataMap = new HashMap<String, String>();
      dataMap.put("telephone", "1591083****");
      dataMap.put("outid", String.valueOf(UUID.randomUUID()));
      dataMap.put("variable", "公司^公司名");
      dataList.add(dataMap);
      JSONArray dataJson = JSONArray.fromObject(dataMap);
      parmaMap.put("data", dataJson);
      String result = sendPost(addTaskUri, parmaMap);
      return result;
  }

  public static String sendPost(String url, Map<String, Object> param) {
      StringBuffer buffer = new StringBuffer();
      if (param != null && !param.isEmpty()) {
          for (Map.Entry<String, Object> entry : param.entrySet()) {
              try {
                  if (entry.getValue() != null) {
                      buffer.append(entry.getKey()).append("=")
                              .append(URLEncoder.encode(entry.getValue().toString(), "utf-8")).append("&");
                  }
              } catch (UnsupportedEncodingException e) {
                  e.printStackTrace();
              }
          }
          buffer.deleteCharAt(buffer.length() - 1);
      }
      PrintWriter out = null;
      BufferedReader in = null;
      String result = "";
      try {
          URL realUrl = new URL(url);
          // 打开和URL之间的连接
          URLConnection conn = realUrl.openConnection();
          // 设置通用的请求属性
          conn.setRequestProperty("accept", "*/*");
          conn.setRequestProperty("connection", "Keep-Alive");
          conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
          conn.setConnectTimeout(30000);
          conn.setReadTimeout(30000);
          // 发送POST请求必须设置如下两行
          conn.setDoOutput(true);
          conn.setDoInput(true);
          // 获取URLConnection对象对应的输出流
          out = new PrintWriter(conn.getOutputStream());
          // 发送请求参数
          out.print(buffer);
          // flush输出流的缓冲
          out.flush();
          // 定义BufferedReader输入流来读取URL的响应
          in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));
          String line;
          while ((line = in.readLine()) != null) {
              result += line;
          }
      } catch (Exception e) {
          e.printStackTrace();
      }
      // 使用finally块来关闭输出流、输入流
      finally {
          try {
              if (out != null) {
                  out.close();
              }
              if (in != null) {
                  in.close();
              }
          } catch (IOException ex) {
              ex.printStackTrace();
          }
      }
      return result;
  }
  }

3、状态编码

3.1、操作成功

业务操作成功。

状态编码状态说明
000000操作成功(除此编码以外的编码为错误编码)

3.2、系统异常

系统服务异常。

错误编码错误说明
320001appid或者signature有误
329999系统未知异常

3.3、业务异常

业务异常。

错误编码错误说明
320011模板id为空
320012任务名称为空
320013机器人数量有误
320014外显号码为空
320015有效期类型为空
320016自定义有效期开始或结束时间为空
320017拨打时间段为空
320018data格式错误
320019任务或者模板有误
320020任务已经被删除
320021任务id为空
320022任务id有误
320023任务未开始或已完结
320024只有暂停中的任务可以继续操作
320025验证邮箱为空
320026开始时间为空
320027结束时间为空
320028文件格式不正确
320029大于最大上传条数
320030上传的数据有误
320031上传文件不存在
320032outid为空
320033outid数量超出限制