一洽客服系统·工单系统-工单接口

一洽提供有限的开放接口以供用户操作工单。

目录

  1. 前言
  2. 创建外部工单
  3. 创建内部工单
  4. 获取模板配置
  5. 自定义字段类型
    5.1 config-列表、单选、复选
    5.2 config-整数列表

1. 前言

外部工单和内部工单的创建使用不同的接口。创建外部工单需要echatTag匹配网页路由,而创建内部工单需要指定客服模板id。

创建外部工单:根据echatTag确定路由->确定接待方式(接待优先级需要包含工单)->确定工单使用样式和分组->确定访客模板

创建内部工单:根据templateId确定客服模板id->确定工单使用样式和部门,配置获取参考获取模板配置

2. 创建外部工单

通过此接口,开发者可以创建一个外部工单。

创建外部工单依赖web路由,需要保证使用的路由的接待方式包含工单。

接口地址

如果获取accsessToken!

get参数说明

参数 是否必须 说明
accessToken 接口调用凭证

Post数据说明

JSON数据:

参数 参数类型 是否必须 描述
echatTag String 路由标签,需要根据此标签匹配路由,若未能匹配到路由,则会使用默认路由
requesterUserId String 工单请求者id标识
requesterUserType byte 工单请求者是否为会员,0:不是 1:是
submitStaffId long 工单提交者,可指定客服id,如果不传则默认为请求者提交
distributeUserId long 工单处理者,可指定客服id。如果处理者在对应的路由分组中则使用此处理者;否则处理者为空,只指定处理分组
title String 工单标题
content String 工单内容
jobMemo String 工单备注,支持最大长度512个字符
priority byte 工单优先级,1:低,2:正常,3:高,4:紧急,默认为2
replyEmail String 回复邮箱,支持最大长度50个字符
replyPhone String 回复手机号,支持最大长度50个字符
jobType byte 工单类型, 1:问题,2:事务,3:故障,4:任务
attachments json 工单附件列表,json列表,格式见后Attachment字段定义
requesterLan String 语言,如果为空则使用配置的工单默认处理语言
name String crm字段-姓名
phone String crm字段-手机号
qq String crm字段-qq
wechat String crm字段-微信
email String crm字段-邮箱
address String crm字段-地址
nickName String crm字段-昵称
gender byte crm字段-性别,0:未知,1:男,2:女
memo String crm字段-备注
maritalStatus byte crm字段-婚姻状态,0:未知,1:未婚,2:已婚
age byte crm字段-年龄
birthday String crm字段-生日
c1-c20 String 自定义crm字段(参照后文自定义字段类型
t1-t10 String 自定义工单字段(参照后文自定义字段类型

Attachment字段定义:

参数 参数类型 描述
url String 文件url
name String 文件名称
size long 文件大小,文件字节数
fileType int 0:其它,1:语音,2:视频,3:地理位置,4:图片,如果不传则自动从文件名获取,没获取到默认为0
echatFileId String 上传文件服务成功后返回的ID

echatFileId和 url二选一

示例:url形式

{   
    "attachments":[{
                "fileType":4,
                "name":"a.png",
                "size":12442,
                "url":"https://x.xx/a.png"
            }
    ],
    "requesterLan":"en",
    "content":"工单内容",
    "jobMemo":"工单备注",
    "priority":3,
    "replyEmail":"xxx@outlook.com",
    "replyPhone":"18349952141",
    "requesterUserId":"hy36588",
    "requesterUserType":1,
    "commitStaffId":79,
    "distributeUserId":100,
    "status":2,
    "title":"标题",
    "memo":"crm备注",
    "c1":"2020-05-09",
    "t1":"cd"
}

echatFileId 形式:


{   
    "attachments":[{
                "echatFileId":"wwOastkPODnKtBfYTIQMEkKWmkWCSurLPRUjvQGa"
            }
    ],
    "requesterLan":"en",
    "content":"工单内容",
    "jobMemo":"工单备注",
    "priority":3,
    "replyEmail":"xxx@outlook.com",
    "replyPhone":"18349952141",
    "requesterUserId":"hy36588",
    "requesterUserType":1,
    "commitStaffId":79,
    "distributeUserId":100,
    "status":2,
    "title":"标题",
    "memo":"crm备注",
    "c1":"2020-05-09",
    "t1":"cd"
}

返回数据说明

返回类型:json

参数 类型 说明
jobId long 工单id

3. 创建内部工单

通过此接口,开发者可以创建一个内部工单,大体上和创建外部工单类似。只是创建外部工单依赖echatTag(路由标签),而创建内部工单依赖templateId(模板id),内部工单没有crm相关字段。

接口地址

get参数说明

参数 是否必须 说明
accessToken 接口调用凭证

Post数据说明

JSON数据:

参数 参数类型 是否必须 描述
templateId long 客服模板id
requesterStaffId String 工单请求者id,这里是一个客服id
submitStaffId long 工单提交者,可指定客服id,如果不传则默认为请求者提交
distributeUserId long 工单处理者,可指定客服id
title String 工单标题
content String 工单内容
jobMemo String 工单备注
priority byte 工单优先级,1:低,2:正常,3:高,4:紧急
replyEmail String 回复邮箱
replyPhone String 回复手机号
jobType byte 工单类型, 1:问题,2:事务,3:故障,4:任务
attachments json 工单附件列表,json列表,格式见前文Attachment字段定义
requesterLan String 语言,如果为空则使用配置的工单默认处理语言
t1-t10 String 自定义工单字段(参照后文自定义字段类型

返回数据说明

返回类型:Json

参数 类型 说明
jobId long 工单id

4. 获取模板配置

通过此接口,开发者可以根据模板id查询模板当前的详细字段配置。

接口地址

get参数说明

参数 是否必须 说明
accessToken 接口调用凭证
templateId 模板id,可以再客服端-工单-工单模板处查看

返回数据示例

{
    "id":456,
    "name":"默认模板",
    "description":"请尽可能地详细描述工单问题",
    "selectedFields":[
            {
                "fieldName":"t1",
                "label":"城市列表",
                "placeHolder":"请选择",
                "isRequired":true,
                "sort":"1",
                "type":3,
                "lengthLimit":521,
                "config":[
                    {
                        "item":"成都",
                        "sort":1,
                        "value":"cd"
                    },
                    {
                        "item":"绵阳",
                        "sort":2,
                        "value":"my"
                    }
                ]
            },
            {
                "fieldName":"t2",
                "label":"数字列表",
                "placeHolder":"请选择",
                "isRequired":true,
                "sort":"2",
                "type":7,
                "lengthLimit":521,
                "config":{
                    "end":10,
                    "start":1,
                    "stepSize":2
                }
            }
        ]
}

返回数据说明

返回类型:json

参数 类型 说明
id long 模板id
name String 模板名称
description String 模板说明
selectedFields list 选择的字段,对象列表,见下

其中selectedFields是一个列表,每个元素表示一个该模板选择的一个字段,结构如下

参数 类型 说明
fieldName String 字段名,创建工单时使用此参数
label String 字段label
placeHolder String placeHolder
isRequired boolean 字段是否必须
sort int 排序序号
type byte 字段类型,参考自定义字段类型
lengthLimit int 字段内容长度限制
config obj 字段配置,根据type不同可能有不同的类型,参考自定义字段类型

5. 自定义字段类型

目前支持的自定义字段类型包含:

类型 type config
短文本 1 没有config,普通文本
文本 2 没有config,普通文本
列表 3 config描述
单选 4 config描述
复选 5 config描述
日期 6 没有config,普通文本,格式:2020-01-01
整数列表 7 config描述

5.1 config-列表、单选、复选

类型: List

字段:

字段 type 描述
item String 项目标签
value String
sort int 排序序号

示例:

{
"fieldName":"t1",   
"label":"列表",
"sort":"2",
"type":3,
"lengthLimit":521,
"placeHolder":"请选择",
"isRequired":true,
"config":[
                {
                    "item":"成都",
                    "sort":1,
                    "value":"cd"
                },
                {
                    "item":"绵阳",
                    "sort":2,
                    "value":"my"
                }
            ]
}

使用:


   标签=成都,值=cd
标签=绵阳,值=my
   

选中成都,则上传:


{
    "t1":"cd"
}
   

{
    "t1":"cd,my"
}
   

5.2 config-整数列表

类型: Object

字段:

字段 type 描述
start int 开始数值
end int 结束数值
stepSize int 步长

示例:

上述json表示将字段t1配置为整数列表:

最小值=1
最大值=10
步长=2

那么数值的有效值为:1,3,5,7,9

选中7,则上传: