美洽的会话列表排序并不复杂:通常先显示被置顶的会话,其次把未读或“待处理”状态的会话排在前面,再按会话状态(如等待、处理中、已结束)分组,最后在同一组里依据“最近更新时间”倒序排列;企业版还允许用标签、分配规则和自定义视图或API进一步调整优先级,从而让最关键的对话始终出现在最容易看到的位置。

先讲结论,再来拆解(费曼式思路)
直接一点:排序的目标是把“最需要人工干预”的会话摆在最前面。要做到这点,系统会用几个简单的信号来判断哪个会话更重要——是否被置顶、是否未读、当前的处理状态和最近交互时间。把这些信号按优先级组合起来,就能得到一个对客服工作最友好的列表。
为什么要按这些维度排序?
- 置顶:人为标注的重要会话应当长期可见,避免被新消息淹没。
- 未读/待处理:直接反映是否需要立即响应,减少漏单风险。
- 会话状态:等待服务的优先于正在处理或已结束的,符合工作流逻辑。
- 最近更新时间:在同一优先级内,最新的交互最可能需要继续跟进。
美洽常见的排序规则(拆成步骤看)
下面按步骤说明美洽(或类似客服平台)经常采用的排序逻辑,我把它分成清晰的层级,便于理解并能直接操作。
第一层:人工置顶(Pin)
想象你在桌面上放了几张便签,重要的放在最上面。置顶是唯一能长期打破时间顺序的操作。被置顶的会话,无论是否已读,通常会固定显示在列表顶端。
第二层:未读或待处理优先
很多客服系统默认把未读会话或标为“待处理/新工单”的放到置顶之后。逻辑很直白:未读意味着还没人注意到,待处理意味着当前流程需要动作。
第三层:会话状态分组
常见的状态包括“等待(未分配)”、“进行中(已分配)”、“已结束/关闭”。系统倾向于把“等待”放在“进行中”之前,因为等待意味着没人接手,需要更快介入。
第四层:近期交互时间(倒序)
在同一层级里,按照最近消息时间倒序排列——谁最后发言谁靠前。这样能保证刚发生的事情最先被看到。
第五层:额外维度(可选)
- 客户等级/VIP:对重要客户提升权重。
- 渠道优先级:比如电话或微信可能比邮件更即时,优先级更高。
- 标签/关键词:带有“退款”“投诉”等标签的会话加权。
- 分配规则:根据技能组或轮询规则影响显示顺序(例如优先显示分配到当前坐席的会话)。
企业版能做的自定义与常见设置
如果你是管理员,可以通过以下方式把默认排序调整得更贴合团队流程:
- 自定义视图:按优先级、渠道、标签组合筛选与排序。
- 自动化规则:比如带关键词的会话自动设置高优先级或贴上标签,从而影响排序。
- 分配策略:设置技能组匹配或优先分配给特定坐席,坐席视图可优先显示自己负责的会话。
- API或Webhook:通过接口把外部优先级写入会话字段——然后按该字段排序。
举例说明(有点像讲故事)
比如你的店铺收到三条消息:A客户还没被指派、B客户刚留言但已被指派给小王、C客户是VIP但刚被标记为已读。按照上面的逻辑,展示顺序通常是:A(等待)→ C(VIP,若系统把VIP权重高于“已读”)→ B(正在处理且最近有消息)。如果管理员把B置顶,那B会飘到最上面。
一个清晰的表格,帮你记住优先顺序
| 优先级层 | 说明 | 示例 |
| 1 | 置顶会话 | 经理标记的重要投诉单 |
| 2 | 未读 / 待处理 | 新访客消息、未指派的咨询 |
| 3 | 会话状态(等待>进行中>已结束) | 等待分配的订单问题 |
| 4 | 最近更新时间(倒序) | 最后一条消息越新越靠前 |
| 5 | 标签/客户等级/渠道(可配置) | VIP、投诉标签、电话渠道 |
常见问题与排查步骤(实用操作手册式)
- 为什么我看到的会话顺序和同事不同?
可能是因为你们的“视图”不同:坐席通常看到分配到自己的会话优先,管理员可能看到全量且按全局规则排序。确认是否启用了“只看我负责”的过滤器。
- 置顶后为什么会话仍然掉下去?
检查是否是“临时置顶”或其他自动化规则在覆盖。也可能是多个置顶等级(比如管理员置顶比普通置顶优先)。
- 未读会话很多,如何优先处理?
可按渠道分配、设置关键词优先级,或把“未读+高价值客户”做成组合过滤视图。
- 我想把退款相关会话始终放前面,怎么办?
建议用自动化规则:关键词匹配到“退款”“退货”后自动打上高优先级标签,系统按标签权重排序。
给产品/开发的技术建议(简明)
如果你要实现或优化这种排序,核心要点是:把优先级字段作为查询排序的一部分,并建立索引;前端做分页和实时更新时要兼顾稳定性,避免因为频繁更新导致用户体验抖动。下面是伪实现思路:
- 后端会话表增加权重字段(pin_flag, unread_flag, status_priority, custom_score)。
- 查询时 ORDER BY pin_flag DESC, unread_flag DESC, status_priority ASC, last_message_at DESC, custom_score DESC。
- 配合缓存与消息推送(WebSocket),只推必要变更,避免整页刷新。
示例伪SQL
(这是思路,不是可直接运行的生产代码)
SELECT * FROM conversations
WHERE tenant_id = ?
ORDER BY pin_flag DESC,
unread_flag DESC,
CASE status WHEN 'waiting' THEN 1 WHEN 'in_progress' THEN 2 ELSE 3 END,
last_message_at DESC,
custom_score DESC
LIMIT 50 OFFSET 0;
不同业务场景下的优化思路(实用建议)
- 电商高峰期:把“支付失败”“物流异常”标签提升优先级,自动把未支付订单的会话推到最前面。
- B2B支持:按客户合同等级(SLA)提升权重,确保大客户工单优先处理。
- 投诉处理:把含“投诉”“退款”“差评”关键词的会话打上最高优先级并通知主管。
- 多渠道统一工单:对实时性强的渠道(电话、微信)给更高的排序权重。
操作小贴士(立刻能做的事)
- 给团队一个统一的“视图”使用规范,避免每个人用不同过滤器。
- 把置顶只给真正需要长期关注的会话,避免滥用。
- 使用自动化来做简单的优先级判断,减少人工干预成本。
- 定期审查标签与自动化规则,防止规则相互冲突。
说到这里,可能你已经有点动手的冲动了——先别急,先在沙盒环境里把几条自动化规则和视图试跑一遍,看看排序变化会不会影响坐席的日常节奏。慢慢调,别一下子把所有会话都标成高优先级,那样就失去意义了。最后,记得把客户体验(响应时长)和坐席负载一起看,排序就是为了提高效率而不是制造混乱。