Author Topic: Interaction listener  (Read 4133 times)

Offline exorx

  • Newbie
  • *
  • Posts: 6
  • Karma: 0
Interaction listener
« on: July 29, 2013, 03:49:01 PM »
Hi, we'd need to build an interaction listener.  As an example, when a call comes in, we we'd like to be informed when the call is started, ended, when the call is transferred etc. so we can call our homemade CRM system with some data about the interaction (can't use G+ since it's a homemade CRM).  Right now, we need to "listen" to voice interactions only but we'll need to listen other type of media interactions as well like chat in a couple of months. 

I've searched the Platform SDK doc and I can't find exactly what I'm looking for.  I'm using the .NET version (8.1.000.11) right now.  If I try to connect to the InteractionServer using the InteractionServerProtocol object, will I be able to listen to voice interactions or only non-voice interactions?  Since UCS-eServices is enabled on our server (even if we don't really use it), maybe I should connect to this server instead?

Is there anybody who did the same thing and could point me in the right direction?

Thanks

Offline cavagnaro

  • Administrator
  • Hero Member
  • *****
  • Posts: 7639
  • Karma: 56330
Re: Interaction listener
« Reply #1 on: July 29, 2013, 06:49:52 PM »
You need a connection for each TServer, the one that handles voice and then the multimedia interactions too as Chat.

Offline Timur Karimov

  • Sr. Member
  • ****
  • Posts: 415
  • Karma: 2
Re: Interaction listener
« Reply #2 on: July 30, 2013, 06:44:06 AM »
Hi there
Time by time , then I read in customer request something like this: "when a call comes in, we we'd like to be informed when the call is started, ended, when the call is transferred etc.so we can call our homemade CRM system with some data about the interaction",  - the first question what I every time ask - WHY?!
Why you need to inform you CRM about every call transformation step? In my world, CRM  - it all about customer relations, but call transformtion tracking - it's not about relations it's about you infrastructire technical work.
So, don't invent the new bike! Use already existing one!
Ask yourself about motiv, about real task what you need to achive!?
You need to integrate routing system with CRM to achive the dynamic and intellectual routing?
You homemade CRM must provide this data to routing system. Create SOAP interface or any other API-like call point. And use it from URS/ORS/GVP.
You need technical tracking for control , for reporting system, etc?
Use ICON and Statserver/CCA. It's both don't need any additional licenses and easy to deploy, support and use for enduser. DataMart and CCPulse do not meet the user requirements ? Use any of available BI system or just create the banch of homemade reports with any reporting system.
Well, another side.
You need to integrate the agent desktop with you homemade CRM?
And again in most cases you don't need any custom servers to monitor low-level T-Lib interfaces from T-Servers. Which one agent desktop you use? Is it any of comercial system or homemade too? If it's homemade - why you just can't send the interaction data from it? If it's commercial - ask the developers about such cusomizing API.
For example, both of Genesys standart solution (i mean GAD and IWS) have a great capabilities to create such custom extensions.

WBR Tim


Offline exorx

  • Newbie
  • *
  • Posts: 6
  • Karma: 0
Re: Interaction listener
« Reply #3 on: July 31, 2013, 12:28:16 PM »
Hi again, thanks for the quick answers. It's great to see a Genesys community where I can actually get answers from!  If I got trouble communicating with the T-Server, I'll get back to you!

Hey Timur, initially, I wanted to do everything from our own systems (agent desktop as an example) but my entreprise wants to know if the client called on the IVR and ended the call before reaching an agent, when the client calls back, they want to be able to know if the client called twice etc.

Offline Timur Karimov

  • Sr. Member
  • ****
  • Posts: 415
  • Karma: 2
Re: Interaction listener
« Reply #4 on: July 31, 2013, 02:25:01 PM »
[quote author=exorx link=topic=7921.msg34706#msg34706 date=1375273696]
Hey Timur, initially, I wanted to do everything from our own systems (agent desktop as an example)
[/quote]
On low-level T-Lib request with out using existing Enterprise SDK modules? God help you in this case =))
[quote]
but my entreprise wants to know if the client called on the IVR and ended the call before reaching an agent, when the client calls back, they want to be able to know if the client called twice etc.
[/quote]
It's a very simple case which can be easy solved on routing side with standart URS/ORS methods
WBR Tim

Offline exorx

  • Newbie
  • *
  • Posts: 6
  • Karma: 0
Re: Interaction listener
« Reply #5 on: July 31, 2013, 06:08:35 PM »
We're using Composer and SCXML for our strategies.

By standard URS/ORS methods, you mean to call web services from within our composer workflows to call our crm system?  Would you elaborate a bit more on this one.  I don't see how I could get the call end date using this method.

Since we got a lot of strategies, we would need to modify a lot of strategies to communicate with our crm system within our composer orchestrations directly. 

Something external which listens to interactions would be easier to implement from my point of view.  Feel free to get back to me.

Thanks

Offline bublepaw

  • Sr. Member
  • ****
  • Posts: 283
  • Karma: 10
Re: Interaction listener
« Reply #6 on: August 05, 2013, 08:51:37 AM »
Some comments:
- if You have eService You already have component called UCS which does exactly what You ask - keeps track of who and when reach Your contact center.
- I fully support Timur POV - for such simple service as tracking who disconnected on IVR and how much time customer tried to reach us it is best practice to use web service calls from IVR/strategy
- If You are using IVR I am assuming You already have some reporting there which probably has this information already
- actually in SCXML strategies You can easily track disconnection event
- implementing event listener is more complex because:
- You need to properly understand Genesys event model - for simple scenarios without transfer it is easy but for more complex scenario it becoming a problem and for multisite transfer it is really challenging task. Just to give You example EventReleased not always means that call is fully disconnected
- You need to implement some kind of high availability mechanism if You want solution to be reliable
- all those things are already in Genesys components so implementing using simple methods is faster and safer
- You can create code which is shared between multiple flows to simplify implementation
- also since You have lot's of strategy maybe this project is good opportunity to cleanup things and limit number of flows for example by implementing generic workflows driven by GAX parameters