参考文档:
1.salesforce不再支持CTI adapter的官方文档:https://help.salesforce.com/articleView?id=000233625&type=1&language=en_US
2.salesforce Open CTI Develop Guide : https://developer.salesforce.com/docs/atlas.en-us.204.0.api_cti.meta/api_cti/sforce_api_cti_intro.htm
3.salesforce Service Console Develop Guide : https://resources.docs.salesforce.com/sfdc/pdf/api_console.pdf
4.salesforce open cti demo install guide : https://developer.salesforce.com/page/Open_CTI
由于salesforce tls的升级,salesforce在spring17 之后不再支持CTI adapter。所以需要原来使用CTI Adapter的CRM需要尽快完成迁移工作。由于在迁移过程中遇到了一些疑问,所以整理于此。
1.salesforce Open CTI和CTI Adapter的区别
1) 从开发的角度讲,open cti降低了开发成本,入门门槛相对较低。因为只要掌握部分js的知识,就可以完成相应的开发。
2) open cti相对轻便,不依赖于adapter。方便Call Center环境的搭建。(需要浏览器支持tls1.1及以上版本)
2.环境准备
申请salesforc dev org,而后安装salesforce官方提供的demo:https://login.salesforce.com/packaging/installPackage.apexp?p0=04t80000000tn5y.安装和配置callcenter的步骤参考“参考文档4”。
3.open CTI部分方法简介
1)salsforce console api : fireOnCallBegin()
该方法在接入电话时被触发,达到的效果就是会给交互日志(interaction log)的subject赋值:Call 2017-2-19 PM7:12,中英文环境会有所不同。
arguments:
i.CallObject为salesforce task上的标准字段,一般值为当前时间的毫秒数,通过js可以获取到。所以可以吧callobject赋值到 CallObjectId上。
ii.根据call center传过来的会呼叫类型判断。
效果图:
2)fireOnCallEnd()
该方法在电话结束后被触发,交互日志会自动被保存,成功保存后,sfdc会返回并保存在交互日志上。如果在后续通话过程中,没有切换acount,那么每次自动保存都是updata已有的task。通过结束后关闭当前的account tab。
自动保存交互日志,属于salesforce产品标准功能,没有办法通过其他方式实现。
在task中 callDuration对应Call Duration,callDisposition 对应Call Result, callObjectId对应Call Object Identifier
效果图
task 效果图:
3) Open CTI : saveLog()
sforce.interaction.saveLog(object:string, saveParams:string, (optional)callback:function)
该方法,既可以创建task ,也可以更新task。通过该方法创建的task的status是默认值。recordtype为profile配置的默认值。
4)Open CTI:获取call cent 电话目录 getDirectoryNumbers()
sforce.interaction.cti.getDirectoryNumbers()
需要解析返回结果,而后展示。
5.注意的问题
1)open cti和 cti adapter自动保存交互日志的时候都不支持自定义字段的传入。
2)通过callobject实现CTI自动save的task和交互日志绑定。
3)交互日志自动保存,taskId会返回到页面,并保存在交互日志页面上。当坐席点击保存交互日志时,是update,而不是insert。
4)call center中负责IB,OB的坐席最好分开的。因为交互日志的recordtype类型无法指定。所以如果系统中有IB task和OB task两种recordtype的话,最好分开配置。
会继续更新。。。。