This article explains how the Genesys Adapter stores Genesys Cloud quality evaluation data and how the evaluation tables relate to the wider reporting model.
The evaluation data model has four core physical tables:
evalData: one row per evaluation instance.evalQuestionGroupData: one row per scored question group within a finished evaluation.evalQuestionData: one row per scored question answer within a finished evaluation.evalDetails: evaluation form lookup data, including form name, question groups, questions, answer options, and answer values.The schema does not declare database-level foreign key constraints for these joins. Any FK markers in the diagrams below mean "logical reporting join key", based on shared Genesys Cloud identifiers.
| Table | Grain | Use it for |
|---|---|---|
evalData | One row per evaluation instance | Evaluation status, assigned/release dates, evaluated agent, evaluator, scores, calibration summary, and source conversation. |
evalQuestionGroupData | One row per question group score for a finished evaluation | Group-level score totals, max scores, critical/non-critical splits, NA flag, kill-question flag, and comments. |
evalQuestionData | One row per scored question answer for a finished evaluation | Question-level score, selected answer ID, NA flag, failed kill-question flag, and comments. |
evalDetails | One row per form question answer option | Form name, question group names, question text, question type, answer text, answer value, and question metadata. |
userdetails / vwUserDetail | One row per Genesys Cloud user | Agent, evaluator, manager, department, and division lookup context. |
convsummarydata / vwConvSummaryData | One row per conversation summary | Conversation date/time, media type, queue, direction, division, wrap-up, and handle metrics. |
Use these joins when building customer reports directly from the physical tables.
| From | To | Join condition | Notes |
|---|---|---|---|
evalData | evalQuestionGroupData | evalData.evaluationid = evalQuestionGroupData.evaluationid | Parent evaluation to scored group rows. Child rows are expected for finished evaluations. |
evalData | evalQuestionData | evalData.evaluationid = evalQuestionData.evaluationid | Parent evaluation to scored question rows. Child rows are expected for finished evaluations. |
evalQuestionGroupData | evalQuestionData | evaluationid, evaluationformid, and questiongroupid | Keeps questions tied to the correct group inside the same evaluation form. |
evalQuestionData | evalDetails | evaluationformid, questiongroupid, questionid, and answerid = questionanwserid | Adds form name, group name, question text, answer text, and configured answer value. The column name questionanwserid is intentionally misspelled in the schema. |
evalData | userdetails or vwUserDetail | evalData.userid = userdetails.id | Adds evaluated agent details. |
evalData | userdetails or vwUserDetail | evalData.evaluatorid = userdetails.id | Adds evaluator details. |
evalData | convsummarydata or vwConvSummaryData | evalData.conversationid = convsummarydata.conversationid | Adds conversation date, media type, queue, direction, and related interaction context. |
In evalData, evaluationid is the actual Genesys Cloud evaluation instance ID.
In evalDetails, evaluationid is a historical column name and is documented in the schema as containing the evaluation form ID. It is not the same business key as evalData.evaluationid. For form/question lookups, prefer the explicit evaluationformid column and the question/group/answer identifiers.
The adapter also provides views that pre-join common lookup data for reporting.
| View | Purpose |
|---|---|
vwEvalData | Evaluation header rows enriched with agent, manager, and evaluation form name. |
vwEvalDetails | Direct view over evalDetails, including the corrected questiontype column and the deprecated quesiontype alias. |
vwEvalQuestionGroupData | Thin view over evalQuestionGroupData with a form/group fact key. |
vwEvaluationGroupData | Group-level scored evaluation data enriched with question group name, division ID, and conversation ID. |
vwEvalquestiondata | Question-level scored evaluation data enriched with form, group, question, answer, and division details. |
vwEvaluationQuestionData | Current question-level reporting view. Some deployments also expose mvwevaluationquestiondata as a compatibility alias. |
vwEvaluationOverview | Finished evaluation overview data enriched with agent, evaluator, manager, conversation, queue, and media context. Some deployments also expose mvwevaluationoverview as a compatibility alias. |
For most customer reporting, start with vwEvaluationOverview, vwEvaluationGroupData, and vwEvaluationQuestionData. Use the physical tables when you need exact join control or need to troubleshoot missing lookup context.
The scheduled evaluation job is recurring. Evaluations that are not yet finished may appear first in evalData without group or question rows, then receive child rows after Genesys Cloud marks the evaluation as finished and a later adapter run retrieves the answers.
Use this when the customer needs one row per completed evaluation with agent, evaluator, and conversation context.
SELECT
evaluationid,
conversationid,
userid,
"Agent Name",
evaluatorid,
"Evaluator Name",
status,
totalscore,
totalcriticalscore,
totalnoncriticalscore,
releasedate,
queuename,
mediatype
FROM vwEvaluationOverview
WHERE releasedate >= '2024-01-01';
Use this when the customer needs the questions, selected answer text, answer value, and actual score.
SELECT
ed.conversationid,
ed.evaluationid,
ed.userid AS agentid,
eqd.evaluationname,
eqd.questiongroupname,
eqd.questiontext,
eqd.questionanswertext,
eqd.questionanswervalue,
eqd.score,
eqd.markedna,
eqd.failedkillquestions,
eqd.comments
FROM evalData ed
JOIN evalQuestionData eq
ON eq.evaluationid = ed.evaluationid
LEFT JOIN evalDetails eqd
ON eqd.evaluationformid = eq.evaluationformid
AND eqd.questiongroupid = eq.questiongroupid
AND eqd.questionid = eq.questionid
AND eqd.questionanwserid = eq.answerid
WHERE ed.status = 'FINISHED';
Use this when the customer needs one row per question group score.
SELECT
ed.conversationid,
ed.evaluationid,
eg.questiongroupid,
det.questiongroupname,
eg.totalscore,
eg.maxtotalscore,
eg.totalcriticalscore,
eg.totalnoncriticalscore,
eg.markedna,
eg.failedkillquestions
FROM evalData ed
JOIN evalQuestionGroupData eg
ON eg.evaluationid = ed.evaluationid
LEFT JOIN (
SELECT DISTINCT
evaluationformid,
questiongroupid,
questiongroupname
FROM evalDetails
) det
ON det.evaluationformid = eg.evaluationformid
AND det.questiongroupid = eg.questiongroupid
WHERE ed.status = 'FINISHED';
evalData answers "which evaluation was performed, for which agent, by which evaluator, against which conversation, and what was the total score?"evalQuestionGroupData answers "how did each section or group of the form score?"evalQuestionData answers "how was each question answered and scored?"evalDetails answers "what did the form, group, question, and answer option mean at the time the form metadata was loaded?"evalData but has no child rows, check status. Non-finished evaluations are normally header-only until a later sync.vwEvaluation* views unless the customer needs a custom grain or a troubleshooting query.