Con esta configuración es posible manejar diferentes comportamientos para distintos segmentos de clientes basados en criterios de campaña que cargan script_inicializacion acordes a las necesidades del negocio. Por ejemplo, en el caso de plataforma remota se levanta el widget sólo a aquellos clientes que son cargados en la base de la campaña y el resto de los clientes no se entera que existe un chat. Cabe destacar que la carga del es script_instalacion totalmente asíncrona, es decir, no interfiere en absoluto con el rendimiento de la página contenedora.
Scripts de Instalación Oficial
Script_instalacion (alojado en servidores del cliente):
- <!-- Begin of LetsTalk script -->
- <script type="text/javascript">
- !function (e, t) { if (!e.$Letstalk) { var n = e.$Letstalk = {}; n.enqueue = function () { var e = arguments; return new Promise(function (t, n) { u.stack.push({ args: e, resolve: t, reject: n }), u.times.push(+new Date) }) }, n.init = function () { return n.enqueue("init", arguments) }, n.on = function () { return n.enqueue("on", arguments) }, n.executeAppMethod = function () { return n.enqueue("executeAppMethod", arguments) }, n.isAvailable = function () { return n.enqueue("isAvailable", arguments) }, n.launch = function () { return n.enqueue("launch", arguments) }, n.listApps = function () { return n.enqueue("listApps", arguments) }, n.remove = function () { return n.enqueue("remove", arguments) }; var u = n._ = { stack: [], times: [+new Date] }; t.body ? r() : e.attachEvent ? e.attachEvent("onload", r) : e.addEventListener("load", r, !1) } function r() { a = !1, s = t.createElement("script"), s.type = "text/javascript", s.src = "https://static.letsta.lk/launcher/launcher.js", s.async = !0, s.defer = !0, k = document.getElementsByTagName("script")[0], k.parentNode.insertBefore(s, k) } }(window, document);
- var settingsChatPrivado = {
- consumer: {
- key: 'KEYKEY-QpF1kHYTTGw',
- token: 'TOKENTOKEN'
- },
- visitor: {
- email: 'clubdelaserpiente@letsta.lk',
- name: 'Horacio Oliveira',
- attrs: {
- origen: 'Rayuela',
- nivel: 'VIP'
- }
- }
- };
- window.LetstalkSettings = {
- organization: 'ltmobile',
- };
- window.$Letstalk.on('ready', function () {
- window.$Letstalk.launch('chat-development-privado', settingsChatPrivado).then((app) => {
- app.on('ready', function () {
- app.executeMethod('setDisplayState', { state: 'minimized' });
- });
- })
- .catch(error => {
- console.log(`Ocurrió un error: ${error}`);
- });
- });
- </script>
En el caso indicado el script_inicializacion debe ser integrado como una función que acepta los parámetros de sesión que sólo existen en el HTML del Iframe 1.Scripts de Instalación Prueba
script_instalacion:
<!-- Begin of LetsTalk script -->
<script type="application/javascript" async defer>
(function(l,t){if(l.$LT)return;function ls(){a=!1;s=t.createElement('script');s.type='text/javascript';s.src=typeof LT_WIDGET_SRC!=='undefined'?LT_WIDGET_SRC:'https://www.cliente.cl/imagenes/_js/let/widget.js';s.async=!0;s.defer=!0;k=document.getElementsByTagName('script')[0];k.parentNode.insertBefore(s,k)}
var lt=l.$LT=function(callback){if(typeof callback==='function'){mock.initCallBack=callback}}
lt.enqueue=function(){mock.stack.push(arguments);mock.times.push(+new Date)}
lt.settings=function(settings){lt.enqueue('userSettings',settings)};lt.chatMetadata=function(getMetadata){if(typeof getMetadata==='function'){lt.enqueue('metadata',getMetadata())}};lt.setByName=function(name){mock.name=name};var mock=lt._={name:!1,initCallBack:!1,stack:[],times:[+new Date],};if(t.body){ls()}else{if(l.attachEvent){l.attachEvent('onload',ls)}else{l.addEventListener('load',ls,!1)}}})(window,document)
</script>
<!-- End of LetsTalk script -->
script_inicializacion:
<script type="text/javascript">
var widgetName = 'web';
var consumerKey = 'KEYKEYOVhDpRtbQiKw';
var consumerToken = 'TOKENTOKEN';
var visitorName = '${_SESION.PROPIEDADES.NOMBRE_COMPLETO}';
var visitorEmail = '${RUT}'+'@test.letsta.lk';
var attrs = {proyecto: 'proyecto web', perfil: 'test'};
startChatWidget(widgetName, visitorName, visitorEmail, consumerKey, consumerToken, attrs);</script>
JS auxliliar (archivo adjunto):
function startChatWidget(widgetName, visitorName, visitorEmail, consumerKey, consumerToken, attrs) {
window.$LT(function(messenger){
messenger.setByName(widgetName);
messenger.settings({
consumer: {
key: consumerKey,
token: consumerToken
},
visitor: {
name: visitorName,
email: visitorEmail,
attrs: attrs
}
});
});
}