A developer at Relecloud is building a multi-step topic that collects a user's shipping address across several question nodes. The address components (street, city, zip) are only needed within this topic to pass to an action. Which variable type is most appropriate?
Select an answer to reveal the explanation.
Short Explanation and Infographic
Using topic variables for single-topic data is like writing on a sticky note for one task — you use it, then it goes away when you're done, keeping the conversation clean. The correct answer is B.
Full explanation below image
Full Explanation
## Why B is Correct Topic variables are scoped to the topic in which they are created. They are accessible to any node within that topic, can be passed as inputs to actions called from the topic, and are automatically discarded when the topic ends. This is the correct choice for data that is only needed within a single topic's execution context — it follows the principle of least scope.
## Why the Distractors Are Wrong A (Global variables): Using globals for topic-only data pollutes the global namespace, making the variable accessible to all other topics even though it isn't needed there. It also risks stale values if the global is not explicitly cleared.
C (System variables): System variables are read-only, platform-provided values (user identity, conversation metadata). They cannot be used to store user-collected input like addresses.
D (Environment variables): Environment variables are deployment-time configuration values (API endpoints, connection strings). They are not for storing per-conversation runtime data like user addresses.
## Exam Tip Choose variable scope by the narrowest scope that satisfies the requirement: Topic → Global → External persistence. Don't use a global when a topic variable is sufficient.