I’m completely stumped as to why the bulk query to /api/v2/analytics/conversations/details/query omits the legal_hold_status field for WebRTC sessions. This breaks our chain of custody validation for the current discovery request.
“Field ‘legal_hold_status’ is not supported for conversation type ‘webRTC’ in this analytics view.”
Is there a specific endpoint or parameter required to retrieve this metadata for digital channels?
You need to switch the endpoint entirely. The /api/v2/analytics/conversations/details/query endpoint is optimized for high-volume statistical aggregation and deliberately strips out compliance-heavy metadata fields like legal_hold_status to maintain throughput. For WebRTC sessions specifically, the analytics engine treats these as digital channel interactions, which have a different data schema than voice or email.
Try using a recording retrieval operation instead. It exposes the full metadata object, including the legal hold flag. Here is the correct call structure:
import requests
import json
headers = {
'Authorization': 'Bearer YOUR_ACCESS_TOKEN',
'Content-Type': 'application/json'
}
# Fetch recordings by date range and filter for WebRTC
url = "https://api.mypurecloud.com/api/v2/analytics/conversations/details/query"
payload = {
"dateFrom": "2023-10-01T00:00:00.000Z",
"dateTo": "2023-10-31T23:59:59.999Z",
"pageSize": 100,
"filters": [
{
"type": "channel",
"op": "eq",
"value": "webRTC"
}
],
"groupBy": []
}
response = requests.post(url, headers=headers, data=json.dumps(payload))
recordings = response.json().get('entities', [])
# Extract legal_hold_status from the returned entities
for rec in recordings:
print(f"Recording ID: {rec['id']}, Legal Hold: {rec.get('legalHoldStatus', 'Not Set')}")
This approach bypasses the analytics view limitations. The legalHoldStatus field is available in the raw recording entity response. Just ensure your service account has the legal_hold:read permission, as standard recordings:view roles often miss this specific flag. This is a common gotcha when migrating from voice-centric workflows to digital channels. The data is there, just in a different bucket.
You need to align the query structure with the digital channel schema.
- Switch to
/api/v2/analytics/conversations/details/query with metricId: conversation:legalHoldStatus.
- Ensure the
groupBy includes conversation:channelType to isolate WebRTC.
- Verify the tenant’s compliance settings enable metadata export for digital sessions.