NAV Navbar
  • 介绍
  • 开发引导
  • 最近更新日志
  • 公司信息接口
  • 任务操作接口
  • 任务信息查询接口
  • 信息回调接口
  • 介绍

    百应机器人API文档

    这是百应机器人API文档,具体详情查看每个API接口调用说明;

    如果有问题,欢迎联系我们客服,技术支持

    公司官网地址 :www.byai.com/

    开发引导

    调用说明

    调用方式说明:

    第一种方式:主动调用 这种调用方式是客户主动调用接口获取数据或实现功能;

    主动调用需要传入APP_KEY和APP_SECRET用于权限校验;

    注意:请在开发对接程序前联系百应技术支持进行注册,如果你还未签约,请先签约开通账户。

    第二种方式:方法回调 这种调用方式是当达到预设条件如:任务状态变更或通话结束时,由百应主动向指定地址发送信息;

    注意:请在开发前联系百应技术同学配置好回调地址。

    百应机器人API是使用HTTP并遵循REST风格设计的Web服务接口;

    您可以使用几乎任何客户端和任何编程语言与REST API进行交互。

    通过发送简单的HTTP请求就可以轻松接入使用。

    调用方式分为两种:主动调用和方法回调。

    认证

    认证密钥样例

      APP_KEY = "WtSMaXXXXXXXXtvy";
      APP_SECRET = "aXSFnnZbHXXXXXXXXXXXXXXXMguz1Q";    
    

    API认证采用HMACSha1加密算法进行加密,使用GMT时间戳、APP_KEY、APP_SECRET共同生成一个密钥。

    目前已有完整JAVA版的demo,具体实现请下载DEMO查阅。 Python版demo目前包含签名算法和获取公司列表接口demo可供查阅。 Php版demo目前包含签名算法和get,post请求样例可供查阅。

    请在API样例byrobot-openapi-demo中替换为自己的APP_Key和APP_SECRET.

    百应为确保您的账户和信息安全,请在开发对接程序前联系百应技术支持注册接口调用专属密钥。

    统一请求格式

    URL格式:

    /{resource}/{function}

    说明:

    {resource}为资源名,通常对应一类API

    {function}为该资源提供的操作方法

    请求响应的结果为json格式

    比如查询公司列表的url为:

    <code>http://openapi/v1/company </code> 表示调用company(公司列表)的get方法,并且返回json格式的字符串。
    
    我们目前已经提供的接口,请参考API。 
    
    

    HTTP头信息:

    Accept:application/json;charset=utf-8

    说明:

    请求方式(Method):统一用POST方式 编码:UTF-8

    AppKey和回调地址

    App

    说明:使用CRM超级管理员账号登录,在系统管理->系统设置->API配置中可获得AppKey,AppSecret。 创建AppKey的账号才具有修改回调地址的权限。 CRM账号获取方法请联系相关客服。

    DEMO 下载

    本页面提供Java,Python,Php的Demo下载。

    SDK包内有部分使用说明,各接口的详细使用说明请浏览各API详情页。

    如百应未提供您使用语言的SDK,您可以根据API文档开发接口

    语言 GitHub地址
    JAVA [GitHub地址]
    Python [GitHub地址]
    PHP [GitHub地址]

    最佳实践流程图:

    Oms3

    常见问题解答

    1. 定时任务和手动任务的异同
    2. A:
    3. 异: 定时任务在设定好启动时间和结束时间时会在到达指定时间时自动启动 手动任务则需要导入客户之后手动启动任务 同: 任务到达12-14点或指定暂停时间会自动暂停,并且会占用AI并发量

    4. isv账号能否操作多个crm账号下的任务

    5. A:一个appKey和appSecret可以通过api接口操作多个crm账号,获取公司信息和任务信息,需要提供您的子公司的公司名 给百应的api负责同学,百应这边为您绑定之后就可以通过openApi操作子公司下的任务了

    流程说明

    第一部分:

    主要是获取公司相关信息,为创建任务提供数据。

    这里一共三个接口分别查询到: 1.公司Id

    2.公司的主叫电话号码列表

    3.机器人话术相关参数:

    1)机器人话术id

    2) 机器人话术场景id

    3) 机器人话术录音id

    第二部分:

    核心业务部分,主要是任务的创建,启动,停止等操作。

    1.创建任务

    创建任务过程中需要传入的几个重要的值:场景id,场景录音id,机器人话术id,这三个值不能传入有误,传入出错会导致任务拨打有误

    2.任务启动和暂停

    任务创建完成之后,调用启动任务接口就可以启动任务,任务在启动时,可调用暂停任务让任务进入暂停状态(可再次运行)

    3.停止任务

    在任务进行中,每一次通话结束都会调用通话回调接口,将本次通话详情发送到指定回调地址。

    第三部分:

    任务运行结束,调用任务回调接口,将本次任务信息发送到指定回调地址。

    第四部分:

    主要是查询任务相关信息。

    枚举类型说明

    主叫号码类型枚举

    code desc
    0 手机
    1 阿里云固话
    2 无主叫固话
    6 SIP线路

    任务类型枚举

    code desc
    1 定时启动任务
    2 手动启动任务

    外呼类型枚举

    code desc
    0 sim卡(默认)
    1 固话
    2 无主叫

    任务状态枚举

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

    任务实例状态枚举

    code desc
    0 未开始
    1 进行中
    2 已完成
    3 二次拨打调度中

    通话实例已完成状态枚举(finishStatus)

    code desc
    0 已接听
    1 拒接
    2 无法接通
    3 主叫号码不可用
    4 空号
    5 关机
    6 占线
    7 停机
    8 未接
    9 主叫欠费
    10 呼损
    11 黑名单

    呼叫类型枚举

    code desc
    0 免费试用
    1 任务
    2 用户单独拨打
    3 收费试用
    4 Ope后台拨打
    5 大屏试用
    100 客服人工拨打

    错误码信息

    错误码 错误信息
    200 执行成功
    401 校验数据错误
    404 资源未找到
    403 权限不足
    412 参数错误
    500 未知错误

    最近更新日志

    2018年7月23日

    1. 修改任务AI坐席数(任务并发数)
    2. 单次电话外呼接口

    更新说明:

    7月 - 新增接口如下: 1. 开放对外呼任务的AI坐席数(任务并发数)进行修改的接口支持,可更新任务状态为非进行中任务的AI坐席数(任务并发数) 2. 开放单次电话外呼接口,可以通过该接口进行单次的电话外呼 - 接口改动如下: 1. 获取已经完成任务电话号码接口查询每页不能超过50条

    7月28日 - 新增接口如下: 1. 开放通过客户手机号直接进行电话外呼的接口

    2018年11月

    11月 - 新增信息获取接口: 1.获取获取任务未开始的电话列表 - 接口改动 1.回调接口增加客户标签数据

    2018年12月13日

    2018年12月28日

    2019-01-07

    2019-02-19

    2019-02-19

    2019-03-20

    2019-04-02

    公司信息接口

    获取绑定公司列表接口

    功能说明:

    通过此接口可以获取用户isv下绑定所有的公司信息

    返回对象示例:

    {
        "code": 200,
        "data": [
            {
                "companyName": "阿里巴巴", 
                "companyId": 1 
            },
            {
                "companyName": "网易", 
                "companyId": 2
            }
        ],
        "resultMsg": "获取成功",
        "errorStackTrace": null 
    }
    
    

    请求:

    URL:http://api.byrobot.cn/openapi/v1/company/getCompanys

    请求方法:

    GET

    请求参数:

    响应:

    参数名 类型 描述
    code int 响应码
    companyName String 公司名称
    companyId int 公司Id
    resultMsg String 响应说明

    获取公司的主叫电话列表接口

    功能说明:

    通过接口可以获取指定公司的所有主叫电话的列表 注意: 1.主叫号码列表的PhoneType字段标识外呼线路类型--需要对应新建任务接口的callType字段 2.文档中给出的是常用枚举类型,若特殊用户自用时出现其他枚举类型,只需要遵循注意点1即可 3.不需要对不同主叫类型区分业务使用的情况下,建议对新建任务的callType做成根据主叫id对应的phoneType动态传入,不要写死字段值

    返回对象示例:

    {
        "code": 200,
        "data": [{
            "userPhoneId": 0,
            "callerAccountId": null,
            "phone": "1400xxxxxxx",
            "account": null,
            "phoneName": "xxxxx",
            "phoneType": 2,
            "available": true,
            "useAvailable": true,
            "totalConcurrencyQuota": 5,
            "usedConcurrencyQuota": 0,
            "billPeriod": 60,
            "validityBegin": "2018-07-24 00:00:00",
            "validityEnd": "2019-07-27 00:00:00",
            "sceneType": null,
            "lineAmount": 1.040,
        }, {
            "userPhoneId": 2,
            "callerAccountId": null,
            "phone": "150xxxxxxxx",
            "account": null,
            "phoneName": "2",
            "phoneType": 2,
            "available": true,
            "useAvailable": true,
            "totalConcurrencyQuota": 5,
            "usedConcurrencyQuota": 0,
            "billPeriod": 60,
            "validityBegin": "2018-07-24 00:00:00",
            "validityEnd": "2019-07-27 00:00:00",
            "sceneType": null,
            "lineAmount": 1.030,
        }],
        "resultMsg": "获取成功",
        "errorStackTrace": null
    }
    
    

    请求:

    URL:http://api.byrobot.cn/openapi/v1/company/getPhones

    请求方法:

    GET

    请求参数:

    参数名 类型 是否必须 描述 示例
    companyId int 公司Id 1

    响应:

    参数名 类型 描述
    code int 响应码
    userPhoneId int 主叫号码Id
    phone String 主叫号码
    account String 主叫号码账号
    phoneName String 主叫号码名称
    phoneType int 主叫号码类型:手机(0, "手机"),阿里云固话(1, "阿里云固话"),无主叫固话(2, "无主叫固话"),sip线路(6,"sip线路")
    available Boolean 是否可用(已使用ai坐席大于可用ai坐席数时会返回false)
    totalConcurrencyQuota int 总并发数
    usedConcurrencyQuota int 已经使用并发数
    billPeriod int 计费周期
    validityBegin Date 可用开始时间
    validityEnd Date 可用结束时间
    sceneType int 应用场景 1:呼入,2:呼出,3:呼入呼出
    lineAmount BigDecimal 线路账户余额
    resultMsg String 响应说明

    获取公司的机器人话术列表接口

    功能说明:

    通过接口可以获取指定公司的所有配置完成的机器人话术 注意: 1.本接口主要获取三个重要字段 (用于新建任务) 1)robotDefId:话术机器人ID 2)sceneDefId:话术场景ID 3)sceneRecordId:话术场景录音Id 2.三个参数一一对应,如果对应错误或误传可能导致外呼失败或者外呼话术不正确问题,请注意!

    返回对象示例:

    {
        "code": 200,
        "data": [{
            "robotDefId": 14,
            "robotName": "测试话术1",
            "sceneDefId": 34,
            "sceneRecords": [{
                "sceneRecordId": 34,
                "sceneRecordName": "测试场景录音"
            }],
            "industryOneName": "房产类",
            "industryTwoName": "高端住宅",
            "gmtModify": "2018-11-09 10:09:32"
        }, {
            "robotDefId": 38375,
            "robotName": "测试话术2",
            "sceneDefId": 38387,
            "sceneRecords": [{
                "sceneRecordId": 38383,
                "sceneRecordName": "测试录音"
            }],
            "industryOneName": "房产类",
            "industryTwoName": "装修",
            "gmtModify": "2018-11-29 09:06:43"
        }],
        "resultMsg": "获取成功",
        "errorStackTrace": null
    }
    
    

    请求:

    URL:http://api.byrobot.cn/openapi/v1/company/getRobots

    请求方法:

    GET

    请求参数:

    参数名 类型 是否必须 描述 示例
    companyId int 公司Id 1
    robotStatus int 0:所有话术,1:已上线话术,默认0 1

    响应:

    参数名 类型 描述
    code int 响应码
    robotDefId int 话术机器人Id
    robotName String 话术机器人名称
    sceneDefId int 话术场景Id
    sceneRecordId int 话术场景录音id
    sceneRecordName String 话术场景录音名称
    industryOneName String 一级行业名
    industryTwoName String 二级行业名
    gmtModify Date 修改时间
    resultMsg String 响应说明

    添加单个黑名单到公司默认黑名单组接口

    功能说明:

    通过接口可以导入单个黑名单信息到默认分组中

    返回对象示例:

    {
        "code": 200,
        "data": 3221,//黑名单id
        "resultMsg": "获取成功",
        "errorStackTrace": null
    }
    
    

    请求:

    URL:http://api.byrobot.cn/openapi/v1/company/addBlackList

    请求方式:

    POST

    请求参数:

    参数名 类型 是否必须 描述 示例
    name string 客户姓名 测试用户
    mobile string 手机号 159xxxxxxxx
    remark string 备注 备注信息
    companyId int 公司Id 1

    响应:

    参数名 类型 描述
    code int 响应码
    data int 黑名单id
    resultMsg String 响应说明

    获取公司AI坐席概况接口

    功能说明:

    通过接口可以获取公司所有的坐席以及已经使用的坐席数量。

    返回对象示例:

    {
     "code":200,
     "data":
      {
        "companyAllCallSeat":2,
        "companyUsingCallSeat":0
      },
     "resultMsg":"查询成功",
     "errorStackTrace":null,
     "requestId":null
    }
    
    

    请求:

    URL:http://api.byrobot.cn/openapi/v1/company/seat/statistics

    请求方式:

    GET

    请求参数:

    参数名 类型 是否必须 描述 示例
    companyId int 公司id 1

    响应:

    参数名 类型 描述
    code int 响应码
    data Object companyAllCallSeat表示公司所有坐席数量
    companyUsingCallSeat全公司已使用坐席数量
    resultMsg String 响应说明

    任务操作接口

    创建任务接口

    功能说明:

    通过此接口可以创建新的任务

    注意点

    电话任务外呼时间范围 9:00-20:00

    创建任务,支持使用多个无主叫固话,只需设置总坐席数,由系统自动分配每个线路的坐席数量。 注意: (1)ai坐席数的总数可在crm界面企业账户中看到 (2)创建人默认为公司的主账号 (3)开启重拨需要的枚举: 2-无法接通, 3-外呼失败, 5-关机, 6-占线, 7-停机, 9-主叫欠费, 10-呼损,

    入参JSON示例:

    {
        "companyId": 1,
        "taskName": "测试任务",
        "taskType": 2,
        "startDate": "2017-10-19",
        "workingStartTime": "08:00",
        "workingEndTime": "22:00",
        "breakStartTime": "12:00",
        "breakEndTime": "13:00",
        "userPhoneIds": [1],
        "callType": 0,
        "concurrencyQuota": 1,
        "robotDefId": 1,
        "sceneDefId": 1,
        "sceneRecordId": 7,
        "smsType": 1,
        "remark": "创建任务",
        "repeatCall": true,
        "defaultIntentionRule": true,
        "repeatCallRule": [{
                "phoneStatus": 9,
                "times": 1,
                "interval": 5
            },
            {
                "phoneStatus": 10,
                "times": 1,
                "interval": 5
            }
        ]
    }
    

    返回对象示例:

    {
        "code": 200,
        "data": 67, //返回刚刚创建的任务ID
        "resultMsg": "操作成功",
        "errorStackTrace": null
    }
    
    

    请求:

    URL:http://api.byrobot.cn/openapi/v1/task/createTask

    请求方法:

    POST

    请求参数:

    参数名 类型 是否必须 描述 示例
    companyId int 公司Id 1
    taskName String 任务名称 测试API任务
    taskType int 任务类型, 1-定时,2-手动 1
    startDate String 任务开始日期 "2017-10-19"
    workingStartTime String 可拨打开始时间 08:00
    workingEndTime String 可拨打结束时间 22:00
    breakStartTime String 暂时停止开始时间 12:00
    breakEndTime String 暂时停止结束时间 13:00
    userPhoneIds int 主叫电话号码id列表,详见获取公司的主叫电话列表(getPhones)接口 [1,2]
    sceneDefId int 场景id 1
    robotDefId int 机器人id 1
    sceneRecordId int 机器人话术录音id 1
    callType int 主叫号码类型,0-sim卡,1-固话(默认), 2-无主叫 1
    concurrencyQuota int ai坐席数,默认1 1
    remark String 备注 测试
    repeatCall boolean 是否开启重拨 默认false 关闭
    repeatCallRule list 重拨详细规则
    phoneStatus int 通话状态
    times int 重拨次数
    interval int 间隔时间
    defaultIntentionRule boolean 是否使用默认客户分配规则,默认false

    响应:

    参数名 类型 描述
    code int 响应码
    data int 刚刚创建的任务ID
    resultMsg String 响应说明

    启动任务接口

    功能说明:

    通过此接口可以启动指定的任务

    返回对象示例:

    {
        "code": 200,
        "data": null,
        "resultMsg": "启动成功",
        "errorStackTrace": null
    }
    
    

    请求:

    URL:http://api.byrobot.cn/openapi/v1/task/start

    请求方法:

    POST

    请求参数:

    参数名 类型 是否必须 描述 示例
    taskId int 任务Id 1

    响应:

    参数名 类型 描述
    code int 响应码
    resultMsg String 响应说明

    暂停任务接口

    功能说明:

    通过此接口可以暂停指定的任务

    返回对象示例:

     {
         "code": 200,
         "data": null,
         "resultMsg": "执行成功",
         "errorStackTrace": null
     }
    
    

    请求:

    URL:http://api.byrobot.cn/openapi/v1/task/pause

    请求方法:

    POST

    请求参数:

    参数名 类型 是否必须 描述 示例
    taskId int 任务Id 1

    响应:

    参数名 类型 描述
    code int 响应码
    resultMsg String 响应说明

    停止任务接口

    功能说明:

    通过此接口可以停止 指定的任务

    返回对象示例:

     {
         "code": 200,
         "data": null,
         "resultMsg": "执行成功",
         "errorStackTrace": null
     }
    
    

    请求:

    URL:http://api.byrobot.cn/openapi/v1/task/stop

    请求方法:

    POST

    请求参数:

    参数名 类型 是否必须 描述 示例
    taskId int 任务Id 1

    响应:

    参数名 类型 描述
    code int 响应码
    resultMsg String 响应说明

    删除任务

    功能说明:

    通过调用此接口可以删除任务信息

    入参JSON示例

    {
      "taskId": "1"
    }
    

    返回对象示例:

    {
        "code": 200,
        "data": null,
        "resultMsg": "删除成功",
        "errorStackTrace": null
    }
    
    

    请求:

    URL:http://api.byrobot.cn/openapi/v1/task/delete

    请求方法:

    POST

    请求参数:

    参数名 类型 是否必须 描述 示例
    taskId String 删除任务 1

    响应:

    参数名 类型 描述
    code int 响应码
    resultMsg String 响应说明

    向任务中导入客户接口

    功能说明:

    通过此接口可以向指定的任务导入客户信息,用于拨打电话

    入参JSON示例:

    
    {
        "taskId":10000,
        "companyId":2000,
        "customerInfoList":[
            {
                "name":"测试0",
                "phone":"18311110000",
                "properties":{  //客户额外信息,如果话术中包含变量,则需要在properties中加上对应字段,map的key和话术中的变量保持一致。如果话术没有变量,则不要properties
                    "real_name":"real"
                }
            },
            {
                "name":"测试1",
                "phone":"18311112222",
                "properties":{  //客户额外信息,如果话术中包含变量,则需要在properties中加上对应字段,map的key和话术中的变量保持一致。如果话术没有变量,则不要properties
                    "real_name":"real"
                }
            }
        ]
    } 
    
    

    返回对象示例:

     v1b版:
     {
         "code": 200,
         "data": null,
         "resultMsg": "操作成功",
         "errorStackTrace": null
     }
    
     v2版:
     {
         "code":200,
         "data":{
             "msg":"本次导入:3个客户,预计导入成功:3个客户,成功导入:3个客户,重复:0个客户,话术变量错误:0个客户",
             "successNum":3,
             "repeatNum":0,
             "placeFailNum":0
         },
         "resultMsg":"操作成功",
         "errorStackTrace":null,
         "requestId":null
     }
    
    

    请求:

    v1版URL:http://api.byrobot.cn/openapi/v1/task/importTaskCustomer v2版URL:http://api.byrobot.cn/openapi/v2/task/importTaskCustomer

    PS:v1版接口已过期,不推荐使用,请使用v2版接口。

    请求方法:

    POST

    请求参数:

    参数名 类型 是否必须 描述 示例
    companyId int 公司id 1
    taskId int 任务Id 1
    name String 客户名称 张三
    phone String 客户电话 13998987676
    properties Map 客户额外信息 请看json入参
    forceTransferCustomer Integer 是否强制转移客户 1:是 0:否(默认1) 1

    tip: forceTransferCustomer字段使用方式(默认强制转移) 有多个子账号(团队成员)情况下,客户【a】被子账号A跟进,此时通过api向子账号B创建的任务中导入客户【a】 会因为跟进人不是子账号B导致失败,如果forceTransferCustomer设置为1,则会强制将客户【a】导入到子账号B 创建的任务中,并且将客户【a】分配给子账号B

    响应:

    v1版:

    参数名 类型 描述
    code int 响应码
    resultMsg String 响应说明
    data String 响应数据

    v2版:

    参数名 类型 描述
    code int 响应码
    resultMsg String 响应说明
    data object 响应数据
    msg String 结果文字消息
    successNum int 成功条数
    repeatNum int 重复条数
    placeFailNum int 话术变量错误条数

    修改任务

    功能说明:

    通过接口可以更改AI坐席数量,功能同crm端编辑话术时修改外呼号码的AI坐席数

    入参JSON示例

    {
      //公司Id
      "companyId": 123,
      //任务Id
      "taskId":1669,
      //任务名称
      "taskName":"test",
      //任务类型 详见枚举
      "taskType":1,
      //外呼号码列表,当有多个外呼号码时可以用[,]分隔
      "userPhoneIds":"255,244",
      //外呼类型 详见枚举
      "callType":1,
      //并发数(ai坐席数)
      "concurrencyQuota":2,
      //多并发数(专业版及以上,最大100)
      "concurrencyPhone":4,
      //外呼开始日期
      "startDate":"2018-12-12",
      //任务开始时间
      "workingStartTime":"09:00",
      //任务结束实际
      "workingEndTime":"20:00",
      //午休开始时间
      "breakStartTime":"12:00",
      //午休结束时间
      "breakEndTime":"14:00",
      "repeatCall": true,
        "repeatCallRule": [{
                "phoneStatus": 9,
                "times": 1,
                "interval": 5
            },
            {
                "phoneStatus": 10,
                "times": 1,
                "interval": 5
            }
        ]
    }
    
    

    返回对象示例:

    {
        "code": 200,
        "data": null,
        "resultMsg": "修改成功",
        "errorStackTrace": null
    }
    
    

    请求:

    URL:http://api.byrobot.cn/openapi/v1/task/update

    请求方法:

    POST

    请求参数:

    参数名 类型 是否必须 描述 示例
    companyId int 公司Id 1
    taskId int 任务Id 1
    taskName String 任务名称 1
    taskType int 任务类型 1
    userPhoneIds String 外呼号码 1
    callType int 外呼类型 1
    concurrencyQuota int 坐席数 1
    concurrencyPhone int 并发量 1
    startDate String 开始日期 "2018-12-13"
    workingStartTime String 任务开始时间 "09:00"
    workingEndTime String 任务结束时间 "20:00"
    breakStartClose boolean 是否关闭午休不拨打时间 true:关闭,false:维持原状态,默认false
    breakStartTime String 任务中断午休开始时间 "12:00"
    breakEndTime String 任务中断午休结束时间 "14:00"
    repeatCall boolean 是否开启重拨 默认false 关闭
    repeatCallRule list 重拨详细规则

    响应:

    参数名 类型 描述
    code int 响应码
    resultMsg String 响应说明

    单次电话外呼

    功能说明:

    通过调用此接口可以进行单次电话外呼 注意:此接口仅限测试和少量外呼,如需大量外呼请使用外呼任务

    入参JSON示例

    {
      "customerId": 1
      "mobile": 13886871111
      "companyId": 1
      "variable": {
        "userName":"张三",
        "age":15
      }
      "sceneDefId": 255
      "sceneRecordId": 256
      "robotDefId": 230
    }
    

    返回对象示例:

    {
        "code": 200,
        "data": null,
        "resultMsg": "外呼成功",
        "errorStackTrace": null
    }
    
    

    请求:

    URL:http://api.byrobot.cn/openapi/v1/task/call

    请求方法:

    POST

    请求参数:

    参数名 类型 是否必须 描述 示例
    customerId int 客户Id 1
    mobile int 客户手机号 1
    companyId int 公司Id 1
    variables Map 1.变量(如果话术内设置变量则需要传入)2.不传值情况下需要保留字段名 1
    sceneDefId int 机器人话术场景Id 1
    sceneRecordId int 机器人话术录音Id 1
    robotDefId int 机器人话术Id 1

    响应:

    参数名 类型 描述
    code int 响应码
    resultMsg String 响应说明

    根据手机号进行单次电话外呼

    功能说明:

    通过调用此接口可以通过手机号直接进行单次电话外呼,外呼结果会通过回调返回,并且将通话记录增加到公司id对应的crm账号下

    注意:此接口仅限测试和少量外呼,如需大量外呼请使用外呼任务

    入参JSON示例

    {
      "mobile": "13886871111"
      "companyId": 1,
      "variable": {
        "userName":"张三",
        "age":15
      },
      userName:,"客户姓名",
      "sceneDefId": 255,
      "sceneRecordId": 256,
      "robotDefId": 230
    }
    

    返回对象示例:

    {
        "code": 200,
        "data": null,
        "resultMsg": "外呼成功",
        "errorStackTrace": null
    }
    
    

    请求:

    URL:http://api.byrobot.cn/openapi/v1/task/singleCallByMobile

    请求方法:

    POST

    请求参数:

    参数名 类型 是否必须 描述 示例
    mobile String 客户手机号 1
    companyId int 公司Id 1
    variables Map 1.变量(如果话术内设置变量则需要传入)2.不传值情况下需要保留字段名 1
    sceneDefId int 机器人话术场景Id 1
    sceneRecordId int 机器人话术录音Id 1
    robotDefId int 机器人话术Id 1
    userName String 客户姓名 1

    响应:

    参数名 类型 描述
    code int 响应码
    data int 通话记录Id
    resultMsg String 响应说明

    查询话术变量

    功能说明:

    通过调用此接口可以查询到话术内使用的变量

    返回对象示例:

    {
        "code":200,
        "data":[
            "变量名1",
            "变量名2",
            "变量名3"
        ],
        "resultMsg":"获取成功",
        "errorStackTrace":null
    }
    
    

    请求:

    URL: http://api.byrobot.cn/openapi/v1/task/getSceneVariables

    请求方法:

    GET

    请求参数:

    参数名 类型 是否必须 描述 示例
    companyId int 公司Id 1
    sceneDefId int 机器人话术场景Id 1

    响应:

    参数名 类型 描述
    code int 响应码
    data list(String) 话术变量集合
    resultMsg String 响应说明

    任务信息查询接口

    获取任务列表接口

    功能说明:

    通过此接口可以获取指定公司的任务列表

    返回对象示例:

    {
        "code": 200,
        "data": {
            "pageNum": 2, 
            "pageSize": 2, 
            "size": 2,
            "orderBy": null,
            "startRow": 3,
            "endRow": 4,
            "total": 46, 
            "pages": 23,
            "list": [
                {
                    "callJobId": 66, 
                    "jobName": "测试任务", 
                    "jobType": 2, 
                    "startDate": "2017-10-25", 
                    "workingStartTime": "09:00:00", 
                    "workingEndTime": "21:00:00", 
                    "status": 2, 
                    "sceneDefId": 1, 
                    "remark": "", 
                    "totalCount": null, 
                    "doneCount": null, 
                    "calledCount": null, 
                    "rejectedCount": null, 
                    "unavailableCount": null,
                    "fromUnavailableCount": null,
                    "callPhones": null 
                },
                {
                    "callJobId": 64,
                    "jobName": "测试任务2",
                    "jobType": 2,
                    "startDate": "2017-10-25",
                    "workingStartTime": "09:00:00",
                    "workingEndTime": "21:00:00",
                    "status": 2,
                    "sceneDefId": 1,
                    "remark": "",
                    "totalCount": null,
                    "doneCount": null,
                    "calledCount": null,
                    "rejectedCount": null,
                    "unavailableCount": null,
                    "fromUnavailableCount": null,
                    "sceneDefName": null,
                    "callPhones": null
                }
            ]
        },
        "resultMsg": "操作成功",
        "errorStackTrace": null
    }
    
    

    请求:

    URL:http://api.byrobot.cn/openapi/v1/task/getTasks

    请求方法:

    GET

    请求参数:

    参数名 类型 是否必须 描述 示例
    companyId int 公司Id 1
    taskName String 任务名称 测试API任务
    createDate String 创建时间 "2017-10-19"
    status int 任务状态,选填 - 0:未开始,1:进行中,2:已完成,3:调度中,4:手动暂停,5:自动暂停,6:已终止,7:排队中,8:AI到期,9:账户欠费 1
    needAll boolean true:返回所有Job信息包含已打标删除的Job信息,false:只返回未打标删除的Job信息,默认false false
    pageNum int 第几页,默认1 1
    pageSize int 页面大小,选填,默认10 10

    响应:

    参数名 类型 描述
    code int 响应码
    pageNum int 当前分页数
    pageSize int 当前分页数据条数
    total int 数据总条数
    pages int 分页总数
    callJobId int 任务id
    jobName String 任务名称
    jobType int 任务类型,1-定时,2-手动
    startDate String 任务开始时间
    workingStartTime String 可拨打开始时间
    workingEndTime String 可拨打结束时间
    breakStartTime String 暂时停止开始时间
    breakEndTime String 暂时停止结束时间
    status int 任务状态, 0:未开始,1:进行中,2:已完成,3:调度中,4:手动暂停,5:自动暂停,6:已终止,7:排队中,8:AI到期,9:账户欠费,10:短信欠费
    remark String 任务注释
    totalCount int 任务拨打的号码总数
    doneCount int 任务已完成拨打的号码总数
    calledCount int 任务已完成呼通的号码总数
    rejectedCount int 任务呼叫被拒接的号码总数
    unavailableCount int 任务呼叫无法接通的号码总数
    fromUnavailableCount int 任务主叫号码不可用的号码总数
    callPhones List 主叫电话号码列表,格式和getPhones返回结果相同
    resultMsg String 响应说明

    获取任务详情接口

    功能说明:

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

    返回对象示例:

    {
        "code": 200,
        "data": {
            "callJobId": 19, 
            "jobName": "testJob", 
            "jobType": 2, 
            "startDate": "2017-10-19", 
            "workingStartTime": "08:00:00", 
            "workingEndTime": "22:00:00", 
            "status": 2, 
            "sceneDefId": 1, 
            "remark": "testJobx", 
            "totalCount": 2, 
            "doneCount": 2, 
            "calledCount": 0, 
            "rejectedCount": 0, 
            "unavailableCount": 0, 
            "fromUnavailableCount": 2, 
            "robotDefName": "产品电销", 
            "sceneDefName": "金融催缴", 
            "sceneRecordName": "房产电销优化版(张飞)", 
            "durationStat": [
                {
                    "name": "<10s", 
                    "value": 22
                }
            ],
            "chatRoundStat": [
                {
                    "name": "0-9次", 
                    "value": 22
                }
            ],
            "resultDefs": [
                {
                    "name": "催缴结果", 
                    "values": [
                        "成功",
                        "不成功"
                    ]
                }
            ],
            "callPhones": [ 
                {
                    "jobPhoneId": 26,
                    "userPhoneId": 1,
                    "callJobId": 19,
                    "phone": "13333333333",
                    "phoneName": "sim1",
                    "gmtCreate": "2017-10-19 17:33:06",
                    "gmtModified": "2017-10-19 17:33:06"
                },
                {
                    "jobPhoneId": 27,
                    "userPhoneId": 2,
                    "callJobId": 19,
                    "phone": "18888888888",
                    "phoneName": "sim2",
                    "gmtCreate": "2017-10-19 17:33:06",
                    "gmtModified": "2017-10-19 17:33:06"
                }
            ],
            "extraStat": {
               "客户意向等级": [ 
                   {
                       "name": "较强",
                       "value": 1
                   }
               ],
               "客户关注点": [
                   {
                       "name": "位置",
                       "value": 1
                   },
                   {
                       "name": "其他楼盘",
                       "value": 1
                   },
                   {
                       "name": "商业配套",
                       "value": 1
                   },
                   {
                       "name": "户型",
                       "value": 1
                   },
                   {
                       "name": "环境",
                       "value": 1
                   },
                   {
                       "name": "能否贷款",
                       "value": 1
                   },
                   {
                       "name": "询问价格",
                       "value": 1
                   }
               ]
           }
        },
        "resultMsg": "操作成功",
        "errorStackTrace": null
    }
    
    

    请求:

    URL:http://api.byrobot.cn/openapi/v1/task/getTaskDetail

    请求方法:

    GET

    请求参数:

    参数名 类型 是否必须 描述 示例
    companyId int 公司Id 1
    taskId int 任务Id 21

    响应:

    参数名 类型 描述
    code int 响应码
    callJobId int 任务id
    jobName String 任务名称
    jobType int 任务类型,1-定时,2-手动
    startDate String 任务开始时间
    workingStartTime String 可拨打开始时间
    workingEndTime String 可拨打结束时间
    breakStartTime String 暂时停止开始时间
    breakEndTime String 暂时停止结束时间
    status int 任务状态, 0:未开始,1:进行中,2:已完成,3:调度中,4:手动暂停,5:自动暂停,6:已终止,7:排队中,8:AI到期,9:账户欠费,10:短信欠费
    remark String 任务注释
    totalCount int 任务拨打的号码总数
    doneCount int 任务已完成拨打的号码总数
    calledCount int 任务已完成呼通的号码总数
    rejectedCount int 任务呼叫被拒接的号码总数
    unavailableCount int 任务呼叫无法接通的号码总数
    fromUnavailableCount int 任务主叫号码不可用的号码总数
    robotDefName String 机器人名称
    sceneDefName String 场景名称
    sceneRecordName String 录音名称
    durationStat List 通话时长的统计信息
    chatRoundStat List 通话轮次的统计信息
    resultDefs List 结果分析的枚举
    callPhones List 主叫电话号码列表,格式和getPhones返回结果相同
    extraStat List 任务分析结果统计信息
    resultMsg String 响应说明

    获取已经完成任务电话号码接口

    功能说明:

    通过此接口可以获取指定任务中所有已经完成的电话号码

    入参JSON示例

    
    {
        "callJobId" : 62, 
        "durationLeft" : 0, 
        "durationRight" : 100, 
        "chatRoundLeft":0, 
        "chatRoundRight":10, 
        "finishStatus" : 1, 
        "index": -1,    
        "pageNum": 1,    
        "pageSize": 10,    
        "resultQueryList" : [ 
            {
                "name" : "客户意向等级",
                "value" : "A级(较强)"
            }
        ]
    }
    
    

    返回对象示例:

     {
         "code": 200,
         "data": {
             "pageNum": 1,
             "pageSize": 2,
             "size": 2,
             "orderBy": null,
             "startRow": 0,
             "endRow": 1,
             "total": 2,
             "pages": 1,
             "list": [
                 {
                     "callInstanceId": 493, 
                     "sceneDefId": 1, 
                     "callJobId": 62, 
                     "customerTelephone": "1008", 
                     "customerName": "测试02",  
                     "status": 2, 
                     "finishStatus": 0,
                     "duration": "27秒", 
                     "chatRound": 0, 
                     "startTime": "2017-10-25 11:32:54", 
                     "endTime": "2017-10-25 11:33:22", 
                     "callerPhone": "15868457106", 
                     "callIndex": 10,  
                     "luyinOssUrl": "https://jingrobot-dev.oss-cn-hangzhou.aliyuncs.com/RobotPhoneCommunicate/493.mp3", 
                     "secondaryCallTime": "1970-01-01 11:18:13", 
                     "secondaryCallTimes": 0, 
                     "gmtCreate": "2017-10-25 09:45:32",
                     "gmtModified": "2017-10-25 11:33:22",
                     "jobName": "电话任务", 
                     "resultList": [ 
                         {
                             "name": "催缴结果",
                             "value": "成功"
                         }
                     ]
                 },
                 {
                     "callInstanceId": 489,
                     "sceneDefId": 1,
                     "callJobId": 62,
                     "customerTelephone": "17751279857",
                     "customerName": "不弃",
                     "status": 2,
                     "finishStatus": 0,
                     "duration": "11秒",
                     "chatRound": 0,
                     "startTime": "2017-10-25 11:17:06",
                     "endTime": "2017-10-25 11:17:18",
                     "callerPhone": "15868457106",
                     "luyinOssUrl": "https://jingrobot-dev.oss-cn-hangzhou.aliyuncs.com/RobotPhoneCommunicate/489.mp3",
                     "secondaryCallTime": "1970-01-01 10:59:23",
                     "secondaryCallTimes": 1,
                     "gmtCreate": "2017-10-25 09:45:32",
                     "gmtModified": "2017-10-25 11:17:17",
                     "jobName": "电话任务",
                     "resultList": [
                         {
                             "name": "催缴结果",
                             "value": "成功"
                         }
                     ]
                 }
             ]
         },
         "resultMsg": "操作成功",
         "errorStackTrace": null
     }
    
    

    请求:

    URL:http://api.byrobot.cn/openapi/v1/task/queryDoneTaskPhones

    请求方法:

    POST

    请求参数:

    参数名 类型 是否必须 描述 示例
    callJobId int 任务id 1
    durationLeft int 通话时长左值 0
    durationRight int 通话时长右值 100
    chatRoundLeft int 通话轮次左值 21
    chatRoundRight int 通话时长右值 21
    finishStatus int 0:已接, 1:拒接, 2:无法接通, 3:主叫号码不可用, 4:空号, 5:关机, 6:占线, 7:停机, 8:未接, 9:主叫欠费 1
    index int 已经获取过任务结果的最大的index(第一次的时候传入-1,默认不传也是-1),index是指任务中电话结束顺序 21
    pageNum int 第几页(默认为1) 1
    pageSize int 显示数量/页(默认为10),取值1-50 10
    resultQueryList List 支持按分析结果作为条件 10

    响应:

    参数名 类型 描述
    code int 响应码
    pageNum int 第几页
    pageSize int 每页页面条数
    total int 数据总条数
    pages int 页面总数
    callInstanceId long 通话记录Id
    sceneDefId int 场景id
    callJobId int 任务id
    customerTelephone String 被叫客户电话号码
    customerName String 被叫客户名称
    status String 任务示例状态, 0: 未开始,1: 进行中,2: 已完成,3: 二次拨打调度中
    finishStatus String 通话记录状态, 0:已接, 1:拒接, 2:无法接通, 3:主叫号码不可用, 4:空号, 5:关机, 6:占线, 7:停机, 8:未接, 9:主叫欠费,10:呼损,11:黑名单
    duration int 通话时长
    chatRound int 通话轮次
    startTime String 开始拨打时间
    endTime String 结束拨打时间
    callerPhone String 主叫电话
    callIndex int 通话记录索引
    luyinOssUrl int 通话录音(包含用户录音和Ai语音)
    secondaryCallTime List 通话时长的统计信息
    secondaryCallTimes List 重试拨打次数
    jobName List 任务名称
    resultList List 通话分析结果信息
    resultMsg String 响应说明

    获取任务未开始的电话列表

    功能说明:

    通过此接口可以获取任务中还未开始外呼的外呼数据 查询限制:此查询接口每页不能超过50条

    入参JSON示例

    
    {
        "pageNum" : 1, 
        "pageSize" : 20,
        "taskId" : 21767
    }
    
    

    返回对象示例:

     {
         "code": 200,
         "data": {
             "pageNum": 1,
             "pageSize": 50,
             "list": [
                 {
                     "callInstanceId": 493, 
                     "customerName": 测试公司客户1, 
                     "customerTelephone": 1590000xxxx, 
                     "status": 0, 
                     "startTime": 2018-01-01 15:34:20,  
                     "callerPhone": 测试主叫, 
                     "corpName": 测试公司,
                     "calledTimes": 1
    
                 },
                 {
                     "callInstanceId": 494, 
                     "customerName": 测试公司客户2, 
                     "customerTelephone": 15900000xxxx, 
                     "status": 1, 
                     "startTime": 2018-01-01 15:34:20,  
                     "callerPhone": 测试主叫, 
                     "corpName": 测试公司,
                     "calledTimes":2 
                 }
             ]
         },
         "resultMsg": "操作成功",
         "errorStackTrace": null
     }
    
    

    请求:

    URL:http://api.byrobot.cn/openapi/v1/task/notDialedCustomerList

    请求方法:

    POST

    请求参数:

    参数名 类型 是否必须 描述 示例
    pageNum int 第几页(默认为1) 1
    pageSize int 显示数量/页(默认为10)单页最大支持50 10
    taskId int 任务Id 10

    响应:

    参数名 类型 描述
    code int 响应码
    pageNum int 第几页
    pageSize int 每页页面条数
    total int 数据总条数
    pages int 页面总数
    callInstanceId long 任务实例id(每个被叫电话为一个实例)
    customerName int 客户名称
    customerTelephone int 被叫客户电话
    status String 通话状态 0:未开始 1:进行中 2:已完成
    startTime String 开始时间
    callerPhone String 主叫号码
    corpName String 公司名
    calledTimes int 已拨打次数
    resultMsg String 响应说明
    errorStackTrace String 错误信息

    获取一个通话的详情接口

    功能说明:

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

    返回对象示例:

     {
        "code": 200,
         "data": {
            "phoneLog": {
                "phoneLogs": [ 
                    {
                        "sceneInstanceLogId": 1321,
                        "sceneInstanceId": 540, 
                        "speaker": "AI", 
                        "content": "哎,您好,等待2s 哎,您好,拱墅区 中大银泰城边上有个首付50万左右的精装公寓你考虑吗?", 
                        "userMean": null,
                        "userMeanDetail": null,
                        "aiUnknown": 1,
                        "startTime": 0,
                        "endTime": 0,
                        "gmtCreate": "2018-01-24 20:51:53",
                        "gmtModified": "2018-01-24 20:51:53"
                    },
                    {
                        "sceneInstanceLogId": 1322,
                        "sceneInstanceId": 540,
                        "speaker": "ME",
                        "content": "喂你好",
                        "userMean": "~",
                        "userMeanDetail": null,
                        "aiUnknown": 0,
                        "startTime": 300,
                        "endTime": 1145,
                        "gmtCreate": "2018-01-24 20:51:55",
                        "gmtModified": "2018-01-24 20:51:55"
                    },
                    {
                        "sceneInstanceLogId": 1323,
                        "sceneInstanceId": 540,
                        "speaker": "ME",
                        "content": "哦你好",
                        "userMean": "~",
                        "userMeanDetail": null,
                        "aiUnknown": 0,
                        "startTime": 2330,
                        "endTime": 3565,
                        "gmtCreate": "2018-01-24 20:51:57",
                        "gmtModified": "2018-01-24 20:51:57"
                    }],
              "luyinOssUrl": "https://byrobot-test.oss-cn-hangzhou.aliyuncs.com/RobotPhoneCommunicate/540/JYSYDCCHVFYYTMGJKKHJAMHARNNBWEJQ.wav" 
             },
             "sceneInstance": {
                 "callInstanceId": 540, 
                 "companyId": 1, 
                 "callJobId": 31, 
                 "customerId": 55, 
                 "customerTelephone": "17751279857", 
                 "customerName": "不弃", 
                 "status": 2, 
                 "finishStatus": 0,
                 "duration": 87, 
                 "chatRound": 18, 
                 "startTime": "2018-01-24 20:51:53", 
                 "endTime": "2018-01-24 20:53:28", 
                 "callerPhone": "18072749353", 
                 "luyinOssUrl": "https://byrobot-test.oss-cn-hangzhou.aliyuncs.com/RobotPhoneCommunicate/540/JYSYDCCHVFYYTMGJKKHJAMHARNNBWEJQ.wav",
                 "userLuyinOssUrl": "https://byrobot-test.oss-cn-hangzhou.aliyuncs.com/RobotPhoneCommunicate/540_user.wav",
                 "properties": "{}",
                 "handlePerson": "房产电销优化版",
                 "callType": 1,
                 "readStatus": 1,
                 "jobName": "buqi新的测试任务",
                "robotDefId": 6,
                 "sceneDefId": 11,
                 "sceneRecordId": 1,
                 "trackResult": null,
                 "hangUp": 0,
                 "secondaryCallTime": "1970-01-01 13:00:00",
                 "secondaryCallTimes": 2,
                 "gmtCreate": "2018-01-24 20:51:31",
                 "gmtModified": "2018-02-03 18:27:19"
             },
             "taskResult": [ 
                 {
                     "sceneInstanceResultId": 188,
                     "companyId": 1,
                     "sceneInstanceId": 540,
                     "resultName": "预约时间",
                     "resultValue": "2018-01-25 08:00",
                     "resultDesc": null,
                     "analyzeType": null,
                     "gmtCreate": "2018-01-24 20:53:01",
                    "gmtModified": "2018-01-24 20:53:01"
                 },
                 {
                     "sceneInstanceResultId": 189,
                     "companyId": 1,
                     "sceneInstanceId": 540,
                     "resultName": "客户意向等级",
                     "resultValue": "A级(较强)",
                     "resultDesc": "该客户在通话过程中主动询问了产品细节,有进一步了解产品的意愿。",
                     "analyzeType": "BY_ANALYZE_USER_LEVEL",
                     "gmtCreate": "2018-01-24 20:53:28",
                     "gmtModified": "2018-01-31 10:34:55"
                 }
             ]
         },
         "resultMsg": "获取成功",
         "errorStackTrace": null
     }
    
    

    请求:

    URL:http://api.byrobot.cn/openapi/v1/task/phoneLogInfo

    请求方法:

    GET

    请求参数:

    参数名 类型 是否必须 描述 示例
    callInstanceId long 任务实例id 1

    响应:

    参数名 类型 描述
    code int 响应码
    phoneLogs List 对话内容
    sceneInstanceId long 任务实例id
    speaker String 角色
    content String 内容
    aiUnknown int 是否是ai无法应答的问题,1-是,0-否
    luyinOssUrl String 通话录音
    callInstanceId long 任务实例id(每个被叫电话为一个实例)
    companyId int 公司id
    callJobId int 任务id
    customerId int 客户id
    customerTelephone String 客户手机
    customerName String 客户名称
    finishStatus String 任务实例已经完成的状态, 0:已接, 1:拒接, 2:无法接通, 3:主叫号码不可用, 4:空号, 5:关机, 6:占线, 7:停机, 8:未接, 9:主叫欠费
    status int
    duration int 通话时长
    chatRound int 通话轮次
    startTime String 开始拨打时间
    endTime String 结束拨打时间
    callerPhone String 主叫电话
    luyinOssUrl int 通话录音
    callType int 拨打类型 0: 免费试用 1: 任务 2: 用户单独拨打
    readStatus int 是否已读 0: 未读 1: 已读
    robotDefId String 机器人id
    sceneDefId String 场景ID
    sceneRecordId int 场景录音id
    trackResult List bug追踪结果
    jobName String 任务名称
    hangUp Integer 挂机人, 0: AI 1: 用户
    taskResult String 任务结果分析
    resultMsg String 响应说明

    信息回调接口

    回调地址说明

    通话记录回调与任务完成回调使用不同回调地址,请提前配置。

     通话记录回调dataType:CALL_INSTANCE_RESULT
    
     任务完成详情回调dataType:JOB_INFO_RESULT
    
    

    通话记录回调接口

    功能说明:

    当一次通话完成后,百应机器人会自动调用回调程序向用户配置的回调地址,发送本次通话详情。

    如果本次发送由于网络等原因发送失败,机器人会自动发起二次发送。

    最多回调10次,每次回调时长按1分钟,2分钟,4分钟,8分钟间隔依次递增,总回调时长可达24小时。回调成功后,处理方应当返回字符串"success"在返回的body体中

    返回对象示例:

    {
        "code": 200,
        "data": {
            "dataType": "CALL_INSTANCE_RESULT",
            "data": {
                "sceneInstance": {
                    "callInstanceId": 1,
                    "companyId": 1,
                    "callUserId": 1,
                    "callJobId": 1,
                    "customerId": 1,
                    "customerTelephone": "137xxxxxxxx",
                    "customerName": "2989",
                    "status": 2,
                    "finishStatus": 0,
                    "duration": 35,
                    "chatRound": 3,
                    "startTime": "2019-01-12 16:09:32",
                    "endTime": "2019-01-12 16:10:11",
                    "callerPhone": "测试线路",
                    "luyinOssUrl": "https://byrobot-prod.oss-cn-hangzhou.aliyuncs.com/RobotPhoneCommunicate/11/xxx.wav",
                    "userLuyinOssUrl": "https://byrobot-prod.oss-cn-hangzhou.aliyuncs.com/RobotPhoneCommunicate/11.wav",
                    "properties": "{\"csStaffId\":12,\"csStaffMobile\":\"15957182700\",\"csStaffName\":\"123\",\"duration\":20,\"failReason\":\"失败了就是失败了\",\"finishTime\":1546506273268,\"seatGroupId\":1,\"seatGroupName\":\"测试失败\",\"startTime\":1546506263268,\"succTime\":1546506283268,\"success\":false,\"transferMobile\":false,\"useEavesdrop\":false}",
                    "handlePerson": "测试线路",
                    "callType": 1,
                    "callIndex": 0,
                    "readStatus": 0,
                    "jobName": "GG0112-YX NEW1",
                    "robotDefId": 180,
                    "sceneDefId": 192,
                    "sceneRecordId": 192,
                    "corpName": "{\"calledTimes\":1,\"callerId\":887,\"host\":\"byrobot-prod27\",\"ip\":\"172.16.67.198\",\"useAsr\":\"pay\"}",
                    "industry": "1540384412_151_1",
                    "trackResult": "C级(很少)",
                    "bugType": null,
                    "hangUp": 1,
                    "secondaryCallTime": "1970-01-01 09:00:00",
                    "secondaryCallTimes": 0,
                    "cost": 0,
                    "callbacked": 0,
                    "csStaffId": null,
                    "gmtCreate": "2019-01-12 10:48:42",
                    "gmtModified": "2019-01-12 10:48:42"
                },
                "taskResult": [{
                    "sceneInstanceResultId": 1117274388,
                    "companyId": 151,
                    "callJobId": 362574,
                    "sceneInstanceId": 1540384412,
                    "resultName": "客户意向等级",
                    "resultValue": "C级(很少)",
                    "artificialResultValue": "C级(很少)",
                    "artificialChanged": null,
                    "resultDesc": "命中业务问题 <= 0次 并且 肯定次数 <= 0次",
                    "extra": "{\"hitUserLevelConfigExtraId\":327809,\"hitUserLevelConfigId\":6}",
                    "analyzeType": "DYNAMIC_ANALYZE_USER_LEVEL",
                    "gmtCreate": null,
                    "gmtModified": null,
                    "resultValueAlias": "C",
                    "resultLabels": null,
                    "resultValueNew": "C级(明确拒绝)"
                }, {
                    "sceneInstanceResultId": 922147427,
                    "companyId": 4880,
                    "sceneInstanceId": 1223552173,
                    "resultName": "客户标签",
                    "resultValue": "[1]",
                    "artificialResultValue": null,
                    "artificialChanged": null,
                    "resultDesc": null,
                    "extra": null,
                    "analyzeType": "DYNAMIC_ANALYZE_USER_LEVEL",
                    "resultValueAlias": "",
                    "resultLabels": [{
                        "key": 200,
                        "value": "无效用户"
                    }],
                    "resultValueNew": "",
                    "gmtCreate": "2018-12-14 18:03:00",
                    "gmtModified": "2018-12-14 18:03:00"
                }],
                "phoneLog": {
                    "phoneLogs": [{
                        "sceneInstanceLogId": 1156248612,
                        "sceneInstanceId": 1540384412,
                        "companyId": 151,
                        "robotDefId": 180,
                        "decisionId": 10638,
                        "speaker": "AI",
                        "content": "喂,您好,这里是用户测试电话",
                        "userMean": "",
                        "userMeanDetail": null,
                        "aiUnknown": false,
                        "answerStatus": null,
                        "studyStatus": null,
                        "startTime": 0,
                        "endTime": 0,
                        "gmtCreate": "2019-01-12 16:09:32",
                        "gmtModified": "2019-01-12 16:09:32",
                        "knowledgeBaseId": null,
                        "correctionContent": null
                    }, {
                        "sceneInstanceLogId": 1156249713,
                        "sceneInstanceId": 1540384412,
                        "companyId": 151,
                        "robotDefId": 180,
                        "decisionId": 10638,
                        "speaker": "ME",
                        "content": "有什么游戏呀?",
                        "userMean": "游戏",
                        "userMeanDetail": "[{\"score\":-1,\"answer\":\"游戏\",\"ask\":\"什么游戏\",\"knowledgeBaseId\":5061}]",
                        "aiUnknown": false,
                        "answerStatus": 1,
                        "studyStatus": null,
                        "startTime": 8350,
                        "endTime": 10570,
                        "gmtCreate": "2019-01-12 16:09:44",
                        "gmtModified": "2019-01-12 16:09:44",
                        "knowledgeBaseId": null,
                        "correctionContent": null
                    }],
                    "luyinOssUrl": "https://byrobot-prod.oss-cn-hangzhou.aliyuncs.com/RobotPhoneCommunicate/1540384412/20190112-161011_13733105333.wav"
                },
                "jobFinished": false,
                "sign": null,
                "dateTime": "Thu Oct 16 07:13:48 GMT 2014"
            }
        },
        "resultMsg": "成功",
        "errorStackTrace": null
    }
    
    

    请求方法:

    POST

    请求参数:

    参数名 类型 描述
    code String 回调类型
    callInstanceId long 通话记录Id
    companyId int 公司ID
    callUserId int 主叫用户ID
    callJobId int 任务Id
    customerId int 客户Id
    customerTelephone String 客户手机号
    customerName String 客户名称
    status int 电话实例状态 0:未开始 1:进行中 2:已完成 3:二次拨打调度中
    finishStatus int 通话状态 0:已接通,1:拒绝 2:无法接通 3:主叫号码不可用 4:空号 5:关机 6:占线 7:停机 8:未接 9:主叫欠费 10:呼损 11:黑名单
    duration int 通话时长
    chatRound int 通话轮次
    startTime Date 通话开始时间
    endTime Date 通话结束时间
    callerPhone String 主叫号码
    luyunOssUrl String 通话录音(包含Ai和客户)
    userLuyinOssUrl String 通话录音(只包含客户)
    properties String 通话记录携带的参数(json字符串)
    handlePerson String 话术名
    callType int 主叫号码类型
    callIndex int 通话实例索引
    readStatus int 是否已读 0:未读 1:已读
    jobName String 电话任务名称
    robotDef int 话术机器人Id
    sceneDefId int 话术场景Id
    sceneRecordId int 话术场景录音Id
    industry String 所属行业
    trackResult String bug追踪结果
    bugType String 缺陷类型
    hangUp int 挂机人 0:AI 1:用户
    secondaryCallTime Date 二次拨打时间
    secondaryCallTimes int 二次拨打次数 为0后不进行外呼
    cost int 通话费用,单位(分)
    callbacked int 是否回调完成 0:未回调 1:已回调
    csStaffId int 人工坐席Id
    gmtCreate Date 创建时间
    gmtModified Date 修改时间
    sceneInstanceResultId int 通话记录结果Id
    companyId int 公司Id
    sceneInstanceId long 通话记录Id(对应callInstanceId)
    resultName String 通话记录结果类型名
    resultValue String 通话记录结果值
    artificialResultValue String 通话结果人工标注值(一般指人工标注意向等级)
    artificialChanged int 是否进行过人工标注修改 0:没有 1:有
    resultDesc String 结果描述
    extra String 额外信息
    analyzeType String 场景对应的结构化数据分析类型
    resultValueAlias String 分析结果别名(resultName为【客户意向等级】时标注值为意向级别 A,B,C,D,E,F)
    resultLabels List IntegerStringBO对象中存储一个int类型参数,一个String类型参数,resultName为【客户标签】时存储客户标签
    resultValueNew String 客户意向等级的表述(文案与crm对应)
    gmtCreate Date 创建时间
    gmtModified Date 修改时间
    sceneInstanceLogId Long 通话记录日志Id
    sceneInstanceId Long 通话记录Id(对应callInstanceId)
    companyId int 公司Id
    robotDefId int 话术机器人Id
    decisionId int 对应决策Id
    speaker String 说话人 ME:用户 AI:机器人
    content String 说话内容
    userMean String 用户说话语义
    userMeanDetail String 用户说话语义详情
    aiUnknown int 是否是ai无法应答的问题,1-是,0-否
    answerStatus int 回答问题状态:0-分支,1-问题
    studyStatus int 学习状态:0-未学习,1-已学习
    startTime int 说话的开始时间
    endTime int 说话的结束时间
    gmtCreate Date 创建时间
    gmtModified Date 修改时间
    knowledgeBaseId int 知识点ID
    correctionContent String 通话记录纠错内容
    luyinOssUrl String 通话记录录音
    jobFinished boolean 任务是否已完成
    sign String 回调签名(需联系开通)
    dateTime String GMT格式日期(签名计算-需联系开通)

    响应:

    参数名 类型 描述
    code integer 响应码
    resultMsg String 响应说明

    任务状态回调

    功能说明:

    任务运行中动态状态变更回调,包含如下状态:手动暂停,自动暂停 ,线路欠费 ,短信欠费 ,任务完成 需另外开通和配置

    如果本次发送由于网络等原因发送失败,机器人会自动发起二次发送。

    最多回调10次,每次回调时长按1分钟,2分钟,4分钟,8分钟间隔依次递增,总回调时长可达24小时。回调成功后,处理方应当返回字符串success在返回的body体中

    返回对象示例:

     {
        "code": 200,
        "data": {
            "dataType": "JOB_INFO_RESULT",
            "data": {
                "callJobId": 535,
                "companyId": 243,
                "jobName": "测试-问题学习",
                "jobType": 2,
                "startDate": "2018-04-25",
                "endDate": "2018-04-25",
                "workingStartTime": "09:00:00",
                "workingEndTime": "20:00:00",
                "breakStartTime": null,
                "breakEndTime": null,
                "status": 2,
                "callType": 1,
                "robotDefId": 278,
                "sceneDefId": 283,
                "sceneRecordId": 280,
                "remark": "",
                "smsType": 0,
                "smsCondition": null,
                "smsTemplateId": null,
                "userId": 241,
                "userName": "步婉",
                "ip": "172.16.67.104",
                "hostName": "byrobot-daily",
                "version": 1,
                "secondaryStartTime": "09:00:00",
                "jobIsDelete": false,
                "gmtCreate": "2018-04-25 11:11:45",
                "gmtModified": "2018-04-25 11:17:19"
            }
        },
        "resultMsg": "执行成功",
        "errorStackTrace": null
     }
    
    

    请求方法:

    POST

    请求参数:

    参数名 类型 描述
    dataType String 回调数据类型
    callJobId List 外呼任务Id
    companyId int 公司id
    jobName String 任务名称
    jobType int 任务类型:1-定时,2-手动
    startDate String 任务开始时间
    endDate String 任务结束时间
    workingStartTime String 可拨打起始时间
    workingEndTime String 可拨打结束时间
    breakStartTime int 午休起始时间
    breakEndTime int 午休结束时间
    status String 状态, 0:未开始,1:进行中,2:已完成,3:调度中,4:手动暂停,5:自动暂停,6:已终止,7:排队中,8:AI到期,9:账户欠费
    callType int 主叫号码类型:0-手机号,1-固话,2-无主叫
    robotDefId int 关联的机器人id
    sceneDefId int 场景id
    sceneRecordId int 关联的录音id
    remark String 备注
    smsType int 是否发送挂机短信:0-否,1-是
    smsCondition String 发送挂机短信条件,json格式
    smsTemplateId String 发送挂机短信的模板
    userId int 创建人id
    userName String 创建人名称
    ip int 任务执行IP
    hostName int 任务执行主机
    version int 锁版本号
    secondaryStartTime String 二次启动job的时间
    jobIsDelete Boolean job是否已经删除 false:没有删除 true:已经删除

    响应:

    参数名 类型 描述
    code int 响应码
    resultMsg String 响应说明

    手动修改客户意向等级回调接口

    功能说明:

    当在crm端手动修改客户意向等级后,百应机器人会自动调用回调程序向用户配置的回调地址,发送本次通话详情。

    返回对象示例:

    {
        "code": 200,
        "data": {
            "dataType": "CALL_INSTANCE_RESULT",
            "data": {
                "taskResult": [{
                    "companyId": 241,
                    "sceneInstanceId": 2016,
                    "resultName": "客户意向等级",
                    "resultValue": "B"
                }]
            }
        },
        "resultMsg": "成功",
        "errorStackTrace": null
    }
    
    

    请求方法:

    POST

    请求参数:

    参数名 类型 描述
    sceneInstanceId long 任务实例id
    taskResult String 任务结果分析
    resultName String 客户意向等级名
    resultValue String 客户意向等级值

    响应:

    参数名 类型 描述
    code int 响应码
    resultMsg String 响应说明

    呼入回调接口

    功能说明:

    当一次通话完成后,百应机器人会自动调用回调程序向用户配置的回调地址,发送本次通话详情。如果本次发送由于网络等原因发送失败,机器人会自动发起二次发送。最多回调10次,每次回调时长按1分钟,2分钟,4分钟,8分钟间隔依次递增,总回调时长可达24小时。回调成功后,处理方应当返回字符串"success"在返回的body体中。 注:1.请您在对接接口前,务必配置好回调地址,否则回调将无法成功。 2.呼入回调数据格式与外呼格式保持高度一致,仅个别字段名称有所变更, http://api.byrobot.cn/doc/v2/#3e45815d37

    请求方法:

    POST

    请求参数:

    1.dataType: "INBOUND_CALL_INSTANCE_RESULT" (固定,标识是呼入回调), 2.sceneInstance: (通话记录相关元数据)

    参数名 类型 描述
    inboundInstanceId long 通话记录id
    companyId int 公司ID
    customerId long 客户Id
    customerTelephone String 客户手机号
    customerName String 客户名称
    status int 电话实例状态 0:未开始 1:进行中 2:已完成
    finishStatus int 通话状态 0:已接通,1:拒绝 2:无法接通 3:主叫号码不可用 4:空号 5:关机 6:占线 7:停机 8:未接 9:主叫欠费 10:呼损 11:黑名单
    duration int 通话时长
    chatRound int 通话轮次
    startTime Date 通话开始时间
    endTime Date 通话结束时间
    calleePhone String 被叫号码
    luyinOssUrl String 通话录音(包含Ai和客户)
    userLuyinOssUrl String 通话录音(只包含客户)
    robotDefId int 话术机器人Id
    sceneDefId int 话术场景Id
    sceneRecordId int 话术场景录音Id
    hangUp int 挂机人 0:AI 1:用户

    3.taskResult(通话分析的结果)

    参数名 类型 描述
    sceneInstanceResultId long 通话记录结果Id
    sceneInstanceId long 通话记录Id(对应inboundInstanceId)
    resultName String 通话记录结果类型名
    resultValue String 通话记录结果值
    artificialResultValue String 通话结果人工标注值(一般指人工标注意向等级)
    artificialChanged boolean 是否进行过人工标注修改
    resultDesc String 结果描述
    resultValueAlias String 分析结果别名(resultName为【客户意向等级】时标注值为意向级别 A,B,C,D,E,F)
    resultLabels List IntegerStringBO对象中存储一个int类型参数,一个String类型参数,resultName为【客户标签】时存储客户标签

    4.phoneLog(对话详情)

    参数名 类型 描述
    sceneInstanceLogId long 通话记录日志Id
    decisionId int 对应决策Id
    speaker String 说话人 ME:用户 AI:机器人
    content String 说话内容
    userMean String 用户说话语义
    userMeanDetail String 用户说话语义详情
    aiUnknown int 是否是ai无法应答的问题,1-是,0-否
    answerStatus int 回答问题状态:0-分支,1-问题
    studyStatus int 学习状态:0-未学习,1-已学习
    startTime Date 说话的开始时间
    endTime Date 说话的结束时间
    knowledgeBaseId int 知识点ID
    correctionContent String 通话记录纠错内容
    luyinOssUrl String 通话记录录音
    sign String 回调签名(需联系开通)
    dateTime String GMT格式日期(签名计算-需联系开通)

    返回对象示例:

    {
        "code": 200,
        "data": {
            "dataType": "INBOUND_CALL_INSTANCE_RESULT",
            "data": {
                "sceneInstance": {
                    "inboundInstanceId": 1091,
                    "inboundInstanceCode": "1091_1_101",
                    "companyId": 1,
                    "callJobId": 98,
                    "customerId": 22142595,
                    "customerTelephone": "1010",
                    "customerName": "未知呼入客户",
                    "status": 2,
                    "finishStatus": 0,
                    "duration": 27,
                    "chatRound": 3,
                    "startTime": "2019-01-24 15:27:39",
                    "endTime": "2019-01-24 15:28:09",
                    "calleePhone": "057126881788",
                    "calleeSip": "666003",
                    "csStaffId": null,
                    "csStaffName": null,
                    "csStaffTelephone": null,
                    "luyinOssUrl": "https://byrobot-test.oss-cn-hangzhou.aliyuncs.com/InboundRobotCommunicate/1091/20190124-152809_1010.wav",
                    "userLuyinOssUrl": "https://byrobot-test.oss-cn-hangzhou.aliyuncs.com/InboundRobotCommunicate/1091_user.wav",
                    "properties": "{}",
                    "callType": 101,
                    "readStatus": null,
                    "robotDefId": 1155,
                    "sceneDefId": 1165,
                    "sceneRecordId": 1149,
                    "ip": "172.16.67.186",
                    "hostName": "byrobot-daily-2",
                    "transferStatus": null,
                    "transferInfo": null,
                    "userLevel": null,
                    "trackResult": null,
                    "bugType": null,
                    "hangUp": 1,
                    "callbacked": null,
                    "gmtCreate": null,
                    "gmtModified": null,
                    "propertiesMap": {
                        "客户名称": "未知呼入客户",
                        "联系方式": "1010"
                    }
                },
                "taskResult": [
                    {
                        "sceneInstanceResultId": 459,
                        "companyId": 1,
                        "callJobId": null,
                        "sceneInstanceId": 1091,
                        "resultName": "客户意向等级",
                        "resultValue": "B级(一般)",
                        "artificialResultValue": "B级(一般)",
                        "artificialChanged": false,
                        "resultDesc": "拒绝次数 <= 1 次 并且 命中业务问题 >= 1",
                        "extra": "{\"hitUserLevelConfigExtraId\":1213,\"hitUserLevelConfigId\":873}",
                        "analyzeType": "DYNAMIC_ANALYZE_USER_LEVEL",
                        "gmtCreate": null,
                        "gmtModified": null,
                        "resultValueAlias": "B",
                        "resultLabels": null,
                        "resultValueNew": "B级(可能有意向)"
                    },
                    {
                        "sceneInstanceResultId": 460,
                        "companyId": 1,
                        "callJobId": null,
                        "sceneInstanceId": 1091,
                        "resultName": "客户关注点",
                        "resultValue": "位置",
                        "artificialResultValue": "位置",
                        "artificialChanged": false,
                        "resultDesc": null,
                        "extra": null,
                        "analyzeType": "DYNAMIC_ANALYZE_USER_LEVEL",
                        "gmtCreate": null,
                        "gmtModified": null,
                        "resultValueAlias": null,
                        "resultLabels": null,
                        "resultValueNew": null
                    },
                    {
                        "sceneInstanceResultId": 461,
                        "companyId": 1,
                        "callJobId": null,
                        "sceneInstanceId": 1091,
                        "resultName": "客户标签",
                        "resultValue": "[7,8,9]",
                        "artificialResultValue": null,
                        "artificialChanged": false,
                        "resultDesc": null,
                        "extra": null,
                        "analyzeType": "DYNAMIC_ANALYZE_USER_LEVEL",
                        "gmtCreate": null,
                        "gmtModified": null,
                        "resultValueAlias": null,
                        "resultLabels": [],
                        "resultValueNew": null
                    }
                ],
                "phoneLog": {
                    "phoneLogs": [
                        {
                            "sceneInstanceLogId": 1693,
                            "sceneInstanceId": 1091,
                            "companyId": 1,
                            "robotDefId": 1155,
                            "decisionId": 502993,
                            "speaker": "AI",
                            "content": "哎,您好,拱墅区 中大银泰城边上有个首付50万左右的精装公寓你考虑吗?",
                            "userMean": "",
                            "userMeanDetail": null,
                            "aiUnknown": false,
                            "answerStatus": null,
                            "studyStatus": null,
                            "startTime": 0,
                            "endTime": 0,
                            "gmtCreate": "2019-01-24 15:27:39",
                            "gmtModified": "2019-01-24 15:27:39",
                            "knowledgeBaseId": null,
                            "correctionContent": null
                        },
                        {
                            "sceneInstanceLogId": 1694,
                            "sceneInstanceId": 1091,
                            "companyId": 1,
                            "robotDefId": 1155,
                            "decisionId": 502993,
                            "speaker": "ME",
                            "content": "呃,不考虑",
                            "userMean": "拒绝",
                            "userMeanDetail": "[{\"score\":-1,\"answer\":\"拒绝\",\"ask\":\"不考虑\",\"knowledgeBaseId\":33230}]",
                            "aiUnknown": false,
                            "answerStatus": 1,
                            "studyStatus": null,
                            "startTime": 6830,
                            "endTime": 7950,
                            "gmtCreate": "2019-01-24 15:27:48",
                            "gmtModified": "2019-01-24 15:27:48",
                            "knowledgeBaseId": null,
                            "correctionContent": null
                        }
                    ],
                    "luyinOssUrl": "https://byrobot-test.oss-cn-hangzhou.aliyuncs.com/InboundRobotCommunicate/1091/20190124-152809_1010.wav"
                },
                "sign": null,
                "dateTime": "Thu, 24 Jan 2019 07:28:09 GMT"
            }
        },
        "resultMsg": "成功",
        "errorStackTrace": null
    }
    

    查询回调失败记录

    功能说明:

    通过接口可以查询时间段内调用用户回调接口失败的记录

    请求:

    URL:http://api.byrobot.cn/openapi/v1/callBack/queryUnCallBack

    请求方法:

    GET

    请求参数:

    参数名 类型 是否必须 描述 示例
    companyId int 公司Id 1
    callJobId int 任务ID,如果不传该字段查询该公司下所有回调失败的记录 1
    dataType int 回调类型, 0:呼出结果回调,1:呼入结果回调 0
    startDate Date 查询开始时间 "2017-10-19"
    endDate Date 查询结束时间 "2017-10-19"
    pageNum int 第几页,默认1 1
    pageSize int 页面大小,选填,默认100,取值范围1-500 10

    响应:

    参数名 类型 描述
    code int 响应码
    pageNum int 当前分页数
    pageSize int 当前分页数据条数
    total int 数据总条数
    pages int 分页总数
    list list 查询结果集
    callJobId int 任务id
    customerTelephone String 客户手机号
    callInstanceId long 通话记录ID
    callerTime time 拨打时间

    返回对象示例:

    {
        "code":200,
        "data":{
            "pageNum":1,
            "pageSize":1000,
            "total":5,
            "pages":1,
            "list":[
                {
                    "customerTelephone":"13777482716",
                    "callInstanceId":13,
                    "callJobId":9,
                    "callerTime":"2019-03-20 11:22:33"
                },
                {
                    "customerTelephone":"13777482716",
                    "callInstanceId":12,
                    "callJobId":9,
                    "callerTime":"2019-03-20 11:22:33"
                },
                {
                    "customerTelephone":"13777482716",
                    "callInstanceId":11,
                    "callJobId":9,
                    "callerTime":"2019-03-20 11:22:33"
                },
                {
                    "customerTelephone":"18767114326",
                    "callInstanceId":101705174,
                    "callJobId":29463,
                    "callerTime":"2019-03-20 17:20:58"
                },
                {
                    "customerTelephone":"18767114326",
                    "callInstanceId":101705181,
                    "callJobId":29465,
                    "callerTime":"2019-03-20 17:28:57"
                }
            ]
        },
        "resultMsg":"查询成功",
        "errorStackTrace":null,
        "requestId":null
    }