A Copilot Studio agent needs to remember the user's language preference across multiple topics throughout a single conversation session. Which variable type should you use to store this preference?
Select an answer to reveal the explanation.
Short Explanation and Infographic
Global variables in Copilot Studio are the agent's working memory for the whole conversation — once set, any topic can read them without passing them explicitly. For a language preference that multiple topics need to honor, a Global variable is the clean, built-in answer.
Full explanation below image
Full Explanation
Copilot Studio has three variable scopes: topic variables (var.), global variables (Global.), and system variables (System.). Topic variables are local to the topic where they are set — they are not accessible in other topics. Global variables persist for the entire conversation session and are accessible from any topic. System variables provide context like the user's name, channel, and conversation ID.
For a language preference that should be honored across all topics during a session, a Global variable is the correct choice. You set it in the opening topic (or a dedicated preference topic) and read it in any subsequent topic.
Option A (topic variable) — scoped to one topic only. Once the conversation moves to another topic, the preference would be lost.
Option C (Power Platform environment variable) — environment variables are configuration values, not session state. They don't vary per user or per conversation.
Option D (Dataverse table row) — technically possible for true persistence across sessions, but Dataverse involves async database writes and reads with connector overhead. For within-session persistence, a Global variable is the right tool. Dataverse is appropriate for cross-session persistence (remembering a preference across multiple conversation sessions).
Exam scope summary: topic variable = current topic only. Global variable = entire session, all topics. Dataverse = cross-session, database persistence.