初始化会话

请求地址

请求参数

Request fields

Path Type Optional Description
robotId Integer false 机器人id:此次会话对应的机器人的标识id.
channelId Integer false 场景id:此次会话对应的场景标识id.
modelKey String true 常见问题模板ID,在’km-机器人-知识库管理-推荐-ID’查看.
accessKeyId String true 对接设置的应用的应用ID,对应获取应用的appID字段,在’km-管理-应用管理-应用ID’查看.
platform Integer true 渠道: 0:web, 1:普通微信, 2:安卓, 3:ios, 4:微博, 5:客服系统API, 6:多商户, 7:微信小程序, 8:企业微信
customer Map true 客户信息.

customer对应的结构

{
    "id": "客户ID",
    "nickname": "客户名称",
    "ip": "客户IP",
    "province": "IP所在省",
    "city": "IP所在市",
    "orgName": "公司名称",
    "email": "客户邮箱",
    "phone": "客户电话",
    "tags": "客户标签",
    "desc": "描述",
    "level": "客户等级",
    "platform": "渠道",
    "src": "来源",
    "srcUrl": "来源URL",
    "webPluginName": "来源插件",
    "keyword": "搜索关键词",
    "generatedChannel": "自定义渠道信息",
    "loginUrl": "访问着陆页",
    "sessionUrl": "对话发起页",
    "weChatOpenId": "微信OPENID",
    "c_cf_dialogueDesc": "对话描述(使用方式参考webhook任务推送型接口)"
}

请求结果

Path Type Description
code Integer 状态码
message String 返回信息
visible Boolean
data Object 返回数据

data

Path Type Description
sessionId Integer 会话id.
logId Integer 机器人返回的id.
welcomeMessage String 欢迎语.
leadingWord String 引导语.
commonQuestionModel Object 常见问题.

commonQuestionModel

Path Type Description
id Integer id.
robotId Integer 机器人id.
name String 模板名称.
channelId Integer 场景id.
description String 描述.
modelKey String 常见问题模板ID,在’km-机器人-知识库管理-推荐-ID’查看.
commonQuestionCategoryList Array 常见问题分类(里面包含分类下常见问题列表).

commonQuestionCategoryList

Path Type Description
id Integer 分类id.
modelId Integer 常见问题模板id.
name String 目录名.
sorts Integer 预留排序字段.
questionList Array 分类下常见问题列表.

questionList

Path Type Description
id Integer 问题的标识id.
content String 问题的内容.
type Integer 类型 1:普通问题 4:闲聊问题.
answer Object 答案.
answer.content String 答案内容
answer.type Integer 答案类型
answer.id Integer 答案ID

示例

$ curl 'https://km.udesk.cn/api/v1/initClient?email=admin@udesk.cn&timestamp=1529402445&sign=fbe02e2b9f76179da49ea619cbabdde909b73a2f' -i -X POST -H 'Content-Type: application/json' -H 'Accept: application/json' -d '{
  "robotId" : 103,
  "channelId" : 106,
  "modelKey" : "0",
  "accessKeyId" : "/+7772AKE6kv8AVNjWqP",
  "platform" : 5,
  "customer" : null
}'
返回
{
    "code": 200,
    "message": "OK",
    "visible": false,
    "exception": null,
    "paging": null,
    "data": {
        "sessionId": 451724,
        "logId": 793020,
        "welcomeMessage": "你好,很高兴为您服务!",
        "leadingWord": "常见问题",
        "commonQuestionList": [],
        "commonQuestionModel": {
            "id": 108,
            "name": "默认常见问题",
            "description": "常见问题",
            "commonQuestionCategoryList": [
                {
                    "id": 76,
                    "modelId": 108,
                    "name": "111",
                    "questionList": [
                        {
                            "id": 8645,
                            "content": "社保怎么办理主引导选择啊",
                            "type": 1,
                            "answer": {
                                "content": "<p>打电话12345</p>",
                                "type": 2,
                                "id": 4436
                            }
                        },
                        {
                            "id": 8647,
                            "content": "社保如何办理",
                            "type": 1,
                            "answer": {
                                "content": "<p>网上查询</p>",
                                "type": 2,
                                "id": 4437
                            }
                        }
                    ]
                }
            ]
        }
    }
}

点击流程接口

请求地址

请求参数

Request fields

Path Type Optional Description
sessionId Integer false 会话id:此次会话的标识id,在初始化会话(/api/initClient)返回时获取.
logId Integer true 流程点击所在的log的标识id,在机器人返回时提供.
flowId Integer true 流程标识id,在机器人返回流程内容(flowContent)中提供.
flowContent String true 流程具体内容.

请求结果

Path Type Description
code Integer 执行结果码
message String 执行结果说明
data Object 会话信息
data.sessionId Integer 会话id.
data.logId Integer 机器人返回的log的标识id.
data.flowId Integer 流程id,返回流程时有效.
data.flowTitle String 流程标题,返回流程时有效.
data.flowContent String 流程内容,返回流程时有效.内容中只有带有data-type和data-id属性的html元素是可点击的,并且所有的data-*属性的值都是String类型的
data.restrictionState Object 交互量限制状态.
data.restrictionState.exceededFlag Integer 超限标识【0正常/1已超限】
data.restrictionState.usedCount Integer 已使用数量
data.restrictionState.totalCount Integer 限制总量

示例

$ curl 'https://km.udesk.cn/api/v1/flow?email=admin@udesk.cn&timestamp=1529402444&sign=17dfc106671e1cd2442ba6e61c778aac86bb3035' -i -X POST -H 'Content-Type: application/json' -H 'Accept: application/json' -d '{
  "sessionId" : 450285,
  "logId" : 785709,
  "flowId" : 42,
  "flowContent" : "<p>11111</p><p>22222</p><p>33333</p>"
}'
返回
{
    "code": 200,
    "message": "OK",
    "visible": false,
    "data": {
        "sessionId": 28905,
        "logId": 793020,
        "flowId": 285,
        "flowTitle": "流程问题",
        "flowContent": "<p>1111</p>",
        "suggestQuestionList": [],
        "restrictionState": {
            "exceededFlag": 0,
            "usedCount": 32,
            "totalCount": 1000000
        }
    }
}

请求失败原因

{
  "code": 400,
  "message": "{具体的异常信息}",
  "visible": false
}
message description
"sessionId does not exist! Please reinitialize" 对应sessionId的对话不存在
"【...】javax.validation.constraints.NotNull.message" 【具体字段】不能为空
"The system could not find the process" 对应flowId的流程不存在

点击问题行为接口

请求地址

请求参数

Request fields

Path Type Optional Description
sessionId Integer false 此次会话的标识id.
queryType Integer true 用户点击类型 枚举 6:常见问题点击 7:建议问题点击 8:流程中的问题点击 9:智能提示点击.
logId Integer true 用户点击行为所在log的标识id(当queryType为9时,该字段不填).
questionId Integer true 问题id(点击问题的id).
questionContent String true 问题内容(点击问题的内容).
contentType String true 枚举:text ,rich 如果是text,会把ansContent富文本转换成普通文本

请求结果

