Showing results for 
Search instead for 
Did you mean: 

Integrating Finesse and IM/P Availability

Mike Hagans
Level 1
Level 1


Anyone ever integrated these? I'm trying to sync the availability between Finesse and Jabber. If a user is in Not Ready, their Jabber will show DND and if they're in a ready state, jabber will show available. I'm having a hard time locating the REST API for the IM/P server to send GET requests to poll availability. Granted, I am a little new to this... I have the REST API for UCCX but so far, it looks like I can only get the availability for one user, is there a way to get this for ALL logged in users?

Thanks for any comments. I've been in the IM/P Developer Guide and will continue to read on..

11 Replies 11

Cisco Employee
Cisco Employee


I am not familiar with the IM/P REST APIs, but you may want to ask in the Jabber forum.

How are you planning on building this integration? Is it an application that monitors everyone and sets the state for everyone? Or is this integration going to be on the agent's desktop?

Finesse is not a monitoring application so there isn't a way to monitor the state for all logged in users. It does have a REST API to get the list of all users and their state, but this can only be accessed with an administrator user. A supervisor can get events for the users in their team, but not ALL logged in users.

I would suggest that your integration happens on each individual agent desktop since the desktop already knows the state of the agent.

My suggestion below is assuming that you were able to figure out the Jabber REST API to set the Jabber state. What application are the agents using for their desktop? I will give a suggestion for two possible scenarios:

1) The Finesse out of the box agent desktop

If the agents are using the Finesse out of the box desktop, you can build a custom gadget that calls the Jabber REST API when the user changes their agent state. You can use the ExternalRestApiSampleGadget as a base.

2) A custom agent desktop

If the agents are using a custom desktop, when you receive the user event, check to see if the user's state has changed and call the Jabber REST API accordingly.



CU IM & Presence has several APIs that you might find useful here - see in particular the 'Presence Web Service': Cisco DevNet: UC Manager IM & Presence APIs - Presence Web Service - Latest Version

Awesome. Thanks for the responses. Yes, the intent was to use an application to monitor the agents state in Jabber and when it is changed, update the state in Finesse. I like the idea if the gadget, but the end users are mainly in Jabber today so our plans were to keep them in Jabber and possibly utilize a 2 RING component to add a tab in Jabber to login, etc. But they would control their state in Jabber. Just trying to minimize the learning curve...


Ah. So you want the Jabber's presence to determine the Finesse's agent state. Understood. I thought it was the other way around. If so, why do you need to get the agent state for all the logged in agents in Finesse?

So the only way to change an agent's state is via the User - Change Agent State API. Per documentation, only the user themselves and their supervisor can change the agent's state. So if you build an application to change the state in Finesse per Jabber state, this application is going to need to know the credentials for all the agents or your configuration will have to be where there is a supervisor who supervises all the agents. If I remember correctly, there is a max number of agents that can be on a team.



Hmm. Well, To answer your first question about why I needed to get the agents state from Finesse... I guess in a round about way I was ultimately looking for the API to update the agents state in Finesse. But, I was unaware only a user or supervisor could change the state of an agent... And to write an app with all the agents credentials may be a head ache

So, I suppose that causes a road block for this approach unless I came at it from the other angle you first suggested... Using a gadget to update the state in Jabber instead.

Thanks for all your help with this by the way.

Since 2 Ring has a component you can add to the Jabber tab, is there a way to piggyback on that and add the integration in a similar fashion where the changing of state happens from the Jabber itself? I am not familiar on the different integrations on Jabber, but there has to be something similar on the Jabber side if 2 Ring has a component.

Great idea. I'll actually have a demo with them tomorrow. I'll have to see if that can be done and go from there. Thanks again for the help.


Can I ask you one more question. If I am trying to send a PUT request to IM/P, it wants a session key. How do I know what that is to put in my http header ?


The IM/P REST API should specify what key to use in the http header for the session key. I am assuming that is in the documentation for the IM/P.



True...see the 'Login and Authentication' section of the 'About the Presence Web Service' module in the developer doc

Hmm. It tells me the application user must be used to update end user information and the session key of the application user is what is needed to be used but I'm not seeing what that specific string is.

Forgive my possible ignorance here, I'm new to this.