The Zurich release has arrived! Interested in new features and functionalities? Click here for more

Help with vaSystem.isLiveAgentAvailable() - it is not returning the correct result

YenGar
Mega Sage

Hello! I am hoping someone can help me out with this issue. My current version is Utah and I am trying to figure out why the vaSystem.isLiveAgentAvailable() method is returning 'true' when there are no live agents connected. I have tested this in the designer and it gives me the correct result of 'false' but when I test it in a published topic, it tells me that there are agents I can chat with and when i click to be transferred, then it says there are no live agents available. I am confused and not sure what to do to fix it. 

 
Testing from the designer - as you can see, it gives me the expected result of false
troubleshooting 1.PNG
Testing from a published topic - it says that there are agents when there aren't any
troubleshooting 2.PNG

Script: 
I originally just had it as vaSystem.isLiveAgentAvailable() and set it in a variable output to be used in other steps in the main topic. It just doesn't work regardless of what I do. 

 

(function execute() {
//get live agent result
if (vaSystem.isLiveAgentAvailable()) {
vaVars.agentAvailable = 'true';
//get avg wait time for queue
var avgWait = new GlideRecord('awa_queue');
if(avgWait.get('609ff3561b49e050306b55392a4bcbba')){
vaVars.waitingTime = avgWait.average_wait_time.getDisplayValue();
       }
} 
else {
vaVars.agentAvailable = 'false';
}
})();

 

 

Is anyone experiencing the same thing? Any suggestions of what i can do?

 

Thank you,

Yen

13 REPLIES 13

johndoh
Mega Sage

Thank you John! I had read that posting as well and decided to put the vaSystem.isLiveAgentAvailable() in a variable too like in the example but i get the same results. It works well in the designer when testing but it does not provide the correct result in a published topic. 

 

That is strange, if it works testing in the designer and you have published then it should work just the same in the web client. Glad you mentioned that as that was going to be the first thing I asked.

I dont think it should matter but have you tried to remove the quotes for the true/false? That way it is not a string return.

 

(function execute() {
    //get live agent result
    if (vaSystem.isLiveAgentAvailable()) {
        vaVars.agentAvailable = true;
        //get avg wait time for queue
        var avgWait = new GlideRecord('awa_queue');
        if (avgWait.get('609ff3561b49e050306b55392a4bcbba')) {
            vaVars.waitingTime = avgWait.average_wait_time.getDisplayValue();
        }
    } else {
        vaVars.agentAvailable = false;
    }
})();

Yep, i tried that as well, even did a .toString(); on the value to go by that but i still get the same results. I did end up opening up a case and hoping they can provide a solution.