原公众号文档（包含订阅号与服务号）已升级为公众号（原订阅号）与服务号文档。公众号文档请直接参考本目录内容，服务号文档请 [点击此处](/doc/service/guide/README.md) 前往。

# 客服消息介绍

当用户和公众号产生特定动作的交互时（具体动作列表请见下方说明），微信将会把消息数据推送给开发者，开发者可以在一段时间内调用客服接口，通过POST一个JSON数据包来发送消息给普通用户。此接口主要用于客服等有人工消息处理环节的功能，方便开发者为用户提供更加优质的服务。

目前允许的动作列表如下（公众平台会根据运营情况更新该列表，不同动作触发后，允许的客服接口）

1. 用户发送信息
2. 点击自定义菜单（仅有点击推事件、扫码推事件、扫码推事件且弹出“消息接收中”提示框这3种菜单类型是会触发客服接口的）
3. 关注公众号
4. 扫描二维码

#### 客服消息下发规则：

| 场景 | 下发额度 | 额度有效期 |
| --- | --- | --- |
| 用户发送消息 | 5条 | 48小时 |
| 点击自定义菜单 | 3条 | 1分钟 |
| 关注公众号 | 3条 | 1分钟 |
| 扫描二维码 | 3条 | 1分钟 |

**特别说明：在用户点击菜单消息时，触发的是点击菜单事件，对应场景2点击自定义菜单的消息规则，不会产生用户发送消息场景的客服消息下发额度。**

- 此外，为了帮助公众号使用不同的客服身份服务不同的用户群体，客服接口进行了升级，开发者可以管理客服账号，并设置客服账号的头像和昵称。该能力针对所有拥有客服接口权限的公众号开放。

- 以及，请开发者注意，本接口中所有使用到 media_id 的地方，现在都可以使用素材管理中的永久素材 media_id 。

### 客服消息接口列表

#### 客服管理

| 接口名称 | 请求路径 | 描述 |
| --- | --- | --- |
| [设置客服头像](/doc/subscription/api/customer/servicermanage/api_uploadkfheadimg.md) | /customservice/kfaccount/uploadheadimg | 本接口用于设置客服头像 |
| [删除客服账号](/doc/subscription/api/customer/servicermanage/api_delkfaccount.md) | /customservice/kfaccount/del | 本接口用于删除客服账号 |
| [邀请绑定客服账号](/doc/subscription/api/customer/servicermanage/api_invitekfworker.md) | /customservice/kfaccount/inviteworker | 本接口用于邀请微信号绑定客服账号 |
| [获取所有客服账号](/doc/subscription/api/customer/servicermanage/api_getkflist.md) | /cgi-bin/customservice/getkflist | 本接口用于获取所有客服账号 |
| [添加客服账号](/doc/subscription/api/customer/servicermanage/api_addkfaccount.md) | /customservice/kfaccount/add | 本接口用于为公众号、小程序添加客服账号，每个账号最多添加100个客服账号 |
| [获取在线客服列表](/doc/subscription/api/customer/servicermanage/api_getonlinekflist.md) | /cgi-bin/customservice/getonlinekflist | 本接口用于获取当前在线客服列表 |
| [修改客服账号](/doc/subscription/api/customer/servicermanage/api_updatekfaccount.md) | /customservice/kfaccount/update | 本接口用于修改公众号客服账号信息 |

#### 会话控制

| 接口名称 | 请求路径 | 描述 |
| --- | --- | --- |
| [获取客服会话列表](/doc/subscription/api/customer/messctrl/api_getkfsessionlist.md) | /customservice/kfsession/getsessionlist | 本接口用于获取指定客服的当前会话列表 |
| [关闭会话](/doc/subscription/api/customer/messctrl/api_closesession.md) | /customservice/kfsession/close | 本接口用于关闭已建立的客服会话 |
| [创建会话](/doc/subscription/api/customer/messctrl/api_createkfsession.md) | /customservice/kfsession/create | 本接口用于在客服和用户之间创建一个会话 |
| [获取客户会话状态](/doc/subscription/api/customer/messctrl/api_getkfsession.md) | /customservice/kfsession/getsession | 本接口用于获取指定客户的当前会话状态 |
| [获取未接入会话列表](/doc/subscription/api/customer/messctrl/api_getwaitcase.md) | /customservice/kfsession/getwaitcase | 本接口用于获取未接入的客户会话列表 |

#### 客服消息

| 接口名称 | 请求路径 | 描述 |
| --- | --- | --- |
| [获取聊天记录](/doc/subscription/api/customer/message/api_getmsglist.md) | /customservice/msgrecord/getmsglist | 本接口用于获取客服聊天记录 |
| [客服输入状态](/doc/subscription/api/customer/message/api_typing.md) | /cgi-bin/message/custom/typing | 本接口用于设置客服输入状态 |
| [发送客服消息](/doc/subscription/api/customer/message/api_sendcustommessage.md) | /cgi-bin/message/custom/send | 本接口用于发送多种类型的客服消息，主要应用在有人工消息处理环节的场景 |
