A Copilot Studio developer is building an agent where a customer's account number, collected in the 'Authenticate Customer' topic, needs to be used in multiple subsequent topics ('Check Balance', 'Transfer Funds', 'View Transactions'). Which variable type should the developer use for the account number?
Select an answer to reveal the explanation.
Short Explanation and Infographic
Global variables are the conversation-wide memory — set once in any topic, available everywhere without passing it around. Perfect for account number needed across multiple topics. Answer: B.
Full explanation below image
Full Explanation
Copilot Studio supports three variable scopes: topic variables (local to the topic), global variables (available throughout the conversation), and system variables (predefined by the platform).
Option B is correct. A global variable (prefixed with Global. in Copilot Studio) is set once in the 'Authenticate Customer' topic and is automatically available to every subsequent topic in the same conversation session. The developer creates a global variable named Global.AccountNumber, sets it after the customer authenticates, and then references Global.AccountNumber in 'Check Balance', 'Transfer Funds', and 'View Transactions' without any explicit passing logic.
Option A is incorrect. Passing topic variables as input parameters works but is more error-prone and verbose. If the developer adds a new topic that also needs the account number, they must remember to pass it as a parameter each time. Global variables handle this automatically.
Option C is incorrect. System variables are predefined by Copilot Studio (conversation ID, user display name, channel, etc.). They cannot be used to store custom values like an account number.
Option D is incorrect. Writing to Dataverse and reading back in each topic adds significant latency and complexity for what is fundamentally a session-memory problem. Global variables are the purpose-built solution for sharing data within a conversation session.