Si tu app tiene muy pocas actualizaciones de página (es decir, el contenido se cambia en el lado del cliente pero no ocurre una actualización de página) y mucho JS asíncrono, necesitarás integrar Intercom de una manera ligeramente diferente para asegurar que los datos de tus customers estén actualizados y reciban todo tu contenido saliente (mensajes, tours, etc.)
Esto es lo que sugerimos:
Primero, incluye el archivo de la biblioteca JS de intercom en el elemento head de tu HTML.
(function(){var w=window;var ic=w.Intercom;if(typeof ic==="function"){ic('reattach_activator');ic('update',w.intercomSettings);}else{var d=document;var i=function(){i.c(arguments);};i.q=[];i.c=function(args){i.q.push(args);};w.Intercom=i;var l=function(){var s=d.createElement('script');s.type='text/javascript';s.async=true;s.src='https://widget.intercom.io/widget/' + APP_ID;var x=d.getElementsByTagName('script')[0];x.parentNode.insertBefore(s,x);};if(w.attachEvent){w.attachEvent('onload',l);}else{w.addEventListener('load',l,false);}}})();
Importante: Si copias el fragmento de código anterior asegúrate de cambiar manualmente tu ID de workspace (esto se llama tu APP_ID en el código).
Luego, una vez que tengas un usuario logged in en tu sitio (después de que se haya autenticado y tengas sus detalles disponibles) llamas a window.Intercom('boot', {user_data}), donde user_data es toda la información sobre el usuario. Por favor asegúrate de enviar el user_id y/o email en cada llamada para actualizar tus users. Esto enviará los detalles del usuario logged in a Intercom y verificará si hay nuevos mensajes que deban mostrarse al usuario.
Un ejemplo de esto para visitantes logged out sería:
window.Intercom('boot', {
app_id: 'abc12345',
custom_launcher_selector: '#my_custom_link'
});
Importante: Si copias el fragmento de código anterior asegúrate de cambiar manualmente tu ID de workspace (esto se llama tu APP_ID en el código).
Luego, cuando quieras loguearlos o convertirlos en un user, simplemente cambia el método boot para incluir su información de usuario:
window.Intercom('boot', {
app_id: 'abc12345',
email: 'example@example.com',
user_id: 'abc123',
created_at: 1234567890,
custom_launcher_selector: '#my_custom_link'
});Importante: Si copias el fragmento de código anterior asegúrate de cambiar manualmente tu ID de workspace (esto se llama tu APP_ID en el código).
Instalar Intercom con Google Tag Manager
Usar Intercom con frameworks de JavaScript
Las aplicaciones de una sola página a menudo se construyen con frameworks y bibliotecas de JavaScript. Intercom no tiene una lista prescrita de frameworks de JavaScript mantenidos o soportados para paquetes de terceros.
Indica a Intercom cuando tus datos o URL cambien
Hay dos llamadas adicionales que podrías necesitar usar en tu app.
Si los datos de tu user cambian, o si cambias la URL de alguna manera sin recargar la página, deberías llamar a window.Intercom('update', {user_data}), donde user_data es un conjunto de cambios en los datos de tu user.
Importante: Una llamada de actualización simula una recarga de página, haciendo que Intercom verifique si hay nuevos mensajes o tours para enviar al customer.
Solo necesitas incluir lo que haya cambiado—no necesitas incluir todos los datos del user en cada actualización. Sin embargo, deberías seguir enviando el user_id y/o email.
Usas la función update así (Asegúrate de cambiar tu app_id):
Inicias al user como normal:
window.Intercom('boot', {app_id: APP_ID, email: 'someuser@example.com', apples: 1});Si los datos del user cambian, o acaban de causar un cambio de 'página', llamarías a:
window.Intercom('update', {email: 'someuser@example.com', apples: 2});con cualquier dato nuevo del user.
Importante: Necesitarás llamar a Intercom("update") con algunos datos nuevos del user para iniciar un "ping" cada vez que cambie una URL. Si no ha cambiado ningún dato del user puedes enviar la hora actual como valor para 'last_request_at' así:
Intercom("update", {last_request_at: parseInt((new Date()).getTime()/1000)})
Si la URL cambia sin una recarga completa de página, el Intercom Messenger no envía automáticamente los cambios de URL a Intercom para que los mensajes coincidan basados en URLs.
La llamada de actualización está limitada a 20 veces por user por página sin ser restringida. Si excedes esta tasa, serás restringido y la cuota de 20 llamadas se reiniciará cada 30 minutos. Una recarga o refresco de página reiniciará esto.
Recomendamos actualizar solo en lugares donde se envíe un cambio de datos del user a Intercom que pueda activar un Mensaje Automático por esta razón.
Cómo terminar una sesión
Intercom te permite poner el Intercom Messenger en cualquier sitio público que poseas (tu sitio de marketing, tu sitio de documentación, tu hub de desarrolladores, etc). Para mantener la continuidad de las conversaciones a través de todos estos posibles subdominios diferentes mientras tus users están logged in, establecemos una cookie en el navegador de tu user. Esta cookie expira después de una semana.
Cualquier user que use una computadora y navegador compartidos con otra persona podrá ver el historial de conversación del user que inició sesión más recientemente hasta que la cookie expire. Por esto, es muy importante cerrar correctamente Intercom cuando la sesión de un user en tu app termine (ya sea cerrando sesión manual o automáticamente).
Así es como se cierra Intercom:
Ya habrás comenzado a rastrear a tu user mediante el fragmento JS de Intercom o el método “boot”.
Cuando tu user cierre sesión en Intercom (o sea cerrado automáticamente por tu app), llama a
Intercom('shutdown');desde nuestra API de JavaScript, para terminar la sesión de Intercom y borrar la cookie.Si aplica, llama a
Intercom('boot', {app_id: 'YOUR_APP_ID'})para iniciar una sesión nueva.
Importante: Asegúrate de cambiar app_id en el código con tu propio ID de workspace.
El método Intercom('shutdown'); reiniciará automáticamente Intercom a un estado limpio para iniciar sesión con otro user o arrancar Intercom para áreas de tu aplicación donde no haya sesión iniciada.
Habilitar la verificación de identidad en una aplicación de una sola página
Para habilitar la verificación de identidad en tu aplicación de una sola página, debes agregar el atributo user_hash a tu llamada boot.
Al implementar la identificación de usuarios en tu aplicación, sigue estas importantes pautas:
Solo identifica a los users en Intercom después de que hayan sido autenticados y hayan iniciado sesión en tu aplicación.
Para usuarios no logged in (visitantes), solo incluye el app_id en tu configuración.
Nunca codifiques información del user de forma fija; siempre complétala dinámicamente después de la autenticación.
Más detalles pueden encontrarse aquí.
Nota: Sin la Seguridad del Messenger, tus users solo verán su historial de conversación de los últimos 14 días en el Messenger. Más información →
