Access Token
您需要在【设置 / 开发者 / APIs】中获取工作台的 Access Token,后续调用以下 APIs 时都需要使用 Token。目前 Token 的有效期是永久,重复获取将导致上次获取的 Token 失效。
$ curl -s https://api.meiqia.com/v1/conversations/<conv_id> -H Authorization:Bearer <access_token>对话
对话是在线客服与顾客沟通的载体。顾客或客服发送消息后,会以对话的形式显示在对话页。
对话模型
参数 | 类型 | 说明 |
enterprise_id | Integer | 美洽定义的企业唯一标识 |
dev_client_id | String | 第三方系统定义并传递给美洽的顾客唯一标识 |
page_from_url | String | 对话的来源页 URL |
page_land_url | String | 对话的着陆页 URL |
page_land_title | String | 对话的着陆页标题 |
page_conv_url | String | 对话的对话页 URL |
page_conv_title | String | 对话的对话页标题 |
search_engine_name | String | 对话的访问来源是搜索引擎时,搜索引擎的名称 |
search_engine_kw | String | 搜索关键词 |
visitor_ip | String | 顾客的 IP |
visitor_location | String | 顾客的地理位置 |
visitor_os | String | 顾客的设备操作系统 |
visitor_browser | String | 顾客的浏览器 |
visitor_tags | List | 顾客的顾客标签 |
client_id | Integer | 第三方系统定义并传递给美洽的顾客唯一标识 |
client_info | Object | 顾客的详细信息 |
agent_account | String | 客服的账号邮箱 |
agent_name | String | 客服的名字 |
agent_ID | String | 美洽定义的客服唯一标识 |
agent_nick_name | String | 客服的昵称 |
group_id | String | 美洽定义的客服组 ID |
group_name | String | 客服组的名称 |
conv_id | Integer | 美洽定义的对话唯一标识 |
conv_start_tm | String | 对话的创建时间 |
conv_end_tm | String | 对话的结束时间 |
conv_first_resp_wait_in_secs | Integer | 对话的首次响应时长,单位为秒 |
conv_content | List | 对话的消息 |
conv_agent_msg_count | String | 客服在对话中发送的消息数 |
conv_visitor_msg_count | String | 顾客在对话中发送的消息数 |
conv_quality_grade | String | 对话的评级 |
conv_leads | String | 对话中收集的线索 |
comment_level | String | 质检时对话的得分 |
comment_content | String | 质检时对话的评语 |
platform | String | 顾客在对话时的设备类型,值有 pc 、mobile 、tablet |
conv_tags | String | 对话的对话标签 |
summary_content | String | 对话小结的内容 |
summary_update_at | String | 对话小结的最后更新时间 |
source_type | String | 对话的访问来源类型 |
source_field | String | 对话的访问来源的值 |
agent_resp_duration | String | 客服平均响应时长 |
effective | String | 对话是有效对话还是无效对话 |
missed | String | 对话是否为遗漏对话 |
converse_duration | String | 对话的持续时长 |
app_name | String | 部署了 SDK 的 App 名称,SDK 渠道特有 |
main_channel | String | 对话渠道 |
sub_channel | String | 对话子渠道 |
search_engine | String | 搜索引擎 |
查询单个对话
curl https://api.meiqia.com/v1/conversations/<conv_id>
请求
参数 | 能否为空 | 说明 |
enterprise_id | 不能 | 美洽定义的企业唯一标识 |
app_id | 不能 | 美洽定义的工作台唯一标识 |
sign | 不能 | 美洽定义的工作台访问签名 |
conv_id | 不能 | 美洽定义的对话ID |
响应
请求成功后,响应会包含相应对话的对话模型。
查询多个对话(V1.0)
您可以从对话结束时间的维度,查询某个时间段的多个对话。每次查询时,接口规则:
offset
对话的偏移量。例如,第一次查询时offset
是 0,limit
是10,那么第二次查询时,offset
要设置为 10,则能查询剩余的对话。limit
每次请求查询的对话数,上限是 20,如果超过 20,请求将失败。
curl https://api.meiqia.com/v1/conversations
请求
参数 | 能否为空 | 说明 |
enterprise_id | 不能 | 美洽定义的企业唯一标识 |
app_id | 不能 | 美洽定义的工作台唯一标识 |
sign | 不能 | 美洽定义的工作台访问签名 |
offset | 不能 | 对话的偏移量 |
limit | 不能 | 每次请求拉取对话的最大数量 |
conv_start_from_tm | 不能 | 对话时间段的开始时间 |
conv_start_to_tm | 不能 | 对话时间段的结束时间 |
响应
请求成功后,响应会包含相应对话的对话模型,对话按 conv_id
升序排列。
查询多个对话(V2.0)
V2.0 在 V1.0 的基础上提高了安全性,优化了批量查询的逻辑。您可以从对话结束时间维度,查询某个时间段的多个对话,每次查询时,接口规则:
page_token
查询时使用,初始时设置为page_token
= “”,之后每次设置request.page_token
等于上次response.next_page_token
;当某一次response.next_page_token
== “” 时,说明对话已被全部拉取,查询结束。
- limit 每次请求查询的对话数,上限是 20,如果超过 20,请求将失败。
curl https://api.meiqia.com/v2/conversations
请求
参数 | 能否为空 | 说明 |
X-App-ID | 不能 | 美洽定义的工作台唯一标识 |
X-Sign | 不能 | 美洽定义的工作台访问签名 |
参数 | 能否为空 | 说明 |
enterprise_id | 不能 | 美洽定义的企业唯一标识 |
limit | 不能 | 每次请求拉取的最大数量 |
from_tm | 不能 | 对话结束时间段开始时间,可以精确到秒或微秒 us |
to_tm | 不能 | 对话结束时间段结束时间,可以精确到秒或微秒 us |
page_token | 不能 | 查询使用的 token |
响应
请求成功后,响应会包含相应对话的对话模型,顾客按 conv_id
升序排列。
响应中会带有 next_page_token
,用于做下一次请求的 page_token
。
顾客
顾客是通过各个对话渠道,与客服进行沟通的人。如果顾客拥有了电话号码、微信、QQ、微博四种联系方式里其中一个时,您可以通过接口访问到该顾客资源。
顾客模型
顾客模型包含顾客的自定义参数,响应中不会包含值为空的自定义参数。
参数 | 类型 | 说明 |
__follow_source | String | 微信公众号的关注来源 |
__openid | String | 微信公众号定义的顾客唯一标识 |
address | String | 顾客的地址 |
age | String | 顾客的年龄 |
comment | String | 顾客的备注 |
contact | String | 顾客的联系人 |
String | 顾客的邮箱 | |
enterprise_id | String | 美洽定义的企业唯一标识 |
gender | String | 顾客的性别 |
name | String | 顾客的姓名 |
String | 顾客的 QQ | |
tel | String | 顾客的电话号码 |
track_id | String | 美洽定义的顾客唯一标识 |
String | 顾客的微博 | |
weixin | String | 顾客的微信 |
根据创建时间查询多个顾客
您可以从顾客创建时间的维度,查询某个时间段的多个顾客。每次查询时,接口规则:
page_token
查询时使用,初始时设置为page_token
= “”,之后每次设置request.page_token
等于上次response.next_page_token
;当某一次response.next_page_token
== “” 时,说明顾客已被全部拉取,查询结束。limit
每次请求查询的顾客数,上限是 20,如果超过 20,请求将失败。
curl https://api.meiqia.com/v2/clients
请求
参数 | 能否为空 | 说明 |
X-App-ID | 不能 | 美洽定义的工作台唯一标识 |
X-Sign | 不能 | 美洽定义的工作台访问签名 |
参数 | 能否为空 | 说明 |
enterprise_id | 不能 | 美洽定义的企业唯一标识 |
limit | 不能 | 每次请求拉取的最大数量 |
from_tm | 不能 | 顾客信息创建时间段开始时间,可以精确到秒或微秒 us |
to_tm | 不能 | 顾客信息创建时间段结束时间,可以精确到秒或微秒 us |
page_token | 不能 | 查询使用的 token |
响应
请求成功后,响应会包含相应顾客的顾客模型,顾客按 ticket_id
升序排列。
响应中会带有 next_page_token
,用于做下一次请求的 page_token
。
根据最后更新时间查询多个顾客
您可以从顾客最后更新时间维度,查询某个时间段的多个顾客。每次查询时,接口规则:
page_token
查询时使用,初始时设置为page_token
= “”,之后每次设置request.page_token
等于上次response.next_page_token
;当某一次response.next_page_token
== “” 时,说明顾客已被全部拉取,查询结束。limit
每次请求查询的顾客数,上限是 20,如果超过 20,请求将失败。
curl https://api.meiqia.com/v2/clients/updated
请求
参数 | 能否为空 | 说明 |
X-App-ID | 不能 | 美洽定义的工作台唯一标识 |
X-Sign | 不能 | 美洽定义的工作台访问签名 |
参数 | 能否为空 | 说明 |
enterprise_id | 不能 | 美洽定义的企业唯一标识 |
limit | 不能 | 每次请求拉取对话的最大数量 |
from_tm | 不能 | 顾客信息更新时间段开始时间,可以精确到秒或微秒 us |
to_tm | 不能 | 顾客信息更新时间段结束时间,可以精确到秒或微秒 us |
page_token | 不能 | 查询使用的 token |
响应
请求成功后,响应会包含相应顾客的顾客模型,顾客按 track_id
升序排列。
响应中会带有 next_page_token
,用于做下一次请求的 page_token
。
留言
留言模型
参数 | 类型 | 说明 |
enterprise_id | Integer | 美洽定义的企业唯一标识 |
dev_client_id | String | 第三方系统定义并传递给美洽的顾客唯一标识 |
ticket_id | Integer | 美洽定义的留言唯一标识 |
ticket_title | String | 留言的标题 |
ticket_status | String | 留言的状态 |
ticket_source | String | 留言的渠道 |
ticket_category | String | 留言的分类 |
ticket_create_tm | String | 留言的创建时间 |
resolved_tm | String | 留言的关闭时间 |
owner | Object | 留言的创建人 |
assignee | Object | 留言的处理人 |
resolver | Object | 留言的关闭人 |
cc_agent_groups | LIst | 留言的抄送客服组 |
cc_agent | LIst | 留言的抄送人 |
client_id | Integer | 第三方系统定义并传递给美洽的顾客唯一标识 |
client_info | Object | 顾客的详细信息 |
visitor_tags | LIst | 顾客的顾客标签 |
ticket_content | Object | 留言的内容 |
page_from_url | String | 留言的来源页 URL |
page_land_url | String | 留言的着陆页 URL |
page_land_title | String | 留言的着陆页标题 |
search_engine_name | String | 搜索引擎的名称 |
search_engine_kw | String | 搜索关键词 |
visitor_ip | String | 顾客的 IP |
visitor_location | String | 顾客的地理信息 |
visitor_os | String | 顾客的操作系统 |
visitor_browser | String | 顾客的浏览器 |
参数 | 类型 | 说明 |
id | String | 创建人 / 处理人 / 抄送人的身份唯一标识 |
name | String | 创建人 / 处理人 / 抄送人的姓名 |
account | String | 创建人 / 处理人 / 抄送人的账号信息 |
参数 | 类型 | 说明 |
from | String | 发送消息 |
timestamp | String | 消息的发送时间 |
content | String | 消息的内容 |
action_type | String |
参数 | 类型 | 说明 |
from | String | 发送消息 |
timestamp | String | 消息的发送时间 |
content | String | 消息的内容 |
action_type | String | 消息对应的回复类型 |
查询单条留言
curl https://api.meiqia.com/v1/tickets/<track_id>
请求
参数 | 能否为空 | 说明 |
enterprise_id | 不能 | 美洽定义的企业唯一标识 |
app_id | 不能 | 美洽定义的工作台唯一标识 |
sign | 不能 | 美洽定义的工作台访问签名 |
ticket_id | 不能 | 美洽定义的留言ID |
响应
请求成功后,响应会包含相应留言的留言模型。
查询多个留言
您可以从留言创建时间维度,查询某个时间段的多个留言。每次查询时,接口规则:
offset
留言的偏移量。例如,第一次查询时offset
是 0,limit
是10,那么第二次查询时,offset
要设置为 10,则能查询剩余的留言。limit
每次请求查询的留言数,上限是 20,如果超过 20,请求将失败。
curl https://api.meiqia.com/v1/tickets
请求
参数 | 能否为空 | 说明 |
enterprise_id | 不能 | 美洽定义的企业唯一标识 |
app_id | 不能 | 美洽定义的工作台唯一标识 |
sign | 不能 | 美洽定义的工作台访问签名 |
offset | 不能 | 留言的偏移量 |
limit | 不能 | 每次请求拉取留言的最大数量 |
ticket_start_from_tm | 不能 | 开始时间 |
ticket_start_to_tm | 不能 | 结束时间 |
响应
请求成功后,响应会包含相应留言的留言模型,留言按 ticket_id
升序排列。
报表
在线时长
GET /unified-api/datagateway/v1/reports/agent_online_stats
请求参数 | 能否为空 | 说明 |
from_tm | 不能 | 开始时间 (yyyy-mm-dd hh-mm-sss) |
to_tm | 不能 | 结束时间 (yyyy-mm-dd hh-mm-sss) |
{
"rows": [
{
"agent_id": 10004906, // 客服ID
"agent_name": "超级管理员x", // 客服名称
"group_id": 4372, // 客服组ID
"group_name": "默认分组", // 客服组名称
"work_num": "", // 工号
"online_offduty": 0, // 隐身时长
"online_onduty": 0, // 在线时长
"pns_onduty": 0, // 推送开启时长
"pns_offduty": 0, // 推送关闭时长
"offline": 50400 // 离线时长
}
]
}
客服评价
GET /unified-api/datagateway/v1/reports/agent_evaluation
请求参数 | 能否为空 | 说明 |
from_tm | 不能 | 开始时间 (yyyy-mm-dd hh:mm:sss) |
to_tm | 不能 | 结束时间 (yyyy-mm-dd hh:mm:sss) |
{
"rows": [
{
"agent_id": 10004906,
"agent_name": "超级管理员x",
"group_id": 4372,
"group_name": "默认分组",
"work_num": "",
"conv_cnt": 0, // 对话数
"effective_conv_cnt": 0, // 有效对话数
"good_conv_cnt": 0, // 好评数
"medium_conv_cnt": 0, // 中评数
"bad_conv_cnt": 0, // 差评数
"solveed_cnt": 0, // 解决数
"unsolved_cnt": 0 // 未解决数
}
]
}
客服服务量
GET /unified-api/datagateway/v1/reports/agent_service
请求参数 | 能否为空 | 说明 |
from_tm | 不能 | 开始时间 (yyyy-mm-dd hh-mm-sss) |
to_tm | 不能 | 结束时间 (yyyy-mm-dd hh-mm-sss) |
{
"rows": [
{
"agent_id": 10004906,
"agent_name": "超级管理员x",
"group_id": 4372,
"group_name": "默认分组",
"work_num": "",
"conv_cnt": 0, // 对话数
"effective_conv_cnt": 0, // 有效对话数
"missed_conv_cnt": 0, // 遗漏对话数
"delayed_conv_cnt": 0, // 延误对话数
"msg_cnt": 0, // 消息数
"duration_time": 0, // 对话持续时长
"conv_first_response_wait_time": 0, // 对话首次响应时长
"agent_first_response_wait_time": 0, // 客服首次响应时长
"avg_response_wait_time": 0, // 平均响应时长
"gold_conv_cnt": 0, // 金牌对话数
"silver_conv_cnt": 0, // 银牌对话数
"bronze_conv_cnt": 0, // 铜牌对话数
"nograde_conv_cnt": 0, // 无评级对话数
"good_conv_cnt": 0, // 好评数
"medium_conv_cnt": 0, // 中评数
"bad_conv_cnt": 0, // 差评数
"clues_cnt": 0, // 线索数
"remark_cnt": 0, // 备注数
"transfer_in_cnt": 0, // 被动转接数
"transfer_out_cnt": 0, // 主动转接数
"clue_conv_cnt": 0 // 线索对话数
}
]
}
错误提示
请求 APIs 出错时美洽会返回错误码以及响应的错误提示。
errno | errmsg |
10011 | Authentication failed. Please check app_id and sign. |
10012 | URL is error. Please check url. |
10013 | The param of limit in request is xxx, exceed max value xxx. |
10014 | Request api exceed specified times. Please request later. |
10015 | Server-side internal logic error. Please try again later. |
10016 | The param of xxx is invalid. |