Variables & Bindings
Manage reusable values and inspect the data behind an Experience
Use Data to inspect and manage the values that make an Experience dynamic. A binding connects a visual property or action to a declared source instead of hardcoding the final value into a screen.
What belongs in Data
| Source | Example use |
|---|---|
| Variables | Reusable copy, colors, numeric values, and state |
| Products | Localized price and purchase configuration |
| Features | Access or balance-driven branches |
| Responses | Survey and onboarding answers |
| User and Journey context | Personalization and conditional paths |
Some sources appear only after the corresponding capability is attached to a screen or Project. If a binding path has no real source, preview and publish validation will reject it rather than inventing a value.
Variables
Variables are typed values organized into collections. A collection can have multiple modes, letting a Project use coherent value sets such as default and promotion.
Supported basic values include strings, numbers, booleans, and colors. A value can also alias another compatible variable so one change can propagate through the design.
Use screen-level mode overrides when one screen needs a different mode from the Project default. Keep modes purposeful; experiment variants belong in the Journey’s experiment action, not in an informal variable convention.
Bind a value
- Open Data and confirm the source exists.
- Return to Design or Flow and select the target element or action.
- Choose the supported binding control and select the source.
- Verify the rendered result in Preview with realistic data.
Prices, balances, response values, and localized strings may be longer or absent in test state. Design an explicit fallback and verify the edge cases before publishing.
Variables versus capabilities
Variables hold reusable values. Capabilities declare product behavior and its data contract—for example, a paywall capability backed by Products or a response capability backed by a response schema.
Use a capability when the runtime must understand the meaning of the data. Use a variable for presentation state that does not need its own product contract.