Author Message
YoshihikoTashiro
Joined: Mar 10, 2014
Messages: 22
Offline
Dear experts,
In my understanding, Custom Class for Post Processing of Jobs is for customizing processes after contact attempts instead of writing results of each attempt into CSV files.
Is that correct?

If so, how can the custom class get UCID and agent login ID for each contact?
The reason why I’m asking is that the class 'PomAttemptInfo' does not include either ucid or agent login as page 394-395 on ‘ Avaya Proactive Outreach Manager Developer Guide’ shows.
Refer to https://downloads.avaya.com/css/P8/documents/101073116.

Any idea/comment would be appreciated.

Regards,

Yoshihiko
GlenTaylor2
Joined: Mar 9, 2017
Messages: 14
Offline
The Custom Class for Post Processing was the original mechanism provided by POM to support users' needs for more information (particularly real-time information) from POM. The CSV file(s) and/or reports that POM provides give the final disposition of contacts and campaigns when the dust settles, but not everything that happened to get there. By building a custom class, a user can tap into the internal event bus and observe ALL of the events occurring within POM as it executes campaign(s). For most users, building this type of processor and "drinking from the event firehose" are more than they wanted. Avaya responded to the desire for less, but more targeted, information by implementing a Kafka event stream. Users can subscribe to the Kafka event feed to more easily get real-time information. Kafka even sorts events out into useful categories so that only relevant events need to be subscribed to. You can probably find the document (11073119 Avaya Proactive Outreach Manager 4.0 Event SDK) providing the Kafka Event SKD on the Internet.



I'm wondering why you are trying to get UCID and AgentID. In the "standard" inbound agent scenario, having those two pieces of info will help you associate a particular caller - agent interaction. That isn't as straightforward with POM. Remember, POM creates a "nail up" connection with the agent. That's a potentially 4-8 hr long "call" that I'm sure is assigned a UCID, but of little value. POM then places calls to contacts. Each of those calls has a UCID, I'm sure, but again the value of that UCID may not be that high. And, finally POM conferences the called-party call with the agent nail-up. What's not obvious in this is how you would find and associate a useful UCID with the agent ID for a specific interaction.



If you are trying to look at specific called-party & agent interactions, there are at least some Kafka events that will give you the phone number called, the "contact record ID," and the agent ID information already associated in a single event. Within the context of POM, it makes more sense to me that you really want to use this association rather than looking for a UCID to pair with an agent ID to make the association on your own.



Hope that helps.


...glen


__________________________ GLEN A. TAYLOR | Solutions Architect Interactive Northwest, Inc.
YoshihikoTashiro
Joined: Mar 10, 2014
Messages: 22
Offline
Glen,
Thank you very much for answering my question and detailed information.

Let me explain the background of the above question.
One customer wants to listen to the recorded conversation between an agent and an end user by clicking the link on his/her own CRM system.
The BP for the customer asks us how to get UCID of each attempt to associate the one that ACRA has.
He has already verified that UCIDs on Campaign Detailed reports and ACRA’s are the same, but he said downloading the reports is not systematic.

I recommended him to read exported CSV files regularly, but such a file-based batch process might not be applicable for customer’s environment (I don’t know the detail).
So, I’m focusing on Custom Class for Post Processing.
As I asked, UCID is not in the class 'PomAttemptInfo' and its definition on page 395 on ‘Avaya Proactive Outreach Manager Developer Guide’ ends without right parenthesis unnaturally.
That makes me expect there are some hidden items including UCID.

Changing the question, are there any undocumented items in 'PomAttemptInfo'?
If no, I’ll let him know Event SDK.

Lastly, agent login ID is not required in this case. It’s just a preparation when someone asks in the future.
I’ll apologize if it confused you.

Regards,
GlenTaylor2
Joined: Mar 9, 2017
Messages: 14
Offline
Thanks for the background. It is always easier to give a "better" answer to a question when you understand the context.


Let me add a small caveat to my answers. I've been working in this space for "quite a while" ;-). It's been many years since I personally did the actual programming, so my knowledge of the individual API calls, their parameters, etc. is very limited. However, I do try to maintain a reasonable understanding of the architecture and general integration points. That's the basis for any "answers" I give.


If you dig through the Kafka SDK, you may find the info that you are looking for. I don't know one way or the other. However, based on what you have said, it is clear that POM sends the UCID of the desired agent-contact interaction to the recording system when it starts a recording. Let's briefly discuss how that works.


Since all agent-called-party interactions are really a conference (agent nail-up connection with the called-party connection), recording systems have to integrate to the POM Call Recording API (available for download on this website). Call recording systems typically do their recording by monitoring the agent end of all agent calls. If the call recorder simply began recording when the agent nail-up connection started and ended when it droped, the recording would essentially be useless. The agent will have spoken to many people and ALL of that including the silence between conversations would be in that multi-hour recording. The call recording system needs signals (events) to tell it when to start and stop recording each of the individual agent interactions. That's the function of the Call Recording API. The Call Recording API is a bit more complicated than just RESTful web service methods. It's a socket connection, but if you look at the API document, you'll see in the MediaInfo Event that the AgentID, agent extension, UCID, campaign type (progressive or preview), etc. are all provided. That's obviously how the call recordings can have the correct UCID to associate with that specific recording.


If you are unable to locate an easier API method to get the UCID you need, I'd suggest investigating building an interface to the Call Recording API. I don't believe that there would be a problem with more than one "recorder" client using that API, so you should be able to sit in parallel with the actual call recording system. That would allow your integration to harvest the correct UCID from every agent call. Hopefully, the rest of the information in the MediaInfo Event would give you a useful key for storing that UCID back into the customer's CRM system (ACRA). If not, you may be able to use another contemporaneous event, probably from Kafka, to associate the UCID in the MediaInfo Event with the appropriate CRM record. I have no idea how big a programming task this will all turn out to be, but I think this will give you a technically feasible solution.


__________________________ GLEN A. TAYLOR | Solutions Architect Interactive Northwest, Inc.
YoshihikoTashiro
Joined: Mar 10, 2014
Messages: 22
Offline
Hi Glen,
Thank you very much for your comments and advices.
They help me to decide what and how I should answer him.

Honestly speaking, I hesitated to suggest Event SDK since it makes me image Proactive Contact’s CORBA-based one; it sounds tricky for me.
I wonder if he can build an application with Event SDK and/or Call Recording API in limited time and resources.
And, I wonder if we can support him when he is in trouble with them!
OK, I’ll talk to him.

I appreciate your support.

GlenTaylor2
Joined: Mar 9, 2017
Messages: 14
Offline
Tashiro san,



I'm glad that my posts may be helpful. I can understand your concern about the possible programming complexity and supportability. As I've already confessed, it's been quite a long time since I considered myself a "programmer" (my last programming job used C, a little C++, and Unix shell scripting). Since I don't have a direct feel for how difficult my "suggestions" would be to implement in something like Java, I can't estimate how difficult this might be for you or your customer. I suspect that the Java programmers on our engineering staff wouldn't have any trouble, but we are a development shop and that's basically our business.


Let me offer one final thought. If building an application to mediate getting this information from POM and placing it into appropriate records in the ACRA CRM system could be a problem, I wonder if you might find a solution without building a new integration to POM? If I understood your description correctly, there are existing links in the ACRA system that a user can use to access recordings between a specific "customer" and agents who have spoken with that customer. I assume that today those links to recordings are the result of inbound contact center agent calls being recorded and then a link to the recording somehow being put into the ACRA records. Since the recording system should already have the integration to POM (using the POM Call Recording API), the recording system should already have access to all of the information you are seeking even if they don't do anything with it today. Perhaps the mechanism that currently connects those inbound call recordings to ACRA records could be modified/enhanced to provide the same linkage for the outbound POM calls. If everything is currently being done by the recording vendor, I know that recording vendors usually will entertain building certain forms of "customizations" if asked. If the cost for the recording vendor to provide the capability is acceptable to your customer, that might provide a solution that avoids you, your customer, or a third party software developer from creating and maintaining a new POM-to-CRM system integration.


I hope one of these works. Feel free to update this thread later with some status.

Warm regards,
...glen


__________________________ GLEN A. TAYLOR | Solutions Architect Interactive Northwest, Inc.
Go to:   
Mobile view