A Copilot Studio agent for Bellows College collects a student's ID number early in the conversation and needs to use it in multiple subsequent topics without asking the student to re-enter it. Which variable type should the developer use?
Select an answer to reveal the explanation.
Short Explanation and Infographic
Global variables in Copilot Studio are like a whiteboard in the room — every topic in the conversation can read what's written there. Set the student ID once, reference it everywhere. The correct answer is B.
Full explanation below image
Full Explanation
## Why B is Correct Global variables in Copilot Studio are conversation-scoped — they persist for the entire duration of a conversation session and are accessible from any topic. Once the student ID is stored in a global variable (e.g., Global.StudentID), any subsequent topic can read its value without re-prompting the user.
## Why the Distractors Are Wrong A (Topic variable with input parameters): Topic variables are scoped to the topic in which they are set. They can be passed to other topics as input parameters, but this requires explicit wiring at each topic-to-topic transition — not automatic sharing. For data needed broadly across many topics, global variables are simpler.
C (System variable from Graph): System variables are pre-populated by the platform (e.g., System.Activity.Text for the user's message, System.User.DisplayName from auth). Student ID is a domain-specific data point that does not come from a system variable.
D (Conversation variable saved to Dataverse): There is no built-in 'conversation variable' type in Copilot Studio that automatically persists to Dataverse between sessions. Cross-session persistence requires explicit Power Automate logic to write to and read from Dataverse.
## Exam Tip Variable scope hierarchy: Topic variable (current topic only) < Global variable (entire conversation) < External persistence (manually via connector). For cross-topic sharing within one session, use Global.