呼叫系统

呼叫事件对接

呼叫中心用户电话呼入的时候,七鱼系统通过该接口向第三方系统获取用户信息,包括访客VIP级别、外接IVR路由、crm信息,根据获取到的信息进行访客分配,及访客信息更新;IVR过程中,IVR校验以及导航项动作自定义IVR接口播放内容接口也使用该接口对接;通话结束后,同步通话记录使用该接口对接。通过参数eventtype进行区分。

参数eventtype类型说明:

参数值 参数说明
1 获取用户信息
2 IVR校验
3 自定义IVR接口
4 播放内容接口
5 同步通话记录
6 同步电话服务记录字段

七鱼服务器向第三方接口请求信息时,采用密钥安全认证机制,保证第三方系统的信息安全。

调用说明

  • 本接口只支持POST请求;

  • 本接口请求Content-Type类型为:application/json;charset=utf-8;

  • 本接口返回类型为JSON,同时进行UTF-8编码。

curl请求样例如下

1.电话呼入时获取用户信息,包括访客VIP级别、外接IVR路由、crm信息

curl -X POST \
  'http://www.xxx.com/api/ivr/crminfo?checksum=f570a5eb049eb803b086e45829b07e48&time=1511832531' \
  -H 'content-type: application/json;charset=utf-8' \
  -d '{
    "eventtype": 1,
    "phone": "15854582215",
    "staffphone": "05718669163"
  }'

2.IVR校验请求

curl -X POST \
  'http://www.xxx.com/api/ivr/crminfo?checksum=f570a5eb049eb803b086e45829b07e48&time=1511832531' \
  -H 'content-type: application/json;charset=utf-8' \
  -d '{
    "eventtype": 2,
    "phone": "15854582215",
    "staffphone": "05718669163",
    "sessionid": 216629286,
    "ivrid": 3545,
    "keyrecord": "2-1-0",
    "input": "110226198501272116"
  }'

3.IVR过程中自定义IVR接口事件通知

curl -X POST \
  'http://www.xxx.com/api/ivr/crminfo?checksum=f570a5eb049eb803b086e45829b07e48&time=1511832531' \
  -H 'content-type: application/json;charset=utf-8' \
  -d '{
    "eventtype": 3,
    "phone": "15854582215",
    "staffphone": "05718669163",
    "sessionid": 216629286,
    "ivrid": 3545,
    "keyrecord": "1-3"
  }'

4.IVR过程中播放内容接口请求播放内容

curl -X POST \
  'http://www.xxx.com/api/ivr/crminfo?checksum=f570a5eb049eb803b086e45829b07e48&time=1511832531' \
  -H 'content-type: application/json;charset=utf-8' \
  -d '{
    "eventtype": 4,
    "phone": "15854582215",
    "staffphone": "05718669163",
    "sessionid": 216629286,
    "ivrid": 3545,
    "keyrecord": "1-2"
  }'

5.通话结束后同步通话记录请求

curl -X POST \
  'http://www.xxx.com/api/ivr/crminfo?checksum=f570a5eb049eb803b086e45829b07e48&time=1511832531' \
  -H 'content-type: application/json;charset=utf-8' \
  -d '{
    "eventtype": 5,
    "sessionid": 216629286,
    "direction": "呼入",
    "createtime": 1511832411968,
    "connectionbeginetime": 1511832413992,
    "connectionendtime": 1511832432183,
    "from": "15854582215",
    "to": "05718690766",
    "user": "云中鹤",
    "category": "售后问题/退货",
    "staffid": 642656,
    "staffname": "丽娜",
    "status": "接通",
    "visittimes": 1,
    "duration": "10:15",
    "evaluation": "满意",
    "recordurl": "https://ysf.nosdn.127.net/9f670ff01dae290ad4bf83401d291069.wav",
    "overflowFrom": "溢出来源",
    "shuntGroupName":"分流客服组",
    "ivrPath":"ivr路径",
    "mobileArea":"号码归属地"
  }'

6.通话结束后同步电话服务记录字段请求

curl -X POST \
  'http://www.xxx.com/api/ivr/crminfo?checksum=f570a5eb049eb803b086e45829b07e48&time=1511832531' \
  -H 'content-type: application/json;charset=utf-8' \
  -d '{
    "eventtype": 6,
    "sessionid": 216629286,
    "from": "15854582215",
    "to": "05718690766",
    "counselCategory":"咨询分类1/咨询分析2/咨询分类3",
    "remarks":"咨询小计",
    "customValueArray":[
        {
            "key":"自定义字段1",
            "value":"自定义value1"
        },
        {
            "key":"自定义字段2",
            "value":"自定义value2"
        }
    ]

  }'

请求参数和数据校验

接口鉴权参考通用说明-数据校验

接口返回数据说明

接口返回数据为JSON格式,最外层参数如下:

参数 参数说明
code 错误码。200表示设置成功。
result code为200时,返回值有效。eventtype=1时返回访客信息,为JSON格式数据;eventtype=4时返回播放内容,为String格式数据;其他可以为空
message 请求错误时,填错误提示信息

当eventtype=1时result 数据格式如下

参数 是否必须 数据类型 参数说明
name String 访客姓名
level Int 访客VIP级别,值为0到10
groupId Int IVR分流客服组ID
staffId Int IVR分流客服ID
ivrId Int IVR分流到指定IVR
  • 非VIP用户level等于0,VIP级别等级为1到10数值

  • groupIdstaffId值对应七鱼系统中的客服组ID和客服ID,从七鱼管理后台「在线系统」->「设置」->「会话流程」->「访客分配」->「分配规则」->「ID查询」中查找获取。ivrId对应七鱼系统中的ivrId,从七鱼管理系统「呼叫系统」->「设置」->「路由策略」->「IVR语音导航」中查找获取。三种ID的优先级为:staffId->groupId->ivrId

    • 如果只设置了 staffId,七鱼会查找staffId对应的呼叫客服,如果该客服正好空闲的话,电话将优先分配给他。

    • 如果设置了staffIdgroupId,七鱼会优先查找staffId对应的呼叫客服,如果该客服正好空闲,电话将优先分配给他,否则系统判断是否有返回groupId值。如果有groupId值,系统再优先查找groupId对应的呼叫客服组进行分配。

    • 如果只设置了groupId,七鱼会优先查找groupId对应的呼叫客服组,如果该客服组内正好有空闲客服,电话将随机分配给空闲的客服。如果该客服组内没有空闲客服,若有溢出规则,则按溢出规则走。

    • 如果只设置了ivrId,七鱼会优先按照ivrId来进行分配,会忽略ivr会员等级分配策略。

    • 如果没有返回staffIdgroupIdivrId三种中的任意一种,或者返回的值不存在,则七鱼将执行一般IVR分流。

返回的完整参数格式如下:

{
    "code": 200,
    "message": "",
    "result": {
        "level": 0,
        "groupId": 415451,
        "staffId": 2164623
    }
}

第三方接口样例

SpringMVC框架为例,第三方系统提供的接口如下:

@RequestMapping(value = "/crminfo", method = RequestMethod.POST)
@ResponseBody
public String getClientCrmInfoByPhone(
        @RequestParam(value = "checksum", required = true) String checksum,
        @RequestParam(value = "time", required = true) String time,
        @RequestBody(required = true) String jsonStr
) {
    // 此处省略业务代码
}

外呼任务

创建外呼任务

该接口由七鱼提供,第三方调用该接口可以自动生成营销相关的外呼任务,方便呼叫客服及时联系客户,从而提升营销质量

接口调用

  • 本接口只支持POST请求;

  • 本接口请求Content-Type类型为:application/json;charset=utf-8;

  • 本接口返回类型为JSON,同时进行UTF-8编码。

