Tengo un sitio web donde los visitantes primero inician sesión y luego miran videos, y quiero que puedan intercambiar mensajes de chat con mis agentes de soporte mientras miran los videos.
Estoy buscando una herramienta de chat que tenga todas (o al menos la mayoría ) de estas características:
Si tienen sugerencias, ¡las agradecería!
PD: soy ingeniero de software y mi sitio usa Laravel. Si hay una manera fácil de lograr esto con https://laravel.com/docs/5.6/broadcasting y Pusher, estoy abierto a eso. Pero mi corazonada es que las herramientas ya existen y que no necesitaré codificar algo yo mismo.
Tawk.to tiene una aplicación para iOS y parece lo suficientemente personalizable como para que yo la pruebe.
Aunque conocía Tawk.to cuando hice esta pregunta, nunca había podido encontrar esta documentación sobre cómo configurar la dirección de correo electrónico del visitante, etc.
Aquí está la mayor parte de mi código:
var startChatBtn = $('#startChatBtn');
startChatBtn.hide();
var visitorData = {
name: $('#tawktoData').attr('data-name'),
email: $('#tawktoData').attr('data-email'),
hash: $('#tawktoData').attr('data-hash')
};
console.log('tawk visitorData', visitorData);
window.Tawk_API.visitor = visitorData;
var hasChatted = false;
window.Tawk_API.onChatStarted = function () {
console.log('onChatStarted');
hasChatted = true;
};
window.Tawk_API.onChatMinimized = function () {
console.log('onChatMinimized');
window.Tawk_API.hideWidget();
showChatBtnIfOnline();
};
window.Tawk_API.onChatHidden = function () {//https://www.tawk.to/javascript-api/#onChatHidden
console.log('onChatHidden');
showChatBtnIfOnline();
};
window.Tawk_API.onStatusChange = function (status) {
console.log('window.Tawk_API.onStatusChange');
if (status === 'away' || status === 'offline') {
if (!hasChatted) {
startChatBtn.hide();
}
} else {
showChatBtnIfOnline();
}
window.Tawk_API.hideWidget();
window.Tawk_API.minimize();//https://www.tawk.to/javascript-api/#minimize
};
tawkto_helper.onLoad.done(function () {
//window.Tawk_API.hideWidget();//Is "Hide widget on load" enabled? https://dashboard.tawk.to/#/admin/5a9480/default/widget-settings
//window.Tawk_API.setAttributes(visitorData, function (error) {});//Instead of waiting for onLoad, maybe by setting window.Tawk_API.visitor immediately (even before load), I can have the first iOS app notification include visitor data.
console.log('tawkto_helper.onLoad');
showChatBtnIfOnline();
});
function showChatBtnIfOnline() {
console.log('showChatBtnIfOnline window.Tawk_API.getStatus()', window.Tawk_API.getStatus());
if (window.Tawk_API.getStatus() === 'online') {
startChatBtn.show();
}
}
function tawkAddEvent(name, payload, errorCallback) {
tawkto_helper.onLoad.done(function () {
window.Tawk_API.addEvent(name, payload, errorCallback);
});
}
startChatBtn.click(function () {//There is not a race condition because startChatBtn will only ever be visible if Tawk_API has already loaded
console.log('startChatBtn.click');
window.Tawk_API.maximize();
startChatBtn.hide();
});