Create and Manage Copilots with Microsoft Copilot Studio · 23% of the exam

Configure Topics, Entities, and Variables: free practice questions

5 sample questions from our 12-question bank for this domain — answers and explanations included. These are the same scenario-based style as the real Microsoft exam.

1. A developer is designing a Copilot Studio agent that must remember a user's preferred language across multiple topics and across separate conversation sessions. Which variable type should the developer use to store the preferred language?

  • A. A topic variable, because it persists for the lifetime of the agent
  • B. A system variable such as System.Locale, because it is automatically populated by the platform
  • C. A global variable, because it is accessible across all topics and can be configured to persist across sessions✓ Correct
  • D. A local variable scoped to the first topic where the preference is collected
Explanation

Correct: Global variables in Copilot Studio are accessible across all topics within a conversation. When configured with external storage (e.g., via a Power Automate flow that reads/writes to Dataverse), they can effectively persist values across sessions. Global variables are the right scope for data that must be shared broadly. | Wrong - A: Topic variables are scoped to a single topic only; they are destroyed when the topic ends and cannot be accessed by other topics. | Wrong - B: System.Locale reflects the channel's locale setting, not a user-selected preference, and it is read-only. | Wrong - D: A 'local variable' scoped to one topic has the same limitations as a topic variable—it is inaccessible in other topics.

2. A developer is authoring a Copilot Studio agent and needs to ensure that certain topics can pass data to and receive data back from a reusable 'Validate Customer' sub-topic. Which TWO statements are TRUE about passing variables between a parent topic and a sub-topic in Copilot Studio? (Select TWO.)

  • A. When calling a topic as a sub-flow, you can pass topic variables from the parent as input parameters to the sub-topic✓ Correct
  • B. Global variables are automatically shared between parent and sub-topics without any explicit configuration
  • C. Output variables defined in the sub-topic are automatically promoted to global scope after the sub-flow completes
  • D. The sub-topic must define output variables explicitly so the parent topic can receive returned values✓ Correct
  • E. Topic variables in the sub-topic are accessible in the parent topic by name without any mapping step
Explanation

Correct - A: When you configure a topic call as a sub-flow, Copilot Studio allows you to map parent topic variables to input parameters that the sub-topic expects, enabling data to flow into the sub-topic. | Correct - D: To return data from a sub-topic back to the parent, the sub-topic must explicitly declare output variables. The parent then maps those outputs to its own variables after the sub-flow call completes. | Wrong - B: Although global variables are accessible across all topics without mapping, this statement describes global variables, not the mechanism specific to sub-topic input/output parameter passing, making it a distractor in this context. | Wrong - C: Output variables from a sub-topic are NOT automatically promoted to global scope; they are returned to the parent topic as mapped outputs only, maintaining proper variable scoping. | Wrong - E: Topic variables are scoped exclusively to their own topic; they are not accessible by name from a parent topic without explicit output variable mapping—this is a common misconception.

3. In a Copilot Studio agent, a developer has a topic called 'Book Appointment' and wants to reuse an existing 'Collect Contact Info' topic inside it without ending the 'Book Appointment' conversation flow. Which approach should the developer use?

  • A. Configure a 'Go to another topic' redirect at the end of 'Book Appointment' and set return behavior to restart
  • B. Use a 'Go to another topic' node configured as a sub-flow call so control returns to 'Book Appointment' after completion✓ Correct
  • C. Copy all nodes from 'Collect Contact Info' into 'Book Appointment' to avoid cross-topic dependencies
  • D. Create a global variable that triggers 'Collect Contact Info' to run automatically when its value changes
Explanation

Correct: Calling a topic as a sub-flow (using 'Go to another topic' with the sub-flow option) allows the called topic to execute fully and then return control to the calling topic at the point after the redirect node. Variables set in the sub-topic can be passed back, enabling clean reuse. | Wrong - A: A plain 'Go to another topic' redirect without sub-flow behavior transfers control permanently; the original topic does not resume after the redirect. | Wrong - C: Copying nodes duplicates logic, creating maintenance burdens and breaking the single-source-of-truth principle; this defeats the purpose of modular topic design. | Wrong - D: Global variables do not trigger topics to run automatically; topic activation is governed by NLU trigger matching or explicit redirect nodes.

4. A Copilot Studio developer needs to capture a user's email address during a conversation and store it for later use in the same topic. Which node type and variable scope should the developer use?

  • A. A Message node storing the value in a global variable
  • B. A Question node with the Email prebuilt entity, storing the result in a topic variable✓ Correct
  • C. An Action node calling a Power Automate flow, storing the result in a system variable
  • D. A Condition node evaluating the user input and storing it in a global variable
Explanation

Correct: A Question node is designed to collect user input. By setting the 'Identify' property to the prebuilt Email entity, Copilot Studio automatically validates and extracts the email address. Storing it in a topic variable (scoped to the current topic) is the appropriate choice for use within the same topic. | Wrong - A: Message nodes display text to the user; they cannot collect or store input. | Wrong - C: Action nodes call flows but are not the mechanism for collecting freeform user input; system variables are read-only platform values. | Wrong - D: Condition nodes branch logic; they do not collect input from users, and using a global variable when only topic-level scope is needed is an anti-pattern.

5. Your Copilot Studio agent needs to recognize product sizes entered by users, such as 'Small', 'Medium', 'Large', and 'XL'. The list of valid sizes is fixed and will not change. Which entity type is most appropriate?

  • A. A prebuilt Number entity, because sizes can be numeric
  • B. A machine-learned custom entity trained on example utterances
  • C. A closed list custom entity containing the four size values✓ Correct
  • D. A regular expression custom entity using a pattern match
Explanation

Correct: A closed list entity is ideal when there is a finite, known set of values. You define each valid option ('Small', 'Medium', 'Large', 'XL') as synonyms/list items, and the NLU engine matches user input exactly to one of those values. | Wrong - A: The prebuilt Number entity extracts numeric values; it would not recognize text-based size labels like 'Small' or 'Large'. | Wrong - B: Machine-learned entities are suited for open-ended or complex patterns where values are not fully known in advance; they require training data and add unnecessary complexity for a fixed list. | Wrong - D: Regular expression entities are used for structured text patterns (e.g., order numbers like 'ORD-12345'); they are not the right fit for a simple list of known words.

7 more questions in this domain

Practice the full bank with instant grading, flashcards, and a timed mock exam.

Start practicing free