cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
1843
Views
10
Helpful
8
Replies

Finesse 12.0 - Can I prevent agent from doing state change?

TimoV
Level 1
Level 1

Hi,

We have a use case where customer would like to force agents to execute specific wrap-up actions before transitioning to ready state after a call. If we use vanilla Finesse with agent state control in the heading bar, is it possible to "disable" agent state control until the agent has executed the tasks expected, in a custom gadget? 

 

So, during the call, we would set the agent in wrap-up pending state and load custom wrap-up gadget with correct context. Once the call ends, the user will be in wrap-up state. In practice we would like to "grey out" the state control (not possible, I guess) or cancel the state change event until the expected task have been executed by the agent.

Is this doable by means of Finesse APIs?

1 Accepted Solution

Accepted Solutions

dekwan
Cisco Employee
Cisco Employee

Hi,

 

From an API perspective, there isn't a way to prevent a user from changing the agent state until particular tasks are executed.

 

But thinking out loud here, I have never tried this myself, but I am wondering if you can access the agent state dropdown via javascript from your custom gadget. I know that from a gadget, you can communicate with another gadget, but the agent state is in the header, so I'm not 100% sure you can. Ultimately, it is on the same container, so maybe? If I get a chance, I'll give it a try. But in the meantime, maybe you can explore that route.

 

Untitled.png

 

Thanx,

Denise

View solution in original post

8 Replies 8

dekwan
Cisco Employee
Cisco Employee

Hi,

 

From an API perspective, there isn't a way to prevent a user from changing the agent state until particular tasks are executed.

 

But thinking out loud here, I have never tried this myself, but I am wondering if you can access the agent state dropdown via javascript from your custom gadget. I know that from a gadget, you can communicate with another gadget, but the agent state is in the header, so I'm not 100% sure you can. Ultimately, it is on the same container, so maybe? If I get a chance, I'll give it a try. But in the meantime, maybe you can explore that route.

 

Untitled.png

 

Thanx,

Denise

Hi,

Yes, that could work, we'll explore that a bit. If you have chance to take a look as well, it would be appreciated, thanks. Any change to push this up to BU as well, to maybe get the APIs enhanced in future versions? Don't know how much there's business pressure on such functionality in general, but we could use that kind of functionality in quite a few use cases valid for our customers.

Thanks,
Timo

dekwan
Cisco Employee
Cisco Employee

I am not sure how many customers need this same functionality. I haven't heard any requests for this before, but I will forward your request to the BU. Before I do that though, I'd like more specifics.

 

maybe get the APIs enhanced in future versions?

How do you think the API should be enhanced? Like have a disable field to determine if the agent can change their state or not? 

 

Thanx,

Denise

 

Hi,

 

The model I was thinking was that you could cancel some events as they occur. At high level, you can register handler to user onChange event, right? For a developer, it would be easy if inside your handler, you could "cancel" the event ... and that would mean that the event will not get executed at all. It might be tricky in practice, as there are various types of changes (confguration, state, ect.) that do trigger that onChange event, but in theory that was my thinking.

Another way could be to add activate/deactivate methods to "state select elements" (voice and other channels). I mean,  at ContainerServices level, there could be methods like activateVoiceState, deactivaetVoiceState, activateLoginCtrl, deactivateLoginCtrl, etc.?

dekwan
Cisco Employee
Cisco Employee

Hi,

 

Canceling events might get a little tricky. I think having activate/deactivate methods is more realistic. Either way, I will send both your suggestions and request to the BU.

 

Thanx,

Denise

Thanks

 

--timo

I'm adding similar functionality to a custom gadget. I need to limit how the agent can control the call at certain times.

Seems that the simplest way to achieve what was described, is to prevent the state select from reacting to pointer events ... in our gadget code, we do the following:

disable: window.parent.$('#voice-state-select').css('pointer-events','none');

re-enable: window.parent.$('#voice-state-select').style.removeProperty('pointer-events');