Azure AI Health Bot instance variables
During the scenario execution, the scenario author can store and retrieve variable values. There are also variables that are prepopulated by the framework. All variables are contained in our secure storage during the session of the conversation. This means that even if the connection is lost during the conversation or something happens to our servers, all the variables are restored when the conversation is resumed. User data is maintained between conversations.
There are five types of variables you can use inside the action and other expression fields:
Session variables are prefixed with a
session
. Session variables contain different helper methods to support you in creating your scenarios. THis can be string formatting, generating UUID, logging or sending channel data.Scenario variables are prefixed with a
scenario
. For examplemyVar
would be accessed using the syntaxscenario.myVar
. Scenario variables live throughout the lifespan of a scenario. When a scenario ends and returns to the calling scenario, the variables are removed. This means you can write reusable scenarios.Conversation variables are prefixed with a
converstion
sign. For examplemyVar
would be accessed using the syntax denoted byconversation.myVar
. Conversation variables can persist across several scenarios throughout the lifespan of the conversation session.User variables are prefix with an
user
. For example,myVar
would be accessed using syntax denoted byuser.myVar
. They persist indefinitely across conversations with the same user. User variables are deleted when the user makes an explicit request to be forgotten.Global variables Variables set in this way maintain their context and are persistent in all scenarios and for all users.
Warning
The old variable notations ($, @, &) are still supported along side the new notations, but will be deprecated in the future. It's highly recommended using the new notations.
Session Variables
This section contains information regarding the session.
variable.
Variable | description |
---|---|
session.btoa |
Create a base64 encoded string from a string |
session.atob |
Create a string from a base64 encoded string |
session.randomUUID |
Generate a random UUID |
session.hash |
Hash a string using a key |
session.trace |
Log a trace message that is visible while debugging the bot in this editor. |
session.saveFeedback |
Log a user feedback (text and score). You can then see the logged feedback in the Analytics => Feedback page |
session.send |
This function sends a message from the bot to the user. |
session.logOutcomeEvent |
Logs event that describes the outcome of a scenario |
session.logCustomEvent |
Logs event that describes the outcome of a scenario |
session.sendChannelData |
This function sends text and other data in the current channel. |
session.getCustomLocalizedValue |
This function retrieves the value of a custom localized string by its ID. If fallbackToDefaultLocale is set the false, it returns undefined in case the current conversation language doesn't have a translation for that string. Otherwise, it retrieves the English US version of this string. |
session.getSystemLocalizedValue |
This function retrieves the value of a system localized string by its ID. |
session.message |
Access to the current message properties sent to the bot from the user |
[DEPRECATED] session.privateConversationData |
This value shouldn't be used. Use conversation instead. |
[DEPRECATED] session.userData |
This value shouldn't be used. Use 'user' instead |
[DEPRECATED] session.context |
This value shouldn't be used. |
[DEPRECATED] session.bot |
This value shouldn't be used. |
[DEPRECATED] session.any |
This value shouldn't be used. |
Conversation Variables
This section contains information about the conversation.
variable.
Variable | description |
---|---|
conversation.resourcesUrl |
Use this parameter to get the location of your uploaded resources in the bot. For example if you uploaded an image in the Azure AI Health Bot Resources, you can access this via conversation.resourcesUrl + /image.png |
Scenario Variables
This section contains information about the scenario.
variable.
Variable | description |
---|---|
scenario.scenarioArgs |
You can use the scenarioArgs to get the variables when you are 'setting the run arguments' in the sceniario editors |
User Variables
This section contains information about the user.
variable.
The user section can contain information you define by setting the variable.
For example setting user.street
to main-street
would then be available anywhere to get that value linked to the user.
Global variables
Instance variables are scoped to a specific user or conversation. Global variables are available to all users and can be accessed from any scenario. Global variables are managed via the special step in the visual editor or programatically using a special syntax. Learn more about global variables.