[Resolvido] Definir Contato (name, gender, email, etc...) quando Logado

Gostaria de confirmar se a implementação abaixo é válida, pois ao fazer alguns testes não

No caso, se o usuário estiver logado
if (browsingContext.Common.Shopper.IsAuthenticated)
deve ser indicado os dados de contato

Envia os dados de contato ao entrar no chat

/*jshint esversion: 6 */
(function () {
    window.onload = function () {

        var blipClient = new BlipChat()
            .withAppKey('KEY')
            .withButton({ "color": "#3a183d" })
            .withoutHistory()

            .withEventHandler(BlipChat.ENTER_EVENT, function () {

                console.log('BlipChat log event - enter');

                if (browsingContext.Common.Shopper.IsAuthenticated) {
                    blipClient
                    .withAccount({
                        name: browsingContext.Common.Shopper.Name,
                        fullName: browsingContext.Common.Shopper.Name + ' ' + browsingContext.Common.Shopper.SurName,
                        gender: browsingContext.Common.Customer.Gender,
                        email: browsingContext.Common.Shopper.Email,
                        phoneNumber: browsingContext.Common.Customer.ExtendedProperties.Phone.Value,
                        extras: {
                            CustomerID: browsingContext.Common.Customer.CustomerID
                        }
                    })
                    .build();
                }
            })
            ;
        blipClient.build();
    };
})();

Referência:

Resources - LIME Protocol - Account

@AndyDaSilva52

Você já conseguiu resolver?

Deixei a implementação no site:

<script src="https://unpkg.com/blip-chat-widget" type="text/javascript"></script>
<script type="text/javascript">
  /*jshint esversion: 6 */
(function () {
        //window.onload = function () {
      		
      		var blipClient = new BlipChat()
            .withAppKey('KEY')
            .withButton({"color":"#3a183d"})
            //.withoutHistory()
            
            .withEventHandler(BlipChat.ENTER_EVENT, function () {
              
				console.log('BlipChat log event - enter x');
				
				if (browsingContext.Common.Shopper.IsAuthenticated) {
					console.log('Logado');
					blipClient.withAccount({
						name: browsingContext.Common.Shopper.Name,
                		fullName: browsingContext.Common.Shopper.Name + ' ' + browsingContext.Common.Shopper.SurName,
						gender: browsingContext.Common.Customer.Gender,
              			email: browsingContext.Common.Shopper.Email,
              			phoneNumber: browsingContext.Common.Customer.ExtendedProperties.Phone.Value,
                  		extras: {
                  			CustomerID: browsingContext.Common.Customer.CustomerID
                    	}
					})
					.build();
              	}
				
            })
			/**
            .withEventHandler(BlipChat.LEAVE_EVENT, function () {
              
				console.log('BlipChat log event - leave');
				
            })
            .withEventHandler(BlipChat.LOAD_EVENT, function () {
              
				console.log('BlipChat log event - loaded');
				
            })
            .withEventHandler(BlipChat.CREATE_ACCOUNT_EVENT, function () {
              	
				console.log('BlipChat log event - account created');
				
            })
            //.withCustomMessageMetadata({ "user origin" : "browser" })
            */
			;
            blipClient.build();
        //};
 })();
</script>
<style>
  #blip-chat-open-iframe { 
    bottom: 75px !important; 
  }
</style>

Mas não abre o widget:

SNV_04039_2020-02-04_17-55-09

Console do navegador:

@AndyDaSilva52

Tente desta forma:

(function () {
    window.onload = function () {
        var blipClient = undefined;
        var key = 'KEY';
        var button = { "color": "#3a183d" };

        blipClient = new BlipChat()
            .withAppKey(key)
            .withButton(button)
            .withoutHistory()
    
        if (browsingContext.Common.Shopper.IsAuthenticated) {
            blipClient.withAccount({
                name: browsingContext.Common.Shopper.Name,
                fullName: browsingContext.Common.Shopper.Name + ' ' + browsingContext.Common.Shopper.SurName,
                gender: browsingContext.Common.Customer.Gender,
                email: browsingContext.Common.Shopper.Email,
                phoneNumber: browsingContext.Common.Customer.ExtendedProperties.Phone.Value,
                extras: {
                    CustomerID: browsingContext.Common.Customer.CustomerID
                }
            })
        }

        blipClient.build();
    };
})();

Não funciona, quando entro no site IsAuthenticated está false

Essa sugestão sua não altera os dados do contato depois que IsAuthenticated está true, ou seja, após ser logado no site, pois já deve ter sido instanciado a sessão do contato! Como fazer para alterar? Não deveria blipClient.withAccount() ajustar os dados de contato?

Eu teria que resetar a sessão do contato? Mas e a conversa que já foi iniciada

Não é possível alterar os dados do usuário pelo script do blipchat depois que ele foi criado, somente na primeira interação mesmo.

Caso você precise fazer isso, será necessário fazer pelo fluxo do bot usando a ação Definir Contato.

1 Curtida