1. 使用说明

欢迎使用“AICC” API 服务。您可以直接通过标准化的 HTTPS 接口,快速实现平台与自有系统的集成,管理平台的数据配置、呼叫控制、通话记录等各种资源。我们同时还提供了 开发者工具套件(SDK),对 API接口调用进行了封装。推荐您优先使用 SDK ,可以更方便地进行系统集成。

2. 接口规范

2.1. 调用方式

2.1.1. 系统接入

通信协议

出于安全考虑,平台只提供 HTTPS 协议访问,只支持服务端调用,不支持浏览器访问。

字符编码

请求及返回结果都使用 UTF-8 字符集编码。

接入地址

  • 公有云平台:

    • 北京平台:https://api-bj.clink.cn

    • 上海平台:https://api-sh.clink.cn

  • 其它平台: 请咨询技术支持

2.1.2. 公共参数

公共请求参数

每个 API 接口都需要以 URL Parameter 的形式携带公共请求参数,对请求进行鉴权。

名称 类型 是否必须 说明

AccessKeyId

String

客服云平台颁发给客户端的访问密钥 ID。

Expires

String

签名的有效时间(秒),最小值为 1,最大值为 86400(24 小时)。

Timestamp

String

签名的时间戳,格式遵循 ISO 8601 标准,按照格式 “ yyyy-MM-ddTHH:mm:ssZ ” 进行格式化。示例:2018-01-01T12:00:00Z表示北京时间2018年01月01日20点00分00秒

Signature

String

根据请求参数和访问密钥计算的签名。

请求示例

https://api-bj.clink.cn/xxxxxx?
&AccessKeyId=b1fcdc6c62be261cf97b00b25be6a2af
&Expires=60
&Timestamp=2018-09-11T12:02:34Z
&Signature=A4GDuUoWiFj59wQ0Bfq%2FJnB%2BSRU%3D
...

公共返回参数

名称 类型 说明

requestId

String

请求 ID。无论请求 API 服务是否成功,客服云平台都会返回每个请求的唯一 ID 到客户端。

2.1.3. 签名机制

签名(Signature)的计算需要使用访问密钥对:AccessKeyId/AccessKeySecret。访问密钥对可以通过登录系统管理后台,在【系统管理-系统对接-接口密钥】模块自助生成。每个访问密钥对可以设置不同的接口访问控制权限。

签名算法

签名(Signature)用于对 API 请求进行身份认证和鉴权,每个请求必须具有唯一的签名。 签名的具体实现是以 AccessKeySecret 为密钥,使用 hmac-sha1 算法对用户请求参数(QueryString)、访问密钥ID(AccessKeyId)、签名有效时间(Expires)、签名当前时间戳(Timestamp)做哈希计算。 具体步骤如下:

1. GET示例:

 https://api-bj.clink.cn/cc/list_clients?
 AccessKeyId=b1fcdc6c62be261cf97b00b25be6a2af
 &Expires=60
 &Timestamp=2018-10-12T10:18:12Z
 &limit=10
 &offset=0
 &qno=0000
 &cnos[0]=0000
 &cnos[1]=0001

拼接要加密的字符串规则:请求方法(GET)+ 请求域名(api-bj.clink.cn)+ 请求参数。其中,访问密钥ID(AccessKeyId)、签名有效时间(Expires)、签名时间戳(Timestamp)分别与上面的公共请求参数相对应,请求参数具体拼接规则为:

  • 首先对用户请求参数的 name 进行字典排序

AccessKeyId,Expires,Timestamp,cnos[0],cnos[1],limit,offset,qno
  • 通过&符号连接用户请求参数的 name 和 value

AccessKeyId=b1fcdc6c62be261cf97b00b25be6a2af&Expires=60&Timestamp=2018-10-12T10:18:12Z&&cnos[0]=0000&cnos[1]=0001&limit=10&offset=0&qno=0000
  • Timestamp为UTC时间格式,所有请求参数都要进行UrlEncode

2018-10-12T10:18:12Z => 2018-10-12T10%3A18%3A12Z
cnos[0] => cnos%5B0%5D
cnos[1] => cnos%5B1%5D
  • 参数urlParam结果

GETapi-bj.clink.cn/cc/list_clients?AccessKeyId=b1fcdc6c62be261cf97b00b25be6a2af&Expires=60&Timestamp=2018-10-12T10%3A18%3A12Z&cnos%5B0%5D=0000&cnos%5B1%5D=0001&limit=10&offset=0&qno=0000
  • 计算Signature

Signature = URLEncode(base64(hmac-sha1(AccessKeySecret, urlParam)))
  • 最终请求地址

 https://api-bj.clink.cn/cc/list_clients?
 AccessKeyId=b1fcdc6c62be261cf97b00b25be6a2af
 &Expires=60
 &Timestamp=2018-10-12T10%3A18%3A12Z
 &limit=10
 &offset=0
 &qno=0000
 &cnos%5B0%5D
 &cnos%5B1%5D
 &Signature=pDS5pcYkw3SqQV0zk312iCaQJpg%3D