Path Type Description
code Integer 执行结果码
message String 执行结果说明
data Object 会话信息
data.sessionId Integer 会话id.
data.logId Integer 机器人返回的log的标识id.
data.ansContent Var 返回对应的答案的内容.
data.ansType Integer 答案类型
data.attachmentList Array 问题的附件列表
data.attachmentList[].name String 问题附件的名称
data.attachmentList[].address String 问题附件的链接
data.attachmentList[].size Integer 问题附件的大小
data.flowId Integer 流程id,返回流程时有效.
data.flowTitle String 流程标题,返回流程时有效.
data.flowContent String 流程内容,返回流程时有效.内容中只有带有data-type和data-id属性的html元素是可点击的,并且所有的data-*属性的值都是String类型的
data.hitQuestion String 返回召回的问题.
data.msgType String 答案的类型.
data.switchStaffType Integer 1.微信渠道显示引导语 2.满足条件转人工.
data.switchStaffTips String 转人工提示.
data.suggestQuestionList Array 建议问题列表.
data.suggestQuestionList[].id Integer 建议问题的标识id.
data.suggestQuestionList[].content String 建议问题的内容.
data.suggestQuestionList[].type Integer 建议问题的类型
data.suggestQuestionList[].answer Object 建议问题的答案.
data.suggestQuestionList[].answer.content String 建议问题的答案内容
data.suggestQuestionList[].answer.type Integer 建议问题的答案类型
data.suggestQuestionList[].answer.id Integer 建议问题的答案ID
data.restrictionState Object 交互量限制状态.
data.restrictionState.exceededFlag Integer 超限标识【0正常/1已超限】
data.restrictionState.usedCount Integer 已使用数量
data.restrictionState.totalCount Integer 限制总量
data.aid Integer 返回对应的答案的id,返回答案时有效

示例

$ curl 'https://km.udesk.cn/api/v1/hit?email=admin@udesk.cn&timestamp=1529402439&sign=2c8f96911159fae72a493365a9692ce66c5c2b5d' -i -X POST -H 'Content-Type: application/json' -H 'Accept: application/json' -d '{
  "sessionId" : 450283,
  "queryType" : 7,
  "logId" : 785703,
  "questionId" : 232,
  "questionContent" : "谁的风扇"
}'
返回
{
    "code": 200,
    "message": "OK",
    "visible": false,
    "exception": null,
    "paging": null,
    "data": {
        "sessionId": 451727,
        "logId": 793031,
        "ansContent": "<p>不和平</p>\n<p><audio style=\"display: none;\" controls=\"controls\"></audio></p>\n<p><audio style=\"display: none;\" controls=\"controls\"></audio></p>",
        "attachmentList": [],
        "suggestQuestionList": [
            {
                "id": 8657,
                "content": "世界哪里和平了",
                "type": 1,
                "answer": {
                    "content": "<p>没有</p>\n<p><audio style=\"display: none;\" controls=\"controls\"></audio></p>",
                    "type": 2,
                    "id": 4442,
                    "deleteFlag": 0
                }
            },
            {
                "id": 9259,
                "content": "你想去哪儿",
                "type": 1,
                "answer": {
                    "content": "<p>北海</p>\n<p><audio style=\"display: none;\" controls=\"controls\"></audio></p>",
                    "type": 2,
                    "id": 5009,
                    "deleteFlag": 0
                }
            }
        ],
        "aid": 4441
    }
}

请求失败原因

{
  "code": 400,
  "message": "{具体的异常信息}",
  "visible": false
}
message description
"sessionId does not exist! Please reinitialize" 对应sessionId的对话不存在
"【...】javax.validation.constraints.NotNull.message" 【具体字段】不能为空

获取会话窗口-常见问题列表

请求地址

请求参数

Request fields

Path Type Optional Description
robotId Integer false 机器人id.
channelId Integer false 场景ID.
modelKey String false 常见问题模板ID,在’km-机器人-知识库管理-常见问题-ID’查看.

请求结果

Path Type Description
code Integer 执行结果码
message String 执行结果说明
data Array 常见问题列表信息
data[].id Integer 常见问题列表的分类id.
data[].modelId Integer 常见问题列表的模板id.
data[].name String 常见问题列表的分类名称.
data[].questionList Array 分类下常见问题.
data[].questionList[].id Integer 问题id.
data[].questionList[].content String 问题的内容,type=5时表示消息的内容
data[].questionList[].type Integer 类型 1:普通问题 4:闲聊问题 5:消息
data[].questionList[].answer Object 答案.
data[].questionList[].answer.content String 答案内容
data[].questionList[].answer.type Integer 答案类型
data[].questionList[].answer.id Integer 答案ID

