当您在网站项目中插入 JavaScript 代码后,可以通过以下方法对 ssq
(ssq 为全局变量)进行信息修改和聊天窗口调用
提示
Demo示例
您可以通过将用户信息传递给 SDK,使聊天插件为每个用户创建一个包含这些信息的用户档案,这样可以在 SaleSmartly 系统客户资料的对应处看到这些信息;同时,如果用户更换设备时,也可以通过该方法,同步信息到新设备上
ssq.push('setLoginInfo', {
user_id: 'b58e64cfxs2ym', // 加密后的用户id, 必填!
user_name: 'test_yy', // 对应用户名,可在客户资料查看
language: 'ru-RU', // 对应用户语言,可在客户资料查看
phone: '1592014xxxx', // 对应用户手机号,可在客户资料查看
email: 'test@test', // 对应用户邮箱,可在客户资料查看
description: '套餐B\n客户端\n收费客户', // 对应用户的描述信息,例如套餐信息,可在客户资料查看
label_names: ['标签值1', '标签值2'], // 对应用户标签,仅支持传系统已创建的标签值,可在客户资料查看
custom_fields_ext: {"1210":"test11","more":["s1","s2"]}, // 自定义字段,到项目设置的自定义字段中找到id和对应值进行填入(选择类型以数组形式传入),可在客户资料查看
});
使用 ssq.push
方法设置用户的登录信息,并为聊天插件指定用户语言
<script>
ssq.push('setLoginInfo', {
language: 'ru-RU', // 插件语言,选填
});
// 语言选项(根据需要选择并设置)
// 'en-US': 'English', 英语
// 'zh-CN': '中文', 简体中文
// 'zh-HK': '繁體中文', 繁体中文
// 'ru-RU': 'русский', 俄语
// 'th-TH': 'ภาษาไทย', 泰语
// 'vi-VN': 'Tiếng Việt', 越南语
// 'mn': 'Монгол', 蒙古语
// 'ja-JP': 'やまと', 日语
// 'fr': 'français', 法语
// 'pt': 'português', 葡萄牙语
// 'es': 'español', 西班牙语
// 'ar': 'العربية', 阿拉伯语
// 'de': 'Deutsch' 德语
// ro: 'română', // 罗马尼亚语
// pl: 'polski', // 波兰语
// id: 'Bahasa Indonesia', // 印度尼西亚语
// ko: '한국어', // 韩语
// nl: 'Nederlands', // 荷兰语
// da: 'Dansk', // 丹麦语
// it: 'Italiano', // 意大利语
// tr: 'Türkçe', // 土耳其语
// bn: 'বাংলা', // 孟加拉语
</script>
在 PWA(渐进式 Web 应用)站点中,当用户退出登录后,尤其是在没有刷新页面的情况下,可用于手动清理用户的登录信息。通过调用 ssq.push('clearUser')
,可以将用户信息清除,切换到访客模式;确保用户隐私和安全、以及提供无缝的用户体验
ssq.push('clearUser');
在某些特殊场景下(如支付失败、账户、操作引导问题等),需要引导访客主动联系客服支持。您可以通过程序手动打开聊天窗口,确保用户能够快速获得帮助。
ssq.push('chatOpen');
可能需要手动关闭聊天窗口,例如在用户完成问题解决后,或在需要用户专注于当前任务时。通过调用 ssq.push('chatClose')
,可以使用程序自动关闭聊天窗口
ssq.push('chatClose');
监听未读消息,用于自定义消息通知。
ssq.push('onUnRead', function(obj) {
console.log(obj.num); // 未读数量
console.log(obj.list); // 未读内容
});
用户可以在插件初始化时设置隐藏图标,同时可以使用自定义图标按钮打开聊天窗,结合“监听未读信息”和“打开聊天窗口”的方式
//引入SalesSmartly 聊天插件的JavaScript 外部脚本 换成自己的,【确保聊天插件处于打开状态!】
<script src="https://assets.salesmartly.com/js/project_23232_xxxxx_xxxxxxxxxx.js"></script>
<script>
// 隐藏图标(注: 代码放在引入聊天插件js之后执行)
window.__ssc.setting = { hideIcon: true }; //true为隐藏,false为不隐藏
// 自定义按钮事件
function openChat() {
// 打开聊天窗
ssq.push('chatOpen');
}
</script>
监听访客发送消息,访客发送消息可进行数据统计或者上报,可用于广告效果统计或归因。
ssq.push('onSendMessage', function(obj) {
// 在这里执行任何需要的上报或行为
});
监听访客接收信息的事件,并在信息接收到时执行特定的操作(例如,接收到的对象 obj
)。这是广告效果统计或归因分析的常见用法,通常用于记录访客在特定条件下的行为或反应。ssq.push('onReceiveMessage', function(obj) {...})
的实现方式通常依赖于具体的第三方统计或广告平台。
ssq.push('onReceiveMessage', function(obj) {
console.log(obj);
});
监听聊天窗口的打开事件,并在窗口打开时进行数据统计或上报,常用于广告效果统计或归因分析
ssq.push('onOpenChat', function() {
// 在这里执行数据上报或其他操作
// 例如,可以发送事件到分析平台,记录用户打开聊天窗口的行为
});
用于监听聊天窗口的关闭事件,并在窗口关闭时进行数据上报或执行其他操作,以便进行分析或其他处理。通过监听聊天窗口的关闭事件,您可以分析用户的行为模式,例如用户在聊天窗口中停留的时间、关闭窗口的频率等,从而为你的营销策略或用户体验优化提供数据支持
ssq.push('onCloseChat', function() {
// 在这里执行你需要的操作,比如数据上报
});
监听打开信息收集(聊前调查和离线留资),可在回调中进行数据上报
ssq.push('onOpenCollection', (obj) => {
// obj.type = 'offline' 离线留资
// obj.type = 'survey' 聊前留资
});
监听完成信息收集(聊前调查和离线留资),可以上报数据进行分析。如果想要知道是否有用户完成了信息收集可以在 onCollectionInfo 的回调里面去进行处理,回调数据需自行处理,salesmartly 后台是没有的
ssq.push('onCollectionInfo', (obj) => {
//obj包含了用户在信息收集过程中提供的数据
});
通过监听不同的插件图标点击事件来执行相应的操作。这种做法可以帮助你追踪用户的交互行为,了解他们对哪些沟通工具更感兴趣,并基于此优化你的应用或服务
// 监听点击Line图标
ssq.push('onOpenLine', (obj) => {
// 在这里执行点击Line图标后的操作
console.log('Line icon clicked', obj);
});
// 监听点击Messenger图标
ssq.push('onOpenMessenger', (obj) => {
// 在这里执行点击Messenger图标后的操作
console.log('Messenger icon clicked', obj);
});
// 监听点击Email图标
ssq.push('onOpenEmail', (obj) => {
// 在这里执行点击Email图标后的操作
console.log('Email icon clicked', obj);
});
// 监听点击Telegram图标
ssq.push('onOpenTelegram', (obj) => {
// 在这里执行点击Telegram图标后的操作
console.log('Telegram icon clicked', obj);
});
// 监听点击Whatsapp图标
ssq.push('onOpenWhatsapp', (obj) => {
// 在这里执行点击Whatsapp图标后的操作
console.log('Whatsapp icon clicked', obj);
});
// 监听点击微信图标
ssq.push('onOpenWeixin', (obj) => {
// 在这里执行点击微信图标后的操作
console.log('Weixin icon clicked', obj);
});
// 监听点击VKontakte图标
ssq.push('onOpenVKontakte', (obj) => {
// 在这里执行点击VKontakte图标后的操作
console.log('VKontakte icon clicked', obj);
});
// 监听点击TikTok图标
ssq.push('onOpenTikTok', (obj) => {
// 在这里执行点击TikTok图标后的操作
console.log('TikTok icon clicked', obj);
});
// 监听点击自定义图标
ssq.push('onOpenCustom', (obj) => {
// 在这里执行点击自定义图标后的操作
console.log('custom icon clicked', obj);
// obj = {
// id, // custom_1、custom_2、custom_3
// content,
// }
});
// 监听点击Zalo图标
ssq.push('onOpenZalo', (obj) => {
// 在这里执行点击Zalo图标后的操作
console.log('Zalo icon clicked', obj);
});
监听插件内部资源加载完成并在资源加载完成后执行特定事件,可以使用 ssq.push('onReady', () => { /* ... */ });
方法。这可以确保在资源完全加载后执行你定义的操作,比如打开聊天窗口或进行其他初始化工作。
ssq.push('onReady', () => {
// 执行其他事件
});
// 使用示例:
<script id="ss_chat" defer src="https://example.js"></script>
<script>
const ss_chat = document.getElementById('ss_chat');
ss_chat.addEventListener('load', (e) => {
window.ssq && window.ssq.push('onReady', () => {
// 执行事件
});
})
</script>
当用户点击 whatsapp 图标跳转到 whatsapp 官方网站时,允许您设置在跳转到 WhatsApp 官方网站时显示的问候语或自定义消息。
ssq.push('createWhatsappGreeting', function(msg){
// msg默认为Hello.
return msg + 'tony'; // 输出结果:Hello.tony
// 如果需要完全自定义,可直接返回自定义的文字,如:
// return '你好' // 输出结果:你好
});
实现让访客能够主动发起信息的功能,例如在软件中发生错误或浏览商品时咨询,可以使用类似 ssq.push('sendTextMessage', 'your message')
的方法来发送消息。 或者是在浏览商品中点击商品咨询,可以直接发送一些商品信息等
ssq.push('sendTextMessage', 'it is an error');
#示例1捕获错误信息并发送到客服:
function handleError(error) {
// 发送错误信息到客服系统
ssq.push('sendTextMessage', `Error encountered: ${error.message}`);
}
// 示例:捕获并处理错误
try {
// 你的代码逻辑
} catch (error) {
handleError(error);
}
#示例2点击按钮发送咨询信息
<!-- 示例 HTML 按钮 -->
<button onclick="sendProductInquiry('Product Name')">咨询商品</button>
<script>
function sendProductInquiry(productName) {
// 发送商品咨询信息到客服系统
ssq.push('sendTextMessage', `咨询关于商品: ${productName}`);
}
</script>
可用于实现关闭访客端对应的上传功能
ssq.push('hideUpload', ['img', 'video', 'document'])
// 'img' 图片类型
// 'video' 视频类型
// 'document' 附件类型
// 如果设置了关闭,想要在某个操作中将功能重新开放出来,则将数组中的对应项去除,重新调用
// 例:ssq.push('hideUpload', [])
当聊天插件入口收起时,可通过该方法将聊天窗口右上角处的关闭窗口按钮隐藏
ssq.push('hideCloseIcon');
暂时不支持,JSSDK 在 uni-app 上只能运行在 h5 环境上使用的,别的环境暂时还不支持
互换下 JSSDK 和 JavaScript 代码顺序,JavaScript 代码在上面,JSSDK 在下面。如图:
原因:只能在H5环境下使用,因为SDK需要挂在到window对象上,在 UniApp 中,不同的平台有不同的全局对象。window 对象是 Web 浏览器的全局对象,但在一些非浏览器环境(如App、微信小程序、支付宝小程序等)中,是没有 window 对象的.
解决措施:
(1). 安卓端可以使用Android SDK的8、文件选择回调,详情查看:https://help.salesmartly.com/docs/ma4Mfu#8、文件选择回调
(2). 使用 Web-view 组件来加载一个 H5 页面,然后在这个 H5 页面中使用SDK(可能会出现一些问题,Web-view 组件默认情况下并不能直接调用原生应用的功能,需要对方的技术人员进行处理,例如文件上传)