Data Warehouse Integration ( DWH / BI )

Dear Community,

We just changed our previous telephony system to GENESYS.
As we are integrating these data into a data warehouse for BI-reporting purposes, our new goal is to adapt that mechanism to ingesting GENESYS data.
After watching John Carnell’s super interesting videos about APIs, „fair usage“, „rate limits“ etc., we now know, that there is a lot to consider…
So we identified the „Conversation Aggregate Data“-API as very promising, and will try to utilize it combined with our ETL-tool, to get the data into the DWH.

Unfortunately we couldn’t find a topic like „data warehouse integration“ in the this forum, that would give an overall view or examples of a „typical“ implementation…
Here are some design parameters of our planned implementation:
daily load of the data (media type only voice; data of interest like calls offered, answered, abandoned and calculated service level from these, etc.)
with a granularity of half an hour („PT30M“) - which extraction-interval should then be used every day (as we understand that aggregate APIs lag behind the actual data)?
What would be possible primary keys to merge already existing data in the DWH with incoming updated data,
or if we’d like to combine the „conversation aggregate data“-API with information from other APIs (regarding agents/supervisors)?
Wouldn’t it be great to open a new topic „data warehouse integration“ in this forum?! :blush:

Thank you very much for further insights into these kinds of conceptual formulations!
Best regards,
Kai

Hi Kai,

The Data Integration Guide on the developer centre should be a big help to you. It contains a decision grid and based on your use case, the most appropriate APIs would be the User Details Job and Conversation Details Job.

As for possible primary keys, conversationId is usually a good choice because it is guaranteed to be unique, but your choice might differ depending on business requirements.

If you're using an SQL database for warehousing, the blueprint I wrote on designing an SQL database for storing analytics JSON data might be of help to you.

1 Like

Hi Ronan, thank you for your reply and your data model!

Yes, we did study the data integration guide, so for our DWH-purposes (calculation of service levels etc.) we chose to use the aggregate APIs (conversation and flow aggregates), and not the detail ones, as you propose…

Your very interesting document “Design a SQL database for storing analytics JSON data” shows some of the existing dimensions and their relations – but for example the flow aggregate API information is missing - could you please give us a clue, how to integrate these flow data (about agents, skills etc.), too? Is the foreign key here the conversation_id, too, and is it also dependent on the session_id?!

Is there a larger data model available, at least for the aggregate API data?

If we chose to load aggregate analytics data into our DWH daily: which time interval should be used to get complete and accurate data: last day, or even the day after yesterday? (I’m asking because of the mentioned “48-hour window” here: Clarification around 48 hour limitation for Analytics Conversation Jobs API)

Thank you and best regards,
Kai

Hi Kai,

I chose the primary key of the parent object as the foreign key when I designed that database for flattening the JSON structure.

The response schema for the flows and conversations aggregates APIs can be seen in the response schema of each:

The interval depends on how often you'll be running the job to pull data from the API. So if you are running it once a day then a 24-hour interval would be appropriate.

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