示例

$ curl 'https://km.udesk.cn/api/v1/chat/commonQuestions?email=admin@udesk.cn&timestamp=1529569037&sign=4bc33f53e473d6db70e900fb07b947a9ee18f905' -i -X POST -H 'Content-Type: application/json' -H 'Accept: application/json' -d '{
  "robotId" : 112,
  "channelId" : 118,
  "modelKey" : "aaa"
}'
返回
{
    "code": 200,
    "message": "OK",
    "visible": false,
    "exception": null,
    "paging": {
        "pageNum": 1,
        "pageSize": 1,
        "total": 1
    },
    "data": [
        {
            "id": 76,
            "modelId": 108,
            "name": "111",
            "questionList": [
                {
                    "id": 8645,
                    "content": "社保怎么办理主引导选择啊",
                    "type": 1,
                    "answer": {
                        "content": "<p>打电话12345</p>",
                        "type": 2,
                        "id": 4436
                    }
                },
                {
                    "id": 8647,
                    "content": "社保如何办理",
                    "type": 1,
                    "answer": {
                        "content": "<p>网上查询</p>",
                        "type": 2,
                        "id": 4437
                    }
                }
            ]
        }
    ]
}

获取会话窗口-热点问题列表

请求地址

请求参数

Request fields

Path Type Optional Description
limitDayNum Integer false 最近多少天(不超过100).
limitResultNum Integer false 最多返回多少记录(不超过50).
robotId Integer false 机器人ID

请求结果

Path Type Description
code Integer 执行结果码
message String 执行结果说明
data Array 问题列表
data[].id Integer 问题的标识id.
data[].content String 问题的内容.
data[].type Integer 问题类型
data[].answer Object 答案.
data[].answer.content String 答案内容
data[].answer.type Integer 答案类型
data[].answer.id Integer 答案ID
data[].matchCount Integer 匹配数量.

示例

$ curl 'https://km.udesk.cn/api/v1/chat/hotQuestions?email=admin@udesk.cn&timestamp=1529569036&sign=27bfe3f1ece19e13b03ff669d30830322ae4cfa3' -i -X POST -H 'Content-Type: application/json' -H 'Accept: application/json' -d '{
  "limitDayNum" : 100,
  "limitResultNum" : 2,
  "robotId" : 83
}'
返回
{
    "code": 200,
    "message": "OK",
    "visible": false,
    "exception": null,
    "paging": {
        "pageNum": 1,
        "pageSize": 2,
        "total": 2
    },
    "data": [
        {
            "id": 844,
            "content": "你是谁?",
            "type": 1,
            "answer": {
                "content": "我是robot机器人啊",
                "type": 2,
                "id": 552
            },
            "matchCount": 24
        },
        {
            "id": 9426,
            "content": "谁的范德萨分",
            "type": 3,
            "answer": {
                "content": "123",
                "type": 1,
                "id": 5124
            },
            "matchCount": 13
        }
    ]
}

评价机器人返回的答案

请求地址

请求参数

Request fields

Path Type Optional Description
sessionId Integer false 会话Id.
questionSurveyOptionId Integer false 评价选项 1:满意 2:不满意.
logId Integer true 被评价答案所在记录的Id,在机器人返回中获取.

请求结果

Path Type Description
code Integer 执行状态码
message String 执行结果说明

示例

$ curl 'https://km.udesk.cn/api/v1/surveyQuestion?email=admin%40udesk.cn&timestamp=1529402453&sign=de8f53541749eb530fc006941d6af1af4e917067' -i -X POST -H 'Content-Type: application/json' -H 'Accept: application/json' -d '{
  "sessionId" : 450289,
  "questionSurveyOptionId" : 1,
  "logId" : 785716
}'
返回
{
  "code" : 200,
  "message" : "OK",
  "visible" : false
}

请求失败原因

