cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
459
Views
3
Helpful
12
Replies

Finesse workflow to POST metadata to CalabrioOne

DilipChazhiyill
Level 1
Level 1

Hello Experts,
We want to pass metadata from PCCE-Finesse to CalabrioOne.

We used the HTTP POST API call to https://calabriocloud.com/api/rest/recordingcontrols/metadata
and pass the JSON body:

{
    "acdServerId":"13",
    "acdId":"6174",
    "metadata" :
        [
            {"name":"call-variable-1-key","value":"Test Complaint Resolved"},
            {"name":"call-variable-2-key","value":"Test PV2 Data here"}
        ]
}

But Calabrio API document says that we need to pass JSESSIONID in the header (got from https://calabriocloud.com/api/rest/authorize).

How do we build this integration? Please share your thoughts.

Thank you.

12 Replies 12

Hi @DilipChazhiyill 

I think that Workflow will not be enough to make POST request to Calabrio. Prbobably you will need custom gadget to do that.
Why?
In my opinion to get JSESSIONID you will need to Authenticate - establish new session with Calabrio cloud before you can make metadata requests. Workflow allows you only to make a single request but not collection of requests.

As a reference you could use Sample Gadget to create this integration - Link 

Marek https://gaman-gt.com
UCCE, PCCE, UCCX, WxCC, Cisco Finesse, Custom Gadget, CVP, CUIC, CUCM

DilipChazhiyill
Level 1
Level 1

Thank you, Marek.

Experts, Are there other ways to solve for this - send metadata (essentially variables 1 through 10) from UCCE to CalabrioOne?
Any suggestions please?

Thank you.

You've changed what you're asking for, so what is the issue? In your first post Marek mentioned that you'll need to do this with a custom gadget there's no other way. In your second post you talk about just sending PVs, which an HTTP workflow should handle just fine.

david

Hi David,
Sorry for the confusion, when I said metadata, I meant the PeripheralVariables (as in my JSON example).

I appreciate the answer from Marek. I haven't worked on Gadget, so I wanted to gather alternate ways that Experts have tackled the problem.

The HTTP Workflow in my initial post executed on the event; but it pops up a dialog-box in the Finesse Agent to enter credentials to - https://calabriocloud.com/

I followed this UCCX/Finesse Posts (https://community.cisco.com/t5/contact-center/uccx-passing-metadata-from-finesse-to-calabrio-call-recording/td-p/2950423)

Quoting from Calabrio One API Reference Guide - "When your credentials are accepted, you will receive a response that includes a session ID. The session ID must be included as a header in all subsequent API calls. This is how
Calabrio ONE verifies that you are logged in and authorized to use the APIs. Some API development tools like Postman will save the session ID and pass it back on subsequent requests without the need for intervention. Other API tools
require you to set the header manually. This session ID must be formatted in a key-value pair with “cookie” as the key and the session ID added after “hazelcast.sessionId=” as seen in the following key-value pair.
“cookie”: “hazelcast.sessionId=<The session ID as it appears in the Authorize API response>”

I am following the Postman Collection provided by Calabrio (https://www.postman.com/calabriose/workspace/calabrio-api-demo/request/807744-46ad06f8-5cb5-4697-a505-4919ecf04cc5)

There is no other way to do this, you MUST use a gadget.

david

I might be missing what you're trying to do, but if you're using UCCE and Calabrio, you can simply go into QM Configuration/Metadata Manager and add in the Peripheral Variables you want to have written to the Calabrio recordings, and you name them how you want. You don't have to set up any type of POST of the data.

Thanks Bill. I had started by adding just a couple of metadata and selected ACD Data (as in the attached screenshot). The Read-Only attribute grays-out when I select an ACD Data. The Metadata fields are grayed out when I open the Interaction (as in the second screenshot).
Does this need any other change, flagging, or permission?
I tested this by removing my Workflow, but nothing is being written to these fields.

Thank you,
Dilip

Maybe you have a different version of Calabrio, but when I go into Metadata Manager I can just name the field, select what I want (like the various PVs or other infor), save it, and then it is set for all future recordings, see screenshot.

billking1_0-1718798270795.png

 

Bryce Owen
Level 1
Level 1

Do you have a on prem recording server used by Calabrio One Cloud to sync the agents from your PCCE?

Hi Bryce,
I am not really familiar with the architecture/layout on this customer. But there are 03 on-prem servers and one of them is named the "RECSYNC".

We have something similar but instead of UCCE we are using UCCX on prem. I am curious, have you been able to make any progress? We have made some progress but still don't have a completely working solution yet. I can add some metadata text to a recorded call by post calling the api and using it's specific contact ID, but anything else I try to use won't work even though I get back a 200 response saying it was successful. For example if I try to use the device name, acdId or extension nothing gets added to the previously recorded call.

If there is a valid sessionId passed, I am able to get the APIs to POST, GET data. What is the response that you get (for example: 

"description": "Command METADATA sent successfully for agentName" ?

The other thing to note, is that the Roles and Permissions for both - API user and agent - need the flag - Recording Controls --> Add Metadata Button.