Access Token
您需要在【设置 / 开发者 / APIs】中获取工作台的 Access Token,后续调用以下 APIs 时都需要使用 Token。目前 Token 的有效期是永久,重复获取将导致上次获取的 Token 失效。
$ curl -s https://api.meiqia.com/v1/conversations/<conv_id> -H Authorization:Bearer <access_token>
查询客服列表接口
请求方式:GET
接口地址:/ticket-openapi/agent/list
Header参数:
参数名称 | 参数值 | 是否必须 | 备注 |
---|---|---|---|
Content-Type | application/json | 是 | |
Authorization | 是 | Bearer 类型 |
返回数据:
名称 | 类型 | 是否必须 | 备注 | 其他信息 |
---|---|---|---|---|
code | integer | 必须 | ||
success | boolean | 必须 | ||
msg | string | 必须 | ||
data | string [] | 必须 | 客服ID数组 |
查询工单模板列表接口
请求方式:POST
接口地址:/ticket-openapi/template/list
Header参数:
参数名称 | 参数值 | 是否必须 | 备注 |
---|---|---|---|
Content-Type | application/json | 是 | |
Authorization | 是 | Bearer 类型 |
Body参数:
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
---|---|---|---|---|---|
ids | string [] | 非必须 | 模板ID集合 | item 类型: string | |
title | string | 非必须 | 模板名称 |
返回数据:
名称 | 类型 | 是否必须 | 备注 | 其他信息 |
---|---|---|---|---|
code | integer | 必须 | ||
success | boolean | 必须 | ||
msg | string | 必须 | ||
data | object[] | 必须 | 模板对象数组 | |
data.description | string | 非必须 | 模板描述 | |
data.fields | object [] | 非必须 | 字段数组 | item 类型: object |
data.fields.active | boolean | 非必须 | 是否激活 | |
data.fields.dataType | string | 非必须 | 字段数据类型 | 枚举: DATETIME, FILE, MULTI_SELECT, MULTI_TEXT, NUMBER, SINGLE_SELECT, SINGLE_TEXT, WHETHER |
data.fields.fieldId | string | 非必须 | 自定义字段ID | |
data.fields.hasAction | boolean | 非必须 | 是否可使用在动作节点中(在动作节点中编辑) | |
data.fields.hasConfig | boolean | 非必须 | 是否可配置(为false则在模板中不能设置是否必填等配置项) | |
data.fields.hasSystem | boolean | 非必须 | 是否系统字段 | |
data.fields.name | string | 非必须 | 字段名称 | |
data.fields.options | object [] | 非必须 | 字段选项数组 | item 类型: object |
data.fields.required | boolean | 非必须 | 是否必填 | |
data.fields.viewName | string | 非必须 | 字段显示名称 | |
data.fields.visible | boolean | 非必须 | 是否可见(设置为true,则表单会展示此字段) | |
data.hasSystem | boolean | 非必须 | 是否系统默认 | |
data.hasUsed | boolean | 非必须 | 模板是否被使用 | |
data.id | string | 非必须 | 主键ID | |
data.position | integer | 非必须 | 模板顺序(值越小越靠前) | format: int32 |
data.tenantId | string | 非必须 | 租户ID(企业ID或token) | |
data.title | string | 非必须 | 模板名称 |
返回示例:
{
"code": 1,
"success": true,
"msg": "操作成功",
"data": [
{
"id": "641d3d54b1e81872bc537af6",
"tenantId": "1",
"title": "默认模板",
"position": 1,
"description": "这是系统自动生成的默认模板",
"fields": [
{
"fieldId": "63f33ced52ca28406dd9bb8d",
"required": true,
"visible": true,
"name": "templateId",
"viewName": "工单模板",
"dataType": "SINGLE_SELECT",
"active": true,
"hasSystem": true,
"hasConfig": true,
"hasAction": false,
"options": []
},
{
"fieldId": "63f33ced52ca28406dd9bb90",
"required": true,
"visible": true,
"name": "priority",
"viewName": "优先级",
"dataType": "SINGLE_SELECT",
"active": true,
"hasSystem": true,
"hasConfig": true,
"hasAction": true,
"options": [
{
"code": "EMERGENT",
"value": "紧急",
"active": true,
"description": null
},
{
"code": "HIGH",
"value": "高",
"active": true,
"description": null
},
{
"code": "MIDDLE",
"value": "中",
"active": true,
"description": null
},
{
"code": "LOW",
"value": "低",
"active": true,
"description": null
}
]
}
],
"hasUsed": true,
"hasSystem": true
}
]
}
创建工单接口
请求方式:POST
接口地址:/ticket-openapi/ticket/save
Header参数:
参数名称 | 参数值 | 是否必须 | 备注 |
---|---|---|---|
Content-Type | application/json | 是 | |
Authorization | 是 | Bearer 类型 |
Body参数:
名称 | 类型 | 是否必须 | 备注 | 其他信息 |
---|---|---|---|---|
agentId | string | 非必须 | 操作人ID | |
attachments | object [] | 非必须 | 附件链接数组 | 基于 [查询附件上传] 返回参数 |
attachments.attachmentId | string | 非必须 | 文件id | |
attachments.name | string | 非必须 | 文件名称 | |
attachments.size | integer | 非必须 | 文件大小 | format: int64 |
attachments.status | string | 非必须 | 文件状态 | |
attachments.uploadTime | string | 非必须 | 上传时间 | format: date-time |
attachments.url | string | 必须 | 文件地址 | |
categoryId | string | 非必须 | 工单类型ID | |
clientid | string | 非必须 | 外部-顾客标识id | |
content | string | 非必须 | 工单内容 | |
deadline | string | 非必须 | 截止时间 | format: date-time |
fields | object [] | 非必须 | 字段数组 | 基于 [查询工单模板列表] 返回fields参数 |
fields.fieldId | string | 必须 | 自定义字段ID | |
fields.fieldName | string | 非必须 | 自定义字段name | |
fields.optionCodes | string [] | 非必须 | 自定义字段选项code数组 | item 类型: string |
fields.value | object | 非必须 | 自定义字段值 | 备注: 自定义字段值 |
fields.dataType | enum | 非必须 | 当字段类型为 日期、单选、多选、级联单选、级联多选时必传 | DATETIME:日期类型 SINGLE_SELECT:单选类型 MULTI_SELECT:多选类型 CASCADE_SINGLE_SELECT:级联单选类型 CASCADE_MULTI_SELECT:级联多选类型 |
followerIds | string [] | 非必须 | 关注人ID数组 | 基于 [查询客服列表] 返回值 |
metadata | map | 非必须 | 顾客信息 | 备注: 顾客信息 |
openid | string | 非必须 | 外部-顾客微信id | |
operator | string | 非必须 | 操作人名称 | 填写后作为操作人记录在日志数据中 |
priority | string | 非必须 | 优先级 | 枚举: EMERGENT,HIGH,LOW,MIDDLE |
tagIds | string [] | 非必须 | 标签ID数组 | item 类型: string |
templateId | string | 必须 | 工单模板ID | 基于 [查询工单模板列表] 返回模板id |
title | string | 必须 | 工单标题 | 最大长度: 30最小长度: 0 |
requestId | string | 非必须 | 工单请求唯一标识 | 同一条工单的请求对应唯一requestId,用于保证工单保存的幂等性 |
请求示例:
{
"clientid":"test",
"operator":"test",
"metadata":{
"name":"test",
"sex":"female"
},
"templateId": "",
"title": "test",
"priority": "MIDDLE",
"content": null,
"followerIds": null,
"deadline": null,
"attachments": [
{
"name": "test.png",
"size": 4000138,
"attachmentId": "",
"uploadTime": "2023-04-04T10:25:47.983Z",
"status": "success",
"url": ""
}
],
"fields": [
{
"fieldId": "641290b343478962ef9d4e09",
"value": false
},
{
"fieldId": "641290a943478962ef9d4e08",
"value": null
},
{
"fieldId": "6412907543478962ef9d4e05",
"optionCodes": []
}
]
}
返回数据:
名称 | 类型 | 是否必须 | 备注 | 其他信息 |
---|---|---|---|---|
code | integer | 必须 | ||
success | boolean | 必须 | ||
msg | string | 必须 | ||
data | boolean | 必须 |
上传附件接口
请求方式:POST
接口地址:/unified-api/fileshelf/v1/openapi/upload_file
Header参数:
参数名称 | 参数值 | 是否必须 | 备注 |
---|---|---|---|
Content-Type | multipart/form-data | 是 | |
Authorization | 是 | Bearer 类型 |
Body参数:
名称 | 类型 | 是否必须 | 备注 | 其他信息 |
---|---|---|---|---|
type | string | 必须 | 文件类型 | 图片:ticket_photo 文件:ticket_file |
file | file | 必须 | 文件 | 上传附件类型说明: 1.图片: .png .jpg .gif .jpeg .bmp 大小15M以内 2.音频: .mp3 大小20M以内 3.视频: .mp4 .mov 大小100M以内 4.文件: .ppt .pptx .pdf .txt .docx .doc .xlsx .xls .csv .zip .rar .gz 大小20M以内 |
返回数据:
名称 | 类型 | 是否必须 | 备注 | 其他信息 |
---|---|---|---|---|
key | string | 必须 | ||
url | string | 必须 |