2. POST示例:

 https://api-bj.clink.cn/cc/online?
 AccessKeyId=b1fcdc6c62be261cf97b00b25be6a2af
 &Expires=60
 &Timestamp=2018-10-12T10:18:12Z

请求体

{
    "qno":"0000",
    "cnos":["0000","0001"],
    "bindTel":"13888888888",
    "bindType":1,
    "status":1
}

拼接要加密的字符串规则:请求方法(POST)+ 请求域名(api-bj.clink.cn)+ 请求参数(由于POST方法URL中只有公共参数,其他参数通过请求体传递,所以计算签名时只需考虑公共参数)。其中,访问密钥ID(AccessKeyId)、签名有效时间(Expires)、签名时间戳(Timestamp)分别与上面的公共请求参数相对应,请求参数具体拼接规则为:

  • 首先对用户请求参数的 name 进行字典排序

AccessKeyId,Expires,Timestamp
  • 通过&符号连接用户请求参数的 name 和 value

AccessKeyId=b1fcdc6c62be261cf97b00b25be6a2af&Expires=60&Timestamp=2018-10-12T10:18:12Z
  • Timestamp为UTC时间格式,所有请求参数都要进行URL转码

2018-10-12T10:18:12Z => 2018-10-12T10%3A18%3A12Z
  • 参数urlParam结果

POSTapi-bj.clink.cn/cc/online?AccessKeyId=b1fcdc6c62be261cf97b00b25be6a2af&Expires=60&Timestamp=2018-10-12T10%3A18%3A12Z
  • 计算Signature

Signature = URLEncode(base64(hmac-sha1(AccessKeySecret, urlParam)))
  • 最终请求地址

 https://api-bj.clink.cn/cc/online?
 AccessKeyId=b1fcdc6c62be261cf97b00b25be6a2af
 &Expires=60
 &Timestamp=2018-10-12T10%3A18%3A12Z
 &Signature=pDS5pcYkw3SqQV0zk312iCaQJpg%3D
  • 访问密钥对是访问系统资源的重要凭据,必须严格保密、谨防泄露。

  • 通过使用 SDK,可以简化生成签名和调用 API 的过程。

2.2. 返回结果

API 的返回结果统一为 JSON 格式,使用 UTF-8 字符集编码。为了方便阅读,文中的示例有换行和缩进处理,实际返回结果无换行和缩进处理。

正常返回示例

接口调用成功后,会返回接口调用结果和请求 ID(requestId),HTTP 状态码为 2xx。

示例

{
    "requestId": "c4bc3588-29bd-44be-91d4-d846c8eea64f"
}

分页示例:

{
    "requestId": "77efcfd8-db8c-4f5c-bdb8-d804cfce7423",
    "pageNumber": 1,
    "pageSize": 10,
    "totalCount": 2,
    "objects": [
        {
            "field1":"value1",
            "field2":"value2"
        },
        {
            "field3":"value3",
            "field4":"value4"
        }
    ]
}

异常返回示例

接口调用失败或出错后,会返回错误码、错误信息和请求 ID,HTTP 状态码为 4xx 或 5xx。

您可以根据接口错误码和错误信息排查错误。当您无法排查错误时,可以联系我们的技术支持,并提供 requestId。

示例

{
    "requestId": "778a71c5-7f62-4bbf-b5c2-383a71227b67",
    "error": {
        "code": "ResourceNotFound",
        "message": "指定的资源不存在"
    }
}

2.3. IP白名单

您可以在【系统管理-系统对接-IP白名单】模块中设置对接系统的 IP 白名单,进一步提高数据安全性。如果设置了 IP 白名单,系统只会对指定的 IP 提供 API 服务。系统支持两种 IP 格式:

  • 指定 IP 地址,如:10.10.1.1 。

  • 指定 IP 地址段,如:10.10.1.* - 10.10.2.* 。

2.4. 错误码说明

错误码分为两种类型:

  • 客户端错误:该类型错误由客户端引起,例如无效的请求参数、用户没有权限访问资源等。

  • 服务器错误:该类型错误在服务端产生,由系统异常引起,没有固定的类型。

示例

{
    "requestId": "842ab2a6-3732-4c03-8ab7-c7f83180fb0c",
    "error": {
        "code": "ResourceNotFound",
        "message": "指定的资源不存在"
    }
}

2.4.1. 客户端错误

本节列出了所有操作都可能返回的常见客户端错误。

code HTTP Status message

AuthFailure

401

身份验证失败。

InvalidParameter

400

请求中指定的参数无效,不受支持或无法使用。 返回的消息提供了错误值的说明。

MissingParameter

400

请求缺少必需参数。

ResourceNotFound

404

请求资源不存在。

MissingRequestBody

400

缺少请求body。

MissingAuthenticationToken

400

请求必须包含有效的访问密钥ID。

HttpMediaTypeNotSupported

400

HttpMediaType不支持,只支持application/json

HttpRequestMethodNotSupported

405

HTTP方法不支持。

UnauthorizedOperation

403

您无权执行此操作。请确认您的密钥ID有此权限

UnknownParameter

400

提供了未知或未识别的参数。

SignaturesExpired

403

签名过期

TooManyRequests

429

请求超限

2.4.2. 服务器错误

code HTTP Status message

InternalError

500

发生内部错误。 重试您的请求,但如果问题仍然存在,请联系技术支持。

3. 话术

3.1. 查询话术列表

POST /gateway/robot_list
请求参数
名称 类型 是否必需 描述

robotStatus

Integer

true

话术状态 0:所有话术,1:已上线话术,2:查询发布过(含已上线和上线后重新修改)的话术

返回参数
名称 类型 描述

result

JSONObject

返回结果

JSONObject

名称 类型 描述

list

JSONArray

返回结果列表

JSONArray

名称 类型 描述

robotDefId

Number

机器人ID

robotName

String

机器人名称

industryOneName

String

一级行业名

industryTwoName

String

二级行业名

robotStatus

Number

话术状态 0:待发布 1:待审核 2:待录音 3:待上线 4:审核不通过 5:已上线

deployTime

String

发布时间

示例

请求示例

https://api-bj.clink.cn/gateway/robot_list

POST 请求体

{
    "robotStatus": 0
}

返回示例

{
    "result":{
        "list":[
            {
                "robotDefId":121931,
                "robotName":"小机智1号",
                "robotStatus":1,
                "industryOneName":"大金融",
                "deployTime":"2022-03-08 14:34:03",
                "industryTwoName":"银行"
            },
            {
                "robotDefId":121920,
                "robotName":"小机智2号",
                "robotStatus":2,
                "industryOneName":"大金融",
                "deployTime":"2022-03-04 17:54:55",
                "industryTwoName":"银行"
            },
            {
                "robotDefId":121912,
                "robotName":"小机智3号",
                "robotStatus":1,
                "industryOneName":"大金融",
                "deployTime":"2022-02-24 11:49:07",
                "industryTwoName":"保险"
            }
        ]
    }
}

3.2. 查询话术变量

POST /gateway/scenevariables
请求参数
名称 类型 是否必需 描述

enterpriseId

String

true

租户id

robotDefId

Long

true

机器人id

返回参数
名称 类型 描述

result

JSONObject

返回结果

JSONObject

名称 类型 描述

variables

String[]

话术变量集合 格式["客户名称","联系方式","客户地址","街道名称"]

示例

请求示例

https://api-bj.clink.cn/gateway/scenevariables

POST 请求体

{
    "enterpriseId": "8001678",
    "robotDefId": 280572
}

返回示例

{
    "result":{
        "variables":[
            "客户名称",
            "联系方式"
        ]
    },
    "requestId":"133938ef-99c4-9ea7-b2b5-8500fbc72acb"
}

4. 外呼任务

4.1. 创建任务

POST /gateway/task_create
请求参数
名称 类型 是否必需 描述

enterpriseId

String

true

租户id

callJobName

String

true

任务名称

callJobType

Long

true

任务类型, 1-定时,2-手动;当选择定时任务时,startDate为必传

concurrencyNum

Long

false

并发数,不能大于ai坐席数的2倍

concurrencyQuota

Long

false

ai坐席数,默认1,一个坐席对应一个机器人

levelAssignTypeEnabled

Boolean

false

A、B类意向客户默认分配规则是否开启为流入公海(灰度功能)

mobile

String

false

创建人手机号

openElasticity

Boolean

false

是否开启弹性任务,默认false。仅针对专业版、集团版账号,且指定的外呼线路类型是固话或无主叫的任务,才会生效

remark

String

false

备注

priority

Number

false

任务优先级,只有开启了任务优先级灰度功能后,该参数才有效

repeatCall

Boolean

false

是否开启重拨 默认false 关闭

repeatCallRule

String

false

重拨详细规则;例:[{"interval":45,"phoneStatus":1,"times":1},{"interval":45,"phoneStatus":2,"times":1}],其中interval-间隔时间(0-120min); phoneStatus-需要重播的通话状态枚举(1:拒接,2:无法接通,3:外呼失败,4:空号,5:关机,6:占线,7:停机,8:未接,9:主叫欠费,10:呼损); times-重拨次数(1-5)

restoreAi

Boolean

false

任务自动暂停,是否释放ai坐席

robotDefId

Long

true

话术id

smsSendLevel

String

false

发送短信的意向等级,固定值:A级(有明确意向)、B级(可能有意向)、C级(明确拒绝)、D级(用户忙)、E级(拨打失败)、F级(无效客户)

smsTemplateId

Long

false

短信模版id

smsType

Long

false

是否发送挂机短信:0-否,1-是

startDate

Date

false

任务开始日期(定时任务必填)格式2019-08-08 精确到天

userPhoneIds

String

true

线路Id 线路和固话只能传一个[1345],手机号可以传多个 格式[746,831]

wechatPush

Boolean

false

是否推送微信消息给分配到客户的成员

workingTimeRuleList

String

false

自定义多时段;("[{"timeRanges":[{"startTime":"09:00","endTime":"20:00"}],"weeks":[1,2]}]" endTime-结束时间(String);startTime-开始时间(String),weeks-Number[] )

返回参数
名称 类型 描述

result

JSONObject

返回结果

JSONObject

