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.