CCPaaS应用侧API
公共信息
通用说明
1. 接口规范
1.1 请求格式
Base URL
https://{host}/{Type}/{version}/{api}?Timestamp={Timestamp}&AppId={AppId}&Token={Token}
- host:api 域名
- Type:api
- version:api版本,当前为 v1
- api:具体见 api uri
- Timestamp: UTC时间戳,精确到秒
- AppId:用于指明操作哪个APP,UUID字符串, 除创建APP外都应包含
- Token: 根据鉴权方式计算出的鉴权Token,参考章节2计算
HTTP Header
- 
Accept: "application/json"
- 
Content-Type: "application/json;charset=utf-8"
HTTP METHOD
- 
GET(SELECT):从服务器取出资源(一项或多项)。 
- 
POST(CREATE):在服务器新建一个资源。 
- 
PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源)。 
- 
PATCH(UPDATE):在服务器更新资源(客户端提供改变的属性)。 
- 
DELETE(DELETE):从服务器删除资源。 
HTTP Status Code
- 
200 OK - [GET]:服务器成功返回用户请求的数据,该操作是幂等的(Idempotent)。 
- 
201 CREATED - [POST/PUT/PATCH]:用户新建或修改数据成功。 
- 
202 Accepted - []:表示一个请求已经进入后台排队(异步任务) 
- 
204 NO CONTENT - [DELETE]:用户删除数据成功。 
- 
400 INVALID REQUEST - [POST/PUT/PATCH]:用户发出的请求有错误,服务器没有进行新建或修改数据的操作,该操作是幂等的。 
- 
401 Unauthorized - []:表示用户没有权限(令牌、用户名、密码错误)。 
- 
403 Forbidden - [] 表示用户得到授权(与401错误相对),但是访问是被禁止的。 
- 
404 NOT FOUND - []:用户发出的请求针对的是不存在的记录,服务器没有进行操作,该操作是幂等的。 
- 
406 Not Acceptable - [GET]:用户请求的格式不可得(比如用户请求JSON格式,但是只有XML格式)。 
- 
410 Gone -[GET]:用户请求的资源被永久删除,且不会再得到的。 
- 
422 Unprocesable entity - [POST/PUT/PATCH] 当创建一个对象时,发生一个验证错误。 
- 
500 INTERNAL SERVER ERROR - [*]:服务器发生错误,用户将无法判断发出的请求是否成功。 
1.2 返回格式
通用
- 返回为采用 UTF-8 编码的 JSON 格式
- 响应码参见 HTTP Status Code
正确返回格式
{
    "succeed":true,
    "code":200,
    "bizCode":"000000",
    "message":"OK",
    "visible":false,
    "data":{
        //数据
    }
}
异常返回格式
{
    "succeed":true,
    "code":401,
    "bizCode":"000000",
    "message":"error info",  //异常信息
    "visible":false,
    "data":{
         //数据
    }
}
2 鉴权方法
鉴权参数说明
| 参数名称 | 是否必须 | 备注 | 
|---|---|---|
| AppId | 是 | 租户id | 
| Timestamp | 是 | UTC时间戳,精确到秒 | 
| Token | 是 | 鉴权签名,5分钟内有效 | 
Token 使用 HMAC-SHA1算法 进行加密获取,其中待加密的消息使用AppId 和Timestamp相加获得,加密使用的Secret需要联系管理员获取。
- 
待加密消息 : 租户id + 时间戳 例如: a54a8b77-f12d-4ac9-742d-5b2bef5c4d111612513422, 其中 a54a8b77-f12d-4ac9-742d-5b2bef5c4d11为租户id,1612513422为时间戳
- 
加密Secret : 联系管理员获取 
备注: 所有接口调用需要携带签名参数 Token,只有当 Token 值合法时请求才会被接受
示例
假设要调用以下接口:
https://demo.udesk.cn/api/v1/petitions/search
鉴权所需数据如下:
| 名称 | 数据 | 
|---|---|
| AppId | a54a8b77-f12d-4ac9-742d-5b2bef5c4d11 | 
| Timestamp | 1612513422 | 
| Secret | secret-1234567890abc | 
计算Token (java示例代码)
HmacUtils hmacUtils = new HmacUtils(HmacAlgorithms.HMAC_SHA_1, "secret-1234567890abc");
hmacUtils.hmacHex("a54a8b77-f12d-4ac9-742d-5b2bef5c4d11"+"1612513422")
-> Token: e44a3e72aa3bd8cb903f72eacd4126682d1e7ff7
注意:
- Token生成可参考网址: https://1024tools.com/hmac
- 此请求为自动外呼接口,需增加Email参数鉴权,普通接口不需要此参数
最终请求URL:
https://demo.udesk.cn/api/v1/petitions/search?AppId=a54a8b77-f12d-4ac9-742d-5b2bef5c4d11&Timestamp=1612513422&Token=e44a3e72aa3bd8cb903f72eacd4126682d1e7ff
开放接口
01 创建外呼任务
基本信息
Path: /api/v1/ads/external/callTasks?Email={Email}
Method: POST
接口描述:
概述
新增自动外呼任务
示例
请求
$ curl 'https://demo.udesk.cn/api/v1/ads/external/callTasks?Email=1@test.cn&AppId=1234567890abc&Timestamp=1496631984&Token=4c1947cb3d87743b613f3a4843ae74306529d4fd' -i -X POST -H 'Content-Type: application/json' -d '{
"name":"测试拨号1",
"remark":"测试拨号",
"callTemplateId":5,
"ivrId":1,
"queueId":11,
"spnumberType":1,
"spnumberValue":72,
"startMode":1,
"startTime":null,
"workTimeId":31,
"priority":1,
"controlOptionList":[
    1
],
"ivrMode":0,
"callType":1,
"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,
        "ivrId":1,
        "queueId":11,
        "spnumberType":1,
        "spnumberValue":72,
        "startMode":1,
        "startTime":null,
        "workTimeId":31,
        "priority":1,
        "controlOption":"1",
        "controlOptionList":[
            1
        ],
        "status":1,
        "ivrMode":0,
        "callType":1,
        "dialParam":{
            "optimizeParam":1,
            "optimizeTarget":1
        },
        "concurrentLimit":1,
        "taskContactBatchRelList":[
            {
                "contactBatchId":3,
                "callWeight":100
            }
        ],
        "redialSceneList":[
            {
                "result":"用户拒接",
                "dealOption":1,
                "redialTimes":1,
                "redialGuide":1,
                "guideIncrement":1,
                "nextDeal":1
            }
        ]
    }
}
请求参数
Headers
| 参数名称 | 参数值 | 是否必须 | 示例 | 备注 | 
|---|---|---|---|---|
| Content-Type | application/json | 是 | 
Body
| 名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 | 
|---|---|---|---|---|---|
| name | string | 必须 | 任务名称 | mock: test | |
| remark | string | 非必须 | 描述 | ||
| callTemplateId | number | 必须 | 外呼模板id | mock: 1 | |
| ivrId | number | 非必须 | 外呼IVR id | ||
| queueId | number | 非必须 | 外呼队列id | ||
| spnumberType | number | 必须 | 主叫号码类型(1中继号2号码池) | ||
| spnumberValue | number | 必须 | 主叫号码值 | ||
| startMode | number | 必须 | 启动方式(1手动2定时3周期启动) | ||
| startTime | string | 非必须 | 启动时间(定时使用yyyy-MM-dd HH:mm:ss) | ||
| workTimeId | number | 必须 | 工作时间id | ||
| priority | number | 必须 | 任务优先级 | ||
| controlOptionList | number [] | 非必须 | 任务选项集合 | item 类型: number | |
| ├─ | 非必须 | controlOptionList | |||
| ivrMode | number | 非必须 | IVR模式(0关1开) | ||
| callType | number | 非必须 | 外呼模式(1预测模式3精准模式6精准IVR模式7纯IVR模式) | ||
| concurrentLimit | number | 必须 | 任务并发数 | ||
| dialParam | object | 非必须 | 拨号设置参数 | ||
| ├─ optimizeParam | number | 非必须 | 优化参数(1座席利用率2放弃通话率3座席平均等待时长) | ||
| ├─ optimizeTarget | number | 非必须 | 优化目标 | ||
| redialSceneList | object [] | 非必须 | 重试选项集合 | item 类型: object | |
| ├─ result | string | 非必须 | 呼叫结果(关机,空号,停机,占线,用户拒接,无法接通,暂停服务,用户正忙,拨号方式不正确,呼入限制,呼叫转移失败,网络忙,无人接听,欠费,无法接听,改号,线路故障,稍后再拨,其他) | ||
| ├─ dealOption | number | 必须 | 处理方式(1重拨) | ||
| ├─ redialTimes | number | 非必须 | 重试次数 | ||
| ├─ redialGuide | number | 非必须 | 时间间隔(分钟) | ||
| ├─ guideIncrement | number | 非必须 | 间隔增量(分钟) | ||
| ├─ nextDeal | number | 必须 | 后续处理(1联系人下一电话) | ||
| ├─ type | number | 必须 | 呼叫结果类型(1呼叫无效2呼叫失败3标签) | ||
| taskContactBatchRelList | object [] | 非必须 | 联系单集合 | item 类型: object | |
| ├─ callWeight | number | 非必须 | 呼叫权重 | ||
| ├─ contactBatchId | number | 非必须 | 联系单id | 
返回数据
| 名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 | 
|---|---|---|---|---|---|
| succeed | boolean | 必须 | 成功标识 | ||
| code | number | 必须 | 结果码 | ||
| bizCode | string | 必须 | 业务码(暂不使用) | ||
| message | string | 必须 | 消息 | ||
| visible | boolean | 必须 | 是否可见(暂不使用) | ||
| data | object | 非必须 | 结果 | ||
| ├─ id | number | 必须 | 任务id | ||
| ├─ name | string | 必须 | 任务名称 | ||
| ├─ remark | string | 非必须 | 描述 | ||
| ├─ callTemplateId | number | 必须 | 外呼模板 | ||
| ├─ ivrId | number | 非必须 | 外呼IVRid | ||
| ├─ queueId | number | 非必须 | 外呼队列id | ||
| ├─ spnumberType | number | 必须 | 主叫号码类型(1中继号2号码池) | ||
| ├─ spnumberValue | number | 必须 | 主叫号码值 | ||
| ├─ startMode | number | 必须 | 启动方式(1手动2定时3周期启动) | ||
| ├─ startTime | null | 非必须 | 启动时间(定时使用yyyy-MM-dd HH:mm:ss) | ||
| ├─ workTimeId | number | 必须 | 工作时间id | ||
| ├─ priority | number | 必须 | 任务优先级 | ||
| ├─ controlOption | string | 非必须 | 任务选项 | ||
| ├─ controlOptionList | number [] | 非必须 | 任务选项(枚举整型数组,1无联系人自动停止) | item 类型: number | |
| ├─ | 非必须 | 任务选项枚举值 | |||
| ├─ status | number | 必须 | 1 已暂停 2 运行中 3 已停止 4 暂停中 5 停止中 | ||
| ├─ ivrMode | number | 必须 | IVR模式(0关1开) | ||
| ├─ callType | number | 必须 | 外呼模式(1预测模式3精准模式6精准IVR模式7纯IVR模式) | ||
| ├─ dialParam | object | 非必须 | 拨号设置参数 | ||
| ├─ optimizeParam | number | 非必须 | 优化参数(1座席利用率2放弃通话率3座席平均等待时长) | ||
| ├─ optimizeTarget | number | 非必须 | 优化目标 | ||
| ├─ concurrentLimit | number | 非必须 | 任务并发数 | ||
| ├─ taskContactBatchRelList | object [] | 非必须 | 联系单集合 | item 类型: object | |
| ├─ contactBatchId | number | 非必须 | 联系单id | ||
| ├─ callWeight | number | 非必须 | 呼叫权重 | ||
| ├─ redialSceneList | object [] | 非必须 | 重试选项集合 | item 类型: object | |
| ├─ result | string | 非必须 | 呼叫结果(关机,空号,停机,占线,用户拒接,无法接通,暂停服务,用户正忙,拨号方式不正确,呼入限制,呼叫转移失败,网络忙,无人接听,欠费,无法接听,改号,线路故障,稍后再拨,其他) | ||
| ├─ dealOption | number | 必须 | 处理方式(1重拨) | ||
| ├─ redialTimes | number | 非必须 | 重试次数 | ||
| ├─ redialGuide | number | 非必须 | 时间间隔(分钟) | ||
| ├─ guideIncrement | number | 非必须 | 间隔增量(分钟) | ||
| ├─ nextDeal | number | 非必须 | 后续处理(1联系人下一电话) | ||
| ├─ type | string | 非必须 | 呼叫结果类型(1呼叫无效2呼叫失败3标签) | ||
| ├─ valid | string | 非必须 | 是否有效(默认为无效-2) | ||
| ├─ labelInfos | string [] | 非必须 | 标签 | item 类型: string | |
| ├─ | 非必须 | 
02 编辑外呼任务
基本信息
Path: /api/v1/ads/external/callTasks/{id}
Method: PUT
接口描述:
概述
修改自动外呼任务数据
示例
请求
$ curl 'https://demo.udesk.cn/api/v1/ads/external/callTasks/80?Email=1@test.cn&AppId=1234567890abc&Timestamp=1496631984&Token=4c1947cb3d87743b613f3a4843ae74306529d4fd' -i -X PUT -H 'Content-Type: application/json' -d '{
"name":"测试拨号1",
"remark":"测试拨号",
"callTemplateId":5,
"ivrId":1,
"queueId":11,
"spnumberType":1,
"spnumberValue":72,
"startMode":1,
"startTime":null,
"workTimeId":31,
"priority":1,
"controlOptionList":[
    1
],
"ivrMode":0,
"callType":1,
"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,
        "ivrId":1,
        "queueId":11,
        "spnumberType":1,
        "spnumberValue":72,
        "startMode":1,
        "startTime":null,
        "workTimeId":31,
        "priority":1,
        "controlOption":"1",
        "controlOptionList":[
            1
        ],
        "status":1,
        "ivrMode":0,
        "callType":1,
        "dialParam":{
            "optimizeParam":1,
            "optimizeTarget":1
        },
        "concurrentLimit":1,
        "taskContactBatchRelList":[
            {
                "contactBatchId":3,
                "callWeight":100
            }
        ],
        "redialSceneList":[
            {
                "result":"用户拒接",
                "dealOption":1,
                "redialTimes":1,
                "redialGuide":1,
                "guideIncrement":1,
                "nextDeal":1
            }
        ]
    }
}
请求参数
Headers
| 参数名称 | 参数值 | 是否必须 | 示例 | 备注 | 
|---|---|---|---|---|
| Content-Type | application/json | 是 | 
路径参数
| 参数名称 | 示例 | 备注 | 
|---|---|---|
| id | 1 | 任务id | 
Body
| 名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 | 
|---|---|---|---|---|---|
| name | string | 非必须 | 任务名称 | mock: test | |
| remark | string | 非必须 | 描述 | ||
| callTemplateId | number | 非必须 | 外呼模板id | mock: 1 | |
| ivrId | number | 非必须 | 外呼IVR id | ||
| queueId | number | 非必须 | 外呼队列id | ||
| spnumberType | number | 必须 | 主叫号码类型(1中继号2号码池) | ||
| spnumberValue | number | 非必须 | 主叫号码值 | ||
| startMode | number | 非必须 | 启动方式(1手动2定时3周期启动) | ||
| startTime | string | 非必须 | 启动时间(定时使用yyyy-MM-dd HH:mm:ss) | ||
| workTimeId | number | 非必须 | 工作时间id | ||
| priority | number | 非必须 | 任务优先级 | ||
| controlOptionList | number [] | 非必须 | 任务选项集合 | item 类型: number | |
| ├─ | 非必须 | controlOptionList | |||
| ivrMode | number | 非必须 | IVR模式(0关1开) | ||
| callType | number | 必须 | 外呼模式(1预测模式3精准模式6精准IVR模式7纯IVR模式) | ||
| concurrentLimit | number | 非必须 | 任务并发数 | ||
| dialParam | object | 非必须 | 拨号设置参数 | ||
| ├─ optimizeParam | number | 非必须 | 优化参数(1座席利用率2放弃通话率3座席平均等待时长) | ||
| ├─ optimizeTarget | number | 非必须 | 优化目标 | ||
| redialSceneList | object [] | 非必须 | 重试选项集合 | item 类型: object | |
| ├─ result | string | 非必须 | 呼叫结果(关机,空号,停机,占线,用户拒接,无法接通,暂停服务,用户正忙,拨号方式不正确,呼入限制,呼叫转移失败,网络忙,无人接听,欠费,无法接听,改号,线路故障,稍后再拨,其他) | ||
| ├─ dealOption | number | 非必须 | 处理方式(1重拨) | ||
| ├─ redialTimes | number | 非必须 | 重试次数 | ||
| ├─ redialGuide | number | 非必须 | 时间间隔(分钟) | ||
| ├─ guideIncrement | number | 非必须 | 间隔增量(分钟) | ||
| ├─ nextDeal | number | 非必须 | 后续处理(1联系人下一电话) | ||
| ├─ type | string | 非必须 | 呼叫结果类型(1呼叫无效2呼叫失败3标签) | ||
| taskContactBatchRelList | object [] | 非必须 | 联系单集合 | item 类型: object | |
| ├─ callWeight | number | 非必须 | 呼叫权重 | ||
| ├─ contactBatchId | number | 必须 | 联系单id | 
返回数据
| 名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 | 
|---|---|---|---|---|---|
| succeed | boolean | 必须 | 成功标识 | ||
| code | number | 必须 | 结果码 | ||
| bizCode | string | 必须 | 业务码(暂不使用) | ||
| message | string | 必须 | 消息 | ||
| visible | boolean | 必须 | 是否可见(暂不使用) | ||
| data | object | 非必须 | 结果 | ||
| ├─ id | number | 必须 | 任务id | ||
| ├─ name | string | 必须 | 任务名称 | ||
| ├─ remark | string | 非必须 | 描述 | ||
| ├─ callTemplateId | number | 必须 | 外呼模板 | ||
| ├─ ivrId | number | 非必须 | 外呼IVRid | ||
| ├─ queueId | number | 非必须 | 外呼队列id | ||
| ├─ spnumberType | number | 必须 | 主叫号码类型(1中继号2号码池) | ||
| ├─ spnumberValue | number | 必须 | 主叫号码值 | ||
| ├─ startMode | number | 必须 | 启动方式(1手动2定时3周期启动) | ||
| ├─ startTime | null | 非必须 | 启动时间(定时使用yyyy-MM-dd HH:mm:ss) | ||
| ├─ workTimeId | number | 必须 | 工作时间id | ||
| ├─ priority | number | 必须 | 任务优先级 | ||
| ├─ controlOption | string | 非必须 | 任务选项 | ||
| ├─ controlOptionList | number [] | 非必须 | 任务选项(枚举整型数组,1无联系人自动停止) | item 类型: number | |
| ├─ | 非必须 | 任务选项枚举值 | |||
| ├─ status | number | 必须 | 1 已暂停 2 运行中 3 已停止 4 暂停中 5 停止中 | ||
| ├─ ivrMode | number | 必须 | IVR模式(0关1开) | ||
| ├─ callType | number | 必须 | 外呼模式(1预测模式3精准模式6精准IVR模式7纯IVR模式) | ||
| ├─ dialParam | object | 非必须 | 拨号设置参数 | ||
| ├─ optimizeParam | number | 非必须 | 优化参数(1座席利用率2放弃通话率3座席平均等待时长) | ||
| ├─ optimizeTarget | number | 非必须 | 优化目标 | ||
| ├─ concurrentLimit | number | 非必须 | 任务并发数 | ||
| ├─ taskContactBatchRelList | object [] | 非必须 | 联系单集合 | item 类型: object | |
| ├─ contactBatchId | number | 非必须 | 联系单id | ||
| ├─ callWeight | number | 非必须 | 呼叫权重 | ||
| ├─ redialSceneList | object [] | 非必须 | 重试选项集合 | item 类型: object | |
| ├─ result | string | 非必须 | 呼叫结果(关机,空号,停机,占线,用户拒接,无法接通,暂停服务,用户正忙,拨号方式不正确,呼入限制,呼叫转移失败,网络忙,无人接听,欠费,无法接听,改号,线路故障,稍后再拨,其他) | ||
| ├─ dealOption | number | 必须 | 处理方式(1重拨) | ||
| ├─ redialTimes | number | 非必须 | 重试次数 | ||
| ├─ redialGuide | number | 非必须 | 时间间隔(分钟) | ||
| ├─ guideIncrement | number | 非必须 | 间隔增量(分钟) | ||
| ├─ nextDeal | number | 非必须 | 后续处理(1联系人下一电话) | 
03 启动外呼任务
基本信息
Path: /api/v1/ads/external/callTasks/status/{id}/executing
Method: PUT
接口描述:
概述
启动外呼任务
示例
请求
$ curl 'https://demo.udesk.cn/api/v1/ads/external/callTasks/status/1/executing?Email=1@test.cn&AppId=1234567890abc&Timestamp=1496631984&Token=4c1947cb3d87743b613f3a4843ae74306529d4fd' -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
}
请求参数
Headers
| 参数名称 | 参数值 | 是否必须 | 示例 | 备注 | 
|---|---|---|---|---|
| Content-Type | application/x-www-form-urlencoded | 是 | 
路径参数
| 参数名称 | 示例 | 备注 | 
|---|---|---|
| id | 1 | 任务id | 
返回数据
| 名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 | 
|---|---|---|---|---|---|
| succeed | boolean | 必须 | 成功标识 | ||
| code | number | 必须 | 结果码 | ||
| bizCode | string | 必须 | 业务码(暂不使用) | ||
| message | string | 必须 | 消息 | ||
| visible | boolean | 必须 | 是否可见(暂不使用) | 
04 暂停外呼任务
基本信息
Path: /api/v1/ads/external/callTasks/status/{id}/pause
Method: PUT
接口描述:
概述
暂停外呼任务
示例
请求
$ curl 'https://demo.udesk.cn/api/v1/ads/external/callTasks/status/1/pause?Email=1@test.cn&AppId=1234567890abc&Timestamp=1496631984&Token=4c1947cb3d87743b613f3a4843ae74306529d4fd' -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
}
请求参数
Headers
| 参数名称 | 参数值 | 是否必须 | 示例 | 备注 | 
|---|---|---|---|---|
| Content-Type | application/x-www-form-urlencoded | 是 | 
路径参数
| 参数名称 | 示例 | 备注 | 
|---|---|---|
| id | 1 | 任务id | 
返回数据
| 名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 | 
|---|---|---|---|---|---|
| succeed | boolean | 必须 | 成功标识 | ||
| code | number | 必须 | 结果码 | ||
| bizCode | string | 必须 | 业务码(暂不使用) | ||
| message | string | 必须 | 消息 | ||
| visible | boolean | 必须 | 是否可见(暂不使用) | 
05 停止外呼任务
基本信息
Path: /api/v1/ads/external/callTasks/status/{id}/stop
Method: PUT
接口描述:
概述
停止外呼任务
示例
请求
$ curl 'https://demo.udesk.cn/api/v1/ads/external/callTasks/status/1/stop?Email=1@test.cn&AppId=1234567890abc&Timestamp=1496631984&Token=4c1947cb3d87743b613f3a4843ae74306529d4fd' -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
}
请求参数
Headers
| 参数名称 | 参数值 | 是否必须 | 示例 | 备注 | 
|---|---|---|---|---|
| Content-Type | application/x-www-form-urlencoded | 是 | 
路径参数
| 参数名称 | 示例 | 备注 | 
|---|---|---|
| id | 1 | 任务id | 
返回数据
| 名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 | 
|---|---|---|---|---|---|
| succeed | boolean | 必须 | 成功标识 | ||
| code | number | 必须 | 结果码 | ||
| bizCode | string | 必须 | 业务码(暂不使用) | ||
| message | string | 必须 | 消息 | ||
| visible | boolean | 必须 | 是否可见(暂不使用) | 
06 创建联系单
基本信息
Path: /api/v1/ads/external/contactBatchs
Method: POST
接口描述:
概述
创建联系单
示例
请求
$ curl 'https://demo.udesk.cn/api/v1/ads/external/contactBatchs?Email=1@test.cn&AppId=1234567890abc&Timestamp=1496631984&Token=4c1947cb3d87743b613f3a4843ae74306529d4fd' -i -X POST -H 'Content-Type: application/json' -d '{
"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,
        "name":"测试拨号1",
        "remark":"测试拨号",
        "focus":"标签",
        "status":3
    }
}
请求参数
Headers
| 参数名称 | 参数值 | 是否必须 | 示例 | 备注 | 
|---|---|---|---|---|
| Content-Type | application/json | 是 | ||
| Body | 
| 名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 | 
|---|---|---|---|---|---|
| name | string | 必须 | 联系单名称 | ||
| remark | string | 非必须 | 备注 | ||
| focus | string | 非必须 | 标签 | ||
| callTaskId | string | 必须 | 外呼任务id | 
返回数据
| 名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 | 
|---|---|---|---|---|---|
| succeed | boolean | 必须 | 成功标识 | ||
| code | number | 必须 | 结果码 | ||
| bizCode | string | 必须 | 业务码(暂不使用) | ||
| message | string | 必须 | 消息 | ||
| visible | boolean | 必须 | 是否可见(暂不使用) | ||
| data | object | 非必须 | 结果 | ||
| ├─ id | string | 必须 | 联系单id | ||
| ├─ name | string | 必须 | 联系单名称 | ||
| ├─ remark | string | 非必须 | 备注 | ||
| ├─ focus | string | 非必须 | 标签 | ||
| ├─ status | string | 必须 | 状态(1等待2导入中3完成) | 
07 导入联系人号码
基本信息
Path: /api/v1/ads/external/contactBatchs/syncNumber
Method: POST
接口描述:
概述
导入联系人号码接口(单次上限50条)
示例
请求
$ curl 'https://demo.udesk.cn/api/v1/ads/external/contactBatchs/syncNumber?Email=1@test.cn&AppId=1234567890abc&Timestamp=1496631984&Token=4c1947cb3d87743b613f3a4843ae74306529d4fd' -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":"号码无效"
           }
       ]
    }
}
请求参数
Headers
| 参数名称 | 参数值 | 是否必须 | 示例 | 备注 | 
|---|---|---|---|---|
| Content-Type | application/json | 是 | 
Body
| 名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 | 
|---|---|---|---|---|---|
| contactBatchId | number | 必须 | 联系单id | ||
| dealType | number | 非必须 | 重复处理类型(1不查重 2当前任务) | ||
| encryptionFlag | number | 必须 | 0 | 是否加密(1 是 0 否) | |
| algorithmType | number | 非必须 | 加密算法(1 AES,2 DES) | ||
| secretKey | string | 非必须 | 加密密钥(需要base64加密) | ||
| encryptionRange | list | 非必须 | 加密字段 | ||
| numberList | object [] | 必须 | 号码列表集合 | item 类型: object | |
| ├─ name | string | 必须 | 联系人名称 | ||
| ├─ mobile | string | 必须 | 手机号 | ||
| ├─ companyName | string | 非必须 | 公司 | ||
| ├─ remark | string | 非必须 | 备注 | ||
| ├─ variates | object [] | 非必须 | 自定义变量 | item 类型: object | |
| ├─ key | string | 非必须 | 变量 | ||
| ├─ type | string | 非必须 | 变量类型 | ||
| ├─ value | string | 非必须 | 变量值 | 
返回数据
| 名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 | 
|---|---|---|---|---|---|
| succeed | boolean | 必须 | 成功标识 | ||
| code | number | 必须 | 结果码 | ||
| bizCode | string | 必须 | 业务码(暂不使用) | ||
| message | string | 必须 | 消息 | ||
| visible | boolean | 必须 | 是否可见(暂不使用) | ||
| data | object | 非必须 | 结果 | ||
| ├─ contactBatchId | number | 必须 | 联系单id | ||
| ├─ successCount | number | 必须 | 成功导入的号码数量 | ||
| ├─ failedCount | number | 必须 | 导入失败的号码数量 | ||
| ├─ failedNumberList | object [] | 非必须 | 导入失败的号码集合 | item 类型: object | |
| ├─ name | string | 非必须 | 姓名 | ||
| ├─ mobile | string | 非必须 | 号码 | ||
| ├─ companyName | string | 非必须 | 公司 | ||
| ├─ remark | string | 非必须 | 备注 | ||
| ├─ variates | string [] | 非必须 | 自定义变量(格式:[{"key":"天气","type":"string","value":"北京"}]) | item 类型: string | |
| ├─ failedReason | string | 非必须 | 失败原因 | ||
| ├─ dealType | number | 非必须 | 重复处理类型(1不查重 2当前任务) | ||
| ├─ encryptionFlag | number | 必须 | 是否加密 | ||
| ├─ algorithmType | number | 非必须 | 加密类型 | ||
| ├─ encryptionRange | list | 非必须 | 加密字段 | ||
| ├─ encryptionField | string | 非必须 | 加密字段 | 
08 通话记录查询
基本信息
Path: /api/v1/petitions/search
Method: POST
接口描述:
概述
通话记录查询,支持时间范围、呼叫类型、callid的查询,其中查询时间范围不能超过7天,时间范围越大查询时间越长,尽量缩短查询范围。
示例
请求
$ curl 'https://demo.udesk.cn/api/v1/petitions/search?AppId=1234567890abc&Timestamp=1496631984&Token=4c1947cb3d87743b613f3a4843ae74306529d4fd' -i -X POST -H 'Content-Type: application/json' -d '{
   "pageNum": 1,
   "pageSize": 1,
   "startTime": "2021-06-26 00:00:28",
   "endTime": "2021-06-26 10:00:28",
   "category": 2,
   "callId": "d44539e0-3d41-4854-83da-d22a0d251304"
}'
响应
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": 16938727,
            "callId": "d44539e0-3d41-4854-83da-d22a0d251304",
            "category": 2,
            "customerNumber": "18710180975",
            "beginAt": "2021-06-26 00:09:28",
            "endAt": "2021-06-26 00:09:51",
            "defeatCause": null,
            "displayNumber": "04536341334",
            "agentName": "测试",
            "customerRingingTime": 0,
            "talkRecord": "https://s4-ccps-pri-std.obs.cn-north-4.myhuaweicloud.com/c055e127-95d0-44f0-7564-5f570d410b68/cc_recordings/20210626000945_d44539e0-3d41-4854-83da-d22a0d251304_a5138e4d-5eec-4d5f-bc1d-6cf9c5a0eacf_18710180975.mp3?AWSAccessKeyId=KNERXMMZRQZ7UHV2OSEN&Expires=1656173390&Signature=Pb%2BSiPvi9GtFvLIm98nyJV0CHZE%3D",
            "outLineNumber": "",
            "talkTime": 5,
            "followUpCall": "无",
            "queueName": "刘勇-队列",
            "queueResult": "排队成功",
            "ringResult": "客服接听",
            "seqRing": "0",
            "outCallRingTime": null,
            "outCallDefeatCause": null,
            "hangupBy": "坐席",
            "callResult": "客服接听",
            "agentInfo": {
                "id": 10001,
                "name": "测试",
                "employeeId": "坐席-001",
                "number": "99674238501001"
            },
            "talkInfo": null,
            "ivrInfo": null,
            "phoneInfo": null,
            "queueInfo": null,
            "surveryList": [
                "已评价-1-12"
            ]
        }
    ]
}
请求参数
Headers
| 参数名称 | 参数值 | 是否必须 | 示例 | 备注 | 
|---|---|---|---|---|
| Content-Type | application/json | 是 | 
Body
| 名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 | 
|---|---|---|---|---|---|
| pageNum | number | 非必须 | 页码 | ||
| pageSize | number | 非必须 | 每页行数 | ||
| startTime | string | 非必须 | 开始时间,例如: 2021-02-24 18:50:00 | ||
| endTime | string | 非必须 | 结束时间, 例如: 2021-02-24 19:50:00 | ||
| category | number | 非必须 | 呼叫类型 1: 呼出 2: 呼入 | ||
| callId | string | 非必须 | 通话唯一标识 | 
返回数据
| 名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 | 
|---|---|---|---|---|---|
| succeed | boolean | 必须 | 成功标识 | ||
| code | number | 必须 | 结果码。200成功 | ||
| bizCode | string | 必须 | bizcode | ||
| message | string | 必须 | 消息 | ||
| visible | boolean | 必须 | visible | ||
| paging | object | 必须 | 页码信息 | ||
| ├─ pageNum | number | 必须 | 页码 | ||
| ├─ pageSize | number | 必须 | 每页行数 | ||
| ├─ total | number | 必须 | 总数 | ||
| data | object [] | 非必须 | 结果数据 | item 类型: object | |
| ├─ id | number | 必须 | 唯一序列 | ||
| ├─ callId | string | 必须 | 通话id | ||
| ├─ category | number | 必须 | 呼叫类型 1: 呼出 2: 呼入 | ||
| ├─ customerNumber | string | 非必须 | 客户电话 | ||
| ├─ beginAt | string | 必须 | 呼叫时间 | ||
| ├─ endAt | string | 必须 | 结束时间 | ||
| ├─ displayNumber | string | 非必须 | 中继号 | ||
| ├─ agentName | string | 非必须 | 坐席名称 | ||
| ├─ customerRingingTime | number | 非必须 | 客户振铃时长 | ||
| ├─ talkRecord | string | 非必须 | 通话录音 | ||
| ├─ outLineNumber | string | 非必须 | 外线号码 | ||
| ├─ talkTime | number | 非必须 | 通话时长s | ||
| ├─ followUpCall | string | 非必须 | 后续通话 | ||
| ├─ queueName | string | 非必须 | 队列名称 | ||
| ├─ queueResult | string | 非必须 | 排队结果 | ||
| ├─ ringResult | string | 非必须 | 振铃结果 | ||
| ├─ seqRing | string | 非必须 | 顺振 | ||
| ├─ outCallRingTime | string | 非必须 | 外呼振铃时长 | ||
| ├─ outCallDefeatCause | string | 非必须 | 外呼失败原因 | ||
| ├─ hangupBy | string | 非必须 | 挂断方 | ||
| ├─ callResult | string | 非必须 | 通话结果 | ||
| ├─ agentInfo | object | 非必须 | 坐席信息 | ||
| ├─ id | number | 非必须 | 坐席id | ||
| ├─ name | string | 非必须 | 坐席名称 | ||
| ├─ employeeId | string | 非必须 | 坐席工号 | ||
| ├─ number | string | 非必须 | 坐席分机 | ||
| ├─ talkInfo | object | 非必须 | 电话信息 | ||
| ├─ beginAt | string | 非必须 | 开始时间 | ||
| ├─ endAt | string | 非必须 | 结束时间 | ||
| ├─ record | string | 非必须 | 记录 | ||
| ├─ talkTime | number | 非必须 | 通话时长 | ||
| ├─ hangupBy | string | 非必须 | 挂断方 | ||
| ├─ numOfAgentHold | number | 非必须 | 坐席保持次数 | ||
| ├─ numOfAgentSilence | string | 非必须 | 坐席静音次数 | ||
| ├─ numOfAgentToIvr | number | 非必须 | 坐席转IVR次数 | ||
| ├─ field_10numOfAgentTransfer | number | 非必须 | 坐席转接次数 | ||
| ├─ numOfAgentAdvisory | number | 非必须 | 坐席咨询次数 | ||
| ├─ numOfAgentThird | number | 非必须 | 坐席三方次数 | ||
| ├─ agentEvents | string [] | 非必须 | 坐席通话中事件 | item 类型: string | |
| ├─ | 非必须 | ||||
| ├─ category | number | 非必须 | 通话类型 | ||
| ├─ ivrInfo | object | 非必须 | IVR信息 | ||
| ├─ record | string | 非必须 | IVR通话记录录音 | ||
| ├─ variables | string [] | 非必须 | IVR变量列表 | item 类型: string | |
| ├─ | 非必须 | ||||
| ├─ viewCallVariablesList | string [] | 非必须 | IVR变量 | item 类型: string | |
| ├─ | 非必须 | ||||
| ├─ lables | string [] | 非必须 | IVR标签列表 | item 类型: string | |
| ├─ | 非必须 | ||||
| ├─ ivrTimes | number | 非必须 | IVR停留时长 | ||
| ├─ process | object [] | 非必须 | ivr事件流程 | item 类型: object | |
| ├─ seq | number | 非必须 | 序号 | ||
| ├─ beginAt | string | 非必须 | 进入时间 | ||
| ├─ endAt | string | 非必须 | 退出时间 | ||
| ├─ ivrName | string | 非必须 | 节点名称 | ||
| ├─ ivrLog | string | 非必须 | 节点日志 | ||
| ├─ phoneInfo | object | 非必须 | 客户电话信息 | ||
| ├─ number | string | 非必须 | 电话号码 | ||
| ├─ province | string | 非必须 | 所属省 | ||
| ├─ city | string | 非必须 | 所属城市 | ||
| ├─ operator | string | 非必须 | 运营商 | ||
| ├─ queueInfo | object | 非必须 | 队列信息 | ||
| ├─ enterQueue | number | 非必须 | 入队节点 | ||
| ├─ enterRule | string | 非必须 | 入队规则 | ||
| ├─ enterEvent | string | 非必须 | 入队事件 | ||
| ├─ repeatCusterRule | string | 非必须 | 回头客规则 | ||
| ├─ queueType | string | 非必须 | 队列类型 | ||
| ├─ queueId | number | 非必须 | 队列ID | ||
| ├─ queueName | string | 非必须 | 队列名称 | ||
| ├─ customerLevel | number | 非必须 | 客户等级 | ||
| ├─ callLevel | number | 非必须 | 呼叫等级 | ||
| ├─ enterAt | string | 非必须 | 入队时间 | ||
| ├─ queueTime | number | 非必须 | 排队时长 | ||
| ├─ assignAt | string | 非必须 | 分配时间 | ||
| ├─ assignRule | string | 非必须 | 分配规则 | ||
| ├─ continuousRingTime | number | 非必须 | 连续振铃时长 | ||
| ├─ lastAgentRingTime | number | 非必须 | 最后坐席振铃时长 | ||
| ├─ numOfSeqRing | number | 非必须 | 顺振次数 | ||
| ├─ seqRingEvent | string | 非必须 | 顺振事件 | ||
| ├─ queueResult | string | 非必须 | 排队结果 | ||
| ├─ ringResult | string | 非必须 | 振铃结果 | ||
| ├─ surveryList | string [] | 非必须 | 满意度调查信息 | item 类型: string | |
| ├─ | 非必须 | ||||
| ├─ messageUrl | string | 非必须 | 留言 | ||
| ├─ adTaskName | string | 非必须 | 自动外呼任务名称 | ||
| ├─ externFlag | string | 非必须 | 是否转外线 | ||
| ├─ validFlag | string | 非必须 | 话有效性(0不做判断1有效2无效) | ||
| ├─ viewCallVariablesList | string [] | 非必须 | IVR变量 | item 类型: string | |
| ├─ | 非必须 | ||||
| ├─ allRecordUrlList | object [] | 非必须 | 全部录音 | item 类型: object | |
| ├─ recordUrl | string | 非必须 | 录音地址 | ||
| ├─ recordType | string | 非必须 | 类型 | ||
| ├─ totalIvrTime | number | 非必须 | ivr总时长 | 
09 通话详情查询
基本信息
Path: /api/v1/petitions/callId
Method: GET
接口描述:
概述
通话记录详情查询
示例
请求
$ curl 'https://demo.udesk.cn/api/v1/petitions/callId?callId=d44539e0-3d41-4854-83da-d22a0d251304&AppId=1234567890abc&Timestamp=1496631984&Token=4c1947cb3d87743b613f3a4843ae74306529d4fd'
响应
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": 16938727,
        "callId": "d44539e0-3d41-4854-83da-d22a0d251304",
        "category": 2,
        "customerNumber": "18710180975",
        "beginAt": "2021-06-26 00:09:28",
        "endAt": "2021-06-26 00:09:51",
        "defeatCause": null,
        "displayNumber": "04536341334",
        "agentName": "测试",
        "customerRingingTime": 0,
        "talkRecord": "https://s4-ccps-pri-std.obs.cn-north-4.myhuaweicloud.com/c055e127-95d0-44f0-7564-5f570d410b68/cc_recordings/20210626000945_d44539e0-3d41-4854-83da-d22a0d251304_a5138e4d-5eec-4d5f-bc1d-6cf9c5a0eacf_18710180975.mp3?AWSAccessKeyId=KNERXMMZRQZ7UHV2OSEN&Expires=1656173390&Signature=Pb%2BSiPvi9GtFvLIm98nyJV0CHZE%3D",
        "outLineNumber": "",
        "talkTime": 5,
        "followUpCall": "无",
        "queueName": "测试-队列",
        "queueResult": "排队成功",
        "ringResult": "客服接听",
        "seqRing": "0",
        "outCallRingTime": null,
        "outCallDefeatCause": null,
        "hangupBy": "坐席",
        "callResult": "客服接听",
        "agentInfo": {
            "id": 781,
            "name": "测试",
            "employeeId": "坐席-001",
            "number": "98674238501001"
        },
        "talkInfo": {
            "beginAt": "2021-06-26 00:09:45",
            "endAt": "2021-06-26 00:09:51",
            "record": "https://s4-ccps-pri-std.obs.cn-north-4.myhuaweicloud.com/c055e127-95d0-44f0-7564-5f570d410b68/cc_recordings/20210626000945_d44539e0-3d41-4854-83da-d22a0d251304_a5138e4d-5eec-4d5f-bc1d-6cf9c5a0eacf_18710180975.mp3?AWSAccessKeyId=KNERXMMZRQZ7UHV2OSEN&Expires=1656173390&Signature=Pb%2BSiPvi9GtFvLIm98nyJV0CHZE%3D",
            "talkTime": 5,
            "hangupBy": "坐席",
            "numOfAgentHold": 0,
            "numOfAgentSilence": 0,
            "numOfAgentToIvr": 0,
            "numOfAgentTransfer": 0,
            "numOfAgentAdvisory": 0,
            "numOfAgentThird": 0,
            "agentEvents": [],
            "category": 0
        },
        "ivrInfo": {
            "record": null,
            "variables": null,
            "lables": null,
            "ivrTimes": 30,
            "process": [
                {
                    "seq": 1,
                    "beginAt": "2021-06-26 00:09:28",
                    "endAt": "2021-06-26 00:09:58",
                    "ivrName": null,
                    "ivrLog": null
                }
            ]
        },
        "phoneInfo": {
            "number": "18710710970",
            "province": "北京",
            "city": "北京",
            "operator": null
        },
        "queueInfo": {
            "enterQueue": null,
            "enterRule": null,
            "enterEvent": null,
            "repeatCusterRule": "",
            "queueType": "队列",
            "queueId": 2411,
            "queueName": "测试-队列",
            "customerLevel": null,
            "callLevel": null,
            "enterAt": "2021-06-26 00:09:31",
            "queueTime": 14,
            "assignAt": "2021-06-26 00:09:45",
            "assignRule": null,
            "continuousRingTime": null,
            "lastAgentRingTime": 15,
            "numOfSeqRing": 0,
            "seqRingEvent": null,
            "queueResult": "排队成功",
            "ringResult": "客服接听"
        },
        "surveryList": [
            "已评价-1-12"
        ]
    }
}
请求参数
Headers
| 参数名称 | 参数值 | 是否必须 | 示例 | 备注 | 
|---|---|---|---|---|
| Content-Type | application/json | 是 | 
Query
| 参数名称 | 是否必须 | 示例 | 备注 | 
|---|---|---|---|
| callId | 是 | d44539e0-3d41-4854-83da-d22a0d251304 | 
返回数据
| 名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 | 
|---|---|---|---|---|---|
| succeed | boolean | 必须 | 成功标识 | ||
| code | number | 必须 | 结果码。200成功 | ||
| bizCode | string | 必须 | bizcode | ||
| message | string | 必须 | 消息 | ||
| visible | boolean | 必须 | visible | ||
| data | object | 非必须 | 结果 | ||
| ├─ id | number | 必须 | 唯一序列 | ||
| ├─ callId | string | 必须 | 通话id | ||
| ├─ category | number | 必须 | 呼叫类型 1: 呼出 2: 呼入 | ||
| ├─ customerNumber | string | 非必须 | 客户电话 | ||
| ├─ beginAt | string | 必须 | 呼叫时间 | ||
| ├─ endAt | string | 必须 | 结束时间 | ||
| ├─ displayNumber | string | 非必须 | 中继号 | ||
| ├─ agentName | string | 非必须 | 坐席名称 | ||
| ├─ customerRingingTime | number | 非必须 | 客户振铃时长 | ||
| ├─ talkRecord | string | 非必须 | 通话录音 | ||
| ├─ outLineNumber | string | 非必须 | 外线号码 | ||
| ├─ talkTime | number | 非必须 | 通话时长s | ||
| ├─ followUpCall | string | 非必须 | 后续通话 | ||
| ├─ queueName | string | 非必须 | 队列名称 | ||
| ├─ queueResult | string | 非必须 | 排队结果 | ||
| ├─ ringResult | string | 非必须 | 振铃结果 | ||
| ├─ seqRing | string | 非必须 | 顺振 | ||
| ├─ outCallRingTime | string | 非必须 | 外呼振铃时长 | ||
| ├─ outCallDefeatCause | string | 非必须 | 外呼失败原因 | ||
| ├─ hangupBy | string | 非必须 | 挂断方 | ||
| ├─ callResult | string | 非必须 | 通话结果 | ||
| ├─ agentInfo | object | 非必须 | 坐席信息 | ||
| ├─ id | number | 非必须 | 坐席id | ||
| ├─ name | string | 非必须 | 坐席名称 | ||
| ├─ employeeId | string | 非必须 | 坐席工号 | ||
| ├─ number | string | 非必须 | 坐席分机 | ||
| ├─ talkInfo | object | 非必须 | 通话信息 | ||
| ├─ beginAt | string | 非必须 | 通话开始时间,yyyy-mm-dd HH:mm:ss格式 | ||
| ├─ endAt | string | 非必须 | 通话结束时间 | ||
| ├─ record | string | 非必须 | 通话录音 | ||
| ├─ talkTime | number | 非必须 | 通话时长 | ||
| ├─ hangupBy | string | 非必须 | 挂断方 | ||
| ├─ numOfAgentHold | number | 非必须 | 坐席保持次数 | ||
| ├─ numOfAgentSilence | number | 非必须 | 坐席静音次数 | ||
| ├─ numOfAgentToIvr | number | 非必须 | 坐席转IVR次数 | ||
| ├─ numOfAgentTransfer | number | 非必须 | 坐席转接次数 | ||
| ├─ numOfAgentAdvisory | number | 非必须 | 坐席咨询次数 | ||
| ├─ numOfAgentThird | number | 非必须 | 坐席三方次数 | ||
| ├─ agentEvents | string [] | 非必须 | 坐席通话中事件 | item 类型: string | |
| ├─ | 非必须 | 坐席事件 | |||
| ├─ ivrInfo | object | 非必须 | 通话IVR信息 | ||
| ├─ record | string | 非必须 | ivr通话记录录音 | ||
| ├─ variables | string [] | 非必须 | 通话记录变量集合 | item 类型: string | |
| ├─ | 非必须 | 变量 | |||
| ├─ labels | string [] | 非必须 | 通话记录标签集合 | item 类型: string | |
| ├─ | 非必须 | 标签 | |||
| ├─ ivrTimes | number | 非必须 | IVR停留时长 | ||
| ├─ process | object | 非必须 | IVR事件流程 | ||
| ├─ beginAt | string | 非必须 | ivr开始时间,时间格式:yyyy-MM-dd HH:mm:ss | ||
| ├─ endAt | string | 非必须 | ivr结束时间,格式同上 | ||
| ├─ ivrName | string | 非必须 | vr名称 | ||
| ├─ ivrLog | string | 非必须 | ivr日志 | ||
| ├─ phoneInfo | object | 非必须 | |||
| ├─ number | string | 非必须 | 号码 | ||
| ├─ province | string | 非必须 | 省份 | ||
| ├─ city | string | 非必须 | 市 | ||
| ├─ operator | string | 非必须 | 运营商 | ||
| ├─ queueInfo | object | 非必须 | |||
| ├─ enterQueue | number | 非必须 | 入队节点 | ||
| ├─ enterRule | string | 非必须 | 入队规则 | ||
| ├─ enterEvent | string | 非必须 | 入队事件 | ||
| ├─ repeatCusterRule | string | 非必须 | 回头客规则 | ||
| ├─ queueType | string | 非必须 | 队列类型 | ||
| ├─ queueId | number | 非必须 | 队列ID | ||
| ├─ queueName | string | 非必须 | 队列名称 | ||
| ├─ customerLevel | number | 非必须 | 客户等级 | ||
| ├─ callLevel | number | 非必须 | 呼叫等级 | ||
| ├─ enterAt | string | 非必须 | 入队时间 | ||
| ├─ queueTime | number | 非必须 | 排队时长 | ||
| ├─ assignAt | string | 非必须 | 分配时间 | ||
| ├─ assignRule | string | 非必须 | 分配规则 | ||
| ├─ continuousRingTime | number | 非必须 | 连续振铃时长 | ||
| ├─ lastAgentRingTime | number | 非必须 | 最后坐席振铃时长 | ||
| ├─ numOfSeqRing | number | 非必须 | 顺振次数 | ||
| ├─ seqRingEvent | string | 非必须 | 顺振事件 | ||
| ├─ queueResult | string | 非必须 | 排队结果 | ||
| ├─ ringResult | string | 非必须 | 振铃结果 | ||
| ├─ surveryList | string [] | 非必须 | 满意度调查信息 | item 类型: string | |
| ├─ | 非必须 | 满意度调查详细数据 | |||
| ├─ messageUrl | string | 非必须 | 留言 | ||
| ├─ adTaskName | string | 非必须 | 自动外呼任务名称 | ||
| ├─ externFlag | string | 非必须 | 是否转外线 | ||
| ├─ validFlag | string | 非必须 | 通话有效性,0-不做判断,1-有效,2-无效 | ||
| ├─ viewCallVariablesList | string [] | 非必须 | IVR变量 | item 类型: string | |
| ├─ | 非必须 | ||||
| ├─ allRecordUrlList | object [] | 非必须 | 全部录音 | item 类型: object | |
| ├─ recordUrl | string | 非必须 | 录音地址 | ||
| ├─ recordType | string | 非必须 | 类型 | ||
| ├─ totalIvrTime | number | 非必须 | ivr总时长 | 
10 添加限制号码
基本信息
Path: /api/v1/calllimit/{callType}/numbers
Method: POST
接口描述:
概述
增加限制呼叫号码
示例
请求
$ curl 'https://demo.udesk.cn/api/v1/calllimit/in/numbers?AppId=1234567890abc&Timestamp=1496631984&Token=4c1947cb3d87743b613f3a4843ae74306529d4fd' -i -X POST-H 'Content-Type: application/json'  -d '{
    "numberInputModel": 1,
    "numbers": [
        "17000000000"
    ],
    "limitType": "forever"
}'
响应
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": {
        "totalSize": 1,
        "repeatSize": 1,
        "repeatList": [
            "17000000000"
        ]
    }
}
请求参数
Headers
| 参数名称 | 参数值 | 是否必须 | 示例 | 备注 | 
|---|---|---|---|---|
| Content-Type | application/json | 是 | 
路径参数
| 参数名称 | 示例 | 备注 | 
|---|---|---|
| callType | in | 呼叫类型 in: 呼入 out:呼出 | 
Body
| 名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 | 
|---|---|---|---|---|---|
| numberInputModel | number | 必须 | 号码输入方式,,默认填1 | ||
| numbers | string [] | 必须 | 号码数组 | item 类型: string | |
| ├─ | 非必须 | 单个号码 | |||
| limitType | string | 必须 | 限制类型 永久限制 :forever 分钟:minute 小时: hour 天:day 周:week 月:month 年:year | ||
| limitTime | number | 非必须 | 限制时长(limitType为forever时非必填,其他值时需必填) | ||
| limitReason | string | 非必须 | 限制原因 | 
返回数据
| 名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 | 
|---|---|---|---|---|---|
| succeed | boolean | 非必须 | 成功标识 | ||
| code | number | 非必须 | 结果码 | ||
| bizCode | string | 非必须 | bizcode | ||
| message | string | 非必须 | 消息 | ||
| visible | boolean | 非必须 | 是否可见 | ||
| data | object | 必须 | |||
| ├─ totalSize | number | 必须 | 总数 | ||
| ├─ repeatSize | number | 必须 | 在数据库中重复数量 | ||
| ├─ repeatList | string [] | 必须 | 重复集合 | item 类型: string | |
| ├─ | 非必须 | 重复号码 | 
11 限制呼叫号码查询
基本信息
Path: /api/v1/calllimit/{callType}/numbers/search
Method: GET
接口描述:
概述
限制呼叫号码查询,支持分页查询
示例
请求
$ curl 'https://demo.udesk.cn/api/v1/calllimit/{callType}/numbers/search?AppId=1234567890abc&Timestamp=1496631984&Token=4c1947cb3d87743b613f3a4843ae74306529d4fd&pageNum=1&pageSize=20'
响应
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": 20,
        "total": 1
    },
    "data": [
        {
            "id": 100,
            "number": "18710180977",
            "numberInputModel": 1,
            "limitType": "foever",
            "limitTime": null,
            "unlimitTime": null,
            "limitReason": null,
            "createdAt": "2021-07-17 19:11:16",
            "updatedAt": "2021-07-17 19:11:20",
            "createdUserId": null,
            "updatedUserId": null
        }
    ]
}
请求参数
路径参数
| 参数名称 | 示例 | 备注 | 
|---|---|---|
| callType | in | in:呼入 out: 呼出 | 
Query
| 参数名称 | 是否必须 | 示例 | 备注 | 
|---|---|---|---|
| pageNum | 否 | 1 | 页码 | 
| pageSize | 否 | 20 | 每页行数 | 
| keyword | 否 | 1871018 | 关键词(号码),支持模糊查询 | 
返回数据
| 名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 | 
|---|---|---|---|---|---|
| succeed | boolean | 必须 | 成功标识 | ||
| code | number | 必须 | 结果码 | ||
| bizCode | string | 必须 | bizCode | ||
| message | string | 必须 | 消息 | ||
| visible | boolean | 必须 | 是否可见 | ||
| paging | object | 必须 | 页码信息 | ||
| ├─ pageNum | number | 必须 | 页码 | ||
| ├─ pageSize | number | 必须 | 每页行数 | ||
| ├─ total | number | 必须 | 总数 | ||
| data | object [] | 必须 | 限制号码数据 | item 类型: object | |
| ├─ id | number | 必须 | 唯一标识 | ||
| ├─ number | string | 必须 | 号码 | ||
| ├─ createdAt | string | 必须 | 添加时间 | ||
| ├─ limitType | string | 必须 | 限制类型 永远:forever 分钟 : minute 小时 : hour 天:day 周:week 月:month 年:year | ||
| ├─ unlimitTime | string | 非必须 | 解除限制时间 | ||
| ├─ limitReason | string | 必须 | 限制原因 | 
12 通过手机号获取号码详情
基本信息
Path: /api/v1/calllimit/{callType}/tel/{number}
Method: GET
接口描述:
概述
通过手机号获取号码详情
示例
请求
$ curl 'https://demo.udesk.cn/api/v1/calllimit/in/tel/17000000000?AppId=1234567890abc&Timestamp=1496631984&Token=4c1947cb3d87743b613f3a4843ae74306529d4fd'
响应
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": 100,
        "number": "17000000000",
        "numberInputModel": 1,
        "limitType": "foever",
        "limitTime": null,
        "unlimitTime": null,
        "limitReason": null,
        "createdAt": "2021-07-17 19:11:16",
        "updatedAt": "2021-07-17 19:11:20",
        "createdUserId": null,
        "updatedUserId": null
    }
}
请求参数
路径参数
| 参数名称 | 示例 | 备注 | 
|---|---|---|
| callType | in | 呼叫类型 in: 呼入 out:呼出 | 
| number | 17000000000 | 号码 | 
返回数据
| 名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 | 
|---|---|---|---|---|---|
| succeed | boolean | 必须 | 成功标识 | ||
| code | number | 必须 | 结果码 | ||
| bizCode | string | 必须 | bizCode | ||
| message | string | 必须 | 消息 | ||
| visible | boolean | 必须 | 是否可见 | ||
| data | object | 必须 | 数据 | ||
| ├─ id | number | 必须 | 唯一标识 | ||
| ├─ number | string | 必须 | 号码 | ||
| ├─ numberInputModel | number | 必须 | 号码输入方式 1:手工输入 2:批量导入 3:正则输入 | ||
| ├─ limitType | string | 必须 | 限制类型 永久限制:forever 分钟:minute 小时:hour 天:day 周:week 月:month 年:year | ||
| ├─ limitTime | number | 必须 | 限制时间 | ||
| ├─ unlimitTime | string | 必须 | 解除限制时间 | ||
| ├─ limitReason | string | 必须 | 限制原因 | ||
| ├─ createdAt | string | 必须 | 创建时间 | ||
| ├─ updateAt | string | 必须 | 更新时间 | ||
| ├─ createdUserId | string | 必须 | 创建用户 | ||
| ├─ updateUserId | string | 必须 | 更新用户 | 
13 通过手机号修改限制号码信息
基本信息
Path: /api/v1/calllimit/{callType}/tel/{number}
Method: PUT
接口描述:
概述
通过手机号修改限制号码信息
示例
请求
$ curl 'https://demo.udesk.cn/api/v1/calllimit/in/tel/17000000000?AppId=1234567890abc&Timestamp=1496631984&Token=4c1947cb3d87743b613f3a4843ae74306529d4fd' -i -X PUT-H 'Content-Type: application/json'  -d '{
    "limitType": "day",
    "limitTime": 1,
    "limitReason":"测试"
}'
响应
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": {
        "number": "17000000000",
        "limitType": "day",
        "limitTime": 1,
        "limitReason": "测试"
    }
}
请求参数
Headers
| 参数名称 | 参数值 | 是否必须 | 示例 | 备注 | 
|---|---|---|---|---|
| Content-Type | application/json | 是 | ||
| 路径参数 | 
| 参数名称 | 示例 | 备注 | 
|---|---|---|
| callType | in | 呼叫类型 in:呼入 out: 呼出 | 
| number | 17000000000 | 号码 | 
Body
| 名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 | 
|---|---|---|---|---|---|
| limitType | string | 必须 | 限制类型 永远:forever 分钟:minute 小时: hour 天:day 周:week 月:month 年:year | ||
| limitTime | number | 非必须 | 限制时长 | ||
| limitReason | string | 非必须 | 限制原因 | 
返回数据
| 名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 | 
|---|---|---|---|---|---|
| succeed | boolean | 非必须 | 成功标识 | ||
| code | number | 非必须 | 结果码 | ||
| bizCode | string | 非必须 | bizcode | ||
| message | string | 非必须 | 消息 | ||
| visible | boolean | 非必须 | 是否可见 | ||
| data | object | 非必须 | |||
| ├─ number | string | 非必须 | 号码 | ||
| ├─ limitType | string | 非必须 | 限制类型 永久限制 :forever 分钟:minute 小时: hour 天:day 周:week 月:month 年:year | ||
| ├─ limitTime | number | 非必须 | 限制时长 | ||
| ├─ limitReason | string | 非必须 | 限制原因 | 
14 通过手机号删除限制号码信息
基本信息
Path: /api/v1/calllimit/{callType}/tel/{number}
Method: DELETE
接口描述:
概述
通过手机号删除限制号码信息
示例
请求
$ curl 'https://demo.udesk.cn/api/v1/calllimit/in/tel/17000000000?AppId=1234567890abc&Timestamp=1496631984&Token=4c1947cb3d87743b613f3a4843ae74306529d4fd' -i -X DELETE
响应
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
}
请求参数
Headers
| 参数名称 | 参数值 | 是否必须 | 示例 | 备注 | 
|---|---|---|---|---|
| Content-Type | application/x-www-form-urlencoded | 是 | 
路径参数
| 参数名称 | 示例 | 备注 | 
|---|---|---|
| callType | in | 呼叫类型 in: 呼入 out: 呼出 | 
| number | 18920765652 | 号码id | 
返回数据
| 名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 | 
|---|---|---|---|---|---|
| succeed | boolean | 必须 | 成功标识 | ||
| code | number | 必须 | 结果码 | ||
| bizCode | string | 必须 | bizCode | ||
| message | string | 必须 | 消息 | ||
| visible | boolean | 必须 | 是否可见 | 
15 通过手机号批量删除限制号码
基本信息
Path: /api/v1/calllimit/{callType}/tel/batch-delete
Method: PUT
接口描述:
概述
通过手机号批量删除限制号码
示例
请求
$ curl 'https://demo.udesk.cn/api/v1/calllimit/in/tel/batch-delete?AppId=1234567890abc&Timestamp=1496631984&Token=4c1947cb3d87743b613f3a4843ae74306529d4fd' -i -X PUT -H 'Content-Type: application/json'  -d  '{
    "numbers": [
        "17000000000"
    ]
}'
响应
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
}
请求参数
Headers
| 参数名称 | 参数值 | 是否必须 | 示例 | 备注 | 
|---|---|---|---|---|
| Content-Type | application/json | 是 | 
路径参数
| 参数名称 | 示例 | 备注 | 
|---|---|---|
| callType | in | 呼叫类型 in:呼入 out: 呼出 | 
Body
| 名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 | 
|---|---|---|---|---|---|
| numbers | string [] | 必须 | 多个号码id | item 类型: string | |
| ├─ | 非必须 | 号码 | 
返回数据
| 名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 | 
|---|---|---|---|---|---|
| succeed | boolean | 必须 | 成功标识 | ||
| code | number | 必须 | 结果码 | ||
| bizCode | string | 必须 | bizCode | ||
| message | string | 必须 | 消息 | ||
| visible | boolean | 必须 | 是否可见 |