Call Recordings Disappearing Overnight Before Quality Evaluation

Hey everyone, struggling with something basic in Quality Management. I am the sole administrator for our 20 agents. We have call recording turned on at the SIP trunk level so everything is recorded. But my supervisors are complaining that when they go into the Interaction view to evaluate a call from yesterday, it says ‘Recording not available’. The weird thing is, if they check the call exactly five minutes after it ends, the recording is there! Why would a recording just disappear overnight? Did I miss a retention policy setting somewhere in the admin UI?

Oh, this is such a common trap for new administrators! I supervise quality management and we experienced this exact same issue when we first launched. The recording you have enabled at the SIP trunk level is just the physical capture of the audio. However, Genesys Cloud requires you to explicitly configure a ‘Recording Policy’ to tell the system to actually save and retain that audio for quality evaluation.

By default, if there is no policy instructing the system to keep the file, it deletes the temporary audio cache very quickly to save storage. You need to go into Quality > Policies and create a new policy that assigns the ‘Retain Recording’ action to all inbound calls!

1 Like

I can confirm the previous response is structurally correct. In banking compliance, we distinguish between line recording and policy-based retention. You must navigate to Admin > Quality > Policies.

Create a standard recording policy targeting your specific queues. Set the retention duration to your legal requirement, for example 365 days.

Without this policy active, the media subsystem discards the temporary SIP trunk recording buffer after the interaction finalizes and the immediate wrap-up window expires.

Hello! I am transitioning from PureConnect to Genesys Cloud, and I want to add one more very important detail to the excellent advice above! In PureConnect, we had Interaction Recorder which just grabbed everything automatically based on a global retention setting. In Genesys Cloud, because the policies evaluate exactly when the interaction ends, any changes you make to your Recording Policies will only affect new calls moving forward! So when you create this new policy, please do not panic if the missing recordings from yesterday do not suddenly reappear. Those audio files are permanently gone.

Your new policy will ensure all future interactions are captured and retained perfectly for your supervisors!

2 Likes

stop right there. you’re all talking about Admin UI clicks, but nobody’s mentioned the data pipeline side. i’ve spent too many nights debugging why my python ETL jobs are pulling empty recording metadata for “lost” calls.

the issue isn’t just that the audio file is gone. it’s that the interaction record in the analytics database gets flagged as has_recording: false if the policy engine doesn’t latch onto it before the buffer flushes. once that flag is set, you can’t fix it later by adding a policy. the history is already written.

if you’re relying on the API to verify what’s actually saved, don’t just check the UI. hit the analytics endpoint directly. you’ll see the discrepancy immediately.

import purecloudplatformclientv2 as gc
from purecloudplatformclientv2.models import QueryInteractionDetailRequest

# setup your auth
config = gc.Configuration()
config.host = "https://api.mypurecloud.com"
config.access_token = "YOUR_TOKEN"

api_instance = gc.AnalyticsApi(gc.ApiClient(config))

# query for interactions in the last 24h
request = QueryInteractionDetailRequest(
 query={
 "view": "interactions",
 "date_from": "2023-10-25T00:00:00Z",
 "date_to": "2023-10-26T00:00:00Z",
 "select": ["id", "media_type", "has_recording", "recording_id"]
 }
)

response = api_instance.post_analytics_interactions_details_query(request)

for interaction in response.entities:
 if interaction.media_type == "call" and not interaction.has_recording:
 print(f"Warning: Call {interaction.id} has no recording metadata!")

see that has_recording field? if it’s false, the policy missed it. no amount of UI tweaking will bring that specific call back. you have to ensure the policy is active before the call happens.

also, check your retention duration. if you set it to 30 days and your legal hold is 365, your S3 exports will be garbage. i’ve seen this break compliance audits. double check the retention_duration in your policy JSON. it defaults to 0 if you don’t specify it. zero means gone. forever.

1 Like