Skip to main content

ServiceNow - Virtual Agent /Agent Workspace Chat questions and answers


Key questions answered

Question                                              Answer

1) Is it possible to prevent the timeout timer so that users remain in the queue of an available agent? 

When an End User initiates chat a work item is created as a chat and routed to an available agent to accept/reject it. 
We can set time out for how long it should stay with the available agent till he accepts/rejects by going to 'Reassign on timeout' and changing the 'Timeout' field value (Days and Hours, Minutes, Seconds) 
Please refer to the below Product Documentation for the same. 

Configure agent assignment rules :

However, if you want to increase the Time Out after the Conversation has been started (Chat is accepted) between the end user and the agent. 
You can do that by changing the Idle Chat Time Out Properties. 
Please refer to below product documentation for the same, 

Idle live chats:

2) If an agent was not able to respond to a chat, is it possible to send the end user an automated response? It is not possible to send an automated response to the end user if the agent doesn't respond. 
3) If none of the available agents responded to an end user, how can I re-add the user's chat in an agent's queue once again? 

If none of the available agents responds to the incoming chat, Then that Chat will go to the queued state automatically. 
It will stay in the queued state till it gets max time out. 

However, if you want to reassign the chat to an agent who has rejected it you can do that by configuring 'Reassign rejected' 
Follow the below documentation for the same,

(ServiceNow )


  1. Just some friendly feedback. Those aren't really Virtual Agent topics, more Agent Workspace Chat related. Content is very good, but headline a bit misleading.

  2. Cheers - amended as per your feedback


Post a Comment

Popular posts from this blog

ServiceNow check for null or nil or empty (or not)

Haven't tested these all recently within global/local scopes, so feel free to have a play! option 1 use an encoded query embedded in the GlideRecord , e.g.  var grProf = new GlideRecord ( 'x_cls_clear_skye_i_profile' ); grProf . addQuery ( 'status=1^ owner=NULL ' ); grProf . query (); even better use the glideRecord  addNotNullQuery or addNullQuery option 2 JSUtil.nil / notNil (this might be the most powerful. See this link ) example: if ( current . operation () == 'insert' && JSUtil . notNil ( current . parent ) && ! current . work_effort . nil ())  option 3 there might be times when you need to get inside the GlideRecord and perform the check there, for example if the code goes down 2 optional routes depending on null / not null can use gs.nil : var grAppr = new GlideRecord ( 'sysapproval_approver' ); var grUser = new GlideRecord ( 'sys_user' ); if ( grUser . get ( 'sys_id' , current . approver )){

Get URL Parameter - server side script (portal or classic UI)

Classic UI : var sURL_editparam = gs . action . getGlideURI (). getMap (). get ( ' sysparm_aparameter ' ); if ( sURL_editparam == 'true' ) { gs . addInfoMessage ( 'parameter passed ); } Portal : var sURL_editparam = $sp . getParameter ( " sysparm_aparameter " ); if ( sURL_editparam == 'true' ) { gs . addInfoMessage ( 'parameter passed ); }