通用鉴权
请求地址
https://ccps.s4.udesk.cn/api/v1/ads/external/{relative address}?{URL params}&Email={email}&AppId={appId}&Timestamp={timestamp}&Token={token}
其中括号包含的部分含义如下:
变量 |
说明 |
relative address: 接口相对地址 |
API的相对URL |
URL params: URL参数 |
请求接口所需参数 |
email: 用户邮箱 |
用户邮箱 |
appId: 租户appId |
租户appId; 获取方式:系统管理->系统设置->系统信息 |
secret: 租户secret |
租户secret; 获取方式:系统管理->系统设置->系统信息 |
timestamp: 时间戳 |
发起请求时的时间戳,'1970-01-01 00:00:00'至今的秒数。如无特别说明,默认过期时间五分钟 |
token: 签名 |
身份认证签名,除非特别说明,否则每次API请求均需要附加此参数,详细生成算法请查阅鉴权方法 |
鉴权方法
appId:18a58d6d-2b4e-44de-5725-31b9e5dbb4b4
secret:secret-37a4123c-538f-4b91-69c1-3fd15500c9b2
timestamp:1496631984
HmacUtils hmacUtils = new HmacUtils(HmacAlgorithms.HMAC_SHA_1, "secret-37a4123c-538f-4b91-69c1-3fd15500c9b2");
hmacUtils.hmacHex("18a58d6d-2b4e-44de-5725-31b9e5dbb4b4"+"1496631984")
-> 6d9faaab002f49b2a9b8c634279a7e29414ea1cb
请求URL:
https://ccps.s4.udesk.cn/api/v1/ads/external/callTasks?AppId=18a58d6d-2b4e-44de-5725-31b9e5dbb4b4&Timestamp=1496631984&Token=6d9faaab002f49b2a9b8c634279a7e29414ea1cb
接口说明
导入联系人说明:
-
使用联系人列表及对应导入号码,则通过编辑外呼任务把号码关联到任务中
-
使用默认联系人列表及对应导入号码,则直接导入到对应的任务中
线上域名说明:
- 文档中样例的域名为 demo.udesk.cn,实际对接时需要根据开通租户的区域使用不同的域名,具体域名可联系租户开通人员
创建外呼任务接口
请求地址
- POST /api/v1/ads/external/callTasks/ai
请求参数
参数 |
类型 |
是否可空 |
描述 |
Email |
String |
true |
邮箱 |
AppId |
String |
false |
租户appId |
Timestamp |
Long |
false |
时间戳(例:当前秒数,1533092860) |
Token |
String |
false |
签名:身份认证签名(见通用鉴权说明) |
name |
String |
false |
任务名称 |
remark |
String |
true |
描述 |
callTemplateId |
int |
false |
外呼模板 |
robotDefId |
int |
false |
外呼机器人定义id |
spnumberType |
int |
false |
主叫号码类型(1中继号2号码池) |
spnumberValue |
int |
false |
主叫号码值 |
startMode |
int |
false |
启动方式(1手动2定时3周期启动) |
startTime |
date |
true |
启动时间(定时使用yyyy-MM-dd HH:mm:ss) |
workTimeId |
int |
false |
工作时间 |
priority |
int |
false |
任务优先级 |
controlOptionList |
Array |
true |
任务选项(枚举整型数组,1无联系人自动停止) |
ivrMode |
int |
true |
IVR模式(0关1开) |
callType |
int |
true |
外呼模式(0:AI外呼 1:预测模式 3:精准模式 6:精准ivr 7:纯ivr 8:AI预测式外呼) |
concurrentLimit |
int |
false |
任务并发数 |
dialParam |
Object |
true |
拨号设置参数 |
dialParam.optimizeParam |
int |
true |
优化参数(1座席利用率2放弃通话率3座席平均等待时长) |
dialParam.optimizeTarget |
int |
true |
优化目标 |
callPriorityMode |
int |
true |
呼叫优先模式,0-重呼优先,1-首呼优先 |
redialSceneList |
Array |
true |
重试选项 |
redialSceneList[].type |
int |
false |
呼叫结果类型(1呼叫失败 2呼叫无效 3标签) |
redialSceneList[].result |
String |
true |
呼叫结果(关机,空号,停机,占线,用户拒接,无法接通,暂停服务,用户正忙,拨号方式不正确,呼入限制,呼叫转移失败,网络忙,无人接听,欠费,无法接听,改号,线路故障,稍后再拨,其他) |
redialSceneList[].dealOption |
int |
false |
处理方式(1重拨) |
redialSceneList[].redialTimes |
int |
true |
重试次数 |
redialSceneList[].redialGuide |
int |
true |
时间间隔(分钟) |
redialSceneList[].guideIncrement |
int |
true |
间隔增量(分钟) |
redialSceneList[].nextDeal |
int |
true |
后续处理(1联系人下一电话) |
taskContactBatchRelList |
Array |
true |
联系人清单 |
taskContactBatchRelList[].contactBatchId |
int |
true |
联系人列表id |
taskContactBatchRelList[].callWeight |
int |
true |
呼叫权重 |
响应参数
参数 |
类型 |
是否可空 |
描述 |
succeed |
boolean |
false |
处理标识(暂不使用) |
code |
String |
false |
返回码 |
bizCode |
String |
false |
业务码(暂不使用) |
message |
String |
false |
返回消息 |
visible |
boolean |
false |
是否可见(暂不使用) |
data |
Object |
true |
结果 |
data.id |
int |
false |
任务id |
data.name |
String |
false |
任务名称 |
data.remark |
String |
true |
描述 |
data.callTemplateId |
int |
false |
外呼模板 |
data.robotDefId |
int |
false |
外呼机器人定义id |
data.ivrId |
int |
true |
ivr id |
data.queueId |
int |
true |
队列值 |
data.spnumberType |
int |
false |
主叫号码类型(1中继号2号码池) |
data.spnumberValue |
int |
false |
主叫号码值 |
data.startMode |
int |
false |
启动方式(1手动2定时3周期启动) |
data.startTime |
date |
true |
启动时间(定时使用yyyy-MM-dd HH:mm:ss) |
data.expireTime |
date |
true |
任务过期时间 |
data.validDuration |
int |
true |
通话有效性时长阈值 |
data.workTimeId |
int |
false |
工作时间 |
data.priority |
int |
false |
任务优先级 |
data.controlOption |
String |
false |
任务优先级 |
data.controlOptionList |
Array |
true |
任务选项(枚举整型数组,1无联系人自动停止) |
data.resetOption |
int |
true |
重置选项 |
data.status |
int |
true |
任务状态 |
data.totalCount |
int |
true |
客户数 |
data.execCount |
int |
true |
已执行客户数 |
data.customerConnectCount |
int |
true |
客户接听 |
data.agentConnectCount |
int |
true |
坐席接听 |
data.retryCount |
int |
true |
尝试次数 |
data.numberFilter |
int |
true |
号码过滤 |
data.numberFilterList |
Array |
true |
暂不使用 |
data.ivrMode |
int |
false |
IVR模式(0关1开) |
data.callType |
int |
false |
外呼模式(0:AI外呼 1:预测模式 3:精准模式 6:精准ivr 7:纯ivr 8:AI预测式外呼) |
data.concurrentLimit |
int |
false |
任务并发数 |
data.createdUserId |
String |
true |
创建人id |
data.updatedUserId |
String |
true |
最后更新人id |
data.createdAt |
String |
true |
创建时间 |
data.contactBatchIds |
String |
true |
联系人ids |
data.contactBatchIdList |
Array |
true |
暂不使用 |
data.taskContactBatchRelList |
Array |
true |
联系人信息 |
data.taskContactBatchRelList[].callTaskId |
int |
true |
外呼任务id |
data.taskContactBatchRelList[].contactBatchId |
int |
true |
联系人列表id |
data.taskContactBatchRelList[].contactBatchName |
String |
true |
联系人列表名称 |
data.taskContactBatchRelList[].callWeight |
int |
true |
权重 |
data.taskContactBatchRelList[].status |
int |
true |
状态 |
data.taskContactBatchRelList[].importStatus |
int |
true |
导入状态(1等待2导入中3已导入) |
data.taskContactBatchRelList[].totalCount |
int |
true |
客户数 |
data.taskContactBatchRelList[].execCount |
int |
true |
已执行客户数 |
data.taskContactBatchRelList[].customerConnectCount |
int |
true |
客户接听 |
data.taskContactBatchRelList[].agentConnectCount |
int |
true |
坐席接听 |
data.taskContactBatchRelList[].retryCount |
int |
true |
尝试次数 |
data.taskContactBatchRelList[].createdUserId |
String |
true |
创建人id |
data.taskContactBatchRelList[].updatedUserId |
String |
true |
最后更新人id |
data.taskContactBatchRelList[].deleteFlag |
int |
true |
删除标志(0未删除1已删除) |
data.redialSceneJson |
String |
true |
重呼选项 |
data.callTemplate |
Objcet |
true |
外呼模板 |
data.callTemplate.name |
String |
true |
名称 |
data.callTemplate.remark |
String |
true |
备注 |
data.callTemplate.numberFilter |
String |
true |
号码过滤 |
data.callTemplate.numberFilterList |
Array |
true |
暂不使用 |
data.callTemplate.ivrMode |
int |
true |
IVR模式:0关1开 |
data.callTemplate.callType |
int |
true |
外呼模式(0:AI外呼 1:预测模式 3:精准模式 6:精准ivr 7:纯ivr 8:AI预测式外呼) |
data.callTemplate.dialParamJson |
String |
true |
暂不使用 |
data.callTemplate.dialParam |
Object |
true |
暂不使用 |
data.callTemplate.dialParam.optimizeParam |
int |
true |
暂不使用 |
data.callTemplate.dialParam.optimizeTarget |
int |
true |
暂不使用 |
data.callTemplate.dialParam.callInDurationAverage |
int |
true |
暂不使用 |
data.callTemplate.dialParam.callOutDurationAverage |
int |
true |
暂不使用 |
data.callTemplate.dialParam.callInPerHour |
int |
true |
暂不使用 |
data.callTemplate.dialParam.callPerMinute |
int |
true |
暂不使用 |
data.callTemplate.dialParam.longDurationIgnore |
int |
true |
暂不使用 |
data.callTemplate.concurrentLimit |
int |
true |
任务并发数 |
data.callTemplate.createdUserId |
String |
true |
最后更新人id |
data.callTemplate.updatedUserId |
String |
true |
创建人id |
data.callTemplate.deleteFlag |
int |
true |
删除标志(0未删除1已删除) |
data.callTemplate.redialSceneJson |
String |
true |
重呼选项 |
data.callTemplate.category |
int |
true |
类别(1自动外呼2AI) |
data.callTemplate.ivrId |
int |
true |
ivrId |
data.callTemplate.queueId |
int |
true |
队列ID |
data.callTemplate.spnumberType |
int |
true |
主叫号码类型 |
data.callTemplate.spnumberValue |
int |
true |
主叫号码值 |
data.callTemplate.startMode |
int |
true |
主叫号码值 |
data.callTemplate.startTime |
date |
true |
启动时间 |
data.callTemplate.expireTime |
date |
true |
任务过期时间 |
data.callTemplate.workTimeId |
int |
true |
工作时间 |
data.callTemplate.validDuration |
int |
true |
通话有效性时长阈值 |
data.callTemplate.maxRingSeconds |
int |
true |
最大振铃时长阈值 |
data.callTemplate.robotDefId |
int |
true |
暂不使用 |
data.momentLimit |
int |
true |
暂不使用 |
data.operatorCreateName |
String |
true |
操作创建人 |
data.category |
int |
true |
类别(1自动外呼2AI) |
data.dialParam |
Object |
true |
拨号设置参数 |
data.dialParam.optimizeParam |
int |
true |
优化参数(1座席利用率2放弃通话率3座席平均等待时长) |
data.dialParam.optimizeTarget |
int |
true |
优化目标 |
data.redialSceneList |
Array |
true |
重试选项 |
data.redialSceneList[].type |
int |
true |
呼叫结果类型(1呼叫无效2呼叫失败3标签) |
data.redialSceneList[].result |
String |
true |
呼叫结果(关机,空号,停机,占线,用户拒接,无法接通,暂停服务,用户正忙,拨号方式不正确,呼入限制,呼叫转移失败,网络忙,无人接听,欠费,无法接听,改号,线路故障,稍后再拨,其他) |
data.redialSceneList[].valid |
int |
true |
是否有效(默认为无效-2) |
data.redialSceneList[].labelInfos |
Array |
true |
标签 |
data.redialSceneList[].dealOption |
int |
false |
处理方式(1重拨) |
data.redialSceneList[].redialTimes |
int |
true |
重试次数 |
data.redialSceneList[].redialGuide |
int |
true |
时间间隔(分钟) |
data.redialSceneList[].guideIncrement |
int |
true |
间隔增量(分钟) |
data.redialSceneList[].nextDeal |
int |
true |
后续处理(1联系人下一电话) |
data.taskContactBatchRelList |
Array |
true |
联系人清单 |
data.taskContactBatchRelList[].contactBatchId |
int |
true |
联系人列表id |
data.taskContactBatchRelList[].callWeight |
int |
true |
呼叫权重 |
请求示例
$ curl 'https://demo.udesk.cn/api/v1/ads/external/callTasks/ai?AppId=18a58d6d-2b4e-44de-5725-31b9e5dbb4b4&Timestamp=1496631984&Token=6d9faaab002f49b2a9b8c634279a7e29414ea1cb' -i -X POST -H 'Content-Type: application/json' -d '{
"name":"测试拨号1",
"remark":"测试拨号",
"callTemplateId":5,
"robotDefId":300001,
"spnumberType":1,
"spnumberValue":72,
"startMode":1,
"startTime":null,
"workTimeId":31,
"priority":1,
"controlOptionList":[
1
],
"ivrMode":1,
"callType":0,
"concurrentLimit":1,
"dialParam":{
"optimizeParam":1,
"optimizeTarget":1
},
"redialSceneList":[
{
"result":"用户拒接",
"dealOption":1,
"redialTimes":1,
"redialGuide":1,
"guideIncrement":1,
"nextDeal":1
}
],
"taskContactBatchRelList":[
{
"callWeight":100,
"contactBatchId":3
}
]
}'
响应示例
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 522
{
"succeed":true,
"code":200,
"bizCode":"000000",
"message":"OK",
"visible":false,
"data":{
"id":80,
"name":"测试拨号1",
"remark":"测试拨号",
"callTemplateId":5,
"robotDefId":300001,
"spnumberType":1,
"spnumberValue":72,
"startMode":1,
"startTime":null,
"workTimeId":31,
"priority":1,
"controlOption":"1",
"controlOptionList":[
1
],
"status":1,
"ivrMode":1,
"callType":0,
"dialParam":{
"optimizeParam":1,
"optimizeTarget":1
},
"concurrentLimit":1,
"taskContactBatchRelList":[
{
"contactBatchId":3,
"callWeight":100
}
],
"redialSceneList":[
{
"result":"用户拒接",
"dealOption":1,
"redialTimes":1,
"redialGuide":1,
"guideIncrement":1,
"nextDeal":1
}
]
}
}
编辑外呼任务接口
请求地址
- PUT /api/v1/ads/external/callTasks/{id}
请求参数
参数 |
类型 |
是否可空 |
描述 |
Email |
String |
true |
邮箱 |
AppId |
String |
false |
租户appId |
Timestamp |
Long |
false |
时间戳(例:当前秒数,1533092860) |
Token |
String |
false |
签名:身份认证签名(见通用鉴权说明) |
id |
int |
false |
任务id |
name |
String |
true |
任务名称 |
remark |
String |
true |
描述 |
spnumberType |
int |
false |
主叫号码类型(1中继号2号码池) |
spnumberValue |
int |
true |
主叫号码值 |
callType |
int |
false |
外呼模式(0:AI外呼 1:预测模式 3:精准模式 6:精准ivr 7:纯ivr 8:AI预测式外呼) |
workTimeId |
int |
true |
工作时间 |
priority |
int |
true |
任务优先级 |
controlOptionList |
Array |
true |
任务选项(枚举整型数组,1无联系人自动停止) |
concurrentLimit |
int |
true |
任务并发数 |
taskContactBatchRelList |
Array |
true |
联系人清单 |
taskContactBatchRelList[].contactBatchId |
int |
true |
联系人列表id |
taskContactBatchRelList[].callWeight |
int |
true |
呼叫权重 |
响应参数
参数 |
类型 |
是否可空 |
描述 |
succeed |
boolean |
false |
处理标识(暂不使用) |
code |
String |
false |
返回码 |
bizCode |
String |
false |
业务码(暂不使用) |
message |
String |
false |
返回消息 |
visible |
boolean |
false |
是否可见(暂不使用) |
data |
Object |
true |
结果 |
data.id |
int |
false |
任务id |
data.name |
String |
false |
任务名称 |
data.remark |
String |
true |
描述 |
data.callTemplateId |
int |
false |
外呼模板 |
data.robotDefId |
int |
false |
外呼机器人定义id |
data.ivrId |
int |
true |
ivr id |
data.queueId |
int |
true |
队列值 |
data.spnumberType |
int |
false |
主叫号码类型(1中继号2号码池) |
data.spnumberValue |
int |
false |
主叫号码值 |
data.startMode |
int |
false |
启动方式(1手动2定时3周期启动) |
data.startTime |
date |
true |
启动时间(定时使用yyyy-MM-dd HH:mm:ss) |
data.expireTime |
date |
true |
任务过期时间 |
data.validDuration |
int |
true |
通话有效性时长阈值 |
data.workTimeId |
int |
false |
工作时间 |
data.priority |
int |
false |
任务优先级 |
data.controlOption |
String |
false |
任务优先级 |
data.controlOptionList |
Array |
true |
任务选项(枚举整型数组,1无联系人自动停止) |
data.resetOption |
int |
true |
重置选项 |
data.status |
int |
true |
任务状态 |
data.totalCount |
int |
true |
客户数 |
data.execCount |
int |
true |
已执行客户数 |
data.customerConnectCount |
int |
true |
客户接听 |
data.agentConnectCount |
int |
true |
坐席接听 |
data.retryCount |
int |
true |
尝试次数 |
data.numberFilter |
int |
true |
号码过滤 |
data.numberFilterList |
Array |
true |
暂不使用 |
data.ivrMode |
int |
false |
IVR模式(0关1开) |
data.callType |
int |
false |
外呼模式(0:AI外呼 1:预测模式 3:精准模式 6:精准ivr 7:纯ivr 8:AI预测式外呼) |
data.concurrentLimit |
int |
false |
任务并发数 |
data.createdUserId |
String |
true |
创建人id |
data.updatedUserId |
String |
true |
最后更新人id |
data.createdAt |
String |
true |
创建时间 |
data.contactBatchIds |
String |
true |
联系人ids |
data.contactBatchIdList |
Array |
true |
暂不使用 |
data.taskContactBatchRelList |
Array |
true |
联系人信息 |
data.taskContactBatchRelList[].callTaskId |
int |
true |
外呼任务id |
data.taskContactBatchRelList[].contactBatchId |
int |
true |
联系人列表id |
data.taskContactBatchRelList[].contactBatchName |
String |
true |
联系人列表名称 |
data.taskContactBatchRelList[].callWeight |
int |
true |
权重 |
data.taskContactBatchRelList[].status |
int |
true |
状态 |
data.taskContactBatchRelList[].importStatus |
int |
true |
导入状态(1等待2导入中3已导入) |
data.taskContactBatchRelList[].totalCount |
int |
true |
客户数 |
data.taskContactBatchRelList[].execCount |
int |
true |
已执行客户数 |
data.taskContactBatchRelList[].customerConnectCount |
int |
true |
客户接听 |
data.taskContactBatchRelList[].agentConnectCount |
int |
true |
坐席接听 |
data.taskContactBatchRelList[].retryCount |
int |
true |
尝试次数 |
data.taskContactBatchRelList[].createdUserId |
String |
true |
创建人id |
data.taskContactBatchRelList[].updatedUserId |
String |
true |
最后更新人id |
data.taskContactBatchRelList[].deleteFlag |
int |
true |
删除标志(0未删除1已删除) |
data.redialSceneJson |
String |
true |
重呼选项 |
data.callTemplate |
Objcet |
true |
外呼模板 |
data.callTemplate.name |
String |
true |
名称 |
data.callTemplate.remark |
String |
true |
备注 |
data.callTemplate.numberFilter |
String |
true |
号码过滤 |
data.callTemplate.numberFilterList |
Array |
true |
暂不使用 |
data.callTemplate.ivrMode |
int |
true |
IVR模式:0关1开 |
data.callTemplate.callType |
int |
true |
外呼模式(0:AI外呼 1:预测模式 3:精准模式 6:精准ivr 7:纯ivr 8:AI预测式外呼) |
data.callTemplate.dialParamJson |
String |
true |
暂不使用 |
data.callTemplate.dialParam |
Object |
true |
暂不使用 |
data.callTemplate.dialParam.optimizeParam |
int |
true |
暂不使用 |
data.callTemplate.dialParam.optimizeTarget |
int |
true |
暂不使用 |
data.callTemplate.dialParam.callInDurationAverage |
int |
true |
暂不使用 |
data.callTemplate.dialParam.callOutDurationAverage |
int |
true |
暂不使用 |
data.callTemplate.dialParam.callInPerHour |
int |
true |
暂不使用 |
data.callTemplate.dialParam.callPerMinute |
int |
true |
暂不使用 |
data.callTemplate.dialParam.longDurationIgnore |
int |
true |
暂不使用 |
data.callTemplate.concurrentLimit |
int |
true |
任务并发数 |
data.callTemplate.createdUserId |
String |
true |
最后更新人id |
data.callTemplate.updatedUserId |
String |
true |
创建人id |
data.callTemplate.deleteFlag |
int |
true |
删除标志(0未删除1已删除) |
data.callTemplate.redialSceneJson |
String |
true |
重呼选项 |
data.callTemplate.category |
int |
true |
类别(1自动外呼2AI) |
data.callTemplate.ivrId |
int |
true |
ivrId |
data.callTemplate.queueId |
int |
true |
队列ID |
data.callTemplate.spnumberType |
int |
true |
主叫号码类型 |
data.callTemplate.spnumberValue |
int |
true |
主叫号码值 |
data.callTemplate.startMode |
int |
true |
主叫号码值 |
data.callTemplate.startTime |
date |
true |
启动时间 |
data.callTemplate.expireTime |
date |
true |
任务过期时间 |
data.callTemplate.workTimeId |
int |
true |
工作时间 |
data.callTemplate.validDuration |
int |
true |
通话有效性时长阈值 |
data.callTemplate.maxRingSeconds |
int |
true |
最大振铃时长阈值 |
data.callTemplate.robotDefId |
int |
true |
暂不使用 |
data.momentLimit |
int |
true |
暂不使用 |
data.operatorCreateName |
String |
true |
操作创建人 |
data.category |
int |
true |
类别(1自动外呼2AI) |
data.dialParam |
Object |
true |
拨号设置参数 |
data.dialParam.optimizeParam |
int |
true |
优化参数(1座席利用率2放弃通话率3座席平均等待时长) |
data.dialParam.optimizeTarget |
int |
true |
优化目标 |
data.redialSceneList |
Array |
true |
重试选项 |
data.redialSceneList[].type |
int |
true |
呼叫结果类型(1呼叫无效2呼叫失败3标签) |
data.redialSceneList[].result |
String |
true |
呼叫结果(关机,空号,停机,占线,用户拒接,无法接通,暂停服务,用户正忙,拨号方式不正确,呼入限制,呼叫转移失败,网络忙,无人接听,欠费,无法接听,改号,线路故障,稍后再拨,其他) |
data.redialSceneList[].dealOption |
int |
false |
处理方式(1重拨) |
data.redialSceneList[].redialTimes |
int |
true |
重试次数 |
data.redialSceneList[].redialGuide |
int |
true |
时间间隔(分钟) |
data.redialSceneList[].guideIncrement |
int |
true |
间隔增量(分钟) |
data.redialSceneList[].nextDeal |
int |
true |
后续处理(1联系人下一电话) |
data.taskContactBatchRelList |
Array |
true |
联系人清单 |
data.taskContactBatchRelList[].contactBatchId |
int |
true |
联系人列表id |
data.taskContactBatchRelList[].callWeight |
int |
true |
呼叫权重 |
请求示例
$ curl 'https://demo.udesk.cn/api/v1/ads/external/callTasks/80?AppId=18a58d6d-2b4e-44de-5725-31b9e5dbb4b4&Timestamp=1496631984&Token=6d9faaab002f49b2a9b8c634279a7e29414ea1cb' -i -X PUT -H 'Content-Type: application/json' -d '{
"name":"测试拨号1",
"remark":"测试拨号",获取指定callId详情
"spnumberType":1,
"spnumberValue":72,
"workTimeId":31,
"priority":1,
"controlOptionList":[
1
],
"concurrentLimit":1,
"taskContactBatchRelList":[
{
"callWeight":100,
"contactBatchId":3
}
]
}'
响应示例
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 522
{
"succeed":true,
"code":200,
"bizCode":"000000",
"message":"OK",
"visible":false,
"data":{
"id":80,
"name":"测试拨号1",
"remark":"测试拨号",
"callTemplateId":5,
"robotDefId":300001,
"spnumberType":1,
"spnumberValue":72,
"startMode":1,
"startTime":null,
"workTimeId":31,
"priority":1,
"controlOption":"1",
"controlOptionList":[
1
],
"status":1,
"ivrMode":1,
"callType":0,
"dialParam":{
"optimizeParam":1,
"optimizeTarget":1
},
"concurrentLimit":1,
"taskContactBatchRelList":[
{
"contactBatchId":3,
"callWeight":100
}
],
"redialSceneList":[
{
"result":"用户拒接",
"dealOption":1,
"redialTimes":1,
"redialGuide":1,
"guideIncrement":1,
"nextDeal":1
}
]
}
}
启动外呼任务接口
请求地址
- PUT /api/v1/ads/external/callTasks/status/{id}/executing
请求参数
参数 |
类型 |
是否可空 |
描述 |
Email |
String |
true |
邮箱 |
AppId |
String |
false |
租户appId |
Timestamp |
Long |
false |
时间戳(例:当前秒数,1533092860) |
Token |
String |
false |
签名:身份认证签名(见通用鉴权说明) |
id |
int |
false |
任务id |
响应参数
参数 |
类型 |
是否可空 |
描述 |
succeed |
boolean |
false |
处理标识(暂不使用) |
code |
String |
false |
返回码 |
bizCode |
String |
false |
业务码(暂不使用) |
message |
String |
false |
返回消息 |
visible |
boolean |
false |
是否可见(暂不使用) |
请求示例
$ curl 'https://demo.udesk.cn/api/v1/ads/external/callTasks/status/1/executing?AppId=18a58d6d-2b4e-44de-5725-31b9e5dbb4b4&Timestamp=1496631984&Token=6d9faaab002f49b2a9b8c634279a7e29414ea1cb' -i -X PUT -H 'Content-Type: application/json'
响应示例
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 522
{
"succeed":true,
"code":200,
"bizCode":"000000",
"message":"OK",
"visible":false
}
暂停外呼任务接口
请求地址
- PUT /api/v1/ads/external/callTasks/status/{id}/pause
请求参数
参数 |
类型 |
是否可空 |
描述 |
Email |
String |
true |
邮箱 |
AppId |
String |
false |
租户appId |
Timestamp |
Long |
false |
时间戳(例:当前秒数,1533092860) |
Token |
String |
false |
签名:身份认证签名(见通用鉴权说明) |
id |
int |
false |
任务id |
响应参数
参数 |
类型 |
是否可空 |
描述 |
succeed |
boolean |
false |
处理标识(暂不使用) |
code |
String |
false |
返回码 |
bizCode |
String |
false |
业务码(暂不使用) |
message |
String |
false |
返回消息 |
visible |
boolean |
false |
是否可见(暂不使用) |
请求示例
$ curl 'https://demo.udesk.cn/api/v1/ads/external/callTasks/status/1/pause?AppId=18a58d6d-2b4e-44de-5725-31b9e5dbb4b4&Timestamp=1496631984&Token=6d9faaab002f49b2a9b8c634279a7e29414ea1cb' -i -X PUT -H 'Content-Type: application/json'
响应示例
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 522
{
"succeed":true,
"code":200,
"bizCode":"000000",
"message":"OK",
"visible":false
}
停止外呼任务接口
请求地址
- PUT /api/v1/ads/external/callTasks/status/{id}/stop
请求参数
参数 |
类型 |
是否可空 |
描述 |
Email |
String |
true |
邮箱 |
AppId |
String |
false |
租户appId |
Timestamp |
Long |
false |
时间戳(例:当前秒数,1533092860) |
Token |
String |
false |
签名:身份认证签名(见通用鉴权说明) |
id |
int |
false |
任务id |
响应参数
参数 |
类型 |
是否可空 |
描述 |
succeed |
boolean |
false |
处理标识(暂不使用) |
code |
String |
false |
返回码 |
bizCode |
String |
false |
业务码(暂不使用) |
message |
String |
false |
返回消息 |
visible |
boolean |
false |
是否可见(暂不使用) |
请求示例
$ curl 'https://demo.udesk.cn/api/v1/ads/external/callTasks/status/1/stop?AppId=18a58d6d-2b4e-44de-5725-31b9e5dbb4b4&Timestamp=1496631984&Token=6d9faaab002f49b2a9b8c634279a7e29414ea1cb' -i -X PUT -H 'Content-Type: application/json'
响应示例
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 522
{
"succeed":true,
"code":200,
"bizCode":"000000",
"message":"OK",
"visible":false
}
创建AI默认联系人列表接口
请求地址
- POST /api/v1/ads/external/contactBatchs/defaultContact
请求参数
参数 |
类型 |
是否可空 |
描述 |
Email |
String |
true |
邮箱 |
AppId |
String |
false |
租户appId |
Timestamp |
Long |
false |
时间戳(例:当前秒数,1533092860) |
Token |
String |
false |
签名:身份认证签名(见通用鉴权说明) |
callTaskId |
int |
false |
外呼任务id |
name |
String |
false |
联系人列表名称 |
remark |
String |
true |
备注 |
focus |
String |
true |
标签 |
响应参数
参数 |
类型 |
是否可空 |
描述 |
succeed |
boolean |
false |
处理标识(暂不使用) |
code |
String |
false |
返回码 |
bizCode |
String |
false |
业务码(暂不使用) |
message |
String |
false |
返回消息 |
visible |
boolean |
false |
是否可见(暂不使用) |
data |
Object |
true |
结果 |
data.id |
int |
false |
联系人列表id |
data.callTaskId |
int |
false |
外呼任务id |
data.name |
String |
false |
联系人列表名称 |
data.remark |
String |
true |
备注 |
data.focus |
String |
true |
标签 |
data.status |
int |
false |
状态(1等待2导入中3完成) |
请求示例
$ curl 'https://demo.udesk.cn/api/v1/ads/external/contactBatchs/defaultContact?AppId=18a58d6d-2b4e-44de-5725-31b9e5dbb4b4&Timestamp=1496631984&Token=6d9faaab002f49b2a9b8c634279a7e29414ea1cb' -i -X POST -H 'Content-Type: application/json' -d '{
"callTaskId":1,
"name":"测试拨号1",
"remark":"测试拨号",
"focus":"标签"
}'
响应示例
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 522
{
"succeed":true,
"code":200,
"bizCode":"000000",
"message":"OK",
"visible":false,
"data":{
"id":80,
"callTaskId":1,
"name":"测试拨号1",
"remark":"测试拨号",
"focus":"标签",
"status":3
}
}
导入联系人号码接口(单次上限50条)
请求地址
- POST /api/v1/ads/external/contactBatchs/syncNumber
请求参数
参数 |
类型 |
是否可空 |
描述 |
Email |
String |
true |
邮箱 |
AppId |
String |
false |
租户appId |
Timestamp |
Long |
false |
时间戳(例:当前秒数,1533092860) |
Token |
String |
false |
签名:身份认证签名(见通用鉴权说明) |
contactBatchId |
int |
false |
联系人列表id |
dealType |
int |
true |
重复处理类型(1不查重 2当前任务) |
startTaskFlag |
int |
true |
是否导入完成后开启外呼任务 1: 开启 0:不开启 |
encryptionFlag |
int |
false |
是否加密(1-是 0-否) |
algorithmType |
int |
true |
加密类型(1 aes 2 des) |
secretKey |
String |
true |
加密密钥 |
encryptionRange |
Array |
true |
加密字段(["name","mobile"]) |
numberList |
Array |
false |
号码列表 |
numberList[].name |
String |
true |
联系人名称 |
numberList[].mobile |
String |
false |
手机号,电话号码(固话格式:02186391234,即区号+固话号码,不需要特殊字符分隔区号和固话号码;手机号格式:18812345678) |
numberList[].companyName |
String |
true |
公司 |
numberList[].remark |
String |
true |
备注 |
numberList[].variates |
Array |
true |
自定义变量(格式:[{"key":"weather","type":"string","value":"北京"}]) |
响应参数
参数 |
类型 |
是否可空 |
描述 |
succeed |
boolean |
false |
处理标识(暂不使用) |
code |
String |
false |
返回码 |
bizCode |
String |
false |
业务码(暂不使用) |
message |
String |
false |
返回消息 |
visible |
boolean |
false |
是否可见(暂不使用) |
data |
Object |
true |
结果 |
data.contactBatchId |
int |
false |
联系人列表id |
data.successCount |
int |
false |
成功导入的号码数量 |
data.failedCount |
int |
false |
导入失败的号码数量 |
data.dealType |
int |
false |
重复处理类型 |
data.failedNumberList |
Array |
true |
导入失败的号码数组 |
data.encryptionFlag |
int |
false |
是否加密 |
data.algorithmType |
int |
true |
加密类型 |
data.secretKey |
String |
true |
加密密钥 |
data.encryptionRange |
Array |
true |
加密字段 |
data.failedNumberList[].name |
String |
true |
姓名 |
data.failedNumberList[].mobile |
String |
true |
号码 |
data.failedNumberList[].companyName |
String |
true |
公司 |
data.failedNumberList[].remark |
String |
true |
备注 |
data.failedNumberList[].variates |
Array |
true |
自定义变量(格式:[{"key":"天气","type":"string","value":"北京"}]) |
data.failedNumberList[].failedReason |
String |
true |
失败原因 |
请求示例
$ curl 'https://demo.udesk.cn/api/v1/ads/external/contactBatchs/syncNumber?AppId=18a58d6d-2b4e-44de-5725-31b9e5dbb4b4&Timestamp=1496631984&Token=6d9faaab002f49b2a9b8c634279a7e29414ea1cb' -i -X POST -H 'Content-Type: application/json' -d '{
"contactBatchId":1,
"dealType": 1,
"encryptionFlag": 1,
"algorithmType": 1,
"secretKey": "MTIzNDU2",
"encryptionRange": ["name,mobile"],
"numberList":[
{
"name":"测试1",
"mobile":"13900000000",
"companyName":"测试公司1",
"remark":"备注1",
"variates":[{"key":"天气","type":"string","value":"北京"}]
},
{
"name":"测试2",
"mobile":"1390000001",
"companyName":"测试公司2",
"remark":"备注2",
"variates":[{"key":"天气","type":"string","value":"北京"}]
}
]
}'
响应示例
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 522
{
"succeed":true,
"code":200,
"bizCode":"000000",
"message":"OK",
"visible":false,
"data":{
"contactBatchId":1,
"successCount":1,
"failedCount":1,
"failedNumberList":[
{
"name":"测试2",
"mobile":"1390000001",
"companyName":"测试公司2",
"remark":"备注2",
"variates":[{"key":"天气","type":"string","value":"北京"}]
"failedReason":"号码无效"
}
]
}
}
创建外呼任务接口(简版)
请求地址
- POST /v1/ads/callTasks/simply
请求参数
参数 |
类型 |
是否可空 |
描述 |
name |
String |
false |
任务名称 |
callTemplateId |
int |
false |
任务模版ID |
priority |
int |
false |
任务优先级 |
startMode |
int |
false |
启动方式 (1:手动启动、2:定时启动、3:周期启动) |
startTime |
String |
true |
启动时间(定时启动时必填) 格式:"yyyy-MM-dd HH:mm:ss" |
startDate |
String |
true |
启动日期(周期启动时必填) 格式:"yyyy-MM-dd HH:mm:ss" |
endDate |
String |
true |
结束日期(周期启动时必填) 格式:"yyyy-MM-dd" |
startTimePoint |
String |
true |
启动时间点(周期启动时必填) 格式:"HH:mm:ss" |
expireTime |
String |
true |
任务结束时间 格式:"yyyy-MM-dd HH:mm:ss" |
dealType |
String |
true |
重复处理类型 (1:不查重、2:当前任务) |
remark |
String |
true |
备注 |
controlOption |
int |
true |
任务选项 1: 无联系人自动停止,其他值无联系人不自动停止 |
响应参数
参数 |
类型 |
是否可空 |
描述 |
succeed |
boolean |
false |
处理标识(暂不使用) |
code |
String |
false |
返回码 |
bizCode |
String |
false |
业务码(暂不使用) |
message |
String |
false |
返回消息 |
visible |
boolean |
false |
是否可见(暂不使用) |
data |
Object |
true |
结果 |
data.taskId |
Long |
false |
任务id |
data.contactBatchId |
Long |
false |
联系人列表id |
请求示例
$ curl 'https://demo.udesk.cn/api/v1/ads/callTasks/simply?AppId=18a58d6d-2b4e-44de-5725-31b9e5dbb4b4&Timestamp=1496631984&Token=6d9faaab002f49b2a9b8c634279a7e29414ea1cb' -i -X POST -H 'Content-Type: application/json' -d '{
"callTemplateId": 148,
"name": "测试任务",
"startMode": 2,
"startTime": "2022-07-20 00:00:00",
"priority": 2,
"expireTime": "2022-07-21 23:59:59",
"remark": "测试任务",
"controlOption":"1"
}'
响应示例
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 522
{
"succeed": true,
"code": 200,
"bizCode": "000000",
"message": "OK",
"visible": false,
"data": {
"taskId": 102321,
"contactBatchId": 562
}
}
查询外呼任务列表(基础版)
请求地址
- POST /v1/ads/external/callTasks/basicSearch
请求参数
参数 |
类型 |
是否可空 |
描述 |
pageNum |
int |
true |
页码 |
pageSize |
int |
true |
每页条数,默认20 |
name |
String |
true |
任务名称 |
status |
int |
true |
任务状态(1:已暂停 2:运行中 3:已停止 4:暂停中 5:停止中 6:已过期) |
category |
int |
true |
任务类别(1:普通自动外呼 2:AI自动外呼) |
响应参数
参数 |
类型 |
是否可空 |
描述 |
succeed |
boolean |
false |
处理标识(暂不使用) |
code |
String |
false |
返回码 |
bizCode |
String |
false |
业务码(暂不使用) |
message |
String |
false |
返回消息 |
visible |
boolean |
false |
是否可见(暂不使用) |
paging |
object |
false |
分页信息 |
paging.pageNum |
Int |
false |
页码 |
paging.pageSize |
Int |
false |
每页行数 |
paging.total |
Int |
false |
数据总数 |
data |
Array |
false |
结果,查询结果为空时为空数组 |
data.id |
Long |
false |
任务id |
data.name |
String |
false |
任务名称 |
data.callTemplateId |
Long |
false |
模板ID |
data.callTemplateName |
String |
false |
模板名称 |
data.category |
int |
false |
任务类别(1:普通自动外呼 2:AI自动外呼) |
data.callType |
int |
false |
外呼模式(0:AI外呼 1:预测模式 3:精准模式 6:精准ivr 7:纯ivr 8:AI预测式外呼) |
data.ivrId |
Long |
true |
外呼IVR ID |
data.queueId |
Long |
true |
外呼队列 ID |
data.robotDefId |
Long |
true |
话术ID |
data.status |
int |
false |
任务状态(1:已暂停 2:运行中 3:已停止 4:暂停中 5:停止中 6:已过期) |
请求示例
$ curl 'https://demo.udesk.cn/api/v1/ads/external/callTasks/basicSearch?AppId=18a58d6d-2b4e-44de-5725-31b9e5dbb4b4&Timestamp=1496631984&Token=6d9faaab002f49b2a9b8c634279a7e29414ea1cb' -i -X POST -H 'Content-Type: application/json' -d '{
"pageNum":1,
"pageSize":1,
"status": 1,
"name": "外呼任务",
"category": 2
}'
响应示例
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 522
{
"succeed": true,
"code": 200,
"bizCode": "000000",
"message": "OK",
"visible": false,
"paging": {
"pageNum": 1,
"pageSize": 1,
"total": 1
},
"data": [
{
"id": 1158,
"name": "外呼任务测试",
"callTemplateId": 204,
"callTemplateName": "外呼模板",
"category": 2,
"callType": 0,
"ivrId": null,
"queueId": null,
"robotDefId": 10,
"status": 1
}
]
}
外呼任务状态查询接口
请求地址
- GET /v1/ads/external/callTasks/{id}/status
请求参数
参数 |
类型 |
是否可空 |
描述 |
id |
Long |
false |
任务id(路径参数 ) |
响应参数
参数 |
类型 |
是否可空 |
描述 |
succeed |
boolean |
false |
处理标识(暂不使用) |
code |
String |
false |
返回码 |
bizCode |
String |
false |
业务码(暂不使用) |
message |
String |
false |
返回消息 |
visible |
boolean |
false |
是否可见(暂不使用) |
data |
Object |
true |
结果,查询无数据是,data 为空 |
data.name |
String |
false |
任务名称 |
data.status |
int |
false |
任务状态(1:已暂停 2:运行中 3:已停止 4:暂停中 5:停止中 6:已过期) |
请求示例
$ curl 'https://demo.udesk.cn/api/v1/ads/external/callTasks/1/status?AppId=18a58d6d-2b4e-44de-5725-31b9e5dbb4b4&Timestamp=1496631984&Token=6d9faaab002f49b2a9b8c634279a7e29414ea1cb'
响应示例
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 522
{
"succeed": true,
"code": 200,
"bizCode": "000000",
"message": "OK",
"visible": false,
"data": {
"name": "外呼任务测试",
"status": 1
}
}