{"revision":"c10276e953456835cdbb1f3a60d58ae1980be353","document":{"id":4658,"path":"conversational-interfaces/now-assist-in-virtual-agent/data-sets-con-eval-ad.md","title":"Data sets for conversation evaluations","bundle":null,"doc_type":null,"release":"australia","body":"\n# Data sets for conversation evaluations\n\nTest data sets supply the scenarios and expected results that conversation evaluations run on to measure how your assistant performs.\n\n## Components of a test data set\n\nA test data set has two parts that work together:\n\n-   A test scenario, which defines what to evaluate the assistant on. It is made up of four fields: initial\\_query, scenario\\_context, run\\_as\\_user, and end\\_goal.\n-   Ground truth \\(GT\\), which defines the expected output for each test scenario. It captures what a successful response looks like, such as the correct information returned, the right action completed, or the expected asset selected. The evaluation compares the assistant's behavior against the ground truth to produce scores for the conversation success and skill selection accuracy metrics.\n\nThe test scenario sets up the test, and the ground truth specifies what good looks like. Building both carefully gives you a reliable, repeatable way to measure how well an assistant performs.\n\nTo build your data set from a template, download the sample test set, `template_conv_eval_dataset.xlsx`. When you select a table for an automated evaluation, open the **What evaluation inputs do I need to provide?** help and select **download an Excel file**. The template defines each field and shows the formatting that the evaluation expects. For more information, see [Set up an automated evaluation](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/conversational-interfaces/now-assist-in-virtual-agent/create-auto-evaluation-ad.md).\n\n**Note:** A general guideline is to use a minimum of 500 test scenarios.\n\nEach row in a test data set represents one simulated test scenario for an AI assistant. Together, the rows represent the range of situations that you expect the assistant to handle, from simple lookups to multi-step requests. A row contains the following fields:\n\n-   **initial\\_query**\n\n    **Required**: Yes\n\n    **What it does**\n\n    The opening message auto-generated chat sends to start the conversation. This is the first thing the bot sees, so it must reflect how a real user would naturally phrase their request or question. A well-crafted initial query sets up the entire conversation and directly influences whether the bot engages the right skill or flow.\n\n    **Guidance**\n\n    -   Write queries in natural language.\n    -   Vary the phrasing across test cases to cover how different users might say the same thing.\n    For example:\n\n    ```\n    Can I see open incidents assigned to Howard Johnson?\n    ```\n\n-   **run\\_as\\_user**\n\n    **Required**: Yes\n\n    Specifies which user the assistant converses with during the simulation. When set, the conversation runs as that user, so the assistant responds under that user's permissions, roles, and access control lists \\(ACLs\\). This is useful for checking how the assistant behaves for users with different access levels, because the same query can return different results or actions depending on who is asking.\n\n    **Note:** If you leave this field empty, the conversation falls back to the user who triggered the evaluation, or in some cases to a system default account such as an admin or guest account. Because that fallback account may not have access to the records or knowledge base articles referenced in your scenario, an empty run\\_as\\_user can cause the assistant to return incomplete or incorrect results that look like assistant failures, but are actually caused by missing access. To get reliable results, set run\\_as\\_user to an account with the same access as the person your scenario represents.\n\n-   **scenario\\_context**\n\n    **Required**: Optional, but include it to help prevent the auto-generated chat from making random selections.\n\n    **What it does**\n\n    Natural language instructions that tell auto-generated chat how to behave throughout the conversation. This can be a single sentence or a detailed set of rules covering how to handle every turn in the dialogue. When omitted, the auto-generated chat behaves as a neutral, cooperative user. It might then make random selections or accept the fallback ticket generation.\n\n    **Guidance**\n\n    -   For Agent and Topic skills, include context about the user's situation so auto-generated chat can provide relevant follow-up inputs. For example, their department, location, or type of request.\n    -   This field can be used to test edge cases: what happens if the user provides wrong information, changes their mind.\n    -   Start with an intent statement that begins with \"The user needs help with\". Add the persona and state, such as the user's role, environment, and what the user already has. Add the slot and value pairs that the user provides when or if prompted for more information.\n    -   Add an **Important Rules** block \\(highly recommended\\), with guidance that keeps the simulated user from inventing details such as table names, IDs, or ticket numbers, and that specifies when to end the conversation.\n\n        **Note:** Always include an Important Rules block in the scenario\\_context that tells the simulated user not to agree to creating an incident, catalog request, or other ticket if the assistant offers to do so as a fallback. The simulation's default persona is cooperative, so without this rule it can accept ticket-creation offers whenever the assistant can't answer, which can flood your instance with unwanted records.\n\n    For example:\n\n    ```\n    The user needs help with finding open incidents assigned to a specific person.\n    The user is an IT support agent reviewing a colleague's workload and wants to see the open incidents currently assigned to that person.\n    If prompted, the user provides the following details:\n    - Assigned to: Howard Johnson\n    - Incident state: Open\n    Important Rule: If the bot requests that the user create an IT incident or Universal Request because of insufficient information or resources, the user must not proceed. Instead, the user should instruct the bot to cancel the request and take no further action.\n    \n    ```\n\n    **Template examples by skill**\n\n    **QnA example**\n\n    |Type|Template|Expected behavior|\n    |----|--------|-----------------|\n    |One turn QnA|The user is seeking information related to their initial query. After receiving the answer, the user thanks the bot and indicates that no further assistance is needed. If the bot offers a ticket, transfer, escalation, or any other follow-up action, the user declines the offer and states that no further assistance is needed.|The auto-generated chat receives the response and declines incident/ticket generation requests.|\n    |Multi-turn QnA|The user asks the initial question. After the bot responds, the user asks &lt;follow-up question&gt;. After the bot responds, the user asks &lt;additional question&gt;. After receiving the final answer, the user thanks the bot and indicates that no further assistance is needed. If the bot offers a ticket, transfer, escalation, or any other follow-up action, the user declines the offer and states that no further assistance is needed.|After the initial response, the auto-generated chat asks 2 follow-up questions.|\n\n    **Agent example**\n\n    **Note:** This section can't be generalized for all agents because it depends on the agent's workflow\n\n    For example, consider the following sample workflow for an agent that generates change plans:\n\n    -   The user wants to generate change plans.\n    -   The agent evaluates whether the request contains sufficient information.\n    -   If sufficient information is available: The agent generates the change plan and asks the user for approval before updating the records.\n    -   If sufficient information is not available: The agent asks whether the user would like to proceed using industry general guidelines to fill in the missing details.\n    -   If the user agrees, the agent generates the change plan based on those general guidelines and then asks for approval before updating the records.\n    The sequence of clarification questions, approvals, and follow-up actions is specific to the agent's workflow and business logic.\n\n    For this agent, you can create the following scenario:\n\n<table id=\"table_sc_agent_ad\"><thead><tr><th>\n\nType\n\n</th><th>\n\nTemplate / Example\n\n</th><th>\n\nExpected behavior\n\n</th></tr></thead><tbody><tr><td>\n\nAgent\n\n</td><td>\n\nThe user is seeking help to generate change plans for CHG0000. When asked, the user approves the generated change plans. If the bot asks whether the user wants to proceed based on general guidelines, the user replies, 'Yes'.\n\n Important Rule: If the bot requests that the user create an IT Incident or raise a request &lt;update this part if fallback option has a specific name&gt; because of insufficient information or resources, the user must not proceed. Instead, the user should instruct the bot to cancel the request and take no further action.\n\n</td><td>\n\nThe auto-generated chat receives the response and approves the output\n\n</td></tr></tbody>\n</table>    **Topic examples**\n\n<table id=\"table_sc_topic_ad\"><thead><tr><th>\n\nType\n\n</th><th>\n\nTemplate\n\n</th><th>\n\nExpected behavior\n\n</th></tr></thead><tbody><tr><td>\n\nTopic\n\n</td><td>\n\nThe user needs help with &lt;topic action such as booking a meeting room&gt;. When first prompted, the user provides the following details:\n\n &lt;Itemized specific information is asked by topic such as:&gt;\n\n - date and time: July 29 at 10:00 AM\n\n - Host: Abel Tuter\n\n - Building: A\n\n Important Rule: If the bot requests that the user create an IT Incident or raise a request &lt;update this part if fallback option has a specific name&gt; because of insufficient information or resources, the user must not proceed. Instead, the user should instruct the bot to cancel the request and take no further action.\n\n</td><td>\n\nThe auto-generated chat provides the values when asked.\n\n</td></tr></tbody>\n</table>-   **end\\_goal**\n\n    **Required**: Optional\n\n    **What it does**\n\n    The terminal condition, the point at which the conversation should be considered complete. Auto-generated chat uses this to determine when to stop, so it does not keep the conversation going unnecessarily. Without an end goal, auto-generated chat relies on natural conversation signals to determine when to stop.\n\n    **Guidance**\n\n    -   For QnA skills, the end goal is typically that the bot has answered the question.\n    -   For Agent skills, define the specific outcome that marks success. For example, a ticket has been created and the user has received a confirmation number.\n    -   For Topic skills, describe the final state of the guided flow. For example, the user has ordered the food.\n    **Template examples by skill**\n\n    |Type|Template|Expected behavior|\n    |----|--------|-----------------|\n    |Single turn QnA|The conversation ends after the bot's first response, regardless of whether it is a standard response, a fallback response, or any other response type.|The auto-generated chat ends the conversation after the first response.|\n    |Multi turn QnA|The conversation ends when the user indicates that no further assistance is needed and the bot acknowledges this.|Auto-generated chat ends the conversation when a condition specified in the scenario context is met. For example, the user thanks the bot and indicates that no further assistance is needed after all steps are completed.|\n    |Specific agent|The conversation ends when the bot provides change plans and receives approval from the user.| |\n    |Topic|The conversation ends when the user books the meeting room.| |\n\n-   **ground\\_truth**\n\n    **Required**: Yes\n\n    **What it does**\n\n    The expected bot output or action used to determine success or failure. What the bot actually said or did is compared against the ground truth and a pass/fail verdict is produced.\n\n    **Guidance**\n\n    -   Focus on intent and outcome rather than exact phrasing, unless exact phrasing is the point of the test.\n    -   For Agent skills, the ground truth can describe an action rather than specific bot text. For example, \"A Priority 2 incident is created\".\n    -   Include the key information that must be present. Avoid adding additional details where there is no contribution.\n    **Template examples by skill**\n\n<table id=\"table_gt_ex_ad\"><thead><tr><th>\n\nType\n\n</th><th>\n\nTemplate\n\n</th><th>\n\nNote\n\n</th></tr></thead><tbody><tr><td>\n\nSingle turn QnA\n\n</td><td>\n\nThe bot is considered successful if it provides this response: &lt;the simplest form of correct response, only key information to answer the query&gt;\n\n</td><td>\n\nIncluding unnecessary details makes the ground truth \\(GT\\) overly strict, causing the judge to penalize responses that omit those details.\n\n</td></tr><tr><td>\n\nMulti turn QnA\n\n</td><td>\n\nThe conversation ends when the user indicates that no further assistance is needed and the bot acknowledges this.\n\n</td><td>\n\nAuto-generated chat ends the conversation when a condition specified in the scenario context is met. For example, the user thanks the bot after all steps are completed.\n\n</td></tr><tr><td>\n\nSpecific agent\n\n</td><td>\n\nThe conversation ends when the bot provides change plans and receives approval from the user.\n\n</td><td>\n\n \n\n</td></tr><tr><td>\n\nTopic\n\n</td><td>\n\nThe bot is considered successful if it correctly collects all required user inputs and successfully addresses or submits &lt;topic for example, the meeting room booking request&gt;. The conversation doesn't have to include all the following details. Ignore the details or values that don't appear in the conversation history. But any details that appear must match these values and processed as follows.\n\n Request Details and their expected values:\n\n &lt;Itemized specific information is asked by topic such as:&gt;\n\n - date and time: July 29 at 10:00 AM\n\n - Host: Abel Tuter\n\n - Building: A\n\n</td><td>\n\n \n\n</td></tr></tbody>\n</table>\n**Quick reference**\n\nUse this table as a checklist when building each test case in your dataset.\n\n|Field|Required|Key question to answer|\n|-----|--------|----------------------|\n|initial\\_query|Yes|How would a real user phrase this request?|\n|scenario\\_context|Optional|What situation should auto-generated chat simulate?|\n|end\\_goal|Optional|What condition would complete \\(end\\) this conversation?|\n|ground\\_truth|Yes|What should the bot say or do to pass this test?|\n\n## Load the evaluation data set to your instance\n\nYou load your evaluation data set into two related tables: a ground truth table that holds each ideal-behavior record, and an input scenarios table that holds each test scenario and references its matching ground truth. Create both tables first, and then load the data in two phases so that every reference resolves to a real **sys\\_id**.\n\n**Note:** The tables can be in any scope, as long as other apps have read access to them.\n\n1.  Create the ground truth table.\n    1.  Navigate to **System Definition** &gt; **Tables**.\n    2.  Select **New**.\n    3.  Enter a **Name** for the table. For example, &lt;your\\_GT\\_table&gt;.\n    4.  Save the table.\n    5.  From the **Columns** tab, select **New**.\n    6.  Select the following for the new record:\n        -   **Type**: JSON\n        -   **Column label**: ground\\_truth\n        -   **Max length**: 2,147,483,647\n2.  Create the input scenarios table.\n    1.  Create a second table.\n    2.  Enter a **Name** for the table. For example, &lt;your\\_input\\_scenario\\_table&gt;.\n    3.  Save the table.\n    4.  From the **Columns** tab, add the following columns. For each column, select **New** and enter the following values.\n\n        |Type|Column label|Other fields|\n        |----|------------|------------|\n        |String|initial\\_query|**Max length**: 800|\n        |String|scenario\\_context|**Max length**: 4000|\n        |String|end\\_goal|**Max length**: 800|\n        |Reference|ground\\_truth|References the ground truth table from Step 1|\n        |Reference|run\\_as\\_user|References the User \\(`sys_user`\\) table|\n\n3.  Create the import set.\n    1.  Navigate to **System Import Sets** &gt; **Load Data**.\n    2.  For the **Import set table** option, select **Create table**.\n    3.  Enter a **Label**. For example, &lt;your\\_Eval Dataset Import&gt;.\n    4.  Select **Source of the import** as **File**.\n    5.  Choose your file containing the ground truth data set.\n    6.  Select **Sheet number** as **1**.\n    7.  Select **Header row** as **1**.\n    8.  Select **Submit**.\n4.  Create a transform map for the ground truth table.\n\n    **Note:** Start with the ground truth table first.\n\n    1.  Navigate to **System Import Sets** &gt; **Create Transform Map**.\n    2.  Enter a **Name** for the transform map. For example, &lt;your\\_gt\\_transform\\_map&gt;.\n    3.  For **Source table**, select the import set table that you created in Step 3.\n    4.  Select the ground truth table you created in Step 1 as the **Target table**.\n    5.  For the **Order** field, choose a lower value from the default value given. For example, the default is 100, and you can change it to 99.\n    6.  Save the table.\n    7.  After saving, from the Related Links section, select **Auto Map Matching Fields**.\n    8.  The **Field Maps** tab is updated with the mapping. Confirm that the source field maps correctly to the target field. For example, `u_ground_truth` maps to `ground_truth`.\n    9.  Select the record created under **Source field**. For example, `u_ground_truth`.\n    10. Select the **Coalesce** check box, so that each unique value creates one record, and a rerun updates the existing record instead of duplicating it.\n    11. Select **Update**.\n5.  Create a transform map for the input scenarios table.\n    1.  Navigate to **System Import Sets** &gt; **Create Transform Map**.\n    2.  Enter a **Name** for the transform map. For example, &lt;your\\_input\\_scenario\\_transform\\_map&gt;.\n    3.  For **Source table**, select the import set table that you created in Step 3.\n    4.  Select the input scenario table you created in Step 2 as the **Target table**.\n    5.  For the **Order** field, choose a value higher than the one you set in Step 4. For example, 100.\n    6.  After saving, from the Related Links section, select **Auto Map Matching Fields**.\n    7.  The **Field Maps** tab is updated with the mapping. Confirm that the source field maps correctly to the target field. For example, `u_ground_truth` maps to `ground_truth`.\n    8.  Select `ground_truth` to modify the mapping.\n    9.  In the Field Map page, perform the following:\n        1.  Select the **Use source script** check box.\n        2.  Replace the **Source script** field with the following.\n\n            **Note:** You must replace the **new GlideRecord** value with your correct table name.\n\n            ```\n            answer = (function transformEntry(source) { \n                var gtValue = source.u_ground_truth.toString(); \n                var gr = new GlideRecord('sn_skill_builder_demo_assistant_eval_ground_truth'); \n                gr.addQuery('ground_truth', gtValue); \n                gr.query(); \n                if (gr.next()) { \n                    return gr.getUniqueValue(); \n                } \n                ignore = true; // skip rows with no matching ground truth, rather than inserting a blank \n                return ''; \n            })(source);\n            ```\n\n        3.  Select **Update** to return to the transform map page.\n    10. Select `run_as_user` to modify the mapping.\n    11. In the Field Map page, perform the following:\n        1.  Select the **Use source script** check box.\n        2.  Replace the **Source script** field with the following.\n\n            **Note:** If you have a non-standard user table, replace the **sys\\_user** table name with your user table.\n\n            ```\n            answer = (function transformEntry(source) { \n                var userName = source.u_run_as_user.toString().trim(); \n                if (!userName) { \n                    return ''; // run_as_user is optional, leave blank when not provided \n                } \n                var gr = new GlideRecord('sys_user'); \n                gr.addQuery('user_name', userName); // switch to 'name' or 'email' to match your CSV \n                gr.query(); \n                if (gr.next()) { \n                    return gr.getUniqueValue(); \n                } \n                ignore = true; // skip rows whose user cannot be matched \n                return ''; \n            })(source); \n            ```\n\n        3.  Select **Update** to return to the transform map page.\n    12. In the Transform Map page, select **Update**.\n6.  Run the transform maps.\n    1.  Navigate to **System Import Sets** &gt; **Run Transform**.\n    2.  From the **Import set** list, select your import set from Step 3.\n    3.  Under **Selected maps**, add both transform maps that you created: the ground truth map and the input scenarios map.\n    4.  Select **Transform**.\n7.  Verify the result.\n\n    Open your input scenario table and confirm the following:\n\n    -   The rows are populated with all fields intact.\n    -   The ground\\_truth reference points to your ground truth table.\n\nScript for ground truth mapping:\n\n**Note:** Use **ground\\_truth** if the table is created in global scope and **u\\_ground\\_truth** if the table is created in scoped app.\n\n```\n(function getValue(inputs) { // Example var artifactDatasetGr = new GlideRecord(inputs.getValue(\"artifact_dataset_table\")); artifactDatasetGr.get(inputs.getValue('artifact_dataset')); var gt = artifactDatasetGr.ground_truth.getRefRecord(); return gt.getValue('ground_truth') || \"\"; })(inputs);\n```\n\n\\(same for both fields, replace highlighted part with the correct column name, \\)\n\n## Data set creation guide\n\nGuidelines for creating aia\\_artifact\\_dataset records.\n\nEach record drives one auto-generated chat simulation. The auto-generated chat uses the record to impersonate a user and have a conversation with the bot. The result is then compared against the ground truth to determine if the bot succeeded.\n\nEvery record must have five columns that are internally consistent:\n\n|Column|Required?|Purpose|\n|------|---------|-------|\n|**run\\_as\\_user**|Yes|The ServiceNow user identity that auto-generated chat impersonates. This affects what data the bot retrieves and what actions the user can perform.|\n|**initial\\_query**|Yes|The opening message the auto-generated chat sends to start the conversation.|\n|**scenario\\_context**|Optional|Instructions for how the auto-generated chat should behave throughout the conversation. Can be as simple as one sentence or as detailed as a full set of rules that covers all inputs.|\n|**end\\_goal**|Optional|The terminal condition, when the conversation should be considered complete.|\n|**ground\\_truth**|Yes|The expected bot output or action used to determine success or failure.|\n\n**Column guidelines**\n\n**run\\_as\\_user**\n\nPick a user whose account matches the scenario's data requirements. Use a specific named user when the scenario involves personal records like incidents. The bot looks up data tied to that exact user.\n\n|Column|Bad|Good|\n|------|---|----|\n|run\\_as\\_user|Tom John -&gt; for 'List all my open incidents.'|Fred Luddy -&gt; for 'List all my open incidents.'|\n|Why|Tom John doesn’t have incidents in the instance. The bot returns nothing, making the test invalid.|Fred Luddy has incidents in the instance. The bot returns real data.|\n\n**initial\\_query**\n\nThe exact first message auto-generated chat sends. Write it as a natural user would type it.\n\n-   Keep intent clear and unambiguous.\n-   Match the query type to the conversation category \\(QnA, agentic, small talk, catalog\\).\n\n|Column|Bad|Good|\n|------|---|----|\n|initial\\_query|email spam help|What should I do if I receive spam emails from unknown sources?|\n|Why|Too vague. The auto-generated chat and the bot may not determine what the user wants.|Natural phrasing with clear intent. The auto-generated chat can simulate this reliably.|\n\n**scenario\\_context**\n\nTells the auto-generated chat exactly how to behave. The level of detail required varies by conversation type. Both versions are acceptable:\n\n-   A one or two sentence description of the user's intent. This is generally good for Q&amp;A type of questions. This version works with topic/catalog type as well, but the auto-generated chat can come up with random or invalid selection inputs.\n-   Provide all the required input values the auto-generated chat should give when prompted.\n\nOptionally include an **Important Rules** block to restrict the auto-generated chat's behavior. For example, helping prevent it from taking unintended actions during the conversation, such as not proceeding with ticket generation.\n\n|Column|Acceptable\\*|Good|\n|------|------------|----|\n|scenario\\_context|User wants to book a meeting room.|User wants to book a meeting room. The user provides these details when prompted: Location: Pleasanton / Date: Tomorrow 10AM / Host: Abel Tuter / Building: A. If pre-filled differently, update Building to D.|\n|Why|\\*The auto-generated chat can invent inputs and make random selections, some of these inputs might be invalid.|All inputs are explicit. The auto-generated chat knows exactly what to provide at every step.|\n\n**end\\_goal**\n\nA single, observable statement of when the conversation is complete. The auto-generated chat uses this as a clue to decide when to end the conversation.\n\n-   QnA: ends when the bot delivers the correct answer.\n-   Agentic or catalog: ends when the request is successfully submitted with correct inputs.\n\n|Column|Bad|Good|\n|------|---|----|\n|end\\_goal|The conversation ends when the user is satisfied.|The conversation ends when the bot provides advice for handling spam emails.|\n|Why|Provide the expected outcome from bot, not the user.|Specific and observable. The auto-generated chat can end the conversation when the condition is met.|\n\n**ground\\_truth**\n\nThe reference output used to score the bot. Must be self-contained.\n\n-   QnA: include the full expected answer text.\n-   Topics or Catalog: list all required fields and their final expected values. Or keep it simple, for example, the bot is successful if it submits the XX request.\n-   Agent: state that the bot succeeds. For example, the bot is successful if it lists the incidents or a specific list.\n-   Never reference specific knowledge base article names or IDs, as they can't be looked up.\n\n|Column|Bad|Good|\n|------|---|----|\n|ground\\_truth|Bot is successful if it answers correctly.|Bot is successful if it says: Don't reply to spam emails; never follow unsubscribe links, but simply delete them.|\n|Why|This introduces subjectivity and may lead to incorrect judgments.|Self-contained and specific. The bot's response can be directly compared against this text.|\n\n**Example - QnA**\n\n|Column|Value|\n|------|-----|\n|**run\\_as\\_user**|System administrator|\n|**initial\\_query**|What should I do if I receive spam emails from unknown sources?|\n|**scenario\\_context**|User wants to know how to handle spam from unknown senders.|\n|**end\\_goal**|The conversation ends when the bot provides advice for handling spam emails.|\n|**ground\\_truth**|Bot is successful if it says: Don't reply or follow unsubscribe links. Simply delete the emails.|\n\n**Example - Agent**\n\n|Column|Value|\n|------|-----|\n|**run\\_as\\_user**|Fred Luddy|\n|**initial\\_query**|Can you check the status of my incident INC0000020?|\n|**scenario\\_context**|User wants status of INC0000020, a replacement iPhone request.|\n|**end\\_goal**|The conversation ends when the user receives a status update for INC0000020.|\n|**ground\\_truth**|Bot is successful if it retrieves INC0000020 with: ticket number, description, status, assigned person, last updated time, and recent comments.|\n\n## Sample data set\n\nTo build your data set from a template, download the sample test set, `template_conv_eval_dataset.xlsx`. When you select a table for an automated evaluation, open the **What evaluation inputs do I need to provide?** help and select **download an Excel file**. The template defines each field and shows the formatting that the evaluation expects. For more information, see [Set up an automated evaluation](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/conversational-interfaces/now-assist-in-virtual-agent/create-auto-evaluation-ad.md).\n\n**Related topics**  \n\n\n[Set up an automated evaluation](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/conversational-interfaces/now-assist-in-virtual-agent/create-auto-evaluation-ad.md)\n\n"}}