客服是连接用户与事业部的桥梁。从用户角度,用户通过智能渠道如 C 端自助或者人工客服渠道反馈问题和表达诉求,渠道识别和记录用户问题后,给出问题对应的解决方案。
在过去,问题对应的解决方案散落在渠道及各相关模块中,导致很多问题的解法(包括体验和逻辑)不一致,解决方案质量难以保证,影响解决能力和用户体验,而且难以管理和运维。另一方面,这些解决方案很大程度依赖事业部提供的服务能力,以往的编程式接入成本高迭代周期长,而且缺乏统一管理会导致相同场景下服务能力使用的一致性难以保证,影响解决方案的质量和用户体验。
为了保证解决方案质量,提升用户体验和管理效率,我们需要统一管理这些解决方案:建设解决方案平台,整合各事业部提供的业务信息和服务能力,为人工和智能渠道统一提供标准化解决方案。
分析散落各处的解决方案,一般是基于事业部输入的业务逻辑和服务能力封装的处理能力,大体可以分为两类:回答咨询使用的话术和解决问题的处理流程。为此我们目前提供了静态知识和动态流程两类标准解决方案,加上方案匹配层,组成整个解决方案平台:
针对需要通过标准化流程引导以及解决用户问题的场景,我们提供了流程管理平台,负责生产、执行和管理动态流程。用户(C 端用户、客服等)通过表单界面进行信息交互,背后则是处理该问题的业务流程向前驱动和处理,下图是对这个链路的一个简单示意:
在这个链路中需要解决几个问题:1). 如何支持不同渠道的交互方式;2). 如何支持处理流程标准化;3). 业务信息和服务能力如何规范且高效地接入。为此,我们在设计上从几方面进行了拆分:
整体功能架构
目前,基于流程的整套配置管理能力,一个流程从设计到测试到上线实现了全流程线上化,很大程度地缩短了业务迭代周期,提升产研效率。同时,基于这条链路实现了业务可视化管理,为业务在业务梳理、质量把控、风险控制等方面提供了有力支持。在今年年中,我们打通了 C 端自助链路,意味着一个用户问题对应的处理自助流程上线可以完全配置化上线,迭代效率平均提升 60%。在此基础上也同时打通了端-解决方案-工单的数据链路,为业务精细化运营提供数据支撑,助力业务综合提升解决能力。
针对大量业务信息要透传给用户或者辅助客服解决用户问题的这些场景,我们提供了标准的静态知识解决方案,从产品层上提供客服知识点、用户 Q&A 对、相似问题列表等。
整体功能架构
在客服业务中,对静态知识有两个核心诉求:1. 知识的结构化/非结构化存储;2. 适用各场景的检索能力。当前产品在这两方面的能力受限于关系型数据库的存储,接下来将进行一系列升级建设,同时也包括产品层面知识检索、运营和反馈等功能的进一步加强。
方案匹配是指根据用户问题找到相应的解决方案,处理多渠道的问题与同一方案的匹配关系。
一般说来对于匹配过程,一个问题能找到唯一的解决方案,一个解决方案可以对应多个问题。那么理想情况下,我们分别为用户的每个问题和每个解决方案设计唯一的编号,方案匹配层只需要维护问题到答案的一对多的关系即可。但在落地过程中我们发现:
因此方案匹配层的设计思路是维护问题组到答案组的关系,目前这一层的能力比较单薄,未来计划升级底层能力,支持异构的问题组和答案组匹配,提升可扩展性以适应业务及产品层的快速迭代。
前面我们从业务视角介绍了解决方案平台如何支持客服业务,其实在平台建设过程也遇到了一些技术上的挑战,下面主要结合解决方案平台建设过程中遇到的问题介绍一些技术沉淀:
背景
在介绍动态解决方案的时候,我们提到它底层依赖的核心基础能力——流程引擎。在方案选型的时候我们调研了 Activiti 等方案,作为比较成熟的工作流引擎,activiti 功能强大且有比较完整的生态,但在我们的场景中优势并不明显,主要体现在几方面:
从定位上,我们建设的是流程引擎产品化后的产品,对流程引擎只依赖流程驱动的核心能力;从功能上,在流程定义和执行过程中对部署校验、数据交互、分支选择等方面有 activiti 不满足或不易扩展的需求;从性能上,Activiti 的通用性和灵活性决定了实现的复杂度,如频繁的存储层操作等导致其性能表现不佳,不能很好地满足我们的 C 端场景对性能的需求;此外考虑上手成本及维护成本等综合因素,最终我们决定针对我们的场景自研。作为轻量级的流程引擎,自研流程引擎主要负责提供稳定而高效的能力:驱动流程执行,告诉上层下一个节点是什么。
关键模型
以上图为例,简单介绍下我们如何描述一个流程(*考虑到兼容性,我们在设计如何描述流程时参考了 bpmn 的相关规范):
整体设计
要使用一个流程分两步:1. 设计一个流程;2. 执行这个流程;好比定义一个类与创建一个对象的关系。因此流程引擎的架构基本也是按照这样的思路来设计,分为两大部份:流程定义和流程执行:
1. 流程定义
为了保证流程在执行过程中,不受流程模型更新的影响,以及考虑运维场景的需求,我们在流程定义时对流程模型采用了近似快照的处理,在流程执行时直接使用快照模型:
2. 流程执行
流程执行其实是从开始节点开始,处理当前节点,完成处理后根据当前状态及配置规则找到下一个节点,并继续处理节点,直到结束节点:
经过数月验证与迁移,现在我们的流程引擎已支撑动态解决方案 90%的流量,其中包括面向 C 端的链路。在性能和稳定性表现比较好,上线至今未发生过任何一起相关故障。除了解决方案平台的使用场景以外,流程引擎也在进一步探索开放化,目前已在工单相关场景中落地。
背景
前文提到,解决方案平台为了解决各种用户问题,会整合的业务输入中还有一部份是服务能力(目前主要是由各事业部通过 API 提供)。不仅解决方案平台,整个客服业务在其他场景也有类似对接大量业务 API 的需求。基于使用和管理这些 API 以及高效接入和迭代的各种需求与痛点,我们参考解决方案平台的 API 接入 &管理模式,将其沉淀抽象出资源引擎,收敛管理客服体系内接入的事业部 API,提供使用资源的工具,支持配置化接入及统一管理。
整体设计
在这里我们将事业部提供的服务能力称为“资源”,并根据使用场景将资源分为两大类:
使用资源分为定义资源和获取资源两部份,资源引擎提供的能力也以这两部份为核心,辅以相关的配套管理能力,于是我们设计了相关的模块:
交互模式:
系统架构:
资源计算
可以看到,其中 Client 即 SDK 负责最核心的获取资源的逻辑,层次设计:
举个例子,已知:
求:f1、f2 的值;
资源引擎除了支持解决方案平台,目前还在特征、工单等场景落地。此外,除了支持事业部服务能力接入,资源引擎也适用于客服能力输出给事业部的场景中,目前这套标准化方案也在建设中。
解决方案平台通过标准化的思路,整合业务提供的业务信息和服务能力,拉齐不同渠道的答案和处置方案,提供可视化的方案管理平台。在打磨标准化能力的同时,下一步将会向着自动化与智能化的方向探索,以期在提升解决能力,支持精细化运营等方面发掘更大价值。
头图:Unsplash
作者:滴滴智能中台
原文:https://mp.weixin.qq.com/s/O3XD2wFRtU8LB5X3kMFVXA
原文:滴滴客服解决方案平台建设实践
来源:滴滴技术 - 微信公众号 [ID:didi_tech]
转载:著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
领取专属 10元无门槛券
私享最新 技术干货