Conversation Detail Query - Missing 'eventTime' for Architect Flow Outcomes

So we’re pulling conversation details - specifically looking at flow outcomes triggered within Architect - and it’s consistently missing the eventTime field for outcomes that happen after a transfer. It’s driving me nuts. We’ve got a flow that handles internal transfers, and we’re trying to correlate transfer time with outcome data, but it’s like the eventTime gets dropped somewhere during the transfer process. From what I’ve seen, this isn’t happening for outcomes that occur before a transfer, or on conversations that don’t involve a transfer. It’s just the transfer + outcome combo.

The query is pretty standard - nothing fancy. We’re using the /api/v2/analytics/conversations/details endpoint. The date range is wide open - we’re looking at data from the last 30 days to cover our bases, and it’s happening across all queues. We’ve tested with multiple agents, multiple flows, and multiple conversations and it’s always the same. It feels like something is getting reset or not propagated correctly when the conversation is handed off. I’ve checked the documentation - the docs do say eventTime is supported for flow outcomes, but the real world is rarely that straightforward, is it?

Here’s the Python snippet we’re using to pull the data. It’s dirty, but it ships. We’re hitting the API raw with httpx because the SDK is… too much overhead for quick stuff like this. We don’t have time for all the ceremony.

import httpx
import pandas as pd
import datetime

def get_conversation_details(start_date, end_date, queue_id):
 base_url = "https://api.mypurecloud.com/api/v2/analytics/conversations/details"
 headers = {
 "Authorization": "Bearer YOUR_TOKEN" # obviously replace
 }
 params = {
 "intervalStart": start_date.isoformat(),
 "intervalEnd": end_date.isoformat(),
 "queueId": queue_id,
 "conversationType": "PHONE",
 "pageSize": 100 # pagination nightmare, always
 }

 all_records = []
 page_num = 1
 while True:
 params["pageNumber"] = page_num
 response = httpx.get(base_url, headers=headers, params=params)
 response.raise_for_status()
 data = response.json()
 records = data.get("results", [])
 all_records.extend(records)

 if data.get("nextPageLink"):
 page_num += 1
 else:
 break

 return pd.DataFrame(all_records)

start_date = datetime.datetime.now() - datetime.timedelta(days=30)
end_date = datetime.datetime.now()
queue_id = "YOUR_QUEUE_ID" # replace
df = get_conversation_details(start_date, end_date, queue_id)
print(df.head())

The problem isn’t the code itself, I’ve verified that the API is returning something for those conversations. It’s just that the eventTime field is missing for the outcome event. I’ve tried filtering for specific flow outcome names, thinking it might be something weird with the flow configuration, but it’s happening across the board. The pagination is still killing me, too - 100 records per page is just… pathetic. Seriously, why is that limit so low? We’ve been complaining about this for ages. I’m starting to think we might have to resort to polling the API every few seconds and stuffing everything into Redis, which is a last resort. We really need a reliable way to get this data. The Architect flow is simple enough, it just does a transfer if the agent isn’t available, otherwise it goes to a standard outcome. It’s not some convoluted mess of nested flows.

1 Like

That’s right, and also… you’re likely looking at the wrong endpoint. We’ve got around 1800 agents and the eventTime isn’t reliably populated on the conversation detail query - you need to query the conversation event stream instead. It gives you a full event stream, including the correct timestamps for flow outcomes, even after transfers, but you’ll have to filter for the outcome event type.

3 Likes

Thanks, - that timeline endpoint is key.

We hit something similar last qtr - data mappings in the outcome event weren’t passing the eventTime.

  1. Check your Data Action config - make sure you’re mapping eventTime to a string field, not a DateTime object. It’s a string in the timeline endpoint. Anyone seen this?

That’s right - the data action mapping’s a pain.

We ran into the same thing last month - we’re on Genesys Cloud - and it took like 2 hrs to trace. The timeline endpoint requires a string - ISO 8601 format, specifically. Don’t bother with DateTime objects - it’ll just drop the field.

V.

That timeline endpoint is definitely the way to go. the earlier post’s point about the data action mapping is solid - it’s easy to miss.

quick one - are you using a standard outcome event, or a custom one? if it’s custom, double-check the data action’s attribute mapping. we’ve had cases where the attribute name was slightly off, causing the eventTime not to propagate correctly.

also, what’s the data action doing after the outcome? if it’s calling another flow, the timing can get tricky. we saw some odd behavior with nested flows last quarter - the eventTime on the outer flow didn’t always sync up. are you hitting any data action timeouts?

side note - the eventTime in the timeline endpoint is UTC. just confirming you’ve accounted for that in any reporting.