Tracking changes made by nightly process

I am interested in using the Conversations API to pull all of the conversations for a given time period, most likely a full day or hour. It is important that historical data accurately reflects the server, and in order to prevent manual changes after extraction we have implemented policy controls that prevent agents from modifying records after a conversation has been wrapped up. However, I am aware that there is a nightly batch process that goes through records and applies bugfixes and logic changes where necessary.

Would it be possible to know which records have been modified by this process? Either a list of records that were modified or an exposed "last modified" date for all records would serve this process.

Thanks

The source data within PureCloud's records doesn't change; just the representation of that data delivered via the API. Because of this, it's not possible to know when a representation changes.

PureCloud provides conversation data in a Data as a Service (DaaS) manner, which expects consuming applications to retrieve the desired data in real-time as it's needed. This means that applications that choose to cache data from the past inherently run the risk of not using the most up to date data.

If you must use a data caching process, you might consider storing a hash of the conversation object in your database. That way, when you try to sync conversation records, you can compare the hash from the database with a hash of the object from the API to determine if there was a change. That could save some cycles on your end so you aren't updating your records unnecessarily.

Does this mean the representation of all historical data can change without warning, or is there a period of time after which cached data can be considered fixed?

Comparing the hash of objects should work for data over a couple of days, but if all conversations need to be checked during each sync, this method will be unfeasible for analysis over periods of several weeks or months.

Could you also confirm which fields in a record are likely to have their representation changed? If the source data is not changed, does this mean timestamps will be untouched?

The representation will change whenever improvements or bug fixes are made. PureCloud utilizes a continuous deployment model, so updates to the services roll out as they are made. The data is always the most correct data available at the time it is retrieved, but data that was retrieved in the past has the risk of being outdated. This is the nature of Data as a Service; applications that choose to cache old data instead of retrieving it on-demand will inherently have old data.

We don't change it just for fun; there's always a specific reason like an improvement or a bug fix. Any fields are subject to change if they need to be updated. For example, a timestamp may change if there was a bug found in how that timestamp was being calculated.

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