{
  "code": 400,
  "message": "{具体的异常信息}",
  "visible": false
}
message description
This reply has been evaluated! 对话已评价
The relationship between sessionId and sessionLogId does not exist! logid不属于对应sessionid的对话
sessionId does not exist! Please reinitialize 对应sessionId的对话不存在
【...】javax.validation.constraints.NotNull.message 【具体字段】不能为空

评价机器人会话

请求地址

请求参数

Request fields

Path Type Optional Description
sessionId Integer false 会话id.
sessionSurveyOptionId Integer true 评价选项 1:未评价 2:满意 3:一般 4:不满意.
surveyContent String true 评价内容.

请求结果

Path Type Description
code Integer 执行状态码
message String 执行结果信息
data Object 返回内容
data.switchStaffType Integer 1.微信渠道显示引导语 2.满足条件转人工.
data.switchStaffTips String 转人工提示.

示例

$ curl 'https://km.udesk.cn/api/v1/surveySession?email=admin@udesk.cn&timestamp=1529402455&sign=d4be213127c62bb5b53dea5f5e52eaad06b2362f' -i -X POST -H 'Content-Type: application/json' -H 'Accept: application/json' -d '{
  "sessionId" : 450290,
  "sessionSurveyOptionId" : 4,
  "surveyContent" : "hehe"
}'
返回
{
  "code" : 200,
  "message" : "OK",
  "visible" : false
}

普通对话

请求地址

请求参数

Request fields

Path Type Optional Description
sessionId Integer false 会话id:此次会话的标识id,在初始化会话(/api/initClient)时获取.
robotId Integer false 机器人id:此次会话对应的机器人标识id.
queryContent String false 用户问话内容.
channel_id Integer true 知识库场景ID
weixin_openid String true 微信的openid
contentType String true 文本类型 如果值为"text",会把ansContent富文本转换成普通文本
chatMode Integer true 会话模式 1.智能模式 2.任务式会话 3.FAQ 4.资料库

请求结果

Path Type Description
code Integer 执行状态码
message String 执行结果说明
data Object 对话信息
data.sessionId Integer 会话id.
data.logId Integer 机器人返回的log的标识id.
data.enableAppraise Boolean 对话是否允许评价
data.ansContent String 返回对应的答案的内容.
data.ansType Integer 返回答案类型
data.msgbox String 语音类型(data.ansType="audio")时,同时返回的文案
data.flowId Integer 流程id,返回流程时有效.
data.flowTitle String 流程标题,返回流程时有效.
data.flowContent String 流程内容,返回流程时有效.
data.hitQuestion String 返回召回的问题,.
data.msgType String 答案的文本类型.
data.switchStaffType Integer 1.微信渠道显示引导语 2.满足条件转人工.
data.switchStaffTips String 转人工提示.
data.suggestQuestionList Array 建议列表.
data.suggestQuestionList[].id Integer 建议问题的标识id.
data.suggestQuestionList[].content String 建议问题的内容.
data.suggestQuestionList[].type Integer 建议问题类型
data.suggestQuestionList[].answer Object 建议问题的答案.
data.suggestQuestionList[].answer.content String 建议问题的答案内容
data.suggestQuestionList[].answer.type Integer 建议问题的答案类型
data.suggestQuestionList[].answer.questionId Integer 建议问题的答案对应的问题ID
data.suggestQuestionList[].answer.id Integer 建议问题的答案ID
data.restrictionState Object 交互量限制状态.
data.restrictionState.exceededFlag Integer 超限标识【0正常/1已超限】
data.restrictionState.usedCount Integer 已使用数量
data.restrictionState.totalCount Integer 限制总量
data.aid Integer 返回对应的答案的id.
data.taskChatReturnCommands Array 任务式对话返回指令集.
data.attachmentList Array FAQ问题的附件列表.
data.attachmentList[].name String 附件名称
data.attachmentList[].address String 附件地址
data.attachmentList[].size Integer 附件大小

data.msgType对应的data.ansContent结构

