理解
大部分企業(yè)在規(guī)劃時(shí),抱著試試看的態(tài)度,投入不足,僅是因?yàn)轭I(lǐng)導(dǎo)說(shuō)要做微信而做微信,并未做長(zhǎng)遠(yuǎn)打算,導(dǎo)致淺嘗即止。很多微信公眾賬號(hào)只是掛了個(gè)鏈接鏈到頁(yè)面,做個(gè)微網(wǎng)站,沒(méi)有深入考慮怎樣通過(guò)良好的體驗(yàn)把企業(yè)的服務(wù)提供給客戶。一個(gè)超前的規(guī)劃,首先必須選好平臺(tái)——具有穩(wěn)定合理的架構(gòu),足夠的業(yè)務(wù)靈活性和開(kāi)放性,可以逐步疊加和發(fā)展業(yè)務(wù),可以靈活調(diào)整體驗(yàn),可以對(duì)接后端的各種系統(tǒng)資源等。
架構(gòu)要合理
微信平臺(tái)不是一個(gè)單純的鏈接入口,它更是連接企業(yè)服務(wù)與用戶之間的管道。因此微信平臺(tái)需要有合理的架構(gòu)設(shè)計(jì),使平臺(tái)能在不同的交互模式以及各種形態(tài)的服務(wù)資源之間靈活地進(jìn)行切換,并保持良好的體驗(yàn)。總的來(lái)說(shuō),微信的交互包括:點(diǎn)擊菜單的輕App體驗(yàn)、聊天窗口的消息交互、頁(yè)面的交互三大類,其中消息交互又包括自動(dòng)消息交互和人工消息交互。從長(zhǎng)遠(yuǎn)的規(guī)劃看,平臺(tái)需要滿足以下要求:
高性能和高可用;
容量的可擴(kuò)展性;
可監(jiān)控、可管理;
業(yè)務(wù)可擴(kuò)展,可以靈活進(jìn)行業(yè)務(wù)變更和加載;
開(kāi)放性,可由客戶進(jìn)行業(yè)務(wù)流程的二次開(kāi)發(fā),提供標(biāo)準(zhǔn)化的接口與第三方系統(tǒng)進(jìn)行對(duì)接,包括接入多種IM渠道等。
我們很多客戶都已在應(yīng)用或規(guī)劃全渠道接入,可以實(shí)現(xiàn)微信、微博、QQ、WebChat、郵件等多種模式。
平臺(tái)架構(gòu)上很多細(xì)節(jié)的設(shè)計(jì),都是來(lái)自業(yè)務(wù)及運(yùn)營(yíng)的需求,如下所示。
對(duì)并發(fā)量的要求,決定了接口設(shè)計(jì)的模式,采用異步、無(wú)狀態(tài)、多線程的接口模式,才能滿足超大并發(fā)量的處理,并且易于擴(kuò)展。招行目前每天發(fā)出的消費(fèi)提醒,就達(dá)到400萬(wàn)條,高峰期半個(gè)小時(shí)可達(dá)20多萬(wàn)條。
對(duì)可靠性的要求,決定了緩存的持久化,保證了即使某個(gè)節(jié)點(diǎn)的程序宕機(jī)甚至物理故障,也不會(huì)丟失交易數(shù)據(jù)。我們?cè)缙诘姆桨敢泊嬖谌毕?#xff0c;在特殊的情況下如果接口程序崩潰或者重啟,就會(huì)使發(fā)送隊(duì)列中的數(shù)據(jù)丟失。雖然量不大,但對(duì)銀行業(yè)務(wù)卻很重要,會(huì)導(dǎo)致用戶的投訴。
數(shù)據(jù)庫(kù)性能對(duì)DB交易量的支持,以及對(duì)分布式架構(gòu)的要求,決定了數(shù)據(jù)庫(kù)中間層的存在。一個(gè)好的架構(gòu),不僅要支持單個(gè)數(shù)據(jù)庫(kù)把性能發(fā)揮到極致,還要考慮服務(wù)器硬件如果出現(xiàn)瓶頸也能進(jìn)行擴(kuò)展,因?yàn)閿?shù)據(jù)庫(kù)由于計(jì)算能力、I/O吞吐、存儲(chǔ)等多方面的原因,始終會(huì)在某個(gè)點(diǎn)達(dá)到無(wú)法超越的瓶頸,就像12306,當(dāng)海量的用戶請(qǐng)求在短時(shí)間內(nèi)涌入時(shí),會(huì)給系統(tǒng)帶來(lái)極大的壓力,整個(gè)系統(tǒng)的最后瓶頸往往就是數(shù)據(jù)庫(kù),解決的辦法就是采用分布式解決方案。云軟IMCC在架構(gòu)上支持橫向和縱向的擴(kuò)展,理論上只要網(wǎng)絡(luò)帶寬許可,就可支撐無(wú)限容量。
通信連接的效率,微信的協(xié)議是HTTP雙向POST的協(xié)議,采用短連接方式。這種通信方式其實(shí)效率是很低,每次請(qǐng)求都需要建立連接、釋放連接。對(duì)于單個(gè)服務(wù)節(jié)點(diǎn),其性能遠(yuǎn)低于TCP長(zhǎng)連接,協(xié)議的字節(jié)冗余也比較多,對(duì)傳輸帶寬要求較高,但好處在于可以方便地通過(guò)多節(jié)點(diǎn)進(jìn)行擴(kuò)展,開(kāi)發(fā)的難度也較低。隨著計(jì)算機(jī)性能和網(wǎng)絡(luò)帶寬的提高,以前要按字節(jié)來(lái)節(jié)省的傳輸數(shù)據(jù)量已可被忽略,短連接方式以后會(huì)得到廣泛的應(yīng)用。雖然我們平臺(tái)內(nèi)部的通信采用TCP長(zhǎng)連接,在百兆網(wǎng)絡(luò)環(huán)境下最高可以達(dá)到每秒數(shù)萬(wàn)次的消息量,效率高很多,但缺點(diǎn)是對(duì)開(kāi)發(fā)的要求比較高,需要處理很多網(wǎng)絡(luò)異常事件,也不便于多節(jié)點(diǎn)擴(kuò)展。
招行輕體驗(yàn)、重后臺(tái)的體驗(yàn)設(shè)計(jì)
招行在微客服產(chǎn)品上的設(shè)計(jì)充分體現(xiàn)了“關(guān)注用戶體驗(yàn),重視服務(wù)細(xì)節(jié)”的用心服務(wù)理念。雖然招行在微信平臺(tái)上實(shí)現(xiàn)了其傳統(tǒng)客服和App上超過(guò)70%的業(yè)務(wù)服務(wù)功能,但在用戶體驗(yàn)上你會(huì)覺(jué)得很清爽,很多功能你不用的時(shí)候都是躲在后面的,展示出來(lái)的只是最常用的功能,而一旦你需要,通過(guò)簡(jiǎn)單直接的操作,就能獲得,正所謂呼之即來(lái),揮之則去,不用的時(shí)候絕不占你眼球。比如你對(duì)小招說(shuō):“境外消費(fèi)”,小招就能很快找到所對(duì)應(yīng)的答案以及兌換手續(xù)費(fèi)等相關(guān)問(wèn)題。配合招行后來(lái)提供的語(yǔ)音識(shí)別功能,更是將操作簡(jiǎn)化到說(shuō)到就能做到的程度。這種模式我們稱為平鋪模式,相對(duì)以往需要通過(guò)多級(jí)菜單、多次交互才能找到自己想要的功能,平鋪模式可以做到所想即所得,特別對(duì)于微信這樣的移動(dòng)終端,展示的容量有限、操作輸入不方便的情況下顯得更加方便。
應(yīng)用了很多跨界的方法來(lái)解決問(wèn)題
在通信行業(yè),流量控制是非常常見(jiàn)的,它可以阻擋系統(tǒng)能力以外的請(qǐng)求,不至于將系統(tǒng)弄垮,用戶可能會(huì)得到“系統(tǒng)正忙”之類的提示,但在計(jì)算機(jī)和互聯(lián)網(wǎng)行業(yè),流控的概念還沒(méi)有得到廣泛應(yīng)用。以微信為例,微信自己有提供對(duì)外的流控,超過(guò)一定頻次就予以拒絕,卻沒(méi)有考慮外部系統(tǒng)的流控,當(dāng)超過(guò)系統(tǒng)處理能力的請(qǐng)求涌入時(shí),就只能丟棄,因此提供的是有損服務(wù)。對(duì)于有損服務(wù),我們就需要采用緩存重發(fā)的機(jī)制來(lái)保障數(shù)據(jù)的有效送達(dá),對(duì)日常聊天還沒(méi)太大影響,但對(duì)一些要求嚴(yán)格的金融服務(wù),就會(huì)造成客戶投訴。
再比如我們參考了NGN中業(yè)務(wù)與承載分離的設(shè)計(jì)理念,把消息傳輸、會(huì)話控制與業(yè)務(wù)流程引擎分離,分層次的軟件架構(gòu)設(shè)計(jì),不僅是滿足業(yè)務(wù)靈活度的關(guān)鍵,也是進(jìn)行軟件架構(gòu)擴(kuò)展的核心。作為一個(gè)千萬(wàn)級(jí)用戶的運(yùn)營(yíng)平臺(tái),在追求穩(wěn)定服務(wù)的同時(shí),還要能不斷推出靈活的新業(yè)務(wù),而不是每次業(yè)務(wù)發(fā)生變化都要去更新升級(jí)軟件,甚至重啟服務(wù)才能加載新的業(yè)務(wù)功能。招行所使用的云軟IMCC平臺(tái),從設(shè)計(jì)之初就考慮了這點(diǎn),通過(guò)將消息承載與業(yè)務(wù)流程分離,使基礎(chǔ)平臺(tái)變成與業(yè)務(wù)無(wú)關(guān)的底層平臺(tái),而各種業(yè)務(wù)流程則通過(guò)流程引擎進(jìn)行解析,實(shí)現(xiàn)業(yè)務(wù)的動(dòng)態(tài)加載。
圖1 軟件分層模型
招行平臺(tái)的業(yè)務(wù)流程引擎設(shè)計(jì)工具,也參考了傳統(tǒng)呼叫中心的可視化流程開(kāi)發(fā)方法,將各種常用的流程處理組件封裝,稱為“元件”,使后期進(jìn)行業(yè)務(wù)的二次開(kāi)發(fā)效率得以大幅提升,并且降低了對(duì)開(kāi)發(fā)人員的技能要求,只要稍有編程基礎(chǔ)的開(kāi)發(fā)人員就可以快速完成業(yè)務(wù)流程的定義和發(fā)布。而且這套引擎不是一個(gè)封閉的系統(tǒng),通過(guò)自定義節(jié)點(diǎn),我們可以調(diào)用外部系統(tǒng)接口,實(shí)現(xiàn)與其他系統(tǒng)的對(duì)接,并且可以調(diào)用自定義功能,具有很強(qiáng)的靈活性。
專業(yè)的多客服體系
招行微信平臺(tái)最早的出發(fā)點(diǎn)就是建一個(gè)基于互聯(lián)網(wǎng)渠道的在線客服平臺(tái)。因此,在平臺(tái)選型時(shí)首選已在中國(guó)電信集團(tuán)IM客服上有了沉淀和積累的IMCC平臺(tái),于2010年建設(shè)的基于營(yíng)銷QQ的800010000平臺(tái)已經(jīng)有了5000萬(wàn)好友,上百臺(tái)服務(wù)器的集群架構(gòu)。IMCC有很多針對(duì)呼叫中心專業(yè)客服而設(shè)計(jì)的功能,所謂多客服,其實(shí)跟電話的呼叫中心很類似,用戶從一個(gè)號(hào)碼(電話、QQ、微信等)呼入,后臺(tái)有一個(gè)呼叫中心團(tuán)隊(duì)來(lái)處理用戶的聊天請(qǐng)求。因此系統(tǒng)需要有ACD服務(wù)器來(lái)實(shí)現(xiàn)不同的路由及排隊(duì)策略,比如先來(lái)先服務(wù)、平均分配或者按比例分配、上次服務(wù)優(yōu)先、VIP插隊(duì)等。另外,呼叫中心團(tuán)隊(duì)要能按技能組進(jìn)行排隊(duì)和路由,比如咨詢的是一組,VIP服務(wù)是另一組,還要允許一個(gè)工號(hào)有多種技能,可以作為不同技能隊(duì)列的資源放到資源池排隊(duì)。
專業(yè)的呼叫中心業(yè)務(wù)十分密集,在操作效率上要求很高,坐席在操作上要求盡可能減少低效的動(dòng)作。例如重要消息置頂功能,可以避免重要的聊天信息在窗口滾動(dòng)中難以查找,還有來(lái)話原因采集,只需要在采集樹(shù)上簡(jiǎn)單點(diǎn)擊,就可以完成。除此之外,為了提高話務(wù)員知識(shí)檢索的效率,我們?cè)O(shè)置了在聊天消息中觸發(fā)知識(shí)庫(kù)自動(dòng)檢索的功能,只要維護(hù)得當(dāng),從用戶的輸入中就可直接觸發(fā)檢索出答案,大大降低了話務(wù)員的工作強(qiáng)度。
圖2 圖形化的業(yè)務(wù)流程開(kāi)發(fā)工具
微信、QQ等個(gè)人聊天軟件,都是無(wú)狀態(tài)的,用戶可以不用管對(duì)方是否在線,不計(jì)較什么時(shí)候回復(fù),但這給專業(yè)客服帶來(lái)了很大麻煩。例如戶可能發(fā)了一句話就走開(kāi)了,但會(huì)話窗口就一直掛在那里,客服每天可能會(huì)接入數(shù)百個(gè)會(huì)話,如果一直占用,會(huì)使客服無(wú)法專注處理,后臺(tái)的各種KPI考核也無(wú)法進(jìn)行。因此,專業(yè)的人工客服應(yīng)用場(chǎng)景,一定是有狀態(tài)的會(huì)話,就像一通電話,有接入有掛斷。但考慮到用戶體驗(yàn),我們也在研究是否有可能實(shí)現(xiàn)無(wú)狀態(tài)會(huì)話的無(wú)縫兼容,即在用戶側(cè)感覺(jué)是無(wú)狀態(tài)的,什么時(shí)候都可以發(fā)消息,但在客服側(cè)處理稱為有狀態(tài)的,能保證會(huì)話效率和質(zhì)檢考核,這套系統(tǒng)目前還在研發(fā)中。
客觀看待智能客服的應(yīng)用
招行是微信智能機(jī)器人最成功的案例,雖然同是IMCC基礎(chǔ)平臺(tái)加小艾機(jī)器人,電信和聯(lián)通在應(yīng)用時(shí)效果卻并不十分理想。原因在于,電信和聯(lián)通的業(yè)務(wù)太過(guò)復(fù)雜,產(chǎn)品數(shù)千種,知識(shí)庫(kù)數(shù)10萬(wàn)條,問(wèn)題過(guò)于開(kāi)放。而招行信用卡業(yè)務(wù)領(lǐng)域相對(duì)比較窄,而且投入了大量人力進(jìn)行人工知識(shí)識(shí)別和添加,才使得小招招人喜愛(ài)。由于技術(shù)局限,智能機(jī)器人目前存在兩個(gè)一直未能解決的問(wèn)題:1. 自動(dòng)學(xué)習(xí)能力;2. 真正的語(yǔ)義理解能力。如果有哪家公司能在這兩方面有所突破,將會(huì)給智能機(jī)器人應(yīng)用帶來(lái)極為廣闊的前景。
對(duì)實(shí)際應(yīng)用而言,我們認(rèn)為,如果坐席數(shù)量沒(méi)有到達(dá)10人以上,那么應(yīng)用智能機(jī)器人的投入和收益并不匹配,反而不如通過(guò)關(guān)鍵字應(yīng)答等簡(jiǎn)單方法來(lái)。根據(jù)我們統(tǒng)計(jì)的招行微信數(shù)據(jù),用戶70%的操作是菜單操作,25%是5個(gè)字以內(nèi)的短詞,剩下的是與人工客服的對(duì)話。新研制的關(guān)鍵字匹配方法具備模糊匹配、最長(zhǎng)匹配優(yōu)先、自動(dòng)分揀未命中等方法,已經(jīng)可以在很大程度上替代智能機(jī)器人。
招行的安全措施
“安全”是金融類微信應(yīng)用的基本要求,在保障安全性方面,招行采用專線接入的方式,保證了數(shù)據(jù)不在公網(wǎng)傳輸。最新消息顯示,騰訊已在進(jìn)行加密協(xié)議的研發(fā)測(cè)試,未來(lái)會(huì)使銀行的信息安全更有保障。
其他安全方面采取的措施包括:應(yīng)用HTTPS協(xié)議,頁(yè)面?zhèn)鬟f參數(shù)加密防止中間人攻擊,應(yīng)用動(dòng)態(tài)密碼鍵盤防止黑客截獲密碼,后臺(tái)安全策略等。除此之外,應(yīng)用安全掃描工具對(duì)系統(tǒng)進(jìn)行模擬攻擊和漏洞掃描,也是必要的工作。
總結(jié)