I’m trying to pull the full voice-to-text transcript for completed interactions using the GET /api/v2/analytics/conversations/voice/details endpoint. The goal is to feed this into our custom agent desktop widget for post-call review.
We’ve got the analytics:conversation:view permission scoped correctly on the service account. The request returns a 200 OK, and the conversations array contains the interaction ID and metadata like wrapupCode and agentEmail. However, the transcript field is consistently null, even for calls where I can see the transcript in the UI.
Here’s the snippet I’m using with the Python SDK:
from genesyscloud.analytics import AnalyticsApi
analytics_api = AnalyticsApi(configuration)
start_time = datetime.utcnow() - timedelta(days=1)
end_time = datetime.utcnow()
response, status_code, headers = analytics_api.get_analytics_conversations_voice_details(
start_date=start_time.isoformat(),
end_date=end_time.isoformat(),
view='default',
size=10
)
for conv in response.conversations:
if conv.transcript:
print(conv.transcript)
else:
print(f"No transcript for {conv.interactionId}")
I’ve checked the interaction details via the UI and confirmed that transcription is enabled for the queue. The analyticsType on the queue is set to speech. I’ve also tried passing analyticsType=voice in the query params, but that just returns a 400 Bad Request saying the analytics type is invalid.
Is there a specific delay between the call ending and the transcript becoming available via the API? Or am I missing a required query parameter to force the transcript to be included in the payload? The documentation mentions analytics as a filter, but I’m not sure how to structure that for voice transcripts specifically.