名称 类型 描述

callJobId

Number

任务id

示例

请求示例

https://api-bj.clink.cn/gateway/task_create

POST 请求体

{
    "enterpriseId":"8001294",
    "callJobName":"测试打电话1234567",
    "callJobType":2,
    "robotDefId":280572,
    "userPhoneIds":"[247545]"
}

返回示例

{
    "result":{
        "callJobId":4915639
    },
    "requestId":"fadcbf05-6451-997b-863b-026045eabdb4"
}

4.2. 启动、暂停、终止任务

POST /gateway/task_execute
请求参数
名称 类型 是否必需 描述

enterpriseId

String

true

租户id

callJobId

String

true

任务id

command

String

true

操作类型,包括:1开始(只有未开始、手动暂停状态的任务可以开始) 2手动暂停(只有可运行、自动暂停、排队中、进行中、线路欠费、AI到期、短信欠费状态的任务可以手动暂停) 3终止(只有未开始、可运行、进行中、手动暂停、自动暂停、排队中状态的任务可以终止)

返回参数
名称 类型 描述

result

JSONObject

返回结果

示例

请求示例

https://api-bj.clink.cn/gateway/task_execute

POST 请求体

{
    "enterpriseId":"8001294",
    "callJobId":4917077,
    "command":3
}

返回示例

{
    "code":200,
    "requestId":"18727243-e14a-9004-962a-ac3bbd724c7c",
    "message":"操作成功"
}

4.3. 向任务中导入客户

POST /gateway/task_import
请求参数
名称 类型 是否必需 描述

enterpriseId

String

true

租户id

callJobId

Long

true

任务id

customerInfoVOList

String

ture

用户信息字段,([{\"name\":\"test\",\"phone\":\"18888888888\",\"properties\":{\"月份\":\"7月\",\"phone_id\":\"ph7654\"}}])其中phone(客户电话)为必传,name(客户名称)可不传,properties(客户自定义额外信息)字段在话术中有变量时为必传字段;如果需自定义参数也可以通过properties入参;变量可通过“查询话术变量”接口查询;

permitrepeatnum

Boolean

false

同一个任务中是否支持重复导入手机号,默认false

返回参数
名称 类型 描述

result

JSONObject

返回结果

JSONObject

名称 类型 描述

total

Number

导入总记录数

successNum

Number

导入成功数量

placeFailNum

Number

导入失败数量

repeatNum

Number

导入重复数量

placeFailDetail

String

导入失败明细

示例

请求示例

https://api-bj.clink.cn/gateway/task_import

POST 请求体

{
    "enterpriseId": "8001294",
    "callJobId": 4917077,
    "customerInfoVOList":"[{\"name\":\"test\",\"phone\":\"18888888888\",\"properties\":null}]"
}

返回示例

{
    "result":{
        "total":1,
        "successNum":1,
        "placeFailNum":0,
        "repeatNum":0,
        "placeFailDetail":"[]"
    },
    "requestId":"8b010e5c-87a5-9b0e-a83b-35c7958ac0d0"
}

4.4. 查询任务列表

POST /gateway/task_list
请求参数
名称 类型 是否必需 描述

enterpriseId

String

true

租户id

callJobStatus

Number

false

任务状态,0:未开始,1:进行中,2:已完成,3:可运行,4:手动暂停,5:自动暂停,6:已终止,7:排队中,8:AI到期,9:线路欠费,10:短信欠费;

createDate

String

false

创建时间(开始),精确到天,例如:2018-07-24

endDate

String

false

创建时间(结束),精确到天,例如:2018-07-24

jobName

String

false

任务名称

pageNum

Number

false

当前页

pageSize

Number

false

每页大小,建议设置为20条,查询数量太多易超时

返回参数
名称 类型 描述

result

JSONObject

返回结果

JSONObject

名称 类型 描述

pageNum

Number

当前页

total

Number

总记录数

pages

Number

总页数

list

CallJobVO[]

任务集合

CallJobVO

名称 类型 描述

callJobId

Number

任务id

jobName

String

任务名称

jobType

Number

任务类型,1-定时,2-手动

startDate

Number

任务开始时间,返回时间戳;如果是手动任务时,需在任务启动后才返回字段和值;示例:1628352000000

callJobStatus

Number

任务状态,0:未开始,1:进行中(调度中),2:已完成,3:可运行,4:用户暂停,5:系统暂停,6:已终止,7:排队中,8:AI到期,9:线路欠费,10:短信欠费;

remark

String

任务描述

totalCount

Number

任务拨打的号码总数

doneCount

Number

任务已完成拨打的号码总数

calledCount

Number

任务已完成呼通的号码总数

rejectedCount

Number

任务呼叫被拒接的号码总数

unavailableCount

Number

任务呼叫无法接通的号码总数

fromUnavailableCount

Number

任务主叫号码不可用的号码总数

callJobStatusDesc

String

任务状态描述,0:未开始,1:进行中,2:已完成,3:可运行,4:用户暂停,5:系统暂停,6:已终止,7:排队中,8:AI到期,9:线路欠费,10:短信欠费

示例

请求示例

https://api-bj.clink.cn/gateway/task_list

POST 请求体

{
    "enterpriseId":8000001,
    "callJobStatus":1,
    "createDate":"2018-07-24",
    "endDate":"2018-07-24",
    "jobName":"外呼任务",
    "pageNum":1,
    "pageSize":10
}

返回示例

{
    "result":{
        "total": 393,
        "pages": 393,
        "list": [{
            "jobName": "1111111",
            "callJobStatus": 2,
            "callJobStatusDesc": "已完成",
            "fromUnavailableCount": 0,
            "doneCount": 0,
            "unavailableCount": 0,
            "callJobId": 30423,
            "rejectedCount": 0,
            "remark": "",
            "totalCount": 0,
            "workingStartTime": "22:00",
            "workingEndTime": "22:05",
            "calledCount": 0,
            "jobType": 1,
            "startDate": 1566403200000
        }],
        "pageNum": 10
    },
}

4.5. 查询任务详情

POST /gateway/task
请求参数
名称 类型 是否必需 描述

enterpriseId

String

true

租户id

callJobId

String

true

任务id

返回参数
名称 类型 描述

result

JSONObject

返回结果

JSONObject

名称 类型 描述

callJobId

Number

任务id

jobName

String

任务名称

jobType

Number

任务类型,1-定时,2-手动

startDate

Number

任务开始时间,示例:1676822400000

callJobStatus

Number

任务状态,0:未开始,1:进行中(调度中),2:已完成,3:可运行,4:用户暂停,5:系统暂停,6:已终止,7:排队中,8:AI到期,9:线路欠费,10:短信欠费;

remark

String

任务描述

totalCount

Number

任务拨打的号码总数

doneCount

Number

任务已完成拨打的号码总数

calledCount

Number

任务已完成呼通的号码总数

rejectedCount

Number

任务呼叫被拒接的号码总数

unavailableCount

Number

任务呼叫无法接通的号码总数

fromUnavailableCount

Number

任务主叫号码不可用的号码总数

robotDefName

String

机器人名称

durationStat

StringIntegerVO[]

通话时长的统计信息,通话时长统计类型(小于10秒,10-50秒,1分钟-1分59秒,大于等于2分钟)

chatRoundStat

StringIntegerVO[]

通话轮次统计类型(0-2次,3-4次,5-6次,7-9次)

resultDefs

NameValuesVO[]

结果分析的枚举

callPhones

UserPhoneNumberVO[]

主叫电话号码列表

workingTimeRuleList

JobWorkingTimeRuleDetailVO[]

多时段拨打配置

robotDefId

Number

机器人Id

callJobStatusDesc

String

任务状态描述,0:未开始,1:进行中,2:已完成,3:可运行,4:用户暂停,5:系统暂停,6:已终止,7:排队中,8:AI到期,9:线路欠费,10:短信欠费;

smsType

Number

是否发送挂机短信:0:否,1:是

smsTemplateId

Number

挂机短信模版Id

smsCondition

String

发送挂机短信的客户意向等级

workingTimeRule

JobWorkingTimeRuleDetailVO

多时段拨打配置(已废弃)

seatNum

Number

座席数

phoneNum

Number

并发数

mobile

String

任务创建人手机号

openElasticity

Boolean

是否开启弹性座席

repeatCall

Boolean

是否开启重拨

repeatCallRule

String

重拨规则

userPhoneIds

Number[]

线路Id

permitRepeatNum

Boolean

是否支持号码重复导入

StringIntegerVO

名称 类型 描述

name

String

key

value

Number

value

NameValuesVO

名称 类型 描述

name

String

key

values

String[]

values

UserPhoneNumberVO

名称 类型 描述

userPhoneId

Number

线路id

phone

String

线路名称

phoneName

String

线路别名

phoneType

Number

线路枚举类型 0:手机号; 1:固话; 2和9:线路

sceneType

Number

应用场景 1:呼入,2:呼出,3:呼入呼出

billPeriod

Number

计费周期,单位秒(默认60)

rateType

Price

费率类型:0-全国统一 ,1-本地外地不同

nonlocalSellingRate

Price

外地销售价 单位:分

localSellingRate

Price

本地销售价/全国销售价 单位:分

lineAmount

Price

线路账户余额,单位:元

JobWorkingTimeRuleDetailVO

名称 类型 描述

weeks

Number[]

一周内拨打的时间

timeRanges

TimeRange[]

拨打时段结构体

TimeRange

名称 类型 描述

startTime

String

开始拨打时间,例:"09:00"

endTime

String

结束拨打时间,例:"20:00"

示例

请求示例

https://api-bj.clink.cn/gateway/task

POST 请求体

{
    "enterpriseId":"8001294",
    "callJobId":4917077
}

返回示例

{
    "result":{
        "callJobId":4915639,
        "jobName":"测试打电话222333",
        "jobType":2,
        "startDate":1676822400000,
        "callJobStatus":5,
        "remark":null,
        "totalCount":1,
        "doneCount":0,
        "calledCount":0,
        "rejectedCount":0,
        "unavailableCount":0,
        "fromUnavailableCount":0,
        "robotDefName":"转人工坐席测试",
        "durationStat":[

        ],
        "chatRoundStat":[

        ],
        "resultDefs":[
            {
                "name":"客户意向等级",
                "values":[
                    "A级(有明确意向)",
                    "B级(可能有意向)",
                    "C级(明确拒绝)",
                    "D级(用户忙)",
                    "E级(拨打失败)",
                    "F级(无效客户)"
                ]
            }
        ],
        "callPhones":[
            {
                "userPhoneId":247545,
                "phone":"天润演示线路",
                "phoneName":"天润演示线路",
                "phoneType":2,
                "sceneType":1
            }
        ],
        "workingTimeRuleList":[
            {
                "weeks":[
                    1,
                    2,
                    3,
                    4,
                    5,
                    6,
                    7
                ],
                "timeRanges":[
                    {
                        "startTime":"09:00",
                        "endTime":"20:00"
                    }
                ]
            }
        ],
        "robotDefId":280572,
        "callJobStatusDesc":"系统暂停",
        "smsType":0,
        "smsTemplateId":null,
        "smsCondition":null,
        "workingTimeRule":{
            "weeks":[
                1,
                2,
                3,
                4,
                5,
                6,
                7
            ],
            "timeRanges":[
                {
                    "startTime":"09:00",
                    "endTime":"20:00"
                }
            ]
        },
        "seatNum":1,
        "phoneNum":1,
        "mobile":"13520547827",
        "openElasticity":false,
        "repeatCall":false,
        "repeatCallRule":null,
        "userPhoneIds":[
            247545
        ]
    },
    "requestId":"79df7dc7-a1bc-908a-8388-8afd639f8efb"
}

4.6. 获得公司的外呼线路列表

POST /gateway/phone_list
请求参数
名称 类型 是否必需 描述

enterpriseId

String

true

租户id

userPhoneId

Long

false

坐席id

返回参数
名称 类型 描述

result

JSONObject

返回结果

JSONObject

名称 类型 描述

list

JSONArray

返回结果列表

JSONArray

名称 类型 描述

userPhoneId

Long

线路Id

phone

String

线路名称

phoneName

String

线路别名

phoneType

Long

线路枚举类型 0:手机号; 1:固话; 2和9:线路

sceneType

Long

应用场景 1:呼入,2:呼出,3:呼入呼出

示例

请求示例

https://api-bj.clink.cn/gateway/phone_list

POST 请求体

{
    "enterpriseId": "8001678",
    "userPhoneId": 247545
}

返回示例

{
    "result": {
        "list": [
            {
                "userPhoneId": 247545,
                "phone": "天润演示线路",
                "phoneName": "天润演示线路",
                "phoneType": 2,
                "sceneType": 1
            }
        ]
    },
    "requestId": "6f7e7c93-cda8-9fc5-977b-9bb014fbae1f"
}

4.7. 查询任务中已完成的电话号码

POST /gateway/call_done_list
请求参数
名称 类型 是否必需 描述

enterpriseId

String

true

租户id

callJobId

Long

true

任务id

endTime

Date

false

结束时间

finishStatus

Long

false

已完成通话状态,:已接听,1:拒接,2:无法接通,3:主叫号码不可用,4:空号,5:关机,6:占线,7:停机,8:未接,9:主叫欠费,10:呼损,11:黑名单,12:天盾拦截,22:线路拦截,25:虚拟线路可选线路为空

pageNum

Long

false

第几页

pageSize

Long

false

每页大小,最多不能超过500条

resultQueryList

String

false

支持按分析结果作为条件,格式 :[{"name":"客户意向等级","value":"A"}]

startTime

Date

false

开始时间

返回参数
名称 类型 描述

result

JSONObject

返回结果

JSONObject

名称 类型 描述

pageNum

Long

当前页

total

Long

总记录数

pages

Long

总页数

list

CallDoneVO[]

通话列表

CallDoneVO

名称 类型 描述

callInstanceId

Long

通话记录Id

callJobId

Long

任务id

callJobName

String

任务名称

customerTelephone

String

被叫客户电话号码

customerName

String

被叫客户名称

callInstanceStatus

Long

通话状态,0:未开始,1:进行中,2:已完成,3:二次拨打调度中

finishStatus

Long

已完成通话状态,0:已接听,1:拒接,2:无法接通,3:主叫号码不可用,4:空号,5:关机,6:占线,7:停机,8:未接,9:主叫欠费,10:呼损,11:黑名单,12:天盾拦截,13:线路盲区,25:虚拟线路可选线路为空

duration

Long

通话时长

chatRound

Long

通话轮次,相当于AI说话次数

startTime

Date

开始拨打时间

endTime

Date

结束拨打时间

luyinOssUrl

String

通话录音(包含用户录音和Ai语音)

resultList

NameValueVO[]

通话参数集合

finishStatusDesc

String

已完成通话状态描述,0:已接听,1:拒接,2:无法接通,3:主叫号码不可用,4:空号,5:关机,6:占线,7:停机,8:未接,9:主叫欠费,10:呼损,11:黑名单,12:天盾拦截,13:线路盲区,25:虚拟线路可选线路为空

properties

String

拨打所需参数map序列化的json

userProperties

String

用户导入的属性

NameValueVO

名称 类型 描述

name

String

名称

value

String

示例

请求示例

https://api-bj.clink.cn/gateway/call_done_list

POST 请求体

{
    "enterpriseId": "8001678",
    "callJobId": 247545
}

返回示例

{
    "result": {
        "pageNum": 1,
        "total": 4442,
        "pages": 445,
        "list": [
            {
                "callInstanceId": 83245800856,
                "callJobId": 4966492,
                "callJobName": "库内数据测试-1-0308-2",
                "customerTelephone": "18888888",
                "customerName": "林",
                "callInstanceStatus": 2,
                "finishStatus": 6,
                "duration": 0,
                "chatRound": 0,
                "startTime": 1678353794000,
                "endTime": 1678353819000,
                "luyinOssUrl": "https://****.mp3",
                "resultList": [
                    {
                        "name": "客户意向等级",
                        "value": "D级(用户忙)"
                    }
                ],
                "finishStatusDesc": "占线",
                "properties": "{\"手机尾号\":\"9363\",\"callStartTime\":\"2023-03-09 17:23:15\",\"wechatPushStatus\":0,\"taskStartTime\":\"2023-03-09 17:23:14\"}",
                "userProperties": "{\"手机尾号\":\"9363\"}"
            }
        ]
    },
    "requestId": "3972bf0c-80f2-9837-8eb9-d58cf807569b"
}

4.8. 批量查询AI外呼任务的实时状态

POST /gateway/calljob_status_list
请求参数
名称 类型 是否必需 描述

enterpriseId

String

true

租户id

callJobIdList

String

true

AI外呼任务id数组字符串[4972911]

返回参数
名称 类型 描述

result

JSONObject

返回结果

JSONObject

名称 类型 描述

list

JSONArray

任务状态集合

JSONArray

名称 类型 描述

callJobId

Long

任务id

status

Long

任务状态,0:未开始,1:进行中,2:已完成,3:可运行,4:用户暂停,5:系统暂停,6:已终止,7:排队中,8:AI到期,9:线路欠费,10:短信欠费,11:AI欠费

示例

请求示例

https://api-bj.clink.cn/gateway/calljob_status_list

POST 请求体

{
    "enterpriseId":"8009016",
    "callJobIdList":"[4972911]"
}

返回示例

{
    "result": {
        "list": [
            {
                "callJobId": 4972911,
                "status": 6
            }
        ]
    }
}

4.9. 获取未完成任务通话号码

POST /gateway/call_not_start_list
请求参数
名称 类型 是否必需 描述

enterpriseId

String

true

租户id

callJobId

Long

true

任务id

pageNum

Long

false

分页参数,页码

pageSize

Long

false

分页参数,每页数量

返回参数
名称 类型 描述

result

JSONObject

返回结果

JSONObject

名称 类型 描述

list

JSONArray

总页数集合

pageNum

Long

当前页

total

Long

总记录数

pages

Long

总页数

JSONArray

名称 类型 描述

callInstanceId

Long

通话记录Id

customerName

Long

被叫客户名称

customerTelephone

String

被叫客户电话号码

properties

String

拨打所需参数map序列化的json

userProperties

String

用户导入的属性

示例

请求示例

https://api-bj.clink.cn/gateway/call_not_start_list

POST 请求体

{
    "enterpriseId": "8009016",
    "callJobId": 4972911,
    "pageNum": 1,
    "pageSize": 10

}

返回示例

{
    "result": {
        "pageNum": 1,
        "total": 1,
        "pages": 1,
        "list": [
            {
                "callInstanceId": 84416200024,
                "customerName": "liurf",
                "customerTelephone": "13851477962",
                "properties": "{\"channel\":\"tbot\"}",
                "userProperties": "{\"channel\":\"tbot\"}"
            }
        ]
    },
    "requestId": "cdefd256-db59-9908-a8fb-f42e41e24458"

}

4.10. 加入黑名单

POST /gateway/add_black_info
请求参数

名称

类型

是否必需

描述

enterpriseId

String

true

企业id

mobile

String

true

手机号

name

String

false

名称

remark

Integer

false

备注

返回参数

名称

类型

描述

requestId

String

唯一标识

result

JSONObject

返回数据

JSONObject

名称

类型

描述

blackListId

Long

黑名单id

示例

请求示例

https://api-bj.clink.cn/gateway/add_black_info

POST 请求体

{
    "enterpriseId":"801294",
    "mobile":"18766776677"
}

返回示例

{
    "result": {
        "blackListId": 182565105
    },
    "requestId": "4cd04116-45c9-4ba0-8a8f-7d4d03dddb44"
}

5. 外呼通话记录

5.1. 获取通话详情

POST /gateway/call_detail
请求参数
名称 类型 是否必需 描述

enterpriseId

String

true

租户id

callInstanceId

String

true

通话记录id

返回参数
名称 类型 描述

result

JSONObject

返回结果

JSONObject

名称 类型 描述

phoneLogs

PhoneLogVO[]

对话内容

callInstance

CallInstanceVO

通话详情

taskResult

TaskResultVO[]

任务结果分析,包含(关注点,意向等级)

PhoneLogVO

名称 类型 描述

callInstanceId

Number

通话id

speaker

String

说话人,ME: 客户 AI: 机器人

content

String

说话内容

userMean

String

用户说话语义

userMeanDetail

UserMeanDetailVO[]

用户语义详情

aiUnknown

Number

是否是ai无法应答的问题,1-是,0-否

startTime

Number

说话的开始时间,单位毫秒

endTime

Number

说话的结束时间,单位毫秒

UserMeanDetailVO

名称 类型 描述

score

Price

分值

answer

String

回答

ask

String

关键词

CallInstanceVO

名称 类型 描述

callInstanceId

Number

通话id

callJobId

Number

任务id

customerTelephone

String

客户手机号

customerName

String

客户名称

callInstanceStatus

Number

通话状态,2:已完成

finishStatus

Number

已完成通话状态, 0:已接听,1:拒接,2:无法接通,3:外呼失败,4:空号,5:关机,6:占线,7:停机,8:未接,9:主叫欠费,10:呼损,11:黑名单,12:天盾拦截,22:线路盲区,23呼出拦截,25:无可用线路(可选线路为空、线路超频等)

duration

Number

通话时长,单位秒

chatRound

Number

通话轮次

startTime

Number

通话开始时间

endTime

Number

通话结束时间

luyinOssUrl

String

录音地址(包含用户录音和Ai语音)

userLuyinOssUrl

String

用户通话录音

properties

Map

通话记录携带的参数(json字符串),包含话术变量和自定义参数,用户可以传入自己的变量,接口回调会传回给用户

jobName

String

任务名称

robotDefId

Number

机器人id

hangUp

Number

挂机人, 0: AI 1: 用户

calledTimes

Number

已拨打次数

finishStatusDesc

String

已完成通话状态描述,已完成通话状态, 0:已接听,1:拒接,2:无法接通,3:外呼失败,4:空号,5:关机,6:占线,7:停机,8:未接,9:主叫欠费,10:呼损,11:黑名单,12:天盾拦截,22:线路盲区,23呼出拦截,25:无可用线路(可选线路为空、线路超频等)

collectProperties

Map

数据采集变量

notifyEavesdrop

Boolean

是否发起监听通知

eavesdrop

Boolean

是否发起监听

eavesdropIntercept

Boolean

是否切入通话

csDuration

Number

人工通话时长

callerPhone

String

线路名称

TaskResultVO

名称 类型 描述

resultName

String

客户意向等级key;客户关注点key

resultValue

String

客户意向等级value;客户关注点value

resultDesc

String

分析结果描述,包括客户关注点和客户意向等级

resultLabels

ResultLabelVO[]

客户标签

ResultLabelVO

名称 类型 描述

key

Number

客户标签id

value

String

客户标签名称

示例

请求示例

https://api-bj.clink.cn/gateway/call_detail

POST 请求体

{
    "enterpriseId":"8001294",
    "callInstanceId": 73556304885
}

返回示例

{
    "result":{
        "phoneLogs":[
            {
                "callInstanceId":77728501598,
                "speaker":"AI",
                "content":"您好,我是天润融通智能机器人,是否需要转人工",
                "userMean":"",
                "userMeanDetail":null,
                "aiUnknown":null,
                "startTime":0,
                "endTime":0
            }
        ],
        "callInstance":{
            "callInstanceId":77728501598,
            "callJobId":4915585,
            "customerTelephone":"18888888888",
            "customerName":"test",
            "callInstanceStatus":null,
            "finishStatus":0,
            "duration":3,
            "chatRound":0,
            "startTime":1676894018000,
            "endTime":1676894022000,
            "luyinOssUrl":"https://robot-prod.oss-cn-hangzhou.aliyuncs.com/RobotPhoneCommunicate/20230220/20230220winFPM7728501598_13851477962.mp3",
            "userLuyinOssUrl":"https://robot-prod.oss-cn-hangzhou.aliyuncs.com/RobotPhoneCommunicate/20230220/20230220winFPM7728501598_13851477962_user.mp3",
            "properties":{
                "callStartTime":"2023-02-20 19:53:28",
                "wechatPushStatus":"0",
                "客户名称":"test",
                "联系方式":"18888888888",
                "taskStartTime":"2023-02-20 19:53:26"
            },
            "jobName":"测试打电话1234567",
            "robotDefId":280572,
            "hangUp":1,
            "calledTimes":1,
            "finishStatusDesc":"已接听",
            "collectProperties":{

            },
            "notifyEavesdrop":false,
            "eavesdrop":false,
            "eavesdropIntercept":false,
            "csDuration":0,
            "callerPhone":"天润演示线路"
        },
        "taskResult":[
            {
                "resultName":"客户意向等级",
                "resultValue":"C",
                "resultDesc":"命中业务问题 <= 0次 并且 肯定次数 <= 0次",
                "resultLabels":[

                ]
            }
        ]
    },
    "requestId":"4d2768ee-3fdb-989e-9d40-ba64fc44cd64"
}