LiveChat customization

Olá,

como customizo o LiveChat para comportar essa funcionalidade?

Condicional para quando solicita (ou não) o formulário de registro inicial.

Gostaria que em uma url publica (index) solicitasse o formulário de pré-registro, já em uma url interna não solicitasse (usuario autenticado).

Mesmo aplicando a função de registerGuest do widget LiveChat API a configuração do Admin → Omnichannel → LiveChat → Formulario de Pre-Registro dita o resultado. Se está habilitado solicita em todos casos, desabilitado nunca solicita.

image

  • Version of Rocket.Chat Server: 4.8.1

Oi!

O Livechat possui uma série de APIs onde você pode definir o token, nome, email, departamento além de campos customizados, para permitir essa pré identificação:

Olá Duda,

não identifiquei qual função permite isso, me parece que as configurações internas do RocketChat sobrescrevem qualquer comando na instalação do widget.

Testei com o registerGuest e as outras que constam na documentação, permanece unilateral: quando defino “solicitar pré-formulario” nas configurações em Administração → …

como Habilitado, ele solicita em todos cenários (com ou sem comandos do Livechat API).

como Desabilitado, ele nunca solicita.

qual seria o comando do Livechat API para fazer essa condicional em relaçao ao pré-formulario de registro?

Você poderia compartilhar o código usado? Daí tento replicar daqui.

Eu já fiz esse mesmo cenário que você deseja, e à época, eu consegui.

segue

<!-- Start of Rocket.Chat Livechat Script -->
<script type="text/javascript">

<<< script de instalação do LiveChat >>>

RocketChat(function() {
    this.registerGuest({
        name: 'xxx',
        email: 'xxx',
    });
});
	</script>

Aqui deu certo:

<!-- Start of Rocket.Chat Livechat Script -->
<script type="text/javascript">
    (function (w, d, s, u) {
        w.RocketChat = function (c) { w.RocketChat._.push(c) }; w.RocketChat._ = []; w.RocketChat.url = u;
        var h = d.getElementsByTagName(s)[0], j = d.createElement(s);
        j.async = true; j.src = 'http://localhost:3000/livechat/rocketchat-livechat.min.js?_=201903270000';
        h.parentNode.insertBefore(j, h);
    })(window, document, 'script', 'http://localhost:3000/livechat');

    const tz = Intl.DateTimeFormat().resolvedOptions().timeZone;
    // RocketChat(function() {
    //     this.setCustomField('timezone', tz);
    // });
    RocketChat(function() {
        this.registerGuest({
    token: 'novo-token', // The token field is not required. If it is not passed, a new token will be generated
    name: 'novo-token',
    email: 'novo-token@rocket.chat',
});
    });
</script>

Acredito que seja porque você não definiu o token. O token é o que definitivamente vai identificar o seu usuário como visitante junto ao Rocket.Chat, e pode ser usado novamente no futuro para agrupar as conversas.

Atente-se que não é interessante colocar algo como usuario-123 como token, pois qualquer pessoa poderia se passar por usuário ID 123. precisa ser algum outro token que o seu sistema irá gerar e que não seja sequencial.

com a função RegisterGuest passando apenas token, name + email você conseguiu abrir o LiveChat sem o pré-formulário (mesmo estando habilitado dentro da aplicação)?

usei o mesmo código que o seu passando um unique-id para o token, interno e exclusivo para cada usuário e ainda assim ele continua exigindo os campos de nome e e-mail

exemplo de um unique-id de usuario demo. testei tambem com valores arbitrarios como 7364763 e o resultado é sempre o mesmo

1566295411300x326794292963055160

Hum.

Lembre-se de sempre dar um ctrl+shit+r pra limpar o cache e recarregar o widget, ou preferencialmente testar numa janela anônima.

Qualquer coisa me pinga em nosso servidor que dou uma olhada contigo:

1 Like