数据校验

接口鉴权参考通用说明-数据校验

请求示例

POST请求body参数为jsonStr格式,POST请求参数样例如下:

{
    "eventType": 1,
    "name": "意向客户回访",
    "description": "新注册用户回访",
    ...
    ...
}

参数说明

外呼任务的客服类型支持客服和客服组三种模式,当seatType=0|1,需要同时传递seatIds,当seatType=3,需要同时传递amount

具体参数说明如下:

参数 参数说明
eventType 请求事件类型,1-用户注册App,2-用户逾期未还款,3-沉默未投资,默认为其他
name 任务名称
description 任务描述
startTime 任务绝对开始时间,单位为毫秒
endTime 任务绝对结束时间,单位为毫秒
hideNumber 是否在外呼任务中隐藏用户号码,0-不隐藏,1-隐藏
seatType 指定客服类型,0-客服,1-客服分组,2-按客户关系分配 3-按自定义客户分配
seatIds 客服的id串或者客服组id串,以逗号分隔,当seatType=0时,代表客服的id,当seatType=1时,代表客服组的id
amount 指定客服分配信息健值对,为Json数组
customerInfo 用户号码信息键值对,为Json数组
customerInfo.name 用户名
customerInfo.value 用户手机号
customerInfo.staffId 客户负责人staffId
forecastType 任务类型, 0:普通外呼任务, 1:自动外呼任务
forecastRate 自动外呼任务的倍率值,取值范围:0.01 至 5.00, forecastType=1时有效
forecastDids 自动外呼任务的企业号码DID, 格式为:a,b,c 号码用英文逗号隔开的数组
customTemplateId 外呼任务信息模板, 非必填, 默认系统预设模板,详情请查看获取服务记录模板
repeatSwitch 自动外呼的重复呼叫的开关 0:关闭,1:开启 (只有在自动外呼情况下使用)
repeatStatus 自动外呼的重复呼叫状态条件,类型:List 3:无法接通,4:无人应答,14:客服未接听(自动外呼),15:无空闲客服(自动外呼)(仅在自动外呼且重复呼叫开启时生效)
repeatNum 自动外呼的重复呼叫次数, 取值:1或者2 (仅在自动外呼且重复呼叫开启时生效)
repeatInterval 自动外呼的重复呼叫时间间隔,取值:1到1440,单位分钟 (仅在自动外呼且重复呼叫开启时生效)

具体响应格式如下:

参数 参数说明
code 错误码
message 错误描述
data json对象
data.id 任务ID

请求示例

接口说明: 接口路径https://www.qiyukf.com/openapi/ipcc/calltask/marketing 已经停止维护,请使用新的接口路径https://www.qiyukf.com/openapi/ipcc/calltask/add

curl请求样例如下:

1.指定分配到客服,即seatType=0时

curl -X POST \
  'https://www.qiyukf.com/openapi/ipcc/calltask/add?appKey=1c088a89de51d0af457616605f28390f&checksum=f570a5eb049eb803b086e45829b07e48&time=1511832531' \
  -H 'content-type: application/json;charset=utf-8' \
  -d '{
    "eventType": 1,
    "name": "意向客户回访",
    "description": "新注册用户回访",
    "startTime": 1517722346089,
    "endTime": 1517808746089,
    "seatType": 0,
    "seatIds": "40004,40005",
    "customerInfo": [
        {
            "name": "阿波罗",
            "value": "18957128912",
            "remarks": ""
        },
        {
            "name": "小喽喽",
            "value": "15411660066",
            "remarks": ""
        }
    ]
  }'

2.指定分配到客服组,即seatType=1时

curl -X POST \
  'https://www.qiyukf.com/openapi/ipcc/calltask/add?appKey=1c088a89de51d0af457616605f28390f&checksum=f570a5eb049eb803b086e45829b07e48&time=1511832531' \
  -H 'content-type: application/json;charset=utf-8' \
  -d '{
    "eventType": 1,
    "name": "意向客户回访",
    "description": "新注册用户回访",
    "startTime": 1517722346089,
    "endTime": 1517808746089,
    "seatType": 1,
    "seatIds": "62451,511186",
    "customerInfo": [
        {
            "name": "阿波罗",
            "value": "18957128912",
            "remarks": ""
        },
        {
            "name": "小喽喽",
            "value": "15411660066",
            "remarks": ""
        }
    ]
}'

3.指定按客户关系分配,即seatType=2时

curl -X POST \
  'https://www.qiyukf.com/openapi/ipcc/calltask/add?appKey=1c088a89de51d0af457616605f28390f&checksum=f570a5eb049eb803b086e45829b07e48&time=1511832531' \
  -H 'content-type: application/json;charset=utf-8' \
  -d '{
    "eventType": 1,
    "name": "意向客户回访",
    "description": "新注册用户回访",
    "startTime": 1517722346089,
    "endTime": 1517808746089,
    "seatType": 2,
    "customerInfo": [
        {
            "name": "阿波罗",
            "value": "18957128912",
            "staffId": "1234",
            "remarks": ""
        },
        {
            "name": "小喽喽",
            "value": "15411660066",
            "staffId": "1235",
            "remarks": ""
        }
    ]
}'

4.指定按自定义的客户分配,即seatType=3时

curl -X POST \
  'https://www.qiyukf.com/openapi/ipcc/calltask/add?appKey=1c088a89de51d0af457616605f28390f&checksum=f570a5eb049eb803b086e45829b07e48&time=1511832531' \
  -H 'content-type: application/json;charset=utf-8' \
  -d '{
    "eventType": 1,
    "name": "意向客户回访",
    "description": "新注册用户回访",
    "startTime": 1517722346089,
    "endTime": 1517808746089,
    "seatType": 3,
    "customerInfo": [
        {
            "name": "阿波罗",
            "value": "18957128912",
            "remarks": ""
        },
        {
            "name": "小喽喽",
            "value": "15411660066",
            "remarks": ""
        }
    ],
    "amount": [
        {
            "count": 1,
            "seatId": "21321"
        },
        {
            "count": 1,
            "seatId": "12312"
        }
    ]
}'

5.如果是自动外呼任务时,只需要扩展三项参数即可,其它参数保持不变

curl -X POST \
  'https://www.qiyukf.com/openapi/ipcc/calltask/add?appKey=1c088a89de51d0af457616605f28390f&checksum=f570a5eb049eb803b086e45829b07e48&time=1511832531' \
  -H 'content-type: application/json;charset=utf-8' \
  -d '{
    "eventType": 1,
    "name": "意向客户回访",
    "description": "新注册用户回访",
    "startTime": 1517722346089,
    "endTime": 1517808746089,
    "seatType": 0,
    "seatIds": "40004,40005",
    "customerInfo": [
        {
            "name": "阿波罗",
            "value": "18957128912",
            "remarks": ""
        },
        {
            "name": "小喽喽",
            "value": "15411660066",
            "remarks": ""
        }
    ],
    "forecastType":1,
    "forecastRate":1.05,
    "forecastDids":"057110000000,057110000001,057110000002"
  }'

补充自动外呼号码

该接口由七鱼提供,第三方调用该接口可以补充自动外呼任务的号码,方便呼叫客服及时联系客户,从而提升营销质量

接口限制条件

  • 1、任务类型:自动外呼任务
  • 2、任务周期:周期不大于1周的任务
  • 3、任务状态:未过期任务
  • 4、一次插入条数:小于等于1000条号码
  • 5、频次:上一次外呼任务插入未完成,则接口调用失败

接口调用

  • 本接口只支持POST请求;

  • 本接口请求Content-Type类型为:application/json;charset=utf-8;

  • 本接口返回类型为JSON,同时进行UTF-8编码。

