Creating and managing package variables
Package variables allow you to centrally create and manage information that is referenced and reused across your package, enabling you to update them in one location only. Package variable use cases include choosing which data model to reference, configurating which team member should be assigned, and which external platform you want to connect to.
There are four types of package variables:
Data Model: These variables allow you efficiently change the data model(s) which you are building your package (and relevant package Views) from. You can add multiple data model variables per package. See: Data model package variables.
Assignment Rule: Using assignment rules package variables allows you to assign tasks and send emails to specific users on a per-case basis. Assignment rules require a Knowledge Model to be available and selected for each created rule. See: Assignment rule package variables.
Connection: Using a connection variable enables you to configure and connect to a specified profile in an external application (such as Gmail or Microsoft Teams). Connection variables can then be inserted based on the profile and application you want your package to interact with. See: Connections package variables.
Plain Text Value: Using plain text value variables allows you to add and reference frequently used words (such as names) in all text fields within your Knowledge Models and Views. See: Plain text value package variables (runtime variable).
Creating package variables
To create a package variable while viewing your package:
Click Package Settings - Variables:
Click Create Variable and select your variable type.
Follow the variable creation wizard steps (with each variable type following different steps).
See: Package variable types.
Click Save.
The variable is created and added to your package variable overview page.
Managing existing package variables
Once created, you can manage existing variables by clicking the options icon:
![]() |
The options available here depend on the variable type.
Deleting any variable type is permanent however, with no recovery or reversal possible.
You can create and manage the following package variable types:
Using a data model variable allows you efficiently change the data model(s) which you are building your package (and relevant package Views) from. You can add multiple data model variables per package.
When creating a data model variable, you select the data model to use and then enter the key that you want to reference it with:

Using assignment rules package variables allows you to assign tasks and send emails to specific users on a per-case basis. Assignment rules require a Knowledge Model to be available and selected for each created rule.
When creating an assignment rule package variable, you have the following basic configuration fields:
Name: An internal name for the variable, helping you identify it within your package.
Key: The reference used for the variable.
Description (optional): An internal text-based description to help you identify the variable within your package.
Default assignee: This can be either a custom output or one of the existing users. The Default Assignment will be used for every combination of Input Attributes that have not been assigned explicitly to a different Output.
Knowledge Model: Select one of the published Knowledge Models for the Input Attributes.
Record(s): Select at least one Record. This defines the possible values for the Input Attributes below.
Input Attribute(s): Select at least one Input Attribute you want to use in this Assignment Rule. The 'Edit Assignments' modal will allow you to set custom Assignees for each distinct combination of these Input Attributes.

Using a connection variable enables you to configure and connect to a specified profile in an external application (such as Gmail or Microsoft Teams). Connection variables can then be inserted based on the profile and application you want your package to interact with.
When creating a connection package variable, you need to select the following:
Application: Choose from the list of supported applications.
Connection: Enter the username and password needed to connect to the above application.
Key: The reference used for the variable.

Using plain text value variables allows you to add and reference frequently used words (such as names) in all text fields within your Knowledge Models and legacy Views.
When creating a plain text value package variable, you have the following options:
Runtime (automatically selected): Runtime variables are evaluated on "runtime", meaning that changing the value of this variable will change throughout all users and places within Studio or Apps respectively. Changes in Studio are not synced to Apps and vice-versa. For more information, see: Package runtime variable behavior.
Key: The reference used for the variable.
Plain text value (optional): The default placeholder text to be used when this variable is used within a legacy View or Knowledge Model.
Description (optional): An internal text-based description to help you identify the variable within your package.

Package runtime variable behavior
When runtime variables are used in legacy Views, the following behavior applies:
The first time you publish a package with a new runtime variable, the variable will be set in Apps with the current value, but it will then not be linked to the version in the Studio anymore.
Runtime variables won't work in profile legacy Views (opened as modal or slide-in).
If a component is built to update legacy View variables, it will also update runtime variables (ex: you can update a runtime variable using the kpi-list by clicking a KPI, if you are in tile view and defined the onClick behavior).
Runtime variables don't need to be declared in your Legacy View, you can just use the key and it should work 'out of the box'.
If a variable is declared in the legacy View which has the same name as the key of a runtime variable, the View will ignore the runtime variable and work with the defined variable in the View instead. i.e: when updating the variable, only the value of the View variable will be changed and not the package runtime variable. If you want to change that, you need to remove the declaration of the variable with the same name from the View.
To reference package variables in Studio Views:
If you want to use the value of the variable, use: ${...}
For example:
components: - id: my-id type: text-box settings: content: This is text with the following variable -> ${ myRuntimeVariableKey }
If you want to reference to the variable itself (for example to fill the variable) use the plain variable key
For example:
onChange: update: variables: - name: myRuntimeVariableKey (if you want to reference to the variable and not to the value within)
To reference package variables in your Knowledge Models, use double braces to access the package variable value: e.g.: ${{runtimeVariable}}
For example:
kpis: - id: KPI_RUNTIME_TEST displayName: runtime test variable pql: COUNT(DISTINCT ${VARIABLE_INVOICE_KEY}) * ${{runtimeVariable}} ...