Problem absence of information recovering conversations info

Hello,

We have a problem recovering information about conversation details. We execute a batch process daily at 1 a.m. to extract conversations made previous day. We are using Java SDK version 7.1.2 (with version 16.1.0 also happens), the method used is postAnalyticsConversationsDetailsQueryWithHttpInfo from AnalyticsApi, this is a code example used:

String date = new SimpleDateFormat("yyyyy-MM-dd").format((new DateTime(new Date())).minusDays(1).toDate();
ConversationQuery body = new ConversationQuery();
body.setInterval(date+"T00:00:00.000Z/"+date+"T23:59:59.000Z");
body.setOrder(com.mypurecloud.sdk.v2.model.ConversationQuery.OrderEnum.ASC);
body.setOrderBy(com.mypurecloud.sdk.v2.model.ConversationQuery.OrderByEnum.CONVERSATIONSTART);
PagingSpec pagingSpec = new PagingSpec();
pagingSpec.setPageNumber(pageNumber); // Where pageNumber is a integer value between 1 and maximum number of existing page
pagingSpec.setPageSize(100);
body.setPaging(pagingSpec);
ApiResponse conversations = new AnalyticsApi().postAnalyticsConversationsDetailsQueryWithHttpInfo(body);

The problem is that in the execution at 1 a.m. everything was perfect, but if we execute our batch 2 days later to recover the same information (in that case, conversations made 3 days in the past) the information changes adding segments of type wrapup that in the previous execution we didn't have. It's curious, because all of those new segments of wrapup are for participants with purpose = outbound. An example:

Execution during 25th of July at 1 a.m.:

2017-07-24T07:00:54.474Z 20dbb439-ae82-49b8-ab6e-703b6244ff89 tel:+33621334923 2017-07-24T07:00:48.557Z dialing false 2017-07-24T07:00:24.484Z 2017-07-24T07:00:54.474Z interact false 2017-07-24T07:00:48.557Z 4f0300ba-4304-4793-b4a9-1ce42573d6f4 sip:+33179350630@10.98.0.250;user=phone b43483f4ef6f937184268e6caf8eb796 d2221adc-f078-4595-a64e-bf4f076af3c3 outbound 2e9d8e57-525b-40ec-8120-5f828a933ef4 98a26818-9e03-4953-8d66-83b10eb303cc voice Xxxx c2be0fd1-6ddc-40b3-a998-6f82fcdb68c8 customer tel:+33621334923;tgrp=b40625fc-9a4e-4596-a7ee-2100e1230738;trunk-context=euifrance 2017-07-24T07:00:54.470Z system false 2017-07-24T07:00:54.470Z 4f0300ba-4304-4793-b4a9-1ce42573d6f4 tel:+33179350630 b43483f4ef6f937184268e6caf8eb796 1cb8065c-f518-4cfb-b957-a2ac6a38aed2 outbound 2e9d8e57-525b-40ec-8120-5f828a933ef4 disposition.classification.callable.noanswer 98a26818-9e03-4953-8d66-83b10eb303cc voice Yyyy 3b8010f8-4bc9-451a-8b3d-338dfc1d0b31 outbound 2017-07-24T07:00:24.484Z

Today's execution at 10:25 a.m.:

**2017-07-24T07:00:54.753Z** //ConversationEnd has changed?? 20dbb439-ae82-49b8-ab6e-703b6244ff89 tel:+33621334923 2017-07-24T07:00:48.557Z dialing false 2017-07-24T07:00:24.484Z 2017-07-24T07:00:54.474Z interact false 2017-07-24T07:00:48.557Z 4f0300ba-4304-4793-b4a9-1ce42573d6f4 sip:+33179350630@10.98.0.250;user=phone b43483f4ef6f937184268e6caf8eb796 d2221adc-f078-4595-a64e-bf4f076af3c3 outbound 2e9d8e57-525b-40ec-8120-5f828a933ef4 98a26818-9e03-4953-8d66-83b10eb303cc voice France c2be0fd1-6ddc-40b3-a998-6f82fcdb68c8 customer tel:+33621334923;tgrp=b40625fc-9a4e-4596-a7ee-2100e1230738;trunk-context=euifrance 2017-07-24T07:00:54.470Z system false 2017-07-24T07:00:54.470Z //New segment???? **** ** 2017-07-24T07:00:54.753Z** ** ININ-OUTBOUND-NO-ANSWER** ** wrapup** ** false** ** 2017-07-24T07:00:54.753Z** ** ** 4f0300ba-4304-4793-b4a9-1ce42573d6f4 tel:+33179350630 b43483f4ef6f937184268e6caf8eb796 1cb8065c-f518-4cfb-b957-a2ac6a38aed2 outbound 2e9d8e57-525b-40ec-8120-5f828a933ef4 disposition.classification.callable.noanswer 98a26818-9e03-4953-8d66-83b10eb303cc voice L'olivier 3b8010f8-4bc9-451a-8b3d-338dfc1d0b31 outbound 2017-07-24T07:00:24.484Z

Do you know why information of conversations closed in the past has changed?

Thanks in advance.

The data returned from the API is always the most accurate data PureCloud has at that time. PureCloud provides data as a service in real-time, as opposed to only providing data when it's "done" and can never possibly change. If you retrieve a conversation object, update that conversation, and then retrieve it again, it will have different data than the first time you retrieved it. This behavior is expected.

If you're getting results that are missing data that you know should be there, or conversely getting results that contain data that shouldn't be there, that will need to be investigated by a support ticket.

Does it exists some way to change a closed conversation then? How is it possible, through API or from Purecloud App?

Otherwise, is it possible that some rule defined can change adding wrapup segments 2 days later when conversations was finished?

Thanks

There's no concept of a conversation being "closed" or "done". The data returned from the API represents everything we know about the conversation at the time it was retrieved. If anything happens to alter that conversation at any point in the future, the data returned by the API will be different. This could be caused by a user action like assigning a wrap up code, or it could be a system action like reprocessing raw data and updating the conversation object accordingly (this reprocessing can produce different data if a bug in the processing logic was fixed). This is why it's important to use PureCloud as a Data as a Service (DaaS) provider so that you always get the most up to date data.