数据校验

接口鉴权参考通用说明-数据校验

任务详情导入接口参数说明

POST请求body参数为jsonStr格式,POST请求参数样例如下:

{
    "eventType": 1,
    "name": "意向客户回访",
    "description": "新注册用户回访",
    ...
    ...
}

参数说明

具体参数说明如下:

参数 参数说明
taskId 任务ID
customerInfo.name 客户名称
customerInfo.value 客户号码
customerInfo.remarks 备注(外呼更多资料)

具体响应格式如下:

参数 参数说明
code 错误码
message 错误描述

请求示例

curl请求样例如下:

curl -X POST \
  'https://www.qiyukf.com/openapi/ipcc/calltaskdetail/add?appKey=1c088a89de51d0af457616605f28390f&checksum=f570a5eb049eb803b086e45829b07e48&time=1511832531' \
  -H 'content-type: application/json;charset=utf-8' \
  -d '{
    "taskId": 1,
    "customerInfo": [
        {
            "name": "阿波罗",
            "value": "18957128912",
            "remarks": ""
        },
        {
            "name": "小喽喽",
            "value": "15411660066",
            "remarks": ""
        }
    ]
  }'

获取外呼任务详情

该接口由七鱼提供,第三方调用该接口获取任务详情

接口限制条件

  • 1、任务类型:自动外呼任务 , 手动外呼任务
  • 2、频次:一分钟

接口调用

  • 本接口只支持POST请求;

  • 本接口请求Content-Type类型为:application/json;charset=utf-8;

  • 本接口返回类型为JSON,同时进行UTF-8编码。

数据校验

接口鉴权参考通用说明-数据校验

请求示例

POST请求body参数为jsonStr格式,POST请求参数样例如下:

{
    "taskId": 1,
}

参数说明

具体参数说明如下:

参数 参数说明
taskId 任务ID

具体响应格式如下:

参数 参数说明
code 错误码
message 错误描述
data.forecastType 任务类型,0:预览式外呼, 1:预测式外呼
data.status 状态
data.customCount 客户数量
data.staffCount 客服数量
data.startTime 开始时间
data.endTime 结束时间
data.exeCount 执行数量
data.answerCount 接通数量
data.desc 描述
data.name 任务名称
data.seatNames 分配坐席

请求示例

接口说明: 接口路径 https://www.qiyukf.com/openapi/ipcc/autoCalltask/get 已经停止维护,请使用新的接口路径 https://www.qiyukf.com/openapi/ipcc/calltask/get

curl请求样例如下:

curl -X POST \
  'https://www.qiyukf.com/openapi/ipcc/calltask/get?appKey=1c088a89de51d0af457616605f28390f&checksum=f570a5eb049eb803b086e45829b07e48&time=1511832531' \
  -H 'content-type: application/json;charset=utf-8' \
  -d '{"taskId": 1}'

获取外呼任务明细详情

该接口由七鱼提供,第三方调用该接口获取任务明细详情

接口限制条件

  • 频次:一分钟
  • 分页: 一页2000

接口调用

  • 本接口只支持POST请求;

  • 本接口请求Content-Type类型为:application/json;charset=utf-8;

  • 本接口返回类型为JSON,同时进行UTF-8编码。

数据校验

接口鉴权参考通用说明-数据校验

请求示例

POST请求body参数为jsonStr格式,POST请求参数样例如下:

{
    "taskId": 1,
    "page": 1
}

参数说明

具体参数说明如下:

参数 参数说明
taskId 任务ID
page 页码,从1开始

具体响应格式如下:

参数 参数说明
code 错误码
message 错误描述
data.id 任务明细ID
data.taskId 任务ID
data.guestName 客户名称
data.phoneNumber 电话号码
data.staffName 分配坐席
data.callCount 呼叫次数
data.callResult 结果
data.remarks 外呼更多资料
data.callOutDuration 通话时长(秒)

请求示例

curl请求样例如下:

curl -X POST \
  'https://www.qiyukf.com/openapi/ipcc/calltaskdetail/get?appKey=1c088a89de51d0af457616605f28390f&checksum=f570a5eb049eb803b086e45829b07e48&time=1511832531' \
  -H 'content-type: application/json;charset=utf-8' \
  -d '{"taskId":1659354,"page":1}'

  {
    "code": 200,
    "data": {
        "total": 100,
        "data":[
            {
                "id": 18113113, //任务明细ID
                "taskId": 1659354, //任务ID
                "guestName": "guest66987", //客户名称
                "guestNumber": "13123456789", //电话号码
                "staffName": "",//分配坐席
                "callCount": 1,//呼叫次数
                "callResult": 1,//结果
                "remarks": "", //外呼更多资料
                "callOutDuration": -1 //通话时长
            }
        ]
    },
    "message": ""
}

编辑手动外呼任务

该接口由七鱼提供,第三方调用该接口可编辑手动外呼任务详情,减少因为内部原因产生的错误呼出量及对用户体验的伤害

接口限制条件

  • 1、任务类型:手动外呼任务
  • 2、任务状态:待分配,未开始,进行中
  • 3、任务明细状态:未呼叫
  • 4、一次编辑条数:小于等于100条号码
  • 5、一次编辑的影响的任务数:小于等于100个
  • 6、频次:上一次外呼任务编辑未完成,则接口调用失败
  • 7、数据安全:编辑任务详情时候,会锁定任务。故不要高频操作,3分钟内只能操作一次。

接口调用

  • 本接口只支持POST请求;

  • 本接口请求Content-Type类型为:application/json;charset=utf-8;

  • 本接口返回类型为JSON,同时进行UTF-8编码。

数据校验

接口鉴权参考通用说明-数据校验

请求示例

POST请求body参数为jsonStr格式,POST请求参数样例如下:

{
    "taskId": 1,
    "taskDetails": [
                {
                    "id":"1110",
                    "username":"xx",
                    "phone":"121323423",
                    "description":"备注"
                },{
                    "id":"1111",
                    "username":"xx",
                    "phone":"121323423",
                    "description":"备注"
                }
            ]
    ...
    ...
}

参数说明

具体参数说明如下:

参数 参数说明
taskId 任务ID
taskDetails 任务详情
taskDetails.id 任务详情Id
taskDetails.username 客户名称
taskDetails.phone 客户电话号码
taskDetails.description 备注(外呼更多资料)
taskDetails.customTemplateId 外呼任务信息模板,详情请查看获取服务记录模板

具体响应格式如下:

参数 参数说明
code 错误码
message 错误描述

任务详情编辑请求样例 curl请求样例如下:

curl -X POST \
  'https://www.qiyukf.com/openapi/ipcc/calltaskdetail/update?appKey=1c088a89de51d0af457616605f28390f&checksum=f570a5eb049eb803b086e45829b07e48&time=1511832531' \
  -H 'content-type: application/json;charset=utf-8' \
  -d '[
        {
            "taskId": 1,
            "taskDetails": [
                {
                    "id":"1110",
                    "username":"xx",
                    "phone":"121323423",
                    "description":"备注"
                },{
                    "id":"1111",
                    "username":"xx",
                    "phone":"121323423",
                    "description":"备注"
                }
            ]
        },{
            "taskId": 2,
            "taskDetails": [
                {
                    "id":"2110",
                    "username":"xx",
                    "phone":"121323423",
                    "description":"备注"
                },{
                    "id":"2111",
                    "username":"xx",
                    "phone":"121323423",
                    "description":"备注"
                }
            ]
        }
    ]'

删除外呼任务号码

该接口由七鱼提供,第三方调用该接口可删除手动外呼任务详情,减少由于内部原因产生的错误呼出量及对用户体验的伤害

接口限制条件

  • 1、任务类型:手动外呼任务
  • 2、任务状态:待分配,未开始,进行中
  • 3、任务明细状态:未呼叫
  • 4、一次删除条数:小于等于100条号码
  • 5、一次删除的影响的任务数:小于等于100个
  • 6、频次:上一次外呼任务删除未完成,则接口调用失败
  • 7、数据安全:删除任务详情时,会锁定任务。故不要高频操作,3分钟内只能操作一次

接口调用

  • 本接口只支持POST请求;

  • 本接口请求Content-Type类型为:application/json;charset=utf-8;

  • 本接口返回类型为JSON,同时进行UTF-8编码。

数据校验

接口鉴权参考通用说明-数据校验

请求示例

POST请求body参数为jsonStr格式,POST请求参数样例如下:

{
    "taskId": 1,
    "taskDetailIds": [123,1213],
    ...
    ...
}

参数说明

具体参数说明如下:

参数 参数说明
taskId 任务ID
taskDetailIds 任务详情Ids

具体响应格式如下:

参数 参数说明
code 错误码
message 错误描述

任务详情编辑请求样例 curl请求样例如下:

curl -X POST \
  'https://www.qiyukf.com/openapi/ipcc/calltaskdetail/delete?appKey=1c088a89de51d0af457616605f28390f&checksum=f570a5eb049eb803b086e45829b07e48&time=1511832531' \
  -H 'content-type: application/json;charset=utf-8' \
  -d '[
        {
            "taskId": 1,
            "taskDetailIds": [123,1231]
        },{
            "taskId": 2,
            "taskDetailIds": [1232,12312]
        }
    ]'

服务记录

获取服务记录模板

该接口由七鱼提供,第三方调用该接口获取服务记录模板

接口限制条件

  • 1、返回指定模板的所有启用状态模板

接口调用

  • 本接口只支持POST请求;

  • 本接口请求Content-Type类型为:application/json;charset=utf-8;

  • 本接口返回类型为JSON,同时进行UTF-8编码。

数据校验

接口鉴权参考通用说明-数据校验

请求示例

POST请求body参数为jsonStr格式,POST请求参数样例如下:

{
    "eventType": 1,
    "name": "意向客户回访",
    "description": "新注册用户回访",
    ...
    ...
}

参数说明

具体参数说明如下:

参数 参数说明
templateType 模板类型, 必传, 1: 外呼任务信息模板

具体响应格式如下:

参数 参数说明
code 错误码
message 错误描述
data.id 模板id
data.name 模板名称
data.description 模板描述
data.scenes 模板场景,0:无,1: 呼入,2: 呼出 , 3: 呼入和呼出
data.groups 模板绑定客服组 , 当为外呼任务信息模板没有客服组 , 值为0 . 当为 服务记录模板时 , 全部客服组 , 值为 -1 , 选择客服组时,客服组ID逗号分隔

请求示例

curl请求样例如下:

curl -X POST \
  'https://www.qiyukf.com/openapi/ipcc/customfield/template/get?appKey=1c088a89de51d0af457616605f28390f&checksum=f570a5eb049eb803b086e45829b07e48&time=1511832531' \
  -H 'content-type: application/json;charset=utf-8' \
  -d '{
        "templateType": 1
      }'

数据接口

呼叫总览数据

: 此接口连续两次请求间隔不能小于五分钟

POST 请求

https://qiyukf.com/openapi/data/overview/ipcc?appKey=[APP_KEY]&time=[TIME]&checksum=[CHECKSUM]

Content-Type:application/json;charset=utf-8

请求内容为空(空json对象即"{}"),但是也要加入鉴权

返回值说明:

{
"code":200,
"message":"{..}"
}

其中message说明如下:

{
    "queueSize":0,                      // 当前排队量
    "inTotal":1494,                     // 呼入总量
    "outTotal":2367,                    // 呼出总量
    "relativeSatisfactionRatio":0.9279, // 满意度
    "callSessionTotalCount":3861,       // 电话总量
    "callSessionTotalTime":361349091,   // 通话总时长
    "callInTotalTime":223537960,        // 呼入总时长
    "callOutTotalTime":137811131,       // 呼出总时长
    "avgQueueTime":23569,               // 平均排队时长
    "callInRadio":0.7718,               // 呼入接起率
    "callOutRadio":0.5006,              // 呼出接起率
    "callingStaffCount":5,              // 正在通话中的客服数量
    "resoveStaffCount":0,               // 处理中的客服数量
    "restStaffCount":0,                 // 小休坐席数
    "hangupStaffCount":0,               // 挂起坐席数
    "onlineStaffCount":2                // 空闲坐席数
}

呼叫坐席历史数据

接口说明

  • 数据时长为T+1的数据
  • 接口连续两次请求间隔不小于五分钟

参数说明

参数 是否必须 参数说明
startTime 开始时间,时间戳
endTime 结束时间,时间戳.开始和结束时间均不传的情况下,会查询近一个月的数据
model 1-全部(默认),2-客服组列表,3-客服列表
staffGroupList 客服组ID列表,模式 2 时有效
staffIdList 客服ID列表,模式 1 时有效

请求示例

: 此接口连续两次请求间隔不能小于五分钟 POST 请求

https://qiyukf.com/openapi/ipcc/history/seat?appKey=[APP_KEY]&time=[TIME]&checksum=[CHECKSUM]

Content-Type:application/json;charset=utf-8
{
    "startTime": 1615950729000,
    "endTime": 1615950729000,
    "model": 1,
    "staffGroupList": [1,2,3],
    "staffIdList":[1,2,3]
}

返回值说明:

{
"code":200,
"message": "[{..}]"          //字符串
}

其中message说明如下:

参数 参数说明
staffId 客服ID
staffName 客服名字
startTime 统计日期开始时间
endTime 统计日期结束时间
totalCount 话务总量
callInCount 呼入量
callOutCount 呼出量
callDuration 通话总时长
callInDuration 呼入总时长
callOutDuration 呼出总时长
avgCallDuration 平均通话时长
avgCallInDuration 平均呼入时长
avgCallOutDuration 平均呼出时长
callOutAnsweredRatio 呼出接通率
satisfactionRatio 相对满意率
evaluateCount 参评数
evaluateRatio 参评率
inviteEvaluateCount 邀评数
inviteEvaluateRatio 邀评率
onlineDuration 在线总时长
forecastDuration 自动外呼时长

呼叫工具条

呼叫工具条功能作为一个嵌入式插件提供给需要呼叫工具条的第三方网站使用。建议第三方在需要嵌入的页面加载成功后,通过异步接口向自己服务器端发起请求,获取工具条的SDK地址,并完成工具条SDK加载以及外呼拨号对接后即可使用。在异步接口中,第三方需要根据当前登录的客服,获取客服对应的账号信息,向七鱼发起HttpClient请求,来获取七鱼动态生成的SDK文件地址。前端页面拿到SDK地址之后,将其作为js文件进行加载即可完成工具条的初始化,再配合工具条提供的拨号接口,即可完成工具条功能的接入。

功能使用步骤拆解:

 步骤1: 向自己服务器端发起异步请求,获取工具条的`SDK`地址;
 步骤2: 加载SDK并进行初始化设置;
 步骤3: (按需使用) 初始化完成后,进行SDK接口调用;

获取SDK接入地址

第三方向七鱼请求SDK接入地址的时候,七鱼会执行客服在七鱼的登录事件,并生成含动态口令的SDK接入地址返回给第三方

接口调用及数据校验规则参考上面营销接口调用及校验

curl请求样例如下:

curl -X POST \
  'http://qiyukf.com/openapi/ipcc/login?appKey=1c088a89de51d0af457616605f28390f&checksum=f570a5eb049eb803b086e45829b07e48&time=1511832531' \
  -H 'content-type: application/json;charset=utf-8' \
  -d '{"staffName": "admin"}'

请求参数说明

参数 是否必须 数据类型 参数说明
staffName String 使用工具条的客服在七鱼这边对应的客服名(此处对应的参数值为客服账号)

接口返回数据为JSON格式,最外层参数如下:

参数 参数说明
code 错误码。200表示设置成功。
result code为200时,返回值有效。
message 请求错误时,填错误提示信息

如果code等于200表示客服登录成功,result内容为json数据,返回样例如下:

{
    "code": 200,
    "message": "",
    "result": {
        "sdk_url": "https://xxx.qiyukf.com/toolbar/script/get?token=cb1ec3c43089493eb4039945685ebf51",
        "corp_code": "xxx",
        "token": "cb1ec3c43089493eb4039945685ebf51"
    }
}

result内的参数说明如下:

参数 数据类型 参数说明
sdk_url String 生成的含动态登录口令的SDK接入地址
corp_code String 登录客服对应的七鱼企业域名
token String 动态登录口令

初始化SDK

前端页面通过上面异步接口获得sdk_url之后,动态加载这个sdk_url对应的js文件,即可完成工具条的初始化

动态加载js样例

var sdk = document.createElement('script');
  sdk.async = !0;
  sdk.src = url;
  sdk.onload = function(){//sdk加载成功后,注册呼叫工具条事件
      qiConnect.on({
          onload: function() {//呼叫工具条加载完毕的事件通知。此事件完成后才可调用外呼接口
             console.log('呼叫工具条加载完毕!');
          },
          /**
           * 建立新呼叫会话的事件,包括外呼和呼入
           * @param  {Object} session  呼叫会话的session信息
           *
           * @param  {String} session.address      号码归属地
           * @param  {String} session.usernumber   客户号码
           * @param  {Number} session.sessionid    会话id
           * @param  {String} session.staffnumber  坐席号码
           * @param  {Number} session.staffid      坐席id
           * @param  {String} session.staffname    坐席账号
           * @param  {Number} session.direction    会话方向,1表示呼入,2表示呼出
           */
          session: function(session){

              console.log('session',session);
          }
      });
  };
  document.body.appendChild(sdk);

呼叫工具条加载完成后,会在接入页面添加id为CONTAINER-CC-TOOLBAR的工具条容器元素,可通过定义该容器的样式,定制呼叫工具条的位置以及叠放层级。

自定义样式示例

<style>
    #CONTAINER-CC-TOOLBAR {
        top: 100px;
        right: 100px;
        z-index: 100001;
    }
</style>



呼叫工具条SDK加载完成后,SDK会在全局对象window上挂载qiConnect对象,该对象实现了SDK 接口功能:SDK事件、SDK方法。

SDK事件

qiConnect对象提供了一系列事件监听功能,通过qiConnect.on({ [eventType]:[eventHandler] })进行注册。

注意SDK事件操作需要在sdk脚本加载完成后才能注册监听

事件 eventType 说明
onload 加载成功
session 会话开始
answered 会话接通
byeFailed 通话挂断失败
sessionClose 会话结束
statusOptionsChanged 状态可选项变更
statusChanged 状态设置成功
statusChangeFailed 状态设置失败

加载完成 onload

工具条加载完成后,可进行面板操作或调用SDK方法。

使用方式
qiConnect.on({onload: function(){
    // other code ……
}});

会话开始事件 session

呼叫会话的创建事件,包括外呼和呼入。监听该事件可获取当前会话信息。

使用方式
qiConnect.on({session: function(data){
    // other code ……
}});
data字段
名称 类型 含义
sessionid Number 会话id
address String 号码归属地
usernumber Number 客户号码
staffnumber Number 坐席号码
staffid Number 坐席id
staffname String 坐席名
direction Number 会话方向 1 呼入 2 呼出
ivrpathname String IVR路径名称 格式:节点名称1-节点名称2……-节点名称N

会话结束事件 sessionClose

呼叫会话的结束事件,包括呼出和呼入。监听该事件可获取当前会话信息。

使用方式
qiConnect.on({sessionClose: function(data){
    // other code ……
}});
data字段
名称 类型 含义
address Number 号码归属地
usernumber Number 客户号码
sessionid Number 会话id
staffid Number
staffname Number 坐席名

会话接通事件 answered

表示会话双发已准备就绪,可以开始通话。当呼叫会话为呼入时,坐席接起电话后触发的事件 或者 当呼叫会话为呼出时,被外呼客户接起后触发的事件。监听该事件可获取当前会话的拨号方式和接起方式。

使用方式
qiConnect.on({ answered: function(data){
    // other code ……
}});
data字段
名称 类型 含义
direction String "IN" 呼入通话 "OUT" 外呼通话
type String "SIP" sip话机 "AUTOANSWER" 自动应答 "CALLPANEL" 面板点击 "" 外呼通话接起类型未知

通话挂断失败事件 byeFailed

当执行挂断通话的操作失败后触发,如当前处于非通话状态时,调用了bye()方法,故建议在有answered事件相应后调用bye()方法。监听该事件可获取失败原因。

使用方式
qiConnect.on({ byeFailed: function(data){
    // other code ……
}});
data字段
名称 类型 含义
hasError Boolean 是否有错误
cause String 挂断失败的具体原因

坐席可选状态变更事件 statusOptionsChanged

坐席可选状态变更事件,当软电话、SIP话机、手机在线等服务模式发生变更时,伴随着坐席可用状态的变更,此事件会通知变更信息。

使用方式
qiConnect.on({statusOptionsChanged: function(data){
    // other code ……
}});
data字段
名称 类型 含义
status Array 当前状态
statusOptions Array 可选状态选项

坐席状态设置成功事件 statusChanged

坐席状态设置成功事件,工具条坐席当前状态发生变更,此事件会通知变更成功的状态。

使用方式
qiConnect.on({statusChanged: function(data){
    // other code ……
}});
data字段
名称 类型 含义
status Array 当前设置的状态

坐席状态设置失败事件 statusChangeFailed

坐席状态设置失败事件,此事件会通知变更失败的状态以及失败原因。

使用方式
qiConnect.on({statusChangeFailed: function(data){
    // other code ……
}});
data字段
名称 类型 含义
status Array 设置的状态
errorMsg string 失败信息

SDK方法

qiConnect对象提供了一系列方法。 需要在qiConnect的onload事件完成(呼叫功能加载完成)之后才能执行。使用格式 qiConnect.fn(), fn如下:

注意SDK操作需要在qiConnect的onload事件完成(呼叫功能加载完成)之后才能执行

方法 Method 说明
call() 外呼
bye() 挂断当前通话
logOff() 账号登出
setStatus() 设置坐席状态
keepPanelUnfold() 面板保持展开

外呼拨号 qiConnect.call(numbers)

该接口实现了一键外呼的功能,传入需要外呼的号码直接调用即可。

使用样例如下

<form onsubmit="return false;" id="yyy">
    <p id="call">外呼号码<input type="text" name="mobile" />
        <input type="button" value="外呼" name="buttonCall" />
    </p>
</form>
document.getElementById('yyy').buttonCall.onclick = function() {
    if (!form.mobile.value) return alert('请输入电话号码');
    qiConnect.call(form.mobile.value);
}

挂断通话 qiConnect.bye()

该接口实现了挂断当前通话的功能,直接调用即可。如当前处于非通话状态时无法执行操作,强行调用会有异常错误相应可通过监听事件处理, 建议在answered事件响应后进行挂断场景处理。

<form onsubmit="return false;" id="yyy">
    <p id="call">外呼号码<input type="text" name="mobile" />
        <input type="button" value="挂断" name="buttonBye" />
    </p>
</form>

var isCalling = false;
qiConnect.on({ 
    answered: function(data){
        isCalling = true;
    },
    sessionClose: function() {
        isCalling = false;
    },
    byeFailed: function(data) {
        alert('挂断异常:'+data.cause);
    }
});

document.getElementById('yyy').buttonBye.onclick = function() {
    if(isCalling){
        qiConnect.bye();
    }
}

退出系统 qiConnect.logoff()

该接口实现了退出七鱼系统的功能,直接调用即可。退出后工具条所有功能将不可用,若想再次启用呼叫功能需重新走一遍功能使用的几个步骤。

使用样例如下

<form onsubmit="return false;" id="exampleLogoff">
     <input type="button" value="退出七鱼工具条" name="buttonLogoff" />
</form>
document.getElementById('exampleLogoff').buttonLogoff.onclick = function() {
    // some code...
   var conditionLogoffQiyu = true; //退出七鱼系统的条件
   if (conditionLogoffQiyu) {
      window.qiConnect.logoff();
   }
   // some code...
}

设置坐席状态 qiConnect.setStatus(status)

该接口实现了重置坐席服务状态的功能,需传入当前服务模式可用的坐席状态。

@param status {Array} 初始化成功后状态默认为 qiConnect.status, 可设置状态来自 qiConnect.statusOptions, 当服务模式(软电话/SIP话机/手机在线)发生改变时, 可选坐席状态也将发生对应更新,可通过事件 statusOptionsChanged获取更新的状态信息

qiConnect.statusOptions {Array} 可状态列表,格式 [{ label , value, children} ] 示例如下:

// qiConnect.statusOptions 
[
    { "label": "离线", "value": "0" }, 
    { "label": "小休", "value": "1",
        "children": [
            { "label": "会议", value: "0" } 
        ]
    },
    ...
]

使用样例如下:

<form onsubmit="return false;" id="yyy">
    <label> 请选择状态:
        <select name="chooseStatus">
            // qiConnect.statusOptions 当前可选状态
            <option value="statusOption.value">statusOption.label</option>
        </select>
    </label>
</form>
const selectElement = document.querySelector('[name="chooseStatus"');

selectElement.addEventListener('change', (event) => {
  const status = event.target.value;
  // 可选状态若存在二级状态 参数格式示例 [status, subStatus]
  qiConnect.setStatus([status]);
});

设置面板保持展开状态 qiConnect.keepPanelUnfold(flag)

该接口实现了面板保持展开状态的功能。面板默认不展开,通话接通时若面板为展开状态则会自动收起,如需面板一直保持展开状态可使用该功能,设置成功后,点击工具条依然可以手动操作展开和收起动作,或根据需求取消该功能。

@param flag {boolean} 默认为 false

示例场景-初始化成功后一直保持展开,使用样例如下:

qiConnect.on({
    onload: () => {//呼叫工具条加载完毕的事件通知  
        console.log('demo info: 呼叫工具条加载完毕!');
        qiConnect.keepPanelUnfold(true);
    }
});

外呼机器人

创建外呼机器人任务

通过此接口可以创建外呼机器人新的任务。

  • 接口请求示例:
   POST https://qiyukf.com/openapi/icoutcall/job/create?appKey=1064deea1c3624c9ee26d1de5ce8481f&time=1463217187&checksum=2f13932c4b7c6888b12360a85261a11b8b543f64
   Content-Type:application/json;charset=utf-8
  • 请求参数说明:
参数 字段类型  是否必须  参数说明
concurrencyQuota Integer 并发数 开启一线多并发时可比robotCount大,不开启一线多并发是与robotCount相同(线路类型为手机号的时候可不传)
jobPhoneNumberIdList List Long 通过获取外呼线路接口获取 tenant_phone_number_id,当类型是手机号的时候他的size代表机器人的个数,当类型非手机号的时候他的size只能是1;如果外呼方式选择的是外呼策略组,则里面内容为外呼策略组的id(size只能为1)
transferPhoneNumber List String 选择转人工话术时必填 转人工号码,触发转人工时轮训号码列表
robotCallJob RobotCallJob 任务详细信息
  • 任务详细信息参数说明(RobotCallJob)
参数 字段类型  是否必须  参数说明
name String 任务名称
isPrior Boolean 是否设置为优先
dialogFlowId Long 话术id
tenantCallInterceptId Long 拦截组id 有效id大于0,取消时传0,传null不更新
mode String 任务类型 (AUTO, "自动任务"),(MANUAL, "手动任务")
startTime String 自动任务:必填 手动任务:非必填 任务开始日期 "2020-11-21"
endTime String 结束日期 "2019-10-10 23:59:59"
dailyStartTime String 当天可拨打开始时间,不可以早于9点 "09:00"
dailyEndTime String 当天可拨打结束时间,不可以晚于20点 "20:00"
inactiveTimeList List TimeSlot 不可拨打时间段列表,最大三个不可拨打时段 [{"startTime":"12:00", "endTime":"13:00"}]
daysOfWeek List String 一周内可拨打的日期 ["MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY"]
inactiveDateList List DateSlot 不可拨打日期 [{"startDate":"2020-01-01", "endDate":"2020-01-03"}]
csStaffGroupId Long 话术包含人工介入时必填 坐席组id,通过话术API中获取人工介入标识。如果存在人工介入标识,需要传入坐席组Id
phoneType String 号码类型 (MOBILE, "手机号码"),(LANDLINE, "固话"),(UNFIXED_CALL, "无主叫"), (CALL_POLICY_GROUP, "外呼策略组")
smsAlertLevelCode List Integer 短信推送提醒意向等级编码[0, 1]
smsTemplateId Long 短信模板id
robotCount Integer AI坐席数
earlyWarningAlertUsers List String 行业预警消息推送人
redialCondition Set String 选择自动重拨时必填 重拨条件(CALL_LOSS,"呼损客户"),(NO_ANSWER,"无应答"),(BUSY,"忙线中"),(REFUSED,"拒接"),(POWER_OFF,"关机"),(OUT_OF_SERVICE,"停机"),(CAN_NOT_CONNECT,“无法接通“),(FROM_PHONE_ERROR,"主叫欠费"),(SYSTEM_ERROR,"外呼失败")
redialInterval Integer 选择自动重拨时必填 重拨间隔(分钟,取值范围6分钟~24 x 60分钟)
redialTimes Integer 选择自动重拨时必填 重拨次数(取值范围1~10)
connectRedialCondition List Long 电话接通后需要重拨的意向分类id,如果电话挂断后分析意向结果在该集合内则自动重拨
description String 备注
  • 时间参数说明(TimeSlot)
参数 字段类型 是否必须 参数说明
startTime String 开始时间点 "12:00"
endTime String 结束时间点 "12:00"
  • 日期参数说明(DateSlot)
参数 字段类型 是否必须 参数说明
startDate String 开始日期 "2020-01-01"
endDate String 结束日期 "2020-01-03"
  • 请求内容示例:

{
    "concurrencyQuota": 10,
    "jobPhoneNumberIdList": [
        2112
    ],
    "robotCallJob": {
        "name":"test",
        "isPrior":true,
        "dialogFlowId":6601,
        "mode":"AUTO",
        "startTime": "2020-07-22 04:32:00",
        "endTime": "2020-07-23 04:32:00",
        "dailyEndTime": "21:00",
        "dailyStartTime": "09:00",
        "phoneType":"LANDLINE",
        "robotCount": 10
    }
}

  • 返回参数说明:
参数 说明
code 错误码 ,200 表示成功
message 提示信息
data 返回内容
  • 返回内容示例:
{
    "code": 200,
    "message":"创建成功",
    "data": {"robotCallJobId":139}
}

向外呼机器人任务中导入客户

通过此接口可以向指定的任务导入客户信息,用于拨打电话。(单次导入客户数量不能大于100) 此接口是公网服务,所有客户共用,为保证接口响应速度和吞吐量,并控制服务器压力,将单次导入个数定位100个。数据量大时可以重复调用此接口来实现。

  • 接口请求示例:
   POST https://qiyukf.com/openapi/icoutcall/job/importcustomer?appKey=1064deea1c3624c9ee26d1de5ce8481f&time=1463217187&checksum=2f13932c4b7c6888b12360a85261a11b8b543f64
   Content-Type:application/json;charset=utf-8
  • 请求参数说明:
参数 字段类型 是否必须 参数说明
robotCallJobId Long 任务id
customerPersons List CustomerPerson 客户资料信息列表
  • 客户资料信息列表参数说明(CustomerPerson):
参数 字段类型 是否必须 参数说明
name String 客户名称
gender String 性别: MALE 男 FEMALE 女
phoneNumber String 客户手机号
properties Map String, Object 话术中自定义的语句内容
  • 请求内容示例:
{
    "robotCallJobId": 28,
    "customerPersons": [{
        "name": "test",
        "phoneNumber": "11111111111",
        "gender": "MALE",
        "properties": {
            "欠款金额": "10.13",
            "最后还款日期": "2018年10月3日"
         }
        }
      ]
}
  • 返回参数说明:
参数 说明
code 错误码 ,200 表示成功
message 提示信息
data 返回部分失败内容和提示信息
  • 返回内容示例:
{
    "code": 200,
    "message":"部分导入失败",
    "data": [
        {
          "phoneNumber": "18283748928",
          "errorMsg": "线路限制地内"
        }
    ]
}

向外呼机器人已呼客户列表重新添加客户到呼叫任务

通过接口可以在已呼客户列表中重新添加客户到呼叫任务。

  • 接口请求示例:
   POST https://qiyukf.com/openapi/icoutcall/job/readdcustomer?appKey=1064deea1c3624c9ee26d1de5ce8481f&time=1463217187&checksum=2f13932c4b7c6888b12360a85261a11b8b543f64
   Content-Type:application/json;charset=utf-8
  • 请求参数说明:
参数  字段类型   是否必须  参数说明
robotCallJobId Long 任务ID
customerPersonIds List Long 需要添加的客户id
lastCallRecord Boolean 是否过滤重复通话记录只显示最近的一条
searchWords String 通过手机号码或者用户名通话记录ID模糊搜索筛选
customerGroupId Long 分组ID
resultStatuses List String 呼叫状态 ANSWERED(0, "已接听", null), NO_ANSWER(1, "无应答", "呼叫号码未接听"), BUSY(2, "忙线中", "呼叫号码占线"),POWER_OFF(3, "关机", "呼叫号码关机"), OUT_OF_SERVICE(4, "停机", "呼叫号码停机"), REFUSED(5, "拒接", "呼叫号码拒接"),VACANT_NUMBER(6, "空号", "呼叫的号码是空号"), CAN_NOT_CONNECT(7, "无法接通", "呼叫的号码无法接通"),FROM_PHONE_ERROR(8, "主叫停机", "主叫号码不可用"), SYSTEM_ERROR(9, "系统错误", "外呼失败,系统错误"),CALL_LOSS(10,"多并发呼损","等待服务中用户挂断"), TRANSFER_ARTIFICIAL(11,"转人工呼损","等待转人工服务中用户挂断");
intentLevels List String 意向等级 A(0, "A级(较强)"), B(1, "B级(一般)"), C(2, "C级(无法判断)"), D(3, "D级(很少)"),E(4, "E级别(需要再次跟进)"), F(5, "F级别(无需再次跟进)");
followStatus String 跟进状态 CLUE(0, "线索"), AI_INITIAL_VISIT(1, "AI初访"), PEOPLE_INITIAL_VISIT(2, "人工初访"), AI_FOLLOW_UP(3, "AI持续跟进"), PEOPLE_FOLLOW_UP(4, "人工持续跟进"), QUOTE(5, "报价"), DEAL(6, "成交"), LOSS(7, "流失");
dialogFlowId Long 话术ID
earliestCreationTime String 最早创建时间,日期标准格式,请不要包含时间"2018-07-25"
latestCreationTime String 最晚创建时间,日期标准格式,请不要包含时间"2018-07-25"
  • 请求内容示例:
{
    "robotCallJobId": 1,
    "customerPersonIds": [1919005, 1919006],
    "lastCallRecord": true,
    "searchWords": "12323424",
    "customerGroupId": 1,
    "resultStatuses": ["ANSWERED", "REFUSED"],
    "intentLevels": ["A"],
    "followStatus": "AI_INITIAL_VISIT",
    "dialogFlowId": 2,
    "earliestCreationTime" :  "2018-07-25" ,
    "latestCreationTime" :  "2018-07-30"
}
  • 返回参数说明:
参数 说明
code 错误码 ,200 表示成功
message 提示信息
  • 返回内容示例:
{
    "code": 200,
    "message":"添加成功"
}

获取任务详情

通过此接口可以获取指定任务的详细信息。

  • 接口请求示例:
   POST https://qiyukf.com/openapi/icoutcall/get/jobdetail?appKey=1064deea1c3624c9ee26d1de5ce8481f&time=1463217187&checksum=2f13932c4b7c6888b12360a85261a11b8b543f64
   Content-Type:application/json;charset=utf-8
  • 请求参数说明:
参数 字段类型 是否必须 参数说明
robotCallJobId Long 任务id
  • 请求内容示例:
{
    "robotCallJobId": 10
}
  • 返回参数说明:
参数 说明
code 错误码 ,200 表示成功
message 提示信息
data 返回内容
参数
字段类型
参数说明
robotCallJobId Long 任务id
dialogFlowId Long 话术id
name String 任务名称
mode String 任务类型 (AUTO, "自动任务"),(MANUAL, "手动任务")
phoneType String 线路类型 (MOBILE, "手机"),(LANDLINE, "固话"),(UNFIXED_CALL,"无主叫固话"),(CALL_POLICY_GROUP,"外呼策略组")
robotCount Integer 任务占用的坐席数量
dailyStartTime String 可拨打开始时间
dailyEndTime String 可拨打结束时间
inactiveTimeList List 不可拨打时间段列表
description String 任务注释
alertUsers String 提示人员
earlyWarningAlertUsers String 预警提示人员
createTime String 任务创建时间
updateTime String 任务修改时间
startTime String 任务开始时间
nextStartTime String 下一次任务开始时间
status String 任务状态, NOT_STARTED(0, "未开始"),IN_PROCESS(1, "进行中"),COMPLETED(2, "已完成"),RUNNABLE(3, "可运行"),USER_PAUSE(4, "用户暂停"),SYSTEM_SUSPENDED(5, "系统暂停"),TERMINATE(6, "已终止"),IN_QUEUE(7, "排队中"),SYSTEM_HANG_UP(10, "系统挂起"), WAITING_FOR_REDIAL(11, "等待重呼"), ACCOUNT_DISABLE(12, "账户禁用"), MAINTAIN(13, "系统维护")
jobPhoneNumberList List 任务主叫线路列表
policyGroupPhoneNumberList List 外呼策略组包含的线路信息
transferPhoneNumber List 转人工号码
dialogFlowName String 话术名称
redialCondition List 设置的自动重拨的状态集,(CALL_LOSS,"呼损客户"),(NO_ANSWER,"无应答"),(BUSY,"忙线中"),(REFUSED,"拒接"),(POWER_OFF,"关机"),(OUT_OF_SERVICE,"停机"),(CAN_NOT_CONNECT,“无法接通“),(FROM_PHONE_ERROR,"主叫欠费"),(SYSTEM_ERROR,"外呼失败")
redialInterval Integer 重拨间隔(分钟)
redialTimes Integer 重拨次数
  • 返回内容示例:
{
    "code": 200,
    "message":"获取任务详情成功",
    "data": {
        "robotCallJob": {
            "robotCallJobId": 1,
            "tenantId": 1,
            "dialogFlowId": 1,
            "dialogFlowName":"金融行业体验demo-优化版",
            "name": "dialog测试",
            "mode": "MANUAL",
            "robotCount": 12,
            "smsTemplateId": null,
            "phoneType": "LANDLINE",
            "dailyStartTime": "15:08:31",
            "dailyEndTime": "15:08:36",
            "inactiveTimeList": [{"startTime":"12:00", "endTime":"13:00"}],
            "description": null,
            "wechatAlertLevel": [],
            "wechatAlertLevelCode":[],
            "smsAlertLevel": [],
            "smsAlertLevelCode":[],
            "wechatConditionAlertLevel":[],
            "wechatConditionAlertLevelCode":[],
            "alertUsers": [],
            "wechatSendMethod": "SENDTOALL",
            "status": "TERMINATE",
            "startTime": null,
            "nextStartTime": "00:00:00",
            "createTime": "2018-10-09 15:08:54",
            "updateTime": "2018-10-09 15:11:20",
            "earlyWarningAlertUsers": [],
            "wechatPushConditionList": [
                {
                  "intentLevelCodes": [0],
                  "durationThreshold": 1,
                  "userIds": [1878],
                  "wechatSendMethod": "SENDTOALL",
                  "transferCustomer": false,
                  "pushIndex": 0
                },
                {
                  "intentLevelCodes": [1],
                  "durationThreshold": 2,
                  "userIds": [1878],
                  "wechatSendMethod": "SENDTOONE",
                  "transferCustomer": false,
                  "pushIndex": 0
                }
            ],
            "redialCondition":["CALL_LOSS", "FROM_PHONE_ERROR", "POWER_OFF", "OUT_OF_SERVICE", "REFUSED", "CAN_NOT_CONNECT"],
            "redialInterval":6,
            "redialTimes":1
        },
       "jobPhoneNumberList": [{
            "tenantPhoneNumberId": 675,
            "phoneNumber": "13576084683",
            "phoneName": "",
            "enabledStatus": 1,
            "phoneType": "LANDLINE",
            "concurrencyQuota": 5
        }],
        "transferPhoneNumber": [
            "1523654789",
            "1758426896"
        ],
        "completedTask": 3612,
        "taskCallTotal": 166
    }

}

获取任务中的变量(包括话术变量和短信变量)

通过接口可以获取该任务中的自定义变量,包括话术变量、意向短信变量、挂机短信变量等。

  • 接口请求示例:
   POST https://qiyukf.com/openapi/icoutcall/get/jobproperties?appKey=1064deea1c3624c9ee26d1de5ce8481f&time=1463217187&checksum=2f13932c4b7c6888b12360a85261a11b8b543f64
   Content-Type:application/json;charset=utf-8
参数 字段类型 是否必须 参数说明
robotCallJobId Long 任务id
  • 请求内容示例:
{
    "robotCallJobId": 10
}
  • 返回参数说明:
参数 说明
code 错误码 ,200 表示成功
message 提示信息
data 返回部分失败内容和提示信息
  • 返回内容示例:
{
    "code": 200,
    "message":"获取任务变量成功",
    "data": [
        "欠款金额",
        "最后还款日期"
    ]
}

通话记录回调接口

当一次通话完成后,会自动调用回调程序向用户配置的回调地址发送本次通话详情。 请您在对接接口前,务必在系统->扩展与集成->外呼机器人通话记录接口URL 配置好正确的回调地址,否则回调将无法成功。

  • 请求方法说明 回调方法采用POST请求发起; 七鱼服务器向第三方接口请求信息时,采用密钥安全认证机制,保证第三方系统的信息安全。

  • 接口请求示例

      POST http://www.xxx.com/xxx?time=1463217187&checksum=2f13932c4b7c6888b12360a85261a11b8b543f64
      Content-Type:application/json;charset=utf-8
    
  • 参数说明

参数
类型
说明
dataType String 回调类型(始终为 ROBOT_CALL_RECORD )
callRecordId Long 通话记录id
dialogFlowId Long 话术id
robotCallJobId Long 任务id
calledPhoneNumber String 电话号码
resultStatus String 通话结果 (ANSWERED, "已接听"),(NO_ANSWER, "未接"),(BUSY, "占线"),(POWER_OFF, "关机"),(OUT_OF_SERVICE, "被叫停机"),(REFUSED, "拒接"),(VACANT_NUMBER, "空号"),(CAN_NOT_CONNECT, "无法接通"), (FROM_PHONE_ERROR, "主叫号码不可用"),(SYSTEM_ERROR, "外呼失败")
intentLevel String 意向等级, (A, "A级(较强)"),(B, "B级(一般)"),(C, "C级(无法判断)"),(D, "D级(很少)"),(E, "E级别(需要再次跟进)"),(F, "F级别(无需再次跟进)")
customerConcern String 用户关注点
fullAudioUrl String 用户和AI合成的录音
customerAudioUrl String 用户的录音
analysisBasis String 意向分析判断依据
startTime String 拨打开始时间
endTime String 拨打结束时间
chatDuration Long 通话时长(单位秒)
chatRound Long 通话轮次
attributes String 用户属性
properties Map 自定义字段
intentLevelTagId Long 自定义标签分组id
intentLevelCode Integer 自定义标签组code
dynamicProperties Map 通话过程中收集的动态变量
callDetailList List 对话内容
text String 对话说的具体文字内容
type String 说话者 (PERSON, "人"), (ROBOT, "机器人")
callDetailId Long 对话详情id
  • 请求内容示例:
{
    "dataType":"ROBOT_CALL_RECORD",
    "data":{
        "callRecordId":119,
        "robotCallJobId":43,
        "dialogFlowId":12,
        "calledPhoneNumber":"17751279857",
        "resultStatus":"ANSWERED",
        "intentLevel":"A",
        "customerConcern":["价格"],
        "fullAudioUrl":"https://ai-call-platform-daily.oss- cn-hangzhou.aliyuncs.com/DialogueRecording/TenantId1/CallJobId43/RHGKTLBG_TaskId_1305203/ai_user.wav",
        "customerAudioUrl":"https://ai-call-platform-daily.oss-cn-hangzhou.aliyuncs.com/DialogueRecording/TenantId1/CallJobId43/RHGKTLBG_TaskId_1305203/user.wav",
        "analysisBasis":"判断依据",
        "startTime":"2018-10-12 18:46:55",
        "endTime":"2018-10-12 18:47:42",
        "chatDuration":37,
        "chatRound":0,
        "attributes":["有钱"],
        "properties": {"生日": "2019年10月1日"},
        "intentLevelTagId": 0,
        "intentLevelCode": 1,
        "dynamicProperties": {
                "姓名": "kz",
                "联系电话": "18099998888",
                "结果": "18156755675",
                "按键": "4125",
                "性别": "女士"
        },
        "callDetailList":[
                {
                    "text":"喂,您好, (停顿2s),您好,想问下您位于江北纬七路隧道附近,均价17000的高端商业综合体,我可以给您介绍一下吗?",
                    "type":"ROBOT",
                    "callDetailId": 1
                },
                {
                    "text":"嗯",
                    "type":"PERSON",
                    "callDetailId": 2
                }
         ]
    }
}