Clients can now use dynamic variables across all widgets real-time, self-service, no developer required. This fully self‑service capability ensures consistent, adaptive messaging across the Bill Explainer interface and includes fallback options to safeguard the client and consumer experience. By removing the dependency on engineering for content changes, this feature aligns CSG with modern SaaS personalization, reduces turnaround time for updates, and delivers clear, targeted communications for each segment.
Creating a Custom Variable
From the left-hand side navigation panel, select Data Mapping. This section lists all existing variables and their associated data paths.
Locate and click on the Add Variable button in the top-right corner of the Data Mapping page. The Add Custom Variable window will appear.

Once the Add Custom Variable window opens, you’ll need to provide key details to define how the variable behaves and where it can be used.
Name
Enter a unique and descriptive name for the variable. Choose a name that clearly reflects the purpose of the variable, so it’s easily recognizable when creating content in Studio.
Description
Provide a clear, concise explanation of what the variable represents. This description helps other admins understand the purpose and context of the variable without needing to check the mapping.
For Example: Displays the customer’s total monthly charges before tax.
Type
Select the data type that matches the information you plan to store:
String - Text values, such as names, promo codes, or plan types.
Boolean - True/False values, used for yes/no conditions.
Number - Numeric values without currency formatting. For Example: 1250 (for units, counts, or non-monetary amounts).
Date - Date values in a standard format. For Example: YYYY-MM-DD.
Currency - Monetary values that may include symbols, decimals, and thousands separators.
Choosing the correct type ensures proper formatting and fallback behavior later.
Assign Group
This determines how the variable is applied across the bill:
Custom - A single value for the entire bill. For Example: total bill amount, billing period.
Line Item - A separate value for each line item on the bill. For Example: Data usage per line.
Installment - A separate value for each installment item on the bill. For Example: Monthly payment amount for a device.
For Example: If you choose Line Item, the variable will repeat for every applicable line in the bill; if you choose Custom, it will display only once for the entire bill.

Selection of the variable type is mandatory to move on to Define Fallback Behavior, which ensures your content still displays correctly even when data is missing.
Fallback
Fallback behavior determines what happens when no data is available for the variable.
For String, Number, and Date variables
No Fallback - No alternate value; data from the backend is passed directly to the frontend.

Custom - Fallback ensures the message displays even if data is missing — admins can set a default value, a custom message per language or leave it blank.

For Boolean variables
False (default) - Any value other than "True" will automatically be treated as False.

True - Missing or invalid values will default to True.

For Currency variables
No Fallback – No alternate value; if no backend value exists, nothing is displayed. Currency symbols are not automatically added; include them manually if needed.

Custom – Provide a fallback currency value to use when data is missing. Currency symbols must be added manually.

Once all fields are configured, click on the Create Variable.
Mapping Custom Variables
In the Data Mapping, to locate your new custom variable, scroll to the bottom of the Custom Variables list your newly created variable will appear here.
Map it to the appropriate source path, following the same process as other variables.
Using Custom Variables
While adding or editing a message, open the Variable list panel. Scroll to the Custom Variables section at the bottom your newly created variable will be listed here alongside any others you’ve defined.

Use Case
A telecom provider launches a promotion for customers with high monthly charges. In Studio, they create:
"Your plan total cost for this month is {{Monthly Charges}} - upgrade now & save 20%. Offer ends on {{Promo. End Date}}."
Google can preview the result in real time and publish instantly, visible to all relevant users without code changes.
.png?sv=2026-02-06&spr=https&st=2026-07-22T09%3A07%3A28Z&se=2026-07-22T09%3A20%3A28Z&sr=c&sp=r&sig=K0qQJlTOwNZ6eC1pOvQmjfRek%2FiiMPCA6Ch%2F99Lv8yU%3D)
Key Benefits
Personalization at scale: Tailored, context-aware content across all widgets, instantly.
Faster time-to-market: Launch campaigns in minutes, no dev cycles or PS tickets.
Consistency & control: One variable, many widgets, always accurate, always in sync.
Resilience with fallback: Default values ensure no message breaks, even with missing data.