Quality API returns empty evaluations for known CSAT interactions

We’re trying to correlate CSAT survey responses with specific interaction IDs in our New Relic dashboard. The interaction exists, but the Quality API returns an empty array for evaluations.

GET /api/v2/quality/interactions/{id}/evaluations

The response is 200 OK but the body is just { "items": [] }. We’ve confirmed the survey completed successfully. Is there a delay or a specific filter needed to see these tied to the interaction?

You’re hitting a classic sync delay. The Quality API doesn’t update instantly after a survey closes. It usually takes 15-30 minutes for the evaluation to populate in the database, depending on your org’s size.

Also, check your scope. You need quality:evaluations:read explicitly. If your token only has quality:read, it might return empty arrays without throwing a 403, which is a bit of a gotcha.

Here’s a quick check using the JS SDK to verify the token scope and poll the endpoint:

const platformClient = require("genesys-cloud-purecloud-platform-client");

// Ensure scope is correct
const scopes = ["quality:evaluations:read"];
const client = new platformClient.PureCloudPlatformClientV2();
client.setAccessToken("your_token");

// Polling logic
async function checkEvaluations(interactionId) {
 const { result: evaluations } = await client.qualityApi.getQualityInteractionsInteractionIdEvaluations(interactionId);
 console.log("Evaluations found:", evaluations.items.length);
 return evaluations;
}

If it’s still empty after an hour, the interaction ID might be wrong. Double check you’re using the internal id not the externalId.