一鸣开放平台提供的API是一组简单的HTTP接口,以接口对接方式为客户提供强大的智能外呼能力和多种类型的触达工具(短信、企业微信、人工坐席跟进),以灵活多样的方式触达用户,精准、高效率地搭建用户标签体系,轻松实现以用户为中心的全生命周期精细化运营。
AI外呼主要用于会员推广服务、智能催收等场景。我方运营人员使用客户提供的产品资料设计出紧贴用户需求、精准高效的话术,通过外呼任务的方式对导入的线索进行外呼,识别和收集外呼的反馈数据到客户侧。
AI外呼能力均可以配合短信进行使用,可以在挂机后给用户触发短信以增强触达效果。
同时上述短信能力均可支持变量,短信形式举例如下:
尊敬的[变量1]先生,我行最近推出金花花信用贷款,您的额度为[变量2]元,您可以登录我行APP申请办理。
第一步,客户侧注册企业管理员账号、绑定企业,向一鸣的运营小伙伴申请密钥,一鸣的运营伙伴根据客户业务需求对客户账户功能进行配置管理,包括功能列表、API接口权限、回执管理、话术管理、线路资源等配置;
第二步,客户侧提供产品资料、话术文本给一鸣侧运营人员,由运营人员完成话术设计、行业意图库配置,按业务需求分配机器人坐席数等。我方运营人员根据产品、外呼规模进行线路的报备和申请(测试对接阶段可使用测试线路),如有使用短信功能,客户侧需跟运营人员沟通,我方运营人员将协调接入短信通道、进行内容审核和短信签名申请,完成短信功能准备;
第三步,客户侧技术工程师和一鸣的项目经理、工程师进行API接口对接和联调;
第四步,客户侧工程师测试无误后可投入使用,如有任何新需求或问题,请联系对接的运营人员;
为帮助客户快速对接,我们提供了对接的demo代码,该工程地址:https://gitee.com/aiym_outbound/outbound-api-demo
备注:
如无特殊声明,接口的输入参数和输出数据编码统一为UTF-8格式;
如无特殊说明,接口文档陈述的任务特指AI外呼任务;
API响应消息的统一封装格式请见如下表格说明,在API接口说明中不再赘述;
参数名 | 描述 | 长度 | 类型 |
---|---|---|---|
code | 请求的处理结果响应码 | 255 | String |
message | 请求的处理结果描述 | 255 | String |
resp | 响应对象 | 无限制 | Object |
开放平台所有对外能力必须通过鉴权密钥授权方可使用,鉴权方式是在调用API时请求头部携带如下两个参数:
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
Authorization | String | 是 | token |
sigParameter | String | 是 | 授权参数 |
请求地址:https://{开放平台服务地址}/v2/api/common/oauth/token
请求方法:POST
请求参数:
参数名 | 是否必须 | 类型 | 描述 | 示例 |
---|---|---|---|---|
tenantId | 是 | String | 租户id | 2020 |
sid | 是 | String | 租户sid | 101key |
返回参数:
参数名 | 描述 | 长度 | 类型 |
---|---|---|---|
Authorization | 授权租户信息 | 100 | String |
sigParameter | 签名加密的token | 100 | String |
请求示例:
{
"tenantId":"2020",
"sid":"uaQzkRZuGKaKJX5IBxxxxxxxx"
}
返回示例
xxxxxxxxxx
{
"code":"200",
"message":"操作成功",
"resp":{
"Authorization": "NzMwOToyMDIxMDEwNzEzMjkxMQxxxx",
"sigParameter": "4e2b68a2f47072db0327xxxxxxxx101"
}
}
创建外呼任务,可同时上传线索数据。数据加密方式是企业级配置,如有变更请联系一鸣的运营小伙伴。
请求地址:https://{开放平台服务地址}/v2/api/salesclue/call/tenants/{tenantId}/pushClue
请求方法:POST
请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)
clueList注意事项:
请求体入参:
参数名 | 是否必须 | 类型 | 描述 |
---|---|---|---|
dialogTemplateId | 是 | Number | 话术模板ID(内容见:查询话术模板列表) |
taskName | 否 | String | 任务名称,默认以话术模板名称加时间戳命名 |
taskWorkTime | 否 | String | 任务工作时间,时间段之前逗号隔开(示例:
09:00-12:00,13:00-20:00) 默认:企业的工作时间。 |
callLineId | 否 | Number | 线路ID,不传则使用系统默认配置线路(内容见:查询外呼线路列表) |
smsTouchTypes | 否 | Array |
短信触发方式,发短信时必填。类型: 1:意向分类触发 2:话术节点触发 3:话术问答触发 可以组合发送,例: "smsTouchTypes": [1,2,3] |
autoSendSmsType | 否 | Number | 节点触发、问答触发的类型,选择发送方式( 0:挂机发送 1:通话中发送) |
smsTemplateId | 否 | Number | 短信模板ID,当smsTouchTypes中包含“意向分类触发”时需要此参数(内容见:查询短信模板列表) |
|
|||
clueCategoryCode | 否 | Array |
意向分类Code(smsTouchTypes选择意向分类触发时必填) 意向分类Code见:意向分类表 例如:"clueCategoryCode":[1, 2, 4, 7] |
0:明文,1:AES加密,2:MD5加密;默认:0 |
|||
clueCheckType | 否 | Number | 线索校验类型,0手机号,1非手机号,默认0 |
clueList | 否 | Array | 线索数组 |
openRepeatCall | 否 | Boolean | 自动重拨功能,默认不开启 |
repeatCallRule | 否 | Object | 自动重拨规则,openRepeatCall为true时,repeatCallRule为必填参数 |
interceptStrategySwitch | 否 | Number | 拦截策略开关 |
interceptStrategyId | 否 | Number | 拦截策略id |
customerBlacklistSwitch | 否 | Number | 企业黑名单开关(0:关闭, 1:开启; 默认值:0) |
customerBlacklistId | 否 | Array | 企业黑名单Id的集合(如: [10,13,19] ) |
concurrencyCount | 否 | Number | 任务分配的AI座席数 |
addWechatWhenHangUp | 否 | Number | 挂机添加微信(0:不添加,1:添加;默认值:0) |
wechatClueCategoryCode | 否 | Array |
添加微信使用的意向分类Code。选择挂机添加微信时必填 意向分类Code见:意向分类表 例:"wechatClueCategoryCode":[1,2,3] |
syncType | 否 | Number | 是否采用同步处理(0:异步处理, 1:同步处理;默认:0) |
virtualNumber | 否 | Number |
标识任务是否支持虚拟号,虚拟号指主机号+分机号形式, 如:1391234 + 56781 (0: 不支持, 1:支持;默认:0; 注:企业配置MD5加密时不支持) |
autoStopCallPassCount | 否 | Number | 按接通数自动停止任务,举例:任务接通100通自动暂停 |
autoStopCalledCount | 否 | Number | 按拨打数自动停止任务,举例:任务拨打100通自动暂停 |
autoStopCalledRate | 否 | String | 按任务拨打进度自动停止任务,举例:任务进度52.12%,自动暂停 |
salesclueReplayMaxLimit | 否 | Number | 线索重拨上限,不限-1,限制1~5,默认不限。 |
clueList参数说明:
参数名 | 是否必须 | 类型 | 描述 |
---|---|---|---|
phone | 是 | String | 手机号 |
unikey | 否 | String | 数据标识(由客户侧提供,回执使用) |
customerName | 否 | String | 用户姓名 |
remark | 否 | String | 备注信息(请注意:有128字节最大长度限制) |
variables | 否 | Map | 话术自定义变量,例如: {"客户名称":"张三丰","性别":"男"} |
repeatCallRule参数说明:
参数名 | 是否必须 | 类型 | 描述 |
---|---|---|---|
type | 否 | Number | 呼损类型,0:任务拨打完成后呼损,1:线索拨打后呼损。默认:0 |
interval | 否 | Number | 重拨间隔时长,单位:分钟(取值范围:1~720;默认值:5) |
times | 否 | Number | 重拨次数(取值范围:1~5;默认值:1) |
hangUpCauseCode | 否 | Array | 未接通原因Code,例:"hangUpCauseCode":[7] |
请求参数示例:
xxxxxxxxxx
{
"dialogTemplateId": 1234,
"taskName": "测试任务-1",
"taskWorkTime":"09:00-12:00,13:00-20:00",
"callLineId":1083,
"smsTouchTypes":[1],
"smsTemplateId": 2029,
"openRepeatCall": false,
"repeatCallRule":{
"interval":3,
"times":3,
"hangUpCauseCode":[1,4,5]
},
"clueList": [
{
"unikey": "1582589498566-54912",
"phone": "181XXXXXXXX",
"variables": {
"客户名称":"张三丰",
"性别":"男"
}
}
],
"concurrencyCount":100,
"addWechatWhenHangUp":1,
"wechatClueCategoryCode":[1,2,3]
}
返回结果:
xxxxxxxxxx
{
"code": "200",
"message": "操作成功",
"resp": {
"clueFailNum": 0,
"taskId": 137735
}
}
字段名 | 含义 | 长度 | 类型 |
---|---|---|---|
taskId | 任务ID | 20 | Number |
clueFailNum | 上传失败数 | 20 | Number |
对非拨打中状态的任务修改任务配置信息。
请求地址:https://{开放平台服务地址}/v2/api/salesclue/call/tenants/{tenantId}/modify
请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)
请求方法:POST
请求体入参:
参数名 | 是否必须 | 类型 | 描述 |
---|---|---|---|
taskId | 是 | Number | 任务ID |
taskName | 否 | String | 任务名称 |
callLineId | 否 | Number | 线路ID |
concurrencyCount | 否 | Number | 默认并发数 |
taskWorkTime | 否 | String | 拨打时间 |
openRepeatCall | 否 | Boolean | 是否开启未接通重拨功能,默认不开启 |
repeatCallRule | 否 | Object | 自动重拨规则,openRepeatCall为true时,repeatCallRule为必填参数 |
interceptStrategySwitch | 否 | Number | 拦截策略开关 |
interceptStrategyId | 否 | Number | 拦截策略id |
customerBlacklistSwitch | 否 | Number | 企业黑名单开关(0:关闭, 1:开启; 默认值:0) |
customerBlacklistId | 否 | Array | 企业黑名单Id的集合(如: [10,13,19] ) |
repeatCallRule参数说明:
参数名 | 是否必须 | 类型 | 描述 |
---|---|---|---|
type | 否 | Number | 呼损类型,0:任务拨打完成后呼损,1:线索拨打后呼损。默认:0 |
interval | 否 | Number | 重拨间隔时长,单位:分钟(取值范围:1~720;默认值:5) |
times | 否 | Number | 重拨次数,(取值范围:1~5;默认值:1) |
hangUpCauseCode | 否 | Array | 未接通原因Code 例如:"hangUpCauseCode":[7] |
请求参数示例:
xxxxxxxxxx
{
"taskId": 712000,
"taskName": "测试任务-888",
"taskWorkTime":"09:00-12:00,13:00-20:00",
"callLineId":1083,
"openRepeatCall": false,
"repeatCallRule":{
"interval":3,
"times":3,
"hangUpCauseCode":[1,2,3]
},
"customerBlacklistSwitch": 1,
"customerBlacklistId": [10, 13, 19],
"concurrencyCount":100
}
返回结果:
xxxxxxxxxx
{
"code":"200",
"message":"操作成功",
"messageCode":null,
"resp":null
}
对已存在的外呼任务增量导入线索。
请求地址:https://{开放平台服务地址}/v2/api/salesclue/call/tenants/{tenantId}/clueComplement
请求方法:POST
请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)
clueList注意事项:
请求体入参:
参数名 | 是否必须 | 类型 | 描述 |
---|---|---|---|
taskId | 是 | Number | 需要导入数据的任务ID |
0:明文,1:AES加密,2:MD5加密;默认值:0 |
|||
clueList | 是 | Array | 线索数组 |
syncType | 否 | Number | 是否采用同步处理(0:异步处理, 1:同步处理;默认值:0) |
inTaskRepeatCheck | 否 | Boolean | 是否检查重复线索并去重(默认值:true) |
clueList参数说明:
参数名 | 是否必须 | 类型 | 描述 |
---|---|---|---|
phone | 是 | String | 手机号 |
unikey | 否 | String | 数据标识(由客户侧提供,用于回执数据等),可用uuid来生成 |
customerName | 否 | String | 用户姓名 |
remark | 否 | String | 备注信息(请注意:有128字节最大长度限制) |
variables | 否 | Map | 话术自定义变量,例如: {"客户名称":"张三丰","性别":"男"} |
请求示例:
xxxxxxxxxx
{
"taskId": 4218,
"clueList": [
{
"unikey": "afdfex-1582589498577-54914",
"phone": "181XXXXXXXX",
"variables": {
"客户名称":"张三丰",
"性别":"男"
}
}
]
}
返回结果:
xxxxxxxxxx
{
"code": "200",
"message": "操作成功",
"resp": {
"clueFailNum": 0,
"taskId": 137735
}
}
字段名 | 含义 | 长度 | 类型 |
---|---|---|---|
taskId | 任务ID | 20 | Number |
clueFailNum | 上传失败数 | 20 | Number |
启动"未拨打"、"已停止"状态的AI外呼任务。
请求地址:https://{开放平台服务地址}/v2/api/salesclue/call/tenants/{tenantId}/startTask
请求方法:POST
请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)
请求体入参:
参数名 | 是否必须 | 类型 | 描述 |
---|---|---|---|
taskId | 是 | Number | 任务ID |
callLineId | 否 | Number | 线路ID |
concurrencyCount | 否 | Number | 并发数(AI坐席数) |
请求示例:
xxxxxxxxxx
https://{开放平台服务地址}/v2/api/salesclue/call/tenants/7304/startTask
请求体示例:
xxxxxxxxxx
{
"taskId": 4218,
"concurrencyCount":10
}
返回结果:
xxxxxxxxxx
{
"code":"200",
"message":"操作成功",
"messageCode":null,
"resp":null
}
字段名 | 含义 | 长度 | 类型 |
---|---|---|---|
messageCode | 业务校验Code(发生业务校验异常时才返回值) | 20 | Number |
对拨打中的外呼任务进行暂停。
请求地址:https://{开放平台服务地址}/v2/api/salesclue/call/tenants/{tenantId}/stopTask
请求方法:POST
请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)
请求体入参:
参数名 | 是否必须 | 类型 | 描述 |
---|---|---|---|
taskId | 是 | Number | 任务ID |
请求示例:
xxxxxxxxxx
https://{开放平台服务地址}/v2/api/salesclue/call/tenants/7304/stopTask
请求体示例:
xxxxxxxxxx
{
"taskId": 4218
}
返回结果:
xxxxxxxxxx
{
"code":"200",
"message":"操作成功",
"messageCode":null,
"resp":null
}
字段名 | 含义 | 长度 | 类型 |
---|---|---|---|
messageCode | 业务校验Code(发生业务校验异常时才返回值) | 20 | Number |
删除指定任务ID对应的外呼任务。
请求地址:https://{开放平台服务地址}/v2/api/salesclue/call/tenants/{tenantId}/deleteTask
请求方法:POST
请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)
请求体入参:
参数名 | 是否必须 | 类型 | 描述 |
---|---|---|---|
taskId | 是 | Number | 任务id |
请求示例:
xxxxxxxxxx
{
"taskId": 4218
}
返回结果:
xxxxxxxxxx
{
"code":"200",
"message":"操作成功",
"messageCode":null,
"resp":null
}
字段名 | 含义 | 长度 | 类型 |
---|---|---|---|
messageCode | 业务校验Code(发生业务校验异常时的返回值) | 20 | Number |
启动外呼任务,对任务中未接通的线索再次拨打。
请求地址:https://{开放平台服务地址}/v2/api/salesclue/call/tenants/{tenantId}/callfailure
请求方法:POST
请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)
请求体入参:
参数名 | 是否必须 | 类型 | 描述 |
---|---|---|---|
taskId | 是 | Number | 任务ID |
callLineId | 否 | Number | 线路ID |
concurrencyCount | 否 | Number | 并发数(AI坐席数) |
请求示例:
xxxxxxxxxx
https://{开放平台服务地址}/v2/api/salesclue/call/tenants/7304/callfailure
请求体示例:
xxxxxxxxxx
{
"taskId": 4218,
"callLineId": 2
}
返回结果:
xxxxxxxxxx
{
"code":"200",
"message":"操作成功",
"messageCode":null,
"resp":null
}
字段名 | 含义 | 长度 | 类型 |
---|---|---|---|
messageCode | 业务校验code(发生业务校验异常时才返回值) | 20 | Number |
查询租户下创建的外呼任务的相关信息,如任务ID号、任务名称、模板ID号等。
请求地址:https://{开放平台服务地址}/v2/api/salesclue/call/tenants/{tenantId}/queryTask
请求方法:POST
请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)
请求体(RequestBody)入参:
参数名 | 是否必须 | 类型 | 描述 |
---|---|---|---|
startDate | 是 | String | 开始时间 |
endDate | 是 | String | 结束时间 |
taskName | 否 | String | 任务名称,支持模糊查询 |
pageNum | 否 | String | 分页每页显示条数,默认50条,最多1000条 |
pageNo | 否 | String | 当前页码,默认为1 |
请求示例:
xxxxxxxxxx
{
"pageNo":1,
"pageNum":3,
"startDate":"2020-09-20 09:00:00",
"endDate":"2020-09-20 20:00:00"
}
返回结果:
xxxxxxxxxx
{
"code":"200",
"message":"操作成功",
"resp":{
"list":[
{
"taskId":37369,
"taskName":"1590138817541967800",
"dialogTemplateId":1269
}
],
"pagination":{
"page":1,
"rows":3,
"total":204484
}
}
}
字段名 | 含义 | 长度 | 类型 |
---|---|---|---|
taskId | 任务ID | 20 | Number |
taskName | 任务名称 | 255 | String |
dialogTemplateId | 模板ID | 20 | Number |
pagination对象的字段说明:
字段名 | 含义 | 长度 | 类型 |
---|---|---|---|
total | 总记录条数 | 10 | Number |
page | 当前页码 | 10 | Number |
rows | 当前返回记录数 | 10 | Number |
获取AI外呼任务执行情况和统计数据,可根据任务名、任务状态、任务创建时间(或任务拨打时间)查询任务的执行信息。
具体包含哪些信息,请查看返回结果字段说明。
说明:
请求地址:https://{开放平台服务地址}/v2/api/tenants/{tenantId}/queryTaskList
请求方法:POST
请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)
请求体入参:
字段名 | 含义 | 是否必填 | 类型 |
---|---|---|---|
startTime | 开始时间 | 否 | String |
endTime | 结束时间 | 否 | String |
taskName | 任务名称 | 否 | String |
taskStatus | 任务状态( 0:不可拨打,1:未拨打,2:拨打中,3:已停止,4:已完成) | 否 | Number |
taskId | 任务ID | 否 | Number |
queryType | 开始时间、结束时间的参数类型(1:任务创建时间,2:任务拨打时间;默认值:1) | 否 | Number |
参数格式:
x{
"startTime":"2021-07-04 00:00:00",
"endTime":"2021-07-05 23:59:59",
"taskStatus":1,
"queryType":2
}
返回结果:
(常见问题说明:如果查询传入参数taskId对应的任务非当日创建或当日拨打,查询结果为空。)
xxxxxxxxxx
{
"code": "200",
"message": "操作成功",
"resp": [
{
"aiCalledTotal": 1,
"calledAmount": 10,
"calledThroughAmount": 2,
"calledThroughPercent": "20.00%",
"createTime": "2021-07-02 13:32:30",
"taskId": 600,
"categoryCount": {
"B": 2,
"E": 8
},
"lineStatistics": [
{
"lineName":"资源1",
"minute":2
}
],
"taskName": "任务dev1",
"taskStatus": "1",
"totalClue": 10,
"messageSendSuccess": 9,
"messageSendFailed": 1,
"messageSendUnknown":0
}
]
}
字段名 | 含义 | 类型 |
---|---|---|
calledAmount | 拨打总量 | Number |
calledThroughAmount | 接通总量 | Number |
calledThroughPercent | 接通率 | String |
aiCalledTotal | 已拨打线索数 | Number |
createTime | 创建时间 | String |
taskId | 任务ID | Number |
lineName | 资源名称 | String |
minute | 计费时长(分钟) | Number |
callTimeAvg | 平均通话时长(秒) | Number |
taskName | 任务名称 | String |
taskStatus | 任务状态 ( 0:不可拨打,1:未拨打,2:拨打中,3:已停止,4:已完成) |
String |
totalClue | 线索总数 | Number |
categoryCount | 意向分类计数 | Object |
messageSendSuccess | 短信发送成功数 | Number |
messageSendFailed | 短信发送失败数 | Number |
messageSendUnknown | 短信发送状态未知数 | Number |
请求地址:https://{开放平台地址}/v2/api/tenants/{tenantId}/queryAiStatisticsByDate
请求方法:GET
请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)
请求参数:
字段名 | 含义 | 是否必填 | 类型 |
---|---|---|---|
startDate | 开始日期 | 是 | String |
endDate | 结束日期 | 是 | String |
请求示例:
xxxxxxxxxx
https://{开放平台服务地址}/v2/api/tenants/27300/queryAiStatisticsByDate?startDate=2022-10-31&endDate=2022-10-31
返回结果:
xxxxxxxxxx
{
"code": "200",
"message": "操作成功",
"resp": [
{
"calledAmount": 1330313,
"calledThroughAmount": 270978,
"calledThroughPercent": "20.37",
"categoryCount": {
"A": 56796,
"B": 42478
},
"humanCategoryCount": {
"A": 239,
"B": 998
},
"date": "2022-10-31",
"messageSendCount": 0,
"messageSendPercent": "0.00",
"messageSendSuccess": 0,
"messageSendSuccessPercent": "0.00",
"minute": 280757,
"updateTime": "2022-11-07 15:25:39"
}
]
}
响应的数据字段说明:
字段名 | 含义 | 类型 |
---|---|---|
date | 统计日期 | String |
calledAmount | 拨打总量 | Number |
calledThroughAmount | 接通总量 | Number |
calledThroughPercent | 接通率 | String |
categoryCount | 线索数量(返回A类和B类) | Object |
humanCategoryCount | 人工线索数量(返回A类和B类) | Object |
minute | 计费时长(分钟) | Number |
callTimeAvg | 平均通话时长(秒) | Number |
messageSendCount | 短信触发量 | Number |
messageSendPercent | 短信触发率 | String |
messageSendSuccess | 短信发送成功量 | Number |
messageSendSuccessPercent | 短信发送成功率 | String |
updateTime | 数据更新时间,格式:yyyy-MM-dd hh:mm:ss | String |
筛选拨打时间内的话单报表。
请求地址:https://{开放平台地址}/v2/api/tenants/{tenantId}/queryAiStatisticsByTaskAndDate
请求方法:GET
请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)
请求参数:
字段名 | 含义 | 是否必填 | 类型 |
---|---|---|---|
taskId | 任务ID | 否 | String |
taskName | 任务名称 | 否 | String |
taskStatus | 任务状态( 1未拨打、2拨打中、3已停止、4已完成) | 否 | String |
startDate | 拨打开始日期 | 是 | String |
endDate | 拨打结束日期 | 是 | String |
请求示例:
xxxxxxxxxx
https://{开放平台地址}/v2/api/tenants/{tenantId}/queryAiStatisticsByTaskAndDate?startDate=2023-12-01&endDate=2023-12-28
返回结果:
xxxxxxxxxx
{
"code": "200",
"message": "操作成功",
"resp": [
{
"calledAmount": 1,
"calledThroughAmount": 1,
"calledThroughPercent": "100.00",
"categoryCount": {
"A": 0,
"B": 0
},
"createTime": "2023-12-05 09:28:36",
"date": "2023-12-05",
"humanCategoryCount": {
"A": 0,
"B": 0
},
"messageSendCount": 1,
"messageSendSuccess": 1,
"minute": 1,
"taskId": 136834,
"taskName": "使命必达_金融贷款_20231205091620-20231205092831"
},
{
"calledAmount": 1,
"calledThroughAmount": 1,
"calledThroughPercent": "100.00",
"categoryCount": {
"A": 0,
"B": 0
},
"createTime": "2023-12-05 09:19:14",
"date": "2023-12-05",
"humanCategoryCount": {
"A": 0,
"B": 0
},
"messageSendCount": 1,
"messageSendSuccess": 0,
"minute": 1,
"taskId": 136761,
"taskName": "使命必达_金融贷款_20231205091620-20231205091906"
}
]
}
响应的数据字段说明:
字段名 | 含义 | 类型 |
---|---|---|
taskId | 任务ID | Number |
taskName | 任务名称 | String |
date | 统计日期 | String |
minute | 计费时长(分钟) | Number |
callTimeAvg | 平均通话时长(秒) | Number |
calledThroughAmount | 接通总量 | Number |
calledThroughPercent | 接通率 | String |
messageSendCount | 短信触发量 | Number |
messageSendSuccess | 短信发送成功量 | Number |
calledAmount | 外呼总量 | Number |
categoryCount | AI线索数量(只返回A、B类) | Object |
humanCategoryCount | 人工线索数量(只返回A、B类) | Object |
createTime | 任务创建时间 | String |
创建人工坐席任务并推送线索数据。
请求地址:https://{开放平台服务地址}/v2/api/salesclue/call/tenants/{tenantId}/humanCallTask/create
请求方法:POST
请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)
注意:一次推送的线索数量最大为5万
请求体入参:
参数名 | 是否必须 | 类型 | 描述 |
---|---|---|---|
taskName | 否 | String | 坐席任务名称、如果不传将取yyyyMMddhhmmssSSS(年月日时分秒毫秒)加五位随机数来拼接组成一个任务名称 |
dialogTemplateId | 否 | Number | 辅助话术模板ID(当天任务合并标识) |
callLineId | 否 | Number | 线路ID,不传则使用系统默认配置线路(内容见:查询外呼线路列表) |
|
|||
clueList | 否 | Array | 线索列表 |
checkUser | 是 | Number | 线索分配方式(1:按坐席分配,2:按坐席组分配) |
userId | 否 | Array | 按坐席分配时的员工ID数组(仅checkUser=1) 示例: [1,2,3,4] |
userGroupId | 否 | Number | 按坐席组分配时的坐席组ID(仅checkUser=2) |
agentMsgType | 否 | Number | 坐席发送短信开关 (0:关闭, 1:统一模板, 2:按坐席配置模板;默认:0) |
smsTemplateId | 否 | Number | agentMsgType=1时,统一使用的短信模板Id (内容见:查询短信模板列表) |
msgTaskAgentList | 否 | Array | agentMsgType=2时,为坐席配置专属短信模板Id |
clueList参数说明:
参数名 | 是否必须 | 类型 | 描述 |
---|---|---|---|
phone | 是 | String | 手机号 |
customerName | 否 | String | 客户姓名 |
source | 否 | String | 来源 |
remark | 否 | String | 客户备注(请注意:有128字节最大长度限制) |
unikey | 否 | String | 数据标识(由客户侧提供,用于回执数据),可用uuid来生成 |
variables | 否 | Object | 线索变量,最多支持48个,键的固定格式是【var】+【变量下标】,如: {"var1": "张三", "var2": "汽车"} |
msgTaskAgentList参数说明:
参数名 | 是否必须 | 类型 | 描述 |
---|---|---|---|
userId | 是 | Number | 绑定坐席的用户Id,即userId,必须是线索分配方式按坐席分配时传入的userId |
msgTemplateId | 是 | Number | 短信模板ID(内容见:查询短信模板列表) |
请求参数示例:
xxxxxxxxxx
{
"taskName": "测试坐席任务-1",
"dialogTemplateId":1501,
"clueList": [
{
"phone": "13312350102",
"customerName": "张三丰(男)",
"source":"信贷一",
"remark":"贷款用户",
"unikey":"100921-1aa8-64j9-b10e"
}
],
"agentMsgType": 1,
"smsTemplateId": 188
}
返回结果:
xxxxxxxxxx
{
"code": "200",
"message": "操作成功",
"resp": {
"clueFailNum": 0,
"taskId": 137735
}
}
字段名 | 含义 | 长度 | 类型 |
---|---|---|---|
taskId | 坐席任务ID | 20 | Number |
clueFailNum | 上传失败数 | 20 | Number |
对已存在的坐席外呼任务导入客户线索。
请求地址:https://{开放平台服务地址}/v2/api/salesclue/call/tenants/{tenantId}/humanCallTask/importClue
请求方法:POST
请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)
注意:一次推送的线索数量最大为5万
请求体入参:
参数名 | 是否必须 | 类型 | 描述 |
---|---|---|---|
taskId | 是 | Number | 坐席任务ID |
clueList | 是 | Array | 线索数组 |
|
clueList参数说明:
参数名 | 是否必须 | 类型 | 描述 |
---|---|---|---|
phone | 是 | String | 手机号 |
customerName | 否 | String | 客户姓名 |
source | 否 | String | 来源 |
remark | 否 | String | 客户备注(请注意:有128字节最大长度限制) |
unikey | 否 | String | 数据标识(由客户侧提供,用于回执数据),可用uuid来生成 |
variables | 否 | Object | 线索变量,最多支持48个,键的固定格式是【var】+【变量下标】,如: {"var1": "张三", "var2": "汽车"} |
请求参数示例:
xxxxxxxxxx
{
"taskId": 4219,
"clueList": [
{
"phone": "133XXXXXXXX",
"customerName": "张三丰(男)",
"source":"信贷一",
"remark":"贷款用户",
"unikey":"100921-1"
}
]
}
返回结果:
xxxxxxxxxx
{
"code": "200",
"message": "操作成功",
"resp": {
"clueFailNum": 0,
"taskId": 137735
}
}
字段名 | 含义 | 长度 | 类型 |
---|---|---|---|
taskId | 任务ID | 20 | Number |
clueFailNum | 上传失败数 | 20 | Number |
实时查询当日已接通的通话记录。
请求地址:https://{开放平台服务地址}/v2/api/salesclue/call/tenants/{tenantId}/querySalesclueCall
请求方法:POST
请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)
请求体(RequestBody)入参:
参数名 | 是否必须 | 类型 | 描述 |
---|---|---|---|
taskId | 否 | Number | 任务ID |
pageNum | 否 | Number | 分页每页显示条数(默认50条) |
pageNo | 否 | Number | 当前页数(默认为1) |
callTimeStart | 是 | String | 拨打时间(起始) |
callTimeEnd | 是 | String | 拨打时间(结束) |
callId | 否 | String | 通话记录ID |
isCollection | 否 | Number | 是否已收藏(0:未收藏; 1:已收藏) |
请求示例:
xxxxxxxxxx
{
"callTimeStart":"2020-09-20 09:00:00",
"callTimeEnd":"2020-09-20 20:00:00",
"pageNo": 1,
"pageNum": 3,
"callId":"6098cdeae4b0d16e02a18e20"
}
返回结果:
xxxxxxxxxx
{
"code":"200",
"message":"操作成功",
"resp":{
"list":[
{
"aiCallStatus": 7,
"clueCategoryCode": 2,
"clueCategoryName": "B类(意向一般)",
"callDuration": 38,
"callTime":"2020-05-23 00:57:12",
"hungUpTime":"2020-05-23 00:57:12",
"callType":2,
"callerNumber":"9513198314",
"chargeDuration":1,
"callId":"d6f1cd48-fe74-417d-b204-9b39924f4060",
"callDetailText":[{"role":"robot","saying":"办理下来,不用的话也是没有任何费用的,建议您尽快申请。"},
{"role": "customer", "saying": "用不上"},
{"role": "robot", "saying": "是这样的,您可以选择免年费的卡先办理下来,等需要用的时候就很方便,不用也没有任何费用,建议您尽快申请。先不打扰了,感谢您对XX银行的支持,再见!"}],
"isCollection": 0,
"recordFileUrl":"https://www.ai-ym.com/session/5ec8042ce4b0e7f56ce1d2c0",
"salesclueId":248706993,
"taskId":37369,
"taskName":"1590138817541967800",
"tenantId":7208,
"dialogTemplateId":1269,
"callLineId": 291,
"unikey":"ac32-fdfa589433298577-54914",
"phone":"187XXXX1238",
"phoneArea": "江苏/扬州",
"phoneIsp": "中国移动",
"isSendMsg": 1,
"gender":1,
"hangupTypeName":"被叫挂断",
}
],
"pagination":{
"page":1,
"rows":3,
"total":204484
}
}
}
list是一个话单组成的数组,下面是其字段说明(部分数据需要开启功能才会产生,如性别检测,详细咨询运营):
字段名 | 含义 | 长度 | 类型 |
---|---|---|---|
aiCallStatus |
拨打状态 1:未拨打 2:正在拨打中 3:正在排队 4:未接通 7:已接通 100:已拦截 |
10 | Number |
clueCategoryCode | 意向分类Code | 5 | Number |
clueCategoryName | 意向分类名称 | 255 | String |
callDuration | 通话时长,单位:秒 | 10 | Number |
callTime | 拨打时间(格式 yyyy-MM-dd HH:mm:ss) | 50 | String |
hungUpTime | 挂机时间(格式 yyyy-MM-dd HH:mm:ss) | 50 | String |
callType | 通话类型 (2:AI外呼,4:人工坐席) | 10 | Number |
callerNumber | 主叫号码 | 50 | String |
chargeDuration | 计费分钟数 | 10 | Number |
customerName | 客户姓名 | 255 | String |
callId | 通话唯一ID | 255 | String |
callDetailText | 对话文本 | 无限制 | Object |
isCollection | 是否被收藏(0:否,1:是) | 10 | Number |
recordFile | 通话完整录音地址 | 255 | String |
salesclueId | 线索ID | 20 | Number |
taskId | 任务ID | 20 | Number |
taskName | 任务名称 | 255 | String |
tenantId | 租户ID(企业ID) | 20 | Number |
dialogTemplateId | 话术模板ID | 20 | Number |
callLineId | 线路ID | 20 | Number |
phone | 被叫号码 | 100 | String |
unikey | 数据标识 | 255 | String |
phoneArea | 号码归属地 | 100 | String |
phoneIsp | 运营商 中国电信/中国联通/中国移动/其他 |
20 | String |
isSendMsg | 挂机发送短信标识 (0:未发送, 1:发送) | 20 | Number |
gender | 性别检测结果(0:女, 1:男, 2:未知) | 20 | Number |
dialogueRound | 对话轮次 | 10 | Number |
hangupTypeName | 挂断方(主叫挂断、被叫挂断) | 255 | String |
callDetailText对象的字段说明:
字段名 | 含义 | 长度 | 类型 |
---|---|---|---|
role | 说话者角色(robot:机器人,customer:用户) | 255 | String |
saying | 说话者的⽂本内容 | 500 | String |
pagination对象的字段的说明:
字段名 | 含义 | 长度 | 类型 |
---|---|---|---|
total | 总记录条数 | 10 | Number |
page | 当前页码 | 10 | Number |
rows | 当前返回记录数 | 10 | Number |
查询非当日的接通话单通话记录
当天实时通话记录请通过“查询通话记录”API进行查询和获取。
请求地址:https://{开放平台服务地址}/v2/api/salesclue/call/tenants/{tenantId}/queryHistorySalesclueCall
请求方法:POST
请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)
请求体(RequestBody)入参、参数格式、返回结果,与”查询当日数据“接口相同,请参考。
实时查询当日未接通的通话记录。
请求地址:https://{开放平台服务地址}/v2/api/salesclue/call/tenants/{tenantId}/querySalesclueCallFail
请求方法:POST
请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)
请求体(RequestBody)入参:
参数名 | 是否必须 | 类型 | 描述 |
---|---|---|---|
taskId | 否 | Number | 任务ID |
pageNum | 否 | Number | 分页每页显示条数(默认50条) |
pageNo | 否 | Number | 当前页数(默认为1) |
callTimeStart | 是 | String | 拨打时间(起始) |
callTimeEnd | 是 | String | 拨打时间(结束) |
callId | 否 | String | 通话记录ID |
isCollection | 否 | Number | 是否已收藏(0:未收藏; 1:已收藏) |
请求示例:
xxxxxxxxxx
{
"callTimeStart":"2020-09-20 09:00:00",
"callTimeEnd":"2020-09-20 20:00:00",
"pageNo": 1,
"pageNum": 3,
"callId":"6098cdeae4b0d16e02a18e20"
}
返回结果:
xxxxxxxxxx
{
"code": "200",
"message": "操作成功",
"resp": {
"list": [
{
"callId": "6036a375e4b0a4d3c91e61b5",
"callTime": "2022-09-30 16:06:43",
"callerNumber": "131****3098",
"clueCategoryCode": 2,
"clueCategoryName": "B类(意向一般)",
"hangUpCause": "无法接通",
"hangUpCauseCode": 7,
"isSendMsg": 0,
"callLineId": 188,
"unikey":"ac32-fdfa589433298577-54914",
"phone": "187****7901",
"phoneArea": "江苏/扬州",
"phoneIsp": "中国移动",
"taskId": 8751,
"taskName": "上善若水-20220930150412",
"isCollection": 1
},
],
"pagination": {
"page": 1,
"rows": 1,
"total": 1
}
}
}
list是一个话单组成的数组,下面是其字段说明(部分数据需要开启功能才会产生,如性别检测,详细咨询运营):
字段名 | 含义 | 长度 | 类型 |
---|---|---|---|
callId | 通话ID | 255 | String |
callTime | 拨打时间(格式 yyyy-MM-dd HH:mm:ss) | 50 | String |
callerNumber | 主叫号码 | 50 | String |
clueCategoryCode | 意向分类Code | 20 | Number |
clueCategoryName | 意向分类名称 | 255 | String |
hangUpCause | 挂机原因 | 100 | String |
hangUpCauseCode | 挂机原因Code | 10 | Number |
isSendMsg | 是否发送短信标识 | 20 | Number |
callLineId | 线路Id | 20 | Number |
phone | 线索号码 | 255 | String |
unikey | 数据标识 | 255 | String |
phoneArea | 号码归属地 | 100 | String |
phoneIsp | 运营商 中国电信/中国联通/中国移动/其他 |
20 | String |
taskId | 任务ID | 10 | Number |
taskName | 任务名称 | 255 | String |
pagination对象的字段的说明:
字段名 | 含义 | 长度 | 类型 |
---|---|---|---|
total | 总记录条数 | 10 | Number |
page | 当前页码 | 10 | Number |
rows | 当前返回记录数 | 10 | Number |
查询非当日的接通话单通话记录。
当天实时通话记录请通过“查询通话记录”API进行查询和获取。
请求地址:https://{开放平台服务地址}/v2/api/salesclue/call/tenants/{tenantId}/queryHistorySalesclueCallFail
请求方法:POST
请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)
请求体(RequestBody)入参、参数格式、返回结果,与查询当日数据接口相同,请参考。
查询企业在指定时间周期内是否已存在该线索数据。
线索数据支持明文和密钥,取决于企业配置,如MD5密钥、AES加密等,默认明文。
查询的周期默认是近3天。每次请求携带线索数上限是2000条。
请求地址:https://{开放平台地址}/v2/api/salesclue/call/tenants/{tenantId}/checkPhoneExist
请求方法:POST
请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)
请求体(RequestBody)入参:
参数名 | 是否必须 | 类型 | 描述 |
---|---|---|---|
phoneList | 是 | Array | 线索数据列表,上限2000条。 |
请求示例:
xxxxxxxxxx
{
"phoneList":[
"188xxxx1292",
"139xxxx1293",
"156xxxx0692"
]
}
返回结果示例:
xxxxxxxxxx
{
"code": "200",
"message": "操作成功",
"resp": {
"phoneList": [
{
"phone": "188xxxx1292",
"type": 1
},
{
"phone": "139xxxx1293",
"type": 0
},
{
"phone": "156xxxx0692",
"type": 0
}
],
"tenantId": 127617
}
}
字段说明:
字段名 | 含义 | 长度 | 类型 |
---|---|---|---|
phone | 手机号 | 255 | String |
type | 查询结果类型(0:不存在 1:已存在) | 10 | Number |
tenantId | 企业Id | 10 | Number |
配置数据回调地址。
请求地址:https://{开放平台服务地址}/v2/api/common/tenants/{tenantId}/save/callBackUrl
请求方法:POST
请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)
请求体(RequestBody)入参:
参数名 | 是否必须 | 类型 | 描述 |
---|---|---|---|
callbackUrl | 是 | String | 接收话单回执的地址 |
返回结果:
xxxxxxxxxx
{
"code":"200",
"message":"操作成功",
"resp": null
}
查询配置的话单回执接收地址。
请求地址:https://{开放平台服务地址}/v2/api/common/tenants/{tenantId}/query/callBackUrl
请求方法:GET
请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)
返回结果:
xxxxxxxxxx
{
"code":"200",
"message":"操作成功",
"resp": {
"abbreviation": "common",
"callBackUrl": "http://192.16.116.202:3081/artIntent/mockCallBack",
"createTime": "2020-11-16 15:31:32",
"id": 12,
"tenantId": 7315
}
}
返回结果字段说明
字段名 | 含义 | 长度 | 类型 |
---|---|---|---|
abbreviation | 平台标识 | 255 | String |
callBackUrl | 话单回执接收地址 | 50 | String |
createTime | 地址首次配置时间 | 255 | String |
id | 序列号 | 10 | Number |
tenantId | 企业Id(租户Id) | 10 | Number |
请求地址:https://{开放平台服务地址}/v2/api/tenants/{tenantId}/createBlackGroup
请求方法:POST
请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)
请求体(RequestBody)入参:
参数名 | 是否必须 | 类型 | 描述 |
---|---|---|---|
name | 是 | String | 黑名单组的名字 |
clueCheckType | 否 | Number | 是否为手机号, 0: 是,1:非手机号,默认0,是手机号 |
validityPeriod | 否 | Number | 过期天数,-1:永久,1~1000为过期天数,默认-1:永久 |
remark | 否 | String | 备注 |
返回结果:
xxxxxxxxxx
{
"code": "200",
"message": "操作成功",
"resp": {
"groupId": 1
}
}
返回结果字段说明
字段名 | 含义 | 长度 | 类型 |
---|---|---|---|
groupId | 黑名单组的编号 | 10 | String |
请求地址:https://{开放平台服务地址}/v2/api/tenants/{tenantId}/getBlackGroupCountById
请求方法:GET
请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)
请求头(Header)入参:
参数名 | 是否必须 | 类型 | 描述 |
---|---|---|---|
groupId | 否 | Number | 黑名单库的编号 |
响应结果示例:
xxxxxxxxxx
{
"code": "200",
"message": "操作成功",
"resp": [
{
"groupId": "2544",
"name": "黑名单",
"numbers": 100,
"validityPeriod": -1,
"remark": "备注",
"updateTime": "2023-09-19 17:02:18",
"status": 1
}
]
}
返回结果字段说明
字段名 | 含义 | 长度 | 类型 |
---|---|---|---|
groupId | 黑名单组的编号 | 10 | String |
name | 黑名单组的名称 | 255 | String |
numbers | 黑名单组的号码数量 | 10 | Number |
validityPeriod | 剩余有效天数(-1:永久,大于0的返回值代表天数) | 10 | Number |
remark | 备注 | 255 | String |
updateTime | 黑名单组的更新时间 | 255 | String |
status | 激活状态(1:活跃;0:未激活) | 10 | Number |
向企业黑名单库中导入号码。需要注意的是,每个黑名单组仅支持串行导入,不同黑名单组支持并行导入。接口每次调用支持导入4万号码。
请求地址:https://{开放平台地址}/v2/api/tenants/{tenantId}/importBlackList
请求方法:POST
请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)
请求体参数:
参数名 | 是否必须 | 类型 | 描述 |
---|---|---|---|
groupId | 是 | Number | 黑名单库的编号 |
blackShardingList | 是 | Object | 黑名单号码数据对象,上限是4万个号码 |
blackShardingList对象结构说明:
参数名 | 是否必须 | 类型 | 描述 |
---|---|---|---|
phone | 是 | Number | 黑名单号码。数据格式跟随企业配置:默认明文,可选有MD5、AES格式 |
userName | 否 | String | 用户名称 |
expiredAtStr | 否 | String | 号码过期时间,默认永久,格式:yyyy-MM-dd |
remark | 否 | String | 号码备注信息 |
请求体示例:
xxxxxxxxxx
{
"groupId": 46,
"blackShardingList": [
{
"phone": 12305080689,
"userName": "张三",
"expiredAtStr":"2024-08-05",
"remark": "测试API导入黑名单"
},
{
"phone": 12305080690,
"userName": "李四",
"expiredAtStr":"2024-08-05",
"remark": "测试API导入黑名单"
}
]
}
导入成功响应结果示例:
xxxxxxxxxx
{
"code": "200",
"message": "操作成功",
"resp": {
"failCount": 0,
"leftCount": 999998,
"successCount": 2
}
}
导入失败响应结果示例:
xxxxxxxxxx
{
"code": "509",
"message": "黑名单组不存在",
"messageCode": "4024"
}
返回结果字段说明
字段名 | 含义 | 长度 | 类型 |
---|---|---|---|
failCount | 黑名单组的编号 | 10 | String |
leftCount | 黑名单组剩余导入数 | 10 | Number |
successCount | 导入成功数 | 10 | Number |
删除企业黑名单组中全部的数据。
请求地址:https://{开放平台服务地址}/v2/api/tenants/{tenantId}/deleteBlackListByGid
请求方法:POST
请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)
请求体入参:
参数名 | 是否必须 | 类型 | 描述 |
---|---|---|---|
groupId | 是 | Number | 组id |
请求示例:
xxxxxxxxxx
{
"groupId": 4001
}
返回结果:
xxxxxxxxxx
{
"code": "200",
"message": "操作成功",
"messageCode":null,
"resp": "黑名单数据成功,0条被"
}
字段名 | 含义 | 长度 | 类型 |
---|---|---|---|
messageCode | 业务校验Code(发生业务校验异常时的返回值) | 20 | Number |
向企业主体黑名单库中导入号码。需要注意的是,每个黑名单组仅支持串行导入,不同黑名单组支持并行导入。接口每次调用支持导入4万号码。
请求地址:https://{开放平台地址}/v2/api/tenants/{tenantId}/importPlatformBlackList
请求方法:POST
请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)
请求体参数:
参数名 | 是否必须 | 类型 | 描述 |
---|---|---|---|
groupId | 是 | Number | 黑名单库的编号 |
blackShardingList | 是 | Object | 黑名单号码数据对象,上限是4万个号码 |
blackShardingList对象结构说明:
参数名 | 是否必须 | 类型 | 描述 |
---|---|---|---|
phone | 是 | Number | 黑名单号码。数据格式跟随企业配置:默认明文,可选有MD5、AES格式 |
userName | 否 | String | 用户名称 |
expiredAtStr | 否 | String | 号码过期时间,默认永久,格式:yyyy-MM-dd |
remark | 否 | String | 号码备注信息 |
请求体示例:
xxxxxxxxxx
{
"groupId": 46,
"blackShardingList": [
{
"phone": 12305080689,
"userName": "张三",
"expiredAtStr":"2024-08-05",
"remark": "测试API导入黑名单"
},
{
"phone": 12305080690,
"userName": "李四",
"expiredAtStr":"2024-08-05",
"remark": "测试API导入黑名单"
}
]
}
导入成功响应结果示例:
xxxxxxxxxx
{
"code": "200",
"message": "操作成功",
"resp": {
"failCount": 0,
"leftCount": 999998,
"successCount": 2
}
}
导入失败响应结果示例:
xxxxxxxxxx
{
"code": "509",
"message": "黑名单组不存在",
"messageCode": "4024"
}
返回结果字段说明
字段名 | 含义 | 长度 | 类型 |
---|---|---|---|
failCount | 黑名单组的编号 | 10 | String |
leftCount | 黑名单组剩余导入数 | 10 | Number |
successCount | 导入成功数 | 10 | Number |
查询当前租户下话单、短信投诉。
请求地址:https://{开放平台服务地址}/v2/api/tenants/{tenantId}/queryComplaint
请求方法:GET
请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)
请求体参数:
参数名 | 是否必须 | 类型 | 描述 |
---|---|---|---|
complaintType | 否 | Number | 投诉类型: 1. 话单投诉 2. 短信投诉 |
callThrough | 否 | Number | 是否接通,1:接通,0:未接通 |
complaintTimeStart | 否 | String | 投诉起始 yyyy-MM-dd hh:mm:ss |
complaintTimeEnd | 否 | String | 投诉结束 yyyy-MM-dd hh:mm:ss |
pageNum | 否 | String | 分页每页显示条数 |
pageSize | 否 | String | 当前页码 |
返回结果:
xxxxxxxxxx
{
"code": "200",
"message": "操作成功",
"resp": {
"list": [
{
"callTime": "2023-12-05 09:29:03",
"called": "187****7268",
"complaintTime": "2023-12-06 00:00:00",
"complaintType": 1,
"templateProductName": "微众银行"
},
{
"callTime": "2023-12-05 09:29:03",
"called": "187****7268",
"complaintTime": "2023-12-05 09:29:03",
"complaintType": 2,
"templateProductName": "微众银行"
}
],
"pagination": {
"page": 1,
"rows": 2,
"total": 2
}
}
}
字段名 | 含义 | 长度 | 类型 |
---|---|---|---|
callTime | 拨打时间 | 255 | String |
called | 投诉号码 | 255 | String |
complaintTime | 投诉时间 | 255 | String |
complaintType | 投诉类型: 1. 话单投诉 2. 短信投诉 | 255 | String |
templateProductName | 产品名称 | 255 | String |
pagination对象的字段说明:
字段名 | 含义 | 长度 | 类型 |
---|---|---|---|
total | 总记录条数 | 10 | Number |
page | 当前页码 | 10 | Number |
rows | 当前返回记录数 | 10 | Number |
查询当前租户下已创建完成的话术模板,用于创建外呼任务时选择话术模板。
请求地址:https://{开放平台服务地址}/v2/api/salesclue/call/tenants/{tenantId}/queryTemplateList
请求方法:GET
请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)
返回结果:
xxxxxxxxxx
{
"code":"200",
"message":"操作成功",
"resp": [
{
"createTime": "2020-10-16 15:41:39",
"dialogTemplateId": 1269,
"name": "监听测试话术",
"robotType": 1,
"tenantId": 7315,
"variables":["客户名称","性别"],
"categoryRules": [
{
"A": "意向较强"
},
{
"B": "意向一般"
}
]
}
]
}
字段名 | 含义 | 长度 | 类型 |
---|---|---|---|
dialogTemplateId | 话术模板ID | 20 | Number |
createTime | 创建时间(格式 yyyy-MM-dd HH:mm:ss) | 50 | String |
name | 话术名称 | 100 | String |
robotType | AI呼叫类型 (1:AI外呼,2:放音) | 5 | Number |
variables | 话术自定义变量集合 | 255 | Array |
categoryRules | 意向分类规则 | 无限制 | Array |
查询租户下已创建完成的坐席辅助话术模板,用于创建人工坐席任务时选择话术模板。
请求地址:https://{开放平台服务地址}/v2/api/salesclue/call/tenants/{tenantId}/queryAgentTemplateList
请求方法:GET
请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)
返回结果:
xxxxxxxxxx
{
"code":"200",
"message":"操作成功",
"resp": [
{
"createTime": "2020-10-16 15:41:39",
"dialogTemplateId": 1269,
"name": "坐席测试话术"
}
]
}
字段名 | 含义 | 长度 | 类型 |
---|---|---|---|
dialogTemplateId | 辅助话术模板ID | 20 | Number |
createTime | 创建时间(格式 yyyy-MM-dd HH:mm:ss) | 50 | String |
name | 话术名称 | 100 | String |
查询租户下已创建完成的短信模板,创建外呼任务时,可以配置挂机短信。
请求地址:https://{开放平台服务地址}/v2/api/salesclue/call/tenants/{tenantId}/querySmsTemplateList
请求方法:GET
请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)
返回结果:
xxxxxxxxxx
{
"code":"200",
"message":"操作成功",
"resp": [
{
"smsTemplateId": 18,
"templateContent": "尊敬的用户{1}",
"templateName": "test",
"tenantId": 7315
}
]
}
字段名 | 含义 | 长度 | 类型 |
---|---|---|---|
smsTemplateId | 短信模板ID | 20 | Number |
templateContent | 短信内容 | 255 | String |
templateName | 模板名称 | 100 | String |
tenantId | 租户ID | 20 | Number |
查询租户下被叫回传的短信上行消息记录。
请求地址:https://{开放平台服务地址}/v2/api/{tenantId}/queryMsgUplink
请求方法:GET
请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)
请求参数:
参数名 | 是否必须 | 类型 | 描述 |
---|---|---|---|
startTime | 是 | String | 开始时间 |
endTime | 是 | String | 结束时间 |
请求示例:
xxxxxxxxxx
https://{开放平台服务地址}/v2/api/15283/queryMsgUplink?startTime=2023-09-11 00:00:00&endTime=2023-09-14 00:00:00
返回结果:
xxxxxxxxxx
{
"code": "200",
"message": "操作成功",
"resp": [
{
"content": "退订",
"phone": "59585423160",
"unikey": "",
"uplinkTime": "2024-07-05 01:06:14"
},
{
"content": "R",
"phone": "15570007001",
"unikey": "24_15570007001_54912",
"uplinkTime": "2024-07-05 00:23:38"
}
]
}
字段名 | 含义 | 类型 |
---|---|---|
content | 上行内容 | String |
phone | 上行号码 | String |
unikey | 数据唯一标识 | String |
uplinkTime | 上行返回时间 | String |
创建短信群发任务,可同时上传线索数据。数据加密方式是企业级配置,如有变更请联系一鸣的运营小伙伴。
请求地址:https://{开放平台服务地址}/v2/api/salesclue/call/tenants/{tenantId}/createSmsTask
请求方法:POST
请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)
clueList注意事项:
请求体入参:
参数名 | 是否必须 | 类型 | 描述 |
---|---|---|---|
taskName | 否 | String | 任务名称,不能包含中文分号 |
templateProductId | 是 | Number | 产品id |
msgTemplateId | 是 | Number | 短信模板id |
scheduledSendTime | 否 | String | 定时发送时间 yyyy-MM-dd HH:mm:ss格式 |
clueList | 是 | Array | 线索列表 |
clueList参数说明:
参数名 | 是否必须 | 类型 | 描述 |
---|---|---|---|
phone | 是 | String | 手机号 |
unikey | 否 | String | 数据标识(由客户侧提供,回执使用) |
variables | 否 | Array | 短信自定义变量,例如: ["变量1","变量2"] |
请求参数示例:
xxxxxxxxxx
{
"taskName":"2024-01-05-2",
"templateProductId":"1000",
"msgTemplateId":"382",
"scheduledSendTime":"2024-01-05 14:00:00",
"clueList": [
{
"unikey": "1582589498566-54912",
"phone": "18752737268",
"variables": ["张三丰"]
}
]
}
返回结果:
xxxxxxxxxx
{
"code": "200",
"message": "操作成功",
"resp": {
"clueFailNum": 0,
"errorInfo": "",
"taskId": 138084
}
}
字段名 | 含义 | 长度 | 类型 |
---|---|---|---|
taskId | 任务ID | 20 | Number |
errorInfo | 线索上传错误提示 | 255 | String |
clueFailNum | 上传失败数 | 20 | Number |
对已存在的短信群发任务增量导入线索。
请求地址:https://{开放平台服务地址}/v2/api/salesclue/call/tenants/{tenantId}/smsClueComplement
请求方法:POST
请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)
clueList注意事项:
请求体入参:
参数名 | 是否必须 | 类型 | 描述 |
---|---|---|---|
taskId | 是 | Number | 需要导入数据的任务ID |
clueList | 是 | Array | 线索数组 |
clueList参数说明:
参数名 | 是否必须 | 类型 | 描述 |
---|---|---|---|
phone | 是 | String | 手机号 |
unikey | 否 | String | 数据标识(由客户侧提供,回执使用) |
variables | 否 | Array | 短信自定义变量,例如: ["变量1","变量2"] |
请求示例:
xxxxxxxxxx
{
"taskName":"2024-01-05-1",
"templateProductId":"1000",
"msgTemplateId":"382",
"scheduledSendTime":"2024-01-05 14:00:00",
"clueList": [
{
"unikey": "1582589498566-54912",
"phone": "18752737268",
"variables": ["张三丰"]
}
]
}
返回结果:
xxxxxxxxxx
{
"code": "200",
"message": "操作成功",
"resp": {
"taskId": 4218,
"errorInfo": "",
"clueFailNum": 0
}
}
字段名 | 含义 | 长度 | 类型 |
---|---|---|---|
taskId | 任务ID | 20 | Number |
errorInfo | 线索上传错误提示 | 255 | String |
clueFailNum | 上传失败数 | 20 | Number |
查询租户下可用的线路列表,创建任务时可选择指定线路进行外呼。
请求地址:https://{开放平台服务地址}/v2/api/salesclue/call/tenants/{tenantId}/queryCallLine
请求方法:GET
请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)
返回结果:
xxxxxxxxxx
{
"code": "200",
"message": "操作成功",
"resp": [
{
"callLineId": 4,
"callLineName": "测试线路01"
}
]
}
字段名 | 含义 | 长度 | 类型 |
---|---|---|---|
callLineId | 线路ID | 20 | Number |
callLineName | 线路名称 | 50 | String |
查询企业配置的机器人总数和当前空闲机器人数。
请求地址: https://{开放平台服务地址}/v2/api/tenants/{tenantId}/robots
请求方法:GET
请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)
请求头(Header)入参:无
请求示例:
xxxxxxxxxx
https://{开放平台服务地址}/v2/api/tenants/7304/robots
返回结果:
xxxxxxxxxx
{
"code": "200",
"message": "操作成功",
"resp": {
"totalRobots": 100,
"idleRobots": 100
}
}
查询企业可用的坐席的列表,创建人工任务时可选择相应的坐席。
请求地址:https://{开放平台服务地址}/v2/api/tenants/{tenantId}/agents
请求方法:GET
请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)
请求头(Header)入参:
参数名 | 是否必须 | 类型 | 描述 |
---|---|---|---|
fullName | 否 | String | 坐席名称,可模糊查询 |
phone | 否 | String | 绑定了坐席的员工手机号,可模糊查询 |
agentStatus | 否 | Number | 坐席状态(1:已过期;2:已启用;3:未启用;默认:2) |
groupId | 否 | Number | 坐席组Id |
expiredAtStart | 否 | String | 坐席过期时间范围,开始时间 |
expiredAtEnd | 否 | String | 坐席过期时间范围,结束时间 |
allocateAtStart | 否 | String | 坐席分配时间范围,开始时间 |
allocateAtEnd | 否 | String | 坐席分配时间范围,结束时间 |
请求示例:
xxxxxxxxxx
https://{开放平台服务地址}/v2/api/tenants/7304/agents?groupId=123
返回结果:
xxxxxxxxxx
{
"code": "200",
"message": "操作成功",
"resp": [
{
"agentStatus": 2,
"createdAt": "2022-05-13 14:28:45",
"executingTasks": 0,
"expiredAt": "2023-01-02 23:59:59",
"fullName": "0013",
"groupId": 131,
"groupName": "0013single",
"id": 1934,
"phone": "18050000001",
"userId": 24371,
"allocateAt": "2023-01-02 23:59:59"
}
]
}
查询租户下可用的坐席的列表,创建人工任务时可选择相应的坐席。
请求地址:https://{开放平台服务地址}/v2/api/tenants/{tenantId}/groups
请求方法:GET
请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)
请求头(Header)入参:
参数名 | 是否必须 | 类型 | 描述 |
---|---|---|---|
createdAtStart | 否 | String | 坐席组创建时间范围,开始时间 |
createdAtEnd | 否 | String | 坐席组创建时间范围,结束时间 |
name | 否 | String | 坐席组名称,可模糊查询 |
fullName | 否 | String | 坐席组成员名称,可模糊查询 |
请求示例:
xxxxxxxxxx
https://{开放平台服务地址}/v2/api/tenants/7304/groups?name=firstTop
返回结果:
xxxxxxxxxx
{
"code": "200",
"message": "操作成功",
"resp": [
{
"createdAt": "2022-04-18 14:52:05",
"executingTasks": 0,
"id": 125,
"name": "aaa",
"userIds": [
24299
],
"users": [
"yyy"
]
}
]
}
查询企业的总费用、通话计费时长总计、接通总量。
请求地址:https://{开放平台服务地址}/v2/api/salesclue/call/tenants/{tenantId}/queryFeeTotal
请求方法:POST
请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)
请求体入参:
参数名 | 是否必须 | 类型 | 描述 |
---|---|---|---|
startDate | 是 | Date | 要查询的起始日期(从该日期的00时00分00秒) |
endDate | 否 | Date | 要查询的截止日期(到该日期的23时59分59秒),不传则默认查截止到当天为止 |
请求示例:
xxxxxxxxxx
{
"startDate": "2021-05-01",
"endDate": "2021-05-15"
}
返回结果:
xxxxxxxxxx
{
"code": "200",
"message": "操作成功",
"resp": {
"totalMinutes": 432,
"totalFee": 43.2,
"totalCount":391
}
}
字段名 | 含义 | 长度 | 类型 |
---|---|---|---|
totalMinutes | 总分钟数 | 20 | Number |
totalFee | 总费用(元) | 20 | Double |
totalCount | 接通总数量 | 20 | Number |
推送失败(在重试机制下仍然失败)的、使用主动拉取配置的回执数据,通过本接口查询。
接口参数有数据类型、推送类型、查询条数、查询页数。
请求地址:https://{开放平台服务地址}/v2/api/tenants/{tenantId}/exportCdr
请求方法:GET
请求头部:Authorization、sigParameter(传入这两个参数意义见鉴权介绍)
请求头(header)入参:
参数名 | 是否必须 | 类型 | 描述 |
---|---|---|---|
dataType | 否 | Number | 数据类型(0:未接通话单,1:接通话单;2:已拦截;默认值:0) |
callbackType | 否 | Number | 推送类型(0:推送成功;1:推送失败;2:主动拉取;默认值:1) |
date | 否 | Number | 话单日期(格式:YYYYMMDD ,支持往前追溯7天;默认查询当天) |
pageNo | 否 | Number | 查询页数(取值范围:1~n;默认值:1) |
pageNum | 否 | Number | 查询条数(取值范围:100~10000;默认值:100) |
idGt | 否 | Number | 查询大于id值的数据,可帮助提高查询速度,用此参数后pageNo参数失效 |
请求示例:
xxxxxxxxxx
https://{开放平台服务地址}/v2/api/tenants/7304/exportCdr?callbackType=2&dataType=1
返回结果:
xxxxxxxxxx
{
"code": "200",
"message": "操作成功",
"resp": {
"list": [{
"unikey": "232-0023-2112",
"relayDisplayNum": "32312121765",
"phone": "12345432119",
"taskId": 19351,
"callId": "61a5dc2608f20a2cba2feceb",
"hungUpTime": "2021-11-30 16:09:10",
"callTime": "2021-11-30 16:09:10",
"aiCallStatus": 4,
"callDuration": 0,
"clueCategory": "Q",
"clueCategoryCode": 17,
"clueCategoryName": "Q类(无意向)",
"humanClueCategory": "F",
"humanClueCategoryCode": 6,
"humanClueCategoryName": "F类(待筛选)",
"smsIsSend": 0,
"dialogTemplateId": 1686,
"hangUpCause": "无法接通",
"hangUpCauseCode": 7,
"robotType": 1,
"tenantId": 7311,
"callLineId": 526,
"dialogueRound": 9,
"hitIntent": "意图一|意图二",
"hangUpTypeName":"被叫挂断",
"id":100020090
}],
"pagination": {
"page": 1,
"rows": 100,
"total": 1
}
}
返回结果的字段含义请参照“推送接口说明”章节,数据含义一致。
关于提高查询速度字段的说明
dataType、callbackType、date等查询条件仍正常使用。相比话单回执推送接口,主动拉取回执会多返回id字段,字段说明:
字段名 | 含义 | 长度 |
---|---|---|
id | 回执索引号(说明:非uuid类型字段,用于提高分页查询速率) | 20 |
举例,当日首次拉取,分页参数如下设置:
xxxxxxxxxx
pageNum=100
再调用接口拉取话单,分页参数如下设置:
xxxxxxxxxx
pageNum=100&idGt={第100条回执的id}
推送话单给客户侧提供的接口地址。目前支持实时推送、定时批量推送和主动拉取。开启推送功能及策略配置,一鸣的运营在管理后台配置。详细请咨询运营人员。
说明:
请求地址:客户侧提供接口地址
请求方法:POST
参数以请求体形式传输,字段如下:
字段名 | 含义 | 长度 | 是否必须 | 类型 |
---|---|---|---|---|
unikey | 数据标识 | 255 | 否 | String |
phone | 手机号 | 255 | 是 | String |
taskId | 任务ID | 20 | 是 | Number |
taskName | 任务名称 | 255 | 是 | String |
dialogTemplateId | 话术模板ID | 20 | 是 | Number |
tenantId | 企业ID | 20 | 是 | Number |
aiCallStatus |
1:未拨打 2:正在拨打中 3:正在排队 4:未接通 7:已接通 100:已拦截 |
10 | 是 | Number |
callLineId | 线路ID | 20 | 是(黑名单除外) | Number |
callId | 通话记录ID | 255 | 是(黑名单除外) | String |
callTime | 拨打时间 | 50 | 是(黑名单除外) | String |
hungUpTime | 挂机时间 | 50 | 是(黑名单除外) | String |
callConnectTime | 接通时间 | 50 | 否 | String |
callDuration | 通话总时长(秒) | 10 | 否 | Number |
aiCallDuration | AI通话时长(秒) | 10 | 否 | Number |
humanCallDuration | 人工通话时长(秒) | 10 | 否 | Number |
minute | 计费时长(分钟) | 10 | 否 | Number |
recordFileUrl | 通话录音文件访问地址 | 255 | 否 | String |
clueCategory | 意向分类描述,例如“A” | 5 | 否 | String |
clueCategoryCode | 意向分类Code,详见意向分类表 | 2 | 否 | Number |
clueCategoryName | AI线索分类描述详情,例如“A(发短信)” | 255 | 否 | String |
humanClueCategory | 人工意向分类描述,例如“A” | 5 | 否 | String |
humanClueCategoryCode | 人工意向分类Code,详见意向分类表 | 2 | 否 | Number |
humanClueCategoryName | 人工线索分类描述详情,例如“A(发短信)” | 255 | 否 | String |
smsIsSend | 触发短信标识位(0:否, 1:是) | 2 | 否 | Number |
smsTemplateIdList | 短信模板 | 无限制 | 否 | Array |
hangUpCause | 未接通原因 | 20 | 否 | String |
hangUpCauseCode | 未接通原因Code | 2 | 否 | Number |
relayDisplayNum | 中继外显号 | 255 | 否 | String |
dialogueRound | 对话轮次 | 10 | 否 | Number |
hitIntent | 命中意图 | 255 | 否 | String |
agentName | 人工坐席姓名 | 255 | 否 | String |
agentNumber | 人工坐席号码 | 255 | 否 | String |
phoneArea | 号码归属地 | 100 | 是 | String |
phoneIsp | 运营商 中国电信/中国联通/中国移动/其他 |
255 | 是 | String |
callDetailText | 对话文本 | 无限制 | 否 | Object |
hangUpTypeName | 挂断方(主叫挂断、被叫挂断) | 255 | 否 | String |
callDetailText对象字段说明:
字段名 | 含义 | 长度 | 类型 |
---|---|---|---|
role | 说话者角色(robot:机器人,customer:用户) | 255 | String |
saying | 说话者的⽂本内容 | 500 | String |
不同类型的话单数据示例如下:
已接通话单
xxxxxxxxxx
{
"listParams": [
{
"id": null,
"unikey": null,
"relayDisplayNum": "8878",
"phone": "157****1884",
"taskId": 112173,
"callId": "64350c95d2781a035ca7c81a",
"hungUpTime": "2023-04-11 15:31:02",
"callTime": "2023-04-11 15:30:29",
"aiCallStatus": 7,
"callDuration": 15,
"recordFileUrl": "https://release.records.ai-ym.com/session/14050c95d2781a035ca7c81b",
"clueCategory": "Q",
"clueCategoryCode": 17,
"clueCategoryName": "Q类(无意向)",
"humanClueCategory": "F",
"humanClueCategoryCode": 6,
"humanClueCategoryName": "F类(待筛选)",
"smsIsSend": 0,
"dialogTemplateId": 1673,
"smsTemplateIdList": null,
"hangUpCause": "已接通",
"hangUpCauseCode": 0,
"robotType": 1,
"agentUserAccount": null,
"callLineId": 391,
"tenantId": 7305,
"callNums": 1,
"dialogueRound": 1,
"hitIntent": "",
"phoneArea": "江苏/扬州",
"phoneIsp": "中国移动",
"callConnectTime": "2023-04-11 15:30:48",
"callDetailText": null,
"hangUpTypeName":"被叫挂断"
}
]
}
未接通话单
xxxxxxxxxx
{
"listParams": [
{
"id": null,
"unikey": null,
"relayDisplayNum": "8878",
"phone": "157****1881",
"taskId": 112173,
"callId": "64350c95d2781a035ca7c819",
"hungUpTime": "2023-04-11 15:30:50",
"callTime": "2023-04-11 15:30:29",
"aiCallStatus": 4,
"callDuration": 0,
"recordFileUrl": "",
"clueCategory": "R",
"clueCategoryCode": 18,
"clueCategoryName": "R类(未接通)",
"humanClueCategory": "R",
"humanClueCategoryCode": 18,
"humanClueCategoryName": "R类(未接通)",
"smsIsSend": 0,
"dialogTemplateId": 1673,
"smsTemplateIdList": null,
"hangUpCause": "无法接通",
"hangUpCauseCode": 7,
"robotType": 1,
"agentUserAccount": null,
"callLineId": 391,
"tenantId": 7305,
"callNums": 1,
"dialogueRound": null,
"hitIntent": null,
"callConnectTime": null,
"callDetailText": null,
"hangUpTypeName": null
}
]
}
黑名单拦截话单
xxxxxxxxxx
{
"listParams": [
{
"id": null,
"unikey": "15_abc_101501885_54912",
"relayDisplayNum": "12345677006",
"phone": "155****1885",
"taskId": 112162,
"callId": null,
"hungUpTime": null,
"callTime": null,
"aiCallStatus": 100,
"callDuration": 0,
"recordFileUrl": "",
"clueCategory": "空",
"clueCategoryCode": 0,
"clueCategoryName": null,
"humanClueCategory": "",
"humanClueCategoryCode": 0,
"humanClueCategoryName": null,
"smsIsSend": 0,
"dialogTemplateId": 1946,
"smsTemplateIdList": null,
"hangUpCause": "黑名单拦截",
"hangUpCauseCode": 12,
"robotType": 1,
"agentUserAccount": null,
"callLineId": null,
"tenantId": 7368,
"callNums": 0,
"dialogueRound": null,
"hitIntent": null,
"callConnectTime": null,
"callDetailText": null,
"hangUpTypeName": null
}
]
}
外呼拦截话单
xxxxxxxxxx
{
"listParams": [
{
"id": null,
"unikey": "15_abc_111501885_64912",
"relayDisplayNum": "12345677006",
"phone": "124****8020",
"taskId": 112164,
"callId": "6434f6bada50b45e9d6b8fe8",
"hungUpTime": "2023-04-11 13:57:13",
"callTime": "2023-04-11 13:57:13",
"aiCallStatus": 100,
"callDuration": 0,
"recordFileUrl": "",
"clueCategory": "空",
"clueCategoryCode": 0,
"clueCategoryName": null,
"humanClueCategory": "",
"humanClueCategoryCode": 0,
"humanClueCategoryName": null,
"smsIsSend": 0,
"dialogTemplateId": 1946,
"smsTemplateIdList": null,
"hangUpCause": "外呼拦截",
"hangUpCauseCode": 11,
"robotType": 1,
"agentUserAccount": null,
"callLineId": 561,
"tenantId": 7368,
"callNums": 0,
"dialogueRound": null,
"hitIntent": null,
"callConnectTime": null,
"callDetailText": null,
"hangUpTypeName":null
}
]
}
接通秒挂话单
xxxxxxxxxx
{
"listParams": [
{
"id": null,
"unikey": "15_abc_101501995_54912",
"relayDisplayNum": "12345678912",
"phone": "155****3001",
"taskId": 112165,
"callId": "1234fbddd2781a035ca7c7cf",
"hungUpTime": "2023-04-11 14:19:09",
"callTime": "2023-04-11 14:19:09",
"aiCallStatus": 7,
"callDuration": 1,
"recordFileUrl": null,
"clueCategory": "F",
"clueCategoryCode": 6,
"clueCategoryName": "F类(待筛选)",
"humanClueCategory": "F",
"humanClueCategoryCode": 6,
"humanClueCategoryName": "F类(待筛选)",
"smsIsSend": 0,
"dialogTemplateId": 1673,
"smsTemplateIdList": null,
"hangUpCause": "已接通",
"hangUpCauseCode": 0,
"robotType": 1,
"agentUserAccount": null,
"callLineId": 401,
"tenantId": 7305,
"callNums": 1,
"dialogueRound": 0,
"hitIntent": null,
"callConnectTime": "2023-04-11 14:19:09",
"callDetailText": null,
"hangUpTypeName":"被叫挂断"
}
]
}
外呼任务触发短信的短信状态回执。时效性取决于短信运营商通道情况,但在30分钟内未能得到运营商反馈的投递结果,一鸣开放平台会推送“未知”状态的短信回执。若后续运营商返回该条短信的发送结果,会推送最新的投递状态。
推送功能由运营人员在管理后台配置开启。详细请咨询运营人员。
请求地址:客户侧提供接口地址
请求方法:POST
参数以请求体形式传输,字段如下:
字段名 | 含义 | 长度 | 是否必须 | 类型 |
---|---|---|---|---|
id | 短信ID | 255 | 是 | String |
tenantId | 企业ID | 20 | 是 | Number |
taskId | 任务ID | 20 | 是 | Number |
unikey | 数据标识 | 255 | 否 | String |
phone | 手机号 | 255 | 是 | String |
status | 投递状态 0:成功,1: 失败,2:未知 |
20 | 是 | Number |
content | 短信内容 | 255 | 是 | String |
channel | 短信通道名称 | 255 | 是 | String |
phoneArea | 号码归属地 | 100 | 是 | String |
phoneIsp | 运营商 中国电信/中国联通/中国移动/其他 |
255 | 是 | String |
sendTime | 短信发送时间(格式 yyyy-MM-dd HH:mm:ss) | 50 | 是 | String |
reportTime | 短信状态返回时间(格式 yyyy-MM-dd HH:mm:ss) | 50 | 否 | String |
推送参数格式:
xxxxxxxxxx
{
"msgParams":[
{
"id":191718,
"tenantId":7305,
"taskId":76329,
"phone":"15580001013",
"status":"0",
"content":"【迪卡侬_节点短信】9日0点折上85折起限量开抢,前300名付款送飞盘,积分限量兑50元券,戳 c.tb.cn/c.0I7x5 。回T退",
"channel":"mock_sms",
"phoneIsp":"中国联通",
"unikey":"24_15580001013_54912",
"phoneArea":"湖南/长沙",
"sendTime":"2024-07-05 09:40:18",
"reportTime":"2024-07-05 14:34:18"
}
]
}
错误码 | 描述 |
---|---|
9999 | 系统错误 |
4001 | 操作失败 |
4002 | 无效参数 |
4003 | 该任务已被删除 |
4004 | 机器人模板为空 |
4005 | 可用并发数超过限制 |
4006 | AI坐席默认数量为空,请联系运营人员处理 |
4007 | AI坐席已过期,请联系运营人员处理 |
4008 | 草稿状态的话术模板不可使用,请联系运营人员处理 |
4009 | 当前账户线路余额不足,请联系运营人员处理 |
4010 | 请等待上一步操作处理完成 |
4011 | 请等待线索导入完成 |
4012 | 任务尚未完成,不能进行呼损操作的处理 |
4013 | 任务的AI坐席尚未释放完成,不能进行呼损操作的处理 |
4014 | 无可呼损的线索数据 |
4015 | 线路ID不存在 |
4016 | 当前时间非租户工作时间,请修改任务的工作时间 |
4017 | 当前时间非租户工作时间,任务已启动,将于下一个工作时间自动呼出 |
4021 | 黑名单列表为空 |
4022 | 每次导入的黑名单不能超过4万 |
4023 | 缺少黑名单组Id |
4024 | 黑名单组不存在 |
意向分类Code | 意向分类描述 |
---|---|
1 | A |
2 | B |
3 | C |
4 | D |
5 | E |
6 | F |
7 | G |
8 | H |
9 | I |
10 | J |
11 | K |
12 | L |
13 | M |
14 | N |
15 | O |
16 | P |
17 | Q |
18 | R |
19 | S |
20 | T |
21 | U |
22 | V |
23 | W |
24 | X |
25 | Y |
26 | Z |
27 | AA |
28 | BB |
29 | CC |
30 | DD |
31 | EE |
32 | FF |
33 | GG |
34 | HH |
35 | II |
36 | JJ |
37 | KK |
38 | LL |
39 | MM |
40 | NN |
41 | OO |
42 | PP |
43 | |
44 | RR |
45 | SS |
46 | TT |
47 | UU |
48 | VV |
49 | WW |
50 | XX |
51 | YY |
52 | ZZ |