枚举值 说明 结构 哪些模式会返回
plain 普通文本 String 智能模式、FAQ、任务式会话、资料库
rich 富文本 带标签的String 智能模式、FAQ、任务式会话、资料库
6 selective_list 选择列表 ans_selective_list
show_product 展示商品 ans_show_product 智能模式、任务式会话
selective_product 选择商品 ans_show_product 智能模式、任务式会话
wechat_image 微信图文消息 ans_wechat_image 智能模式、FAQ
audio 语音 String 语音的播放链接地址 智能模式、FAQ
link 链接 ans_link 智能模式、FAQ
image 图片 String 图片的链接地址 智能模式、FAQ
ans_selective_table
Path Type Description
title String 表格标题
rowNumber Integer 表格行数
columnNumber Integer 表格列数
optionList Array 表格内容
optionList[].id Integer 选项Id
optionList[].value String 选项的值
ans_selective_list
Path Type Description
title String 列表标题
optionList Array 列表内容
optionList[].id Integer 选项Id
optionList[].value String 选项的值
ans_show_product
Path Type Description
title String 商品标题
showSize Integer 默认展示数量
turnFlag Integer 商品消息是否可以换组显示 0:禁止 1:可以
productList Array 商品内容
productList[].id Integer 商品ID
productList[].name String 商品名称
productList[].image String 商品图片
productList[].url String 商品链接
productList[].infoList Array 商品信息
productList[].infoList[].info String 文本
productList[].infoList[].boldFlag Integer 加粗标识(0或者1)
productList[].infoList[].color String 颜色
ans_wechat_image
Path Type Description
content String 标准问题内容
coverUrl String 封面图片路径
description String 描述
answerUrl String 答案路径
Path Type Description
faviconUrl String 头图的地址,
title String 网站标题
answerUrl String 答案本身配置的地址

示例

$ curl 'https://km.udesk.cn/api/v1/chat?email=admin@udesk.cn&timestamp=1529402441&sign=08bea0badd00d36c432320fc3760fc419154b40d' -i -X POST -H 'Content-Type: application/json' -H 'Accept: application/json' -d '{
  "sessionId" : 451714,
  "robotId" : 54,
  "queryContent" : "手机的价格",
  "contentType" : null,
  "chatMode" : null,
  "channel_id" : null,
  "weixin_openid" : null
}'
返回
{
  "code" : 200,
  "message" : "OK",
  "visible" : false,
  "data" : {
    "sessionId" : 451714,
    "logId" : 793005,
    "ansContent" : "您的问题我会继续努力学习,期待下次为您更好的服务",
    "ansType" : 6,
    "msgType" : "plain",
    "suggestQuestionList" : [ ]
  }
}

请求失败原因

{
  "code": 400,
  "message": "{具体的异常信息}",
  "visible": false
}
message description
sessionId does not exist! Please reinitialize 对应sessionId的对话不存在
Question content cannot be empty queryContent的值不能为空

不同data.ansType返回的示例

1.命中普通问题,返回问题的答案

{
    "sessionId": 451521,
    "logId": 792031,
    "aId": 123,
    "ansContent": "<p>液晶的</p>",
    "ansType": 1,
    "hitQuestion": "电视机",
    "msgType": "rich",
    "attachmentList": [],
    "switchStaffTips":"转人工",    //如果该问题开启了转人工推荐
    "switchStaffType":1,     //如果该问题开启了转人工推荐
    "suggestQuestionList":[ //如果该问题手动添加了建议列表
        {
            "id": 8086,
            "content": "电视机品牌",
            "type": 1,
            "answer": {
                "content": "xxxx",
                "id": 4422,
                "type": 1
            }
        },
        {
            "id": 8087,
            "content": "电视机牌子",
            "type": 1,
            "answer": {
                "content": "xxxx2",
                "id": 4423,
                "type": 1
            }
        }
    ]
}

2.命中流程问题,返回流程内容

{
    "sessionId": 180987228,
    "logId": 501929478,
    "enableAppraise": false,
    "attachmentList": [],
    "ansType": 1,
    "flowId": 9359,
    "flowTitle": "流程子项",
    "flowContent": "<p><p>流程子项</p></p><p></p>",
    "hitQuestion": "流程",
    "msgType": "plain",
    "suggestQuestionList": [],
    "restrictionState": {
        "exceededFlag": 0,
        "usedCount": 82,
        "totalCount": 1000000
    }
}

3.返回问题建议列表

{
    "sessionId": 451521,
    "logId": 792031,
    "ansType": 3,
    "msgType": "plain",
    "suggestQuestionList": [{
            "id": 8086,
            "content": "电视机品牌",
            "type": 1,
            "answer": {
                "content": "xxxx",
                "id": 4422,
                "type": 1
            }
        },
        {
            "id": 8087,
            "content": "电视机牌子",
            "type": 1,
            "answer": {
                "content": "xxxx2",
                "id": 4423,
                "type": 1
            }
        }
    ]
}

4.返回寒暄

{
    "sessionId": 451521,
    "logId": 792031,
    "ansType": 4,
    "msgType": "plain",
    "ansContent": "不客气,这是我应该做的。"
}

5.返回忽略

{
    "sessionId": 451521,
    "logId": 792031,
    "ansType": 5,
    "msgType": "plain",
    "ansContent": "不客气,这是我应该做的。",
    "answerScore": 0,
    "switchStaffTips": "转人工", //如果匹配转人工条件
    "switchStaffType": 1 //如果匹配转人工条件
}

6.返回未知说辞

{
    "sessionId": 451521,
    "logId": 792031,
    "ansType": 6,
    "msgType": "plain",
    "ansContent": "<p>不客气,这是我应该做的。</p>",
    "answerScore": 0,
    "switchStaffTips": "转人工", //如果匹配转人工条件
    "switchStaffType": 1 //如果匹配转人工条件
}

7.输入敏感词

{
    "code": 6400,
    "message": "发送失败!您的问题中包含敏感词汇,请重新输入!"
}

8.返回三方调用结果

{
    "sessionId": 451521,
    "logId": 792031,
    "ansContent": "这个webhook返回的结果"
}

9.返回知识图谱

{
    "sessionId": 451521,
    "logId": 792031,
    "ansType": 10,
    "msgType": "plain",
    "ansContent": "中山市区可以缴纳,参保截点为每月"
}

10.返回任务式会话

{
    "sessionId": 451522,
    "logId": 792032,
    "ansType": 11,
    "msgType": "plain",
    "ansContent": "<p>鲤鱼</p><p>[1]上一句是<span style='color: rgb(0, 0, 0);'>:大鲨鱼</span></p><br>"
}

11.返回资料库

{
    "sessionId": 451522,
    "logId": 792032,
    "ansType": 12,
    "msgType": "plain",
    "ansContent": "<p>乾隆的年龄是88岁</p>"
}

智能辅助

请求地址

请求参数

Request fields

Path Type Optional Description
robotId Integer false 机器人id.
channelId Integer false 场景id.
queryContent String true 问话内容.

请求结果

Path Type Description
code Integer 执行结果码
message String 执行结果说明
data Object 会话信息
data.sessionId Integer 会话id.
data.logId Integer 机器人返回的log的标识id.
data.ansContent String 返回对应的答案的内容.
data.ansType Integer 答案类型
data.flowId Integer 流程id,返回流程时有效.
data.flowTitle String 流程标题,返回流程时有效.
data.flowContent String 流程内容,返回流程时有效.
data.hitQuestion String 返回召回的问题,.
data.msgType String 答案的文本类型.
data.switchStaffType Integer 1.微信渠道显示引导语 2.满足条件转人工.
data.switchStaffTips String 转人工提示.
data.suggestQuestionList Array 建议问题列表.
data.suggestQuestionList[].id Integer 建议问题的标识id.
data.suggestQuestionList[].content String 建议问题的内容.
data.suggestQuestionList[].type Integer 建议问题类型
data.suggestQuestionList[].answer Object 建议问题的答案.
data.suggestQuestionList[].answer.content String 建议问题的答案内容
data.suggestQuestionList[].answer.type Integer 建议问题的答案类型
data.suggestQuestionList[].answer.questionId Integer 件问题问题的答案对应的问题ID
data.suggestQuestionList[].answer.id Integer 建议问题的答案ID
data.restrictionState Object 交互量限制状态.
data.restrictionState.exceededFlag Integer 超限标识【0正常/1已超限】
data.restrictionState.usedCount Integer 已使用数量
data.restrictionState.totalCount Integer 限制总量
data.aid Integer 返回对应的答案的id,问题为FAQ问题时生效

示例

$ curl 'https://km.udesk.cn/api/v1/assist?email=admin@udesk.cn&timestamp=1529402447&sign=c3168ff8ee9db4208d3a6f8a49d4bea7d4058ab3' -i -X POST -H 'Content-Type: application/json' -H 'Accept: application/json' -d '{
  "robotId" : 83,
  "channelId" : 83,
  "queryContent" : "你好"
}'
返回
{
  "code" : 200,
  "message" : "OK",
  "visible" : false,
  "data" : {
    "ansContent" : "我是robot机器人啊",
    "attachmentList" : [ ],
    "hitQuestion" : "你是谁?",
    "msgType" : "rich",
    "suggestQuestionList" : [ ],
    "aid" : 552
  }
}

智能提示接口

请求地址

请求参数

Request fields

Path Type Optional Description
sessionId Integer false 会话id.
keyword String true keyword.

请求结果

Path Type Optional Description
code Integer true 状态码
message String true 返回信息
visible Boolean true
data Object true 返回内容
data.smartTipList Array true 智能提示问题列表.
data.smartTipList[].id Integer true 问题的标识id.
data.smartTipList[].content String true 问题的内容.
data.smartTipList[].type Integer true 问题类型
data.smartTipList[].answer Object true 答案.
data.smartTipList[].answer.content String true 答案内容
data.smartTipList[].answer.type Integer true 答案类型
data.smartTipList[].answer.questionId Integer true 答案对应的问题ID
data.smartTipList[].answer.id Integer true 答案ID

示例

$ curl 'https://km.udesk.cn/api/v1/smartHint?email=admin@udesk.cn&timestamp=1529402446&sign=a685c1c3881aebe59c79306ef6d288c25fab077b' -i -X POST -H 'Content-Type: application/json' -H 'Accept: application/json' -d '{
  "sessionId" : 450287,
  "keyword" : "社保"
}'
返回
{
    "code": 200,
    "message": "OK",
    "visible": false,
    "exception": null,
    "paging": null,
    "data": {
        "smartTipList": [
            {
                "id": 8645,
                "content": "社保怎么办理主引导选择啊",
                "type": 1,
                "answer": {
                    "content": "<p>打电话12345</p>",
                    "type": 2,
                    "id": 4436
                }
            }
        ]
    }
}

请求失败原因

{
  "code": 400,
  "message": "{具体的异常信息}",
  "visible": false
}
message description
The robot does not exist or has been deleted! 对应robotid的机器人不存在
The scene does not exist 对应channelId的场景不存在
【...】javax.validation.constraints.NotNull.message 【具体字段】不能为空

转人工通知接口

请求地址

请求参数

Path parameters

Parameter Type Optional Description
id Integer false 该次会话的会话id(sessionId).

请求结果

Path Type Description
code Integer 执行状态码
message String 执行结果信息

示例

$ curl 'https://km.udesk.cn/api/v1/sessions/451718/switchStaff?email=admin@udesk.cn&timestamp=1529402455&sign=d4be213127c62bb5b53dea5f5e52eaad06b2362f' -i -X PUT -H 'Accept: application/json'
返回
{
  "code" : 200,
  "message" : "OK",
  "visible" : false
}