Quality Evaluation Score Mismatch After Zendesk Import

Stuck on why manual QA scores from Zendesk aren’t populating in the Genesys Cloud Quality dashboard after migration. Using SDK v3.2.0 in eu-west-1, the import completes without error, but the evaluation data stays null in the analytics view.

eyes:
 evaluation_form_id: "f8a7b6c5-1234-5678-90ab-cdef12345678"
 score: 95
 reviewer_id: "user-123"

Any idea if there’s a specific field mapping I’m missing?

Pretty sure the issue might not be the SDK version but how the evaluation payload is structured for the bulk import endpoint. When pushing data via API during load tests, I’ve seen null values appear if the evaluation_form_id doesn’t exactly match the active form version in Genesys Cloud. The API is strict about UUIDs. Try validating that the form ID you’re using hasn’t been superseded by a newer revision in the Quality settings. Also, check if the reviewer_id corresponds to a user who actually has the “Quality Analyst” role assigned in the org. If the user lacks permission, the import might silently drop the score or mark it as invalid without throwing a 4xx error. You can verify this by checking the raw API response headers for any warning codes or by querying the /api/v2/quality/evaluations endpoint directly after the import to see if the record exists but is flagged as status: invalid.

Another approach is to simplify the payload and test with a single record using Postman or curl before ramping up with JMeter. Sometimes, high-concurrency imports trigger rate limiting or processing delays that make it look like data is missing when it’s actually still in the queue. Add a small delay between requests in your JMeter thread group, maybe 500ms, to see if the scores populate correctly. Also, ensure the Zendesk export format aligns with the Genesys Cloud Quality API schema exactly. Missing fields like call_id or interaction_type can cause the import to fail silently. Here’s a minimal working example for a single record:

{
 "evaluation_form_id": "f8a7b6c5-1234-5678-90ab-cdef12345678",
 "interaction_id": "call-123456",
 "score": 95,
 "reviewer_id": "user-123",
 "status": "complete"
}

Try this and see if the dashboard updates. If it does, the issue is likely in your bulk import logic or payload structure.

Have you tried validating the exact timestamp format and the reviewer_id presence in that payload? The suggestion above hits the nail on the head regarding the evaluation_form_id, but there is another layer of complexity when importing external data into Genesys Cloud Quality. The system is notoriously strict about how it correlates imported scores with internal user records.

Here is a checklist to resolve the null values:

  1. Verify Form Versioning: Ensure the evaluation_form_id matches the current active version. If the form was updated in Genesys Cloud after the Zendesk export, the old UUID becomes invalid for new imports. Check the Quality settings UI to confirm the version status.
  2. Check Reviewer ID Mapping: The reviewer_id must correspond to an active user ID within the Genesys Cloud organization. If this ID is from Zendesk or a legacy system, the import will silently drop the reviewer association, often resulting in null analytics. Use the User API to fetch the correct Genesys Cloud user ID for the reviewer.
  3. Validate Timestamp Format: The import endpoint expects ISO 8601 format with timezone offsets. Ensure the score timestamp is not null and falls within the evaluation period defined in your Quality settings.

Here is a corrected YAML structure for the bulk import:

eyes:
 evaluation_form_id: "f8a7b6c5-1234-5678-90ab-cdef12345678" # Confirm this is the active version
 score: 95
 reviewer_id: "genesys-cloud-user-id-123" # Must be a valid internal user ID
 interaction_id: "interaction-uuid-from-zendesk" # Optional but helps debugging
 created_date: "2023-10-27T14:00:00-05:00" # Chicago time, ISO 8601

Running a small test batch with these corrections usually clears up the analytics mismatch. If the issue persists, check the API response logs for any 400 Bad Request errors that might indicate field validation failures.

  • Verify the evaluation_form_id points to the current active version, not a deprecated draft, as the API silently drops mismatches.
  • Ensure the reviewer_id maps to an active user with the quality:evaluation:write permission.

Have you tried checking if your JMeter script is hitting the API rate limits for the Quality module during the import phase? The 429 errors we saw in analytics might apply here too, causing silent drops or partial writes that look like null data. The system often returns a 200 OK for the batch job but fails individual records if the throughput is too high. Try adding a small delay between requests in your load test configuration to stay under the threshold. Also, ensure the evaluation_form_id matches the exact active version, as drafts cause mismatches. If the reviewer ID is from an external system, it must map to an active Genesys user with proper permissions. Check the job status endpoint for detailed error logs on specific failed records. This usually reveals if it is a capacity issue or a data format mismatch. Adjusting the concurrency in your test script often resolves the phantom null values.