Se seu app tem poucas atualizações de página (ou seja, o conteúdo é trocado no lado do cliente, mas não ocorre atualização da página) e muito JS assíncrono, você precisará integrar o Intercom de uma forma um pouco diferente para garantir que os dados dos seus customers estejam atualizados e que eles recebam todo o seu conteúdo enviado (mensagens, tours, etc.)
Aqui está o que sugerimos:
Primeiro, inclua o arquivo da biblioteca JS do intercom no elemento head do seu 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: Se você copiar o trecho de código acima, certifique-se de alterar manualmente seu ID do workspace (isso é chamado de seu APP_ID no código).
Em seguida, uma vez que você tenha um usuário logado no seu site (após ele se autenticar e você ter os detalhes disponíveis), chame window.Intercom('boot', {user_data}), onde user_data são todos os dados sobre o usuário. Por favor, certifique-se de enviar o user_id e/ou email em cada chamada para atualizar seus users. Isso enviará os detalhes do usuário logado para o Intercom e verificará novas mensagens que devem ser mostradas ao usuário.
Um exemplo disso para visitantes deslogados seria:
window.Intercom('boot', {
app_id: 'abc12345',
custom_launcher_selector: '#my_custom_link'
});
Importante: Se você copiar o trecho de código acima, certifique-se de alterar manualmente seu ID do workspace (isso é chamado de seu APP_ID no código).
Então, quando quiser logá-los ou convertê-los em um user, simplesmente altere o método boot para incluir as informações do usuário:
window.Intercom('boot', {
app_id: 'abc12345',
email: 'example@example.com',
user_id: 'abc123',
created_at: 1234567890,
custom_launcher_selector: '#my_custom_link'
});Importante: Se você copiar o trecho de código acima, certifique-se de alterar manualmente seu ID do workspace (isso é chamado de seu APP_ID no código).
Instale o Intercom com o Google Tag Manager
Usando o Intercom com frameworks JavaScript
Apps de página única são frequentemente construídos com frameworks e bibliotecas JavaScript. O Intercom não possui uma lista prescrita de frameworks JavaScript mantidos ou suportados para pacotes de terceiros.
Informe o Intercom quando seus dados ou URL mudarem
Existem duas chamadas adicionais que você pode precisar usar no seu app.
Se os dados do seu user mudarem, ou se você alterar a URL de alguma forma sem recarregar a página, você deve chamar window.Intercom('update', {user_data}), onde user_data é um conjunto de alterações nos dados do seu user.
Importante: Uma chamada de atualização simula uma atualização de página, fazendo o Intercom verificar por novas mensagens ou tours para enviar ao customer.
Você só precisa incluir o que mudou — não é necessário incluir todos os dados do user em cada atualização. No entanto, você deve enviar o user_id e/ou email.
Você usa a função update assim (Certifique-se de alterar seu app_id):
Você inicializa o user como normal:
window.Intercom('boot', {app_id: APP_ID, email: 'someuser@example.com', apples: 1});Se os dados do user forem alterados, ou se eles acabaram de causar uma mudança de 'página', você chamaria:
window.Intercom('update', {email: 'someuser@example.com', apples: 2});com quaisquer novos dados do user.
Importante: Você precisará chamar Intercom("update") com alguns novos dados do user para iniciar um "ping" toda vez que a URL mudar. Se nenhum dado do user mudou, você pode enviar o horário atual como valor para 'last_request_at' assim:
Intercom("update", {last_request_at: parseInt((new Date()).getTime()/1000)})
Se a URL mudar sem um recarregamento completo da página, o Intercom Messenger não envia automaticamente as mudanças de URL para o Intercom para corresponder mensagens baseadas em URLs.
A chamada de atualização é limitada a 20 vezes por user por página sem ser limitada. Se você exceder essa taxa, será limitado e a cota de 20 chamadas será resetada a cada 30 minutos. Um refresh ou recarregamento da página irá resetar isso.
Recomendamos atualizar apenas nos locais onde há uma mudança de dados do user enviada ao Intercom que possa disparar uma Mensagem Automática por esse motivo.
Como encerrar uma sessão
O Intercom permite que você coloque o Intercom Messenger em qualquer site público que você possua (seu site de marketing, seu site de documentação, seu hub de desenvolvedor, etc). Para manter a continuidade das conversas em todos esses subdomínios potencialmente diferentes enquanto seus users estiverem logados, definimos um cookie no navegador do seu user. Esse cookie expira após uma semana.
Qualquer user que use um computador e navegador compartilhados com outra pessoa poderá ver o histórico de conversas do user mais recentemente logado até que o cookie expire. Por isso, é muito importante encerrar corretamente o Intercom quando a sessão de um user no seu app terminar (via logout manual ou automático).
Aqui está como encerrar o Intercom:
Você já terá começado a rastrear seu user via o snippet JS do Intercom ou o método “boot”.
Quando seu user fizer logout do Intercom (ou for automaticamente desconectado pelo seu app), chame
Intercom('shutdown');da nossa API JavaScript, para encerrar a sessão do Intercom e limpar o cookie.Se aplicável, chame
Intercom('boot', {app_id: 'YOUR_APP_ID'})para iniciar uma nova sessão.
Importante: Certifique-se de alterar app_id no código com seu próprio ID do workspace.
O método Intercom('shutdown'); irá automaticamente resetar o Intercom para um estado limpo para logar outro user ou iniciar o Intercom para áreas deslogadas da sua aplicação.
Habilitando a verificação de identidade em um app de página única
Para habilitar a verificação de identidade no seu app de página única, você deve adicionar o atributo user_hash à sua chamada boot.
Ao implementar a identificação do user na sua aplicação, siga estas diretrizes importantes:
Identifique users para o Intercom somente após eles terem sido autenticados e logados na sua aplicação.
Para users não logados (visitantes), inclua apenas o app_id na sua configuração.
Nunca codifique informações do user diretamente - sempre preencha dinamicamente após a autenticação.
Mais detalhes podem ser encontrados aqui.
Nota: Sem a Segurança do Messenger, seus users verão apenas os últimos 14 dias do histórico de conversas no Messenger. Saiba mais →
