Filter by participant data attribute

Hi,

I need to retrieve all conversations with an specific Participant Data to make a Count.

I am using this endpoint:

/api/v2/conversations/participants/attributes/search

Right now I am using this JSON to retrieve conversations for a given date range, but I wanted to know if it's possible to add a further filter, that is, I want returned only the conversations that contain the attribute "Enrutamiento". Right now my request json is the following:

{
"sortOrder": "ASC",
"sortBy": "",
"returnFields": [
""
],
"query": [
{
"type": "DATE_RANGE",
"fields": [
"startTime"
],
"startValue": "2024-08-25T00:00:00.000Z",
"endValue": "2024-08-25T00:00:00.000Z"
}
],
"cursor": ""
}

What do I need to add to filter by Participant Data, if it is possible?

Thank you.

Per Chris Bohlin when it was released;

From an API perspective, we have a new endpoint currently in beta which provides access to all attributes in real time, but its is not searchable - just provides access so that customers can consume it in their own data warehouses and then search it there. Our plan is to enhance this endpoint by building out a schematized set of attributes for customers to use that will make this more scalable and searchable in the future.

Thank you. I'm presuming that following your answer, is not possible right now to search by attribute name?.

Another question, right now for instance, for a interval of half an hour, this endpoint returns only 50 conversations. But we need to get ALL conversations with a specific attribute. I could filter the conversations by attribute manually within the code, but if it only returns 50 conversations, seems I will not be able to get the full count of conversations within a particular timespan?

Thanks

I don't even use it because it's so limited as to be worthless for any scenario I need this level of info for.

We harvest participant attributes in real time from a websocket notification and do any complex searching and reporting in external databases because there is no native API that is going to get you anything useful around these. They weren't designed to be used.

1 Like

The most effective method for retrieval is to split the interval into 30-minute intervals and process it using a loop. We follow this approach because using 1-hour, 2-hour, 3-hour, or 4-hour intervals results in missing data. If you have any suggestions for a better approach, they would be greatly appreciated.
But as per Genesys documentation if we split into 4hrs interval chunks it should retrieve data but it didn't work in our case

Hi Dileepkaranki

Intervals of half and hour also returned 50 conversations. Even intervals of 5 minutes. I think the call load is very significant for my client.

Further to your consideration, is it possible to filter by queue in this case? That is, add a filter to the JSON request that implies returning those conversations from a specific queue. I think this way I could reduce significantly the volume of conversations per API request. But I am not sure how to construct the JSON request since the API doc is not very clear. My API request is at the beggining of the post, if it's possible to filter by queue, I would greatly appreciate it if you could let me know what structure to add to the JSON.

Hi @marisa.grasso
I don't think we can filter by queue in the API call itself.
You need to filter by queues once you retrieve the results from Genesys.
If this endpoint only supports 50 conversations for each request it would have been better if there is totalHits property similar to Query for conversation details which would have made the process simple

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.