Categories:
Aura Context global data model
Description of the global model in which Aura Context data is structured
Introduction
Aura Context data is structured in context fields, each of them defined by a pair name-value.
This model is common for all developers willing to use Aura Context: Aura Global Team defines and manages the model and uploads data from Aura modules, channels or devices into the Aura Context database.
An Aura Context developer:
- Can consume this data directly, if the global data model is fully compatible with his own data model, or
- Can use a transform or a file schema in order to modify or add new fields to the database
Certain key considerations regarding the Aura Context global data model are included below:
- Different Aura components, channels or devices can upload data to certain specific fields of the global database.
- It is possible to have fields with no filled data in the database due to several reasons. For example: in a specific lapse of time, information has not been sent from a module, channel or device; a specific channel is not available, thus its associated fields are not of application, etc.
- However, there are certain mandatory fields that correspond to the table “Identification fields” of the database that must be always filled. These fields cannot be modified via an Aura Context transform.
- The storage of data into the database is always based on:
- A user, identified by the field
aura:idGlobal - An interaction, identified by the field
aura:corrId
- A user, identified by the field
- The name of the field is different from the name of the field that is stored in the database. Both are included in columns 1 and 2 of the following tables.
Identification fields
| Name | Name in database | Format | Semantics | Current Aura Context version |
|---|---|---|---|---|
aura:idGlobal |
aura_id_global |
string (UUID) | aura_id_global for the user |
✔️ |
aura:userId |
user_id |
string (UUID) | userId in the OB |
✔️ |
aura:corrId |
corr |
string (UUID) | corr_id corresponding to the current interaction |
✔️ |
aura:timestamp |
timestamp |
ISO 8601 (UTC, with milliseconds) | First transaction storage timestamp | ✔️ (automatically filled) |
aura:timestampLastUpdate |
timestamp_last_update |
ISO 8601 (UTC, with milliseconds) | Last timestamp update of this interaction | ✔️ (automatically filled) |
aura:activeMsisdn |
active_msisdn |
string (country prefix and MSISDN integer number) | Currently active MSISDN of the interaction. Empty if a MultiMSISDN user is logged with user/pass. |
✔️ (phoneNumber) |
aura:userType |
data.user_type |
enum string: monoMSISDN, multiMSISDN, anonymous, etc. | Type of Aura user | ✔️ |
aura:subscriptionType |
subscription_type |
enum string: prepaid, postpaid, control, other | Type of user subscription. Empty, if a multiMSISDN user is logged with user/pass. |
✔️ |
aura:accountNumber |
account_number |
string | User AccountNumber in TV use cases. Empty for other use cases. |
✔️ |
Application
| Name | Name in database | Format | Semantics | Current Aura Context version |
|---|---|---|---|---|
application:id |
application_app_id |
string (UUID or similar) | Unique identifier for the application (it changes with each application version) | ✔️ |
application:channelName |
application_app_channel_name |
string | Canonic name of the channel where the request is sent by the user | ✔️ (prefix format) |
application:contextFilters |
application_app_context_filters |
Array of strings | application:contextFilters semantics. String to filter the final response sent by aura-bot instance back to the Telefónica client. I.e., to determine the most appropriate answer to a generic question. The format of each entry of the array should be key:value, where both key and value are application dependant. |
✔️ |
application:playId |
application_app_play_id |
string (integer, UUID or similar) | Identifier for the content being played (local or remote) | ✔️ |
application:playMode |
application_app_play_mode |
string: local or remote |
Content playing mode set in the application | ✔️ |
application:playType |
application_app_play_type |
string: live, catchup, vod, etc. |
Content type being played | ✔️ |
application:playServiceId |
application_app_play_service_id |
string | Identifier of the service to be played | ✔️ |
application:playServiceUID |
application_app_play_service_uid |
string | Unique Identifier of the service being played | ✔️ |
application:playLiveProgramId |
application_app_play_live_program_id |
string | Identifier of the show being played | ✔️ |
application:timezone |
application_app_timezone |
IANA timezone | Timezone configured at the application/client | ✔️ |
application:userAction |
application_app_user_action |
string, app-dependent. Eg: playContent, searchContent, viewAccountDetails, phoneCall, etc. |
A token describing the action the user was carrying on in the device that generated the request when the Aura request was launched | Field currently not filled |
application:interfaceLanguage |
application_app_interface_language |
string: ISO 639-1 + ISO 3166 (joined by underscore) | Language in which the application is configured | ✔️ |
application:channelDataVersion |
application_app_channel_data_version |
string | Version sent in the channel request | ✔️ |
device:id |
application_device_id |
string (UUID or similar) | Unique identifier for the device running the application | ✔️ (from device) |
device:type |
application_device_type |
string: homebase, ios.cell, android.cell, ios.tablet, android.tablet, pc |
Device class | ✔️ (from device) |
application:screenId |
application_app_screen_id |
string (application dependent) | Identifier designating the application section/screen where the Aura request came from | ✔️ |
application:screenElements |
application_app_screen_elements Name in the database for internal sub-fields: ucid; type; resume_time; live_program_id; focus |
Array of maps showing content in the device. Each map has these fields: ucid: string; type: string; resumeTime: string; liveProgramId: string; focus: boolean |
List of elements that appears in the application screen. It could be empty. | ✔️ |
output:showSuggestions |
application_output_show_suggestions Name in the database for internal sub-fields: suggestion_id; intent; entities; type; value; canon; label; score; text; timestamp; show_to_user |
Array of maps with suggestions sent to the channel: suggestion_id: string; intent: string; entities: array of maps; type: entity-type; value: entity-value; canon: canon-value; label: label-value; score: score-value; text: string; timestamp: ISO 8601; show_to_user: boolean |
List of suggestions shown to the user. Each has a unique identifier (suggestion_id) to correlate the effect on the next user’s action and contains a timestamp of the approximate moment when it was shown to the user. The rest of elements are the suggestion components, including intent, entity types (useful for further semantic analysis on analytical models), entities and the current text shown. The field show_to_user tells whether the suggestion has been shown to user by the channel. |
Field currently not filled |
Environment
| Name | Name in database | Format | Semantics | Current Aura Context version |
|---|---|---|---|---|
location:logical |
environment_location_logical |
string: home, outsidehome | Current logical location for the user | ✔️ |
Conversation
| Name | Name in database | Format | Semantics | Current Aura Context version |
|---|---|---|---|---|
input:modality |
conversation_input_modality |
string: voice, text, form |
Modality for the input user interaction | ✔️ |
input:utterance |
conversation_input_utterance |
string | Utterance sent by the user. Empty if auraCommand. | ✔️ |
input:command |
conversation_input_command |
string | Stringified of the auraCommand object | ✔️ |
recog:module |
conversation_recog_module |
string: nlp, value, text, command |
A string identifying the module that was responsible for the NLP decision | ✔️ |
recog:domain |
conversation_recog_domain |
string | Domain recognized by NLP | Field currently not filled |
recog:resultList |
conversation_recog_result_list Name for internal sub-fields: id; score |
id: string; score: number |
List of recognized results (up to 3), ordered by they corresponding scores. | ✔️ |
recog:entities |
conversation_recog_entities Name for internal sub-fields: type; value; canon; label; score |
Array of maps: type: entity-type; value: entity-value; canon: canon-value; label: label-value; score: score-value |
List of recognized entities, regarding only to the first intent returned during the main recognition phase | ✔️ |
recog:negativity |
conversation_recog_negativity |
double: value in [0, 1] | Level of negative sentiment identified by a trained model | Field currently not filled |
dialog:intents |
conversation_dialog_intents |
array of strings | Each intent redirection made by the bot will add the name of the intent to the list. | Currently, only redirections with contex-filter are stored |
dialog:ids |
conversation_dialog_ids |
array of strings | Each dialog redirection made by the bot will add the id of the dialog to the list. | Currently, only first dialog id is stored |
output:text |
conversation_output_text |
string | Message sent back to the user | ✔️ |
output:speak |
conversation_output_speak |
string | Spoken message sent back to the user | ✔️ |
output:suggestions |
conversation_output_suggestions Name for internal sub-fields from ‘suggestions’: type; value; canon; label; score |
Array of suggestion results. A suggestion is a map with type, id and (optionally) an array of entities as a map. The entities array contains: type: entity-type; value: entity-value; canon: canon-value; label: label-value; score: score-value |
Produced list of suggestions | ✔️ |
User
| Name | Name in database | Format | Semantics | Current Aura Context version |
|---|---|---|---|---|
userProductList |
user_user_product_list |
array of strings | List of products/services contracted by the user | Field currently not filled |
videoProfileName |
user_video_profile_name |
string | The video profile assigned to the user | Field currently not filled |
Data model in Kernel
The process of data storage in Kernel is automatic and transparent for developers.
Information is stored in Kernel datasets using URM format. These specific datasets are:
Aura_Agent_Context
{
"namespace": "com.plainAVRO",
"name": "Aura_Agent_Context",
"type": "record",
"doc": "Contains the data for Aura context stored by agents for each user and correlator",
"x-fp-version": "5.9.0",
"fields": [
{
"name": "OPERATOR_ID",
"aliases": [
"operator_id"
],
"type": [
"null",
"string"
],
"doc": "Global Operator Identifier (Operator acting as owner of the information present in the current entity)"
},
{
"name": "USER_4P_ID",
"aliases": [
"user_4p_id"
],
"type": {
"type": "string",
"x-fp-user-id": true
},
"doc": "Identifier of the user in 4th Platform (as returned by the OB in the 4th Platform APIs)"
},
{
"name": "RECORD_ID",
"aliases": [
"record_id"
],
"type": "string",
"doc": "Id for the record in context"
},
{
"name": "AGENT_DES",
"aliases": [
"agent_des"
],
"type": "string",
"doc": "Agent name using context"
},
{
"name": "FIELD_DES",
"aliases": [
"field_des"
],
"type": "string",
"doc": "Agent stored field name"
},
{
"name": "VALUE_DES",
"aliases": [
"value_des"
],
"type": [
"null",
"string"
],
"doc": "Agent stored field value"
},
{
"name": "PARTITION_TM",
"aliases": [
"partition_tm"
],
"type": {
"type": "string",
"logicalType": "datetime"
},
"doc": "Date-time of the record, for data partitioning purposes"
}
]
}
Aura_Context
{
"name": "APPLICATION_APP_PLAY_ID",
"aliases": [
"application_app_play_id"
],
"type": [
"null",
"string"
],
"doc": "Identifier for the content being played"
},
{
"name": "APPLICATION_APP_PLAY_MODE_DES",
"aliases": [
"application_app_play_mode_des"
],
"type": [
"null",
"string"
],
"doc": "Content playing mode set in the application"
},
{
"name": "APPLICATION_APP_PLAY_TYPE_DES",
"aliases": [
"application_app_play_type_des"
],
"type": [
"null",
"string"
],
"doc": "Content type being played"
},
{
"name": "APPLICATION_APP_PLAY_SERVICE_ID",
"aliases": [
"application_app_play_service_id"
],
"type": [
"null",
"string"
],
"doc": "Identifier of the service being used to played"
},
{
"name": "APPLICATION_APP_PLAY_SERVICE_U_ID",
"aliases": [
"application_app_play_service_u_id"
],
"type": [
"null",
"string"
],
"doc": "Unique identifier of the service being played"
},
{
"name": "APPLICATION_APP_PLAY_LIVE_PROGRAM_ID",
"aliases": [
"application_app_play_live_program_id"
],
"type": [
"null",
"string"
],
"doc": "Identifier of the show being played"
},
{
"name": "APPLICATION_APP_TIMEZONE_DES",
"aliases": [
"application_app_timezone_des"
],
"type": [
"null",
"string"
],
"doc": "Timezone configured at the application/client"
},
{
"name": "APPLICATION_APP_USER_ACTION_DES",
"aliases": [
"application_app_user_action_des"
],
"type": [
"null",
"string"
],
"doc": "A token describing the action the user was carrying on in the device that generated the request when the AURA request was launched"
},
{
"name": "APPLICATION_APP_INTERFACE_LANG_ID",
"aliases": [
"application_app_interface_lang_id"
],
"type": [
"null",
"string"
],
"doc": "Language the application is configured in"
},
{
"name": "APPLICATION_APP_CHANNEL_DATA_VERSION_DES",
"aliases": [
"application_app_channel_data_version_des"
],
"type": [
"null",
"string"
],
"doc": "Version sent in the request of the channel"
},
{
"name": "APPLICATION_APP_SCREEN_ID",
"aliases": [
"application_app_screen_id"
],
"type": [
"null",
"string"
],
"doc": "An identifier designating the application section/screen where the AURA request came from"
},
{
"name": "APPLICATION_APP_SCREEN_ELEMENTS_ID",
"aliases": [
"application_app_screen_elements_id"
],
"type": [
"null",
"string"
],
"doc": "Elements that appear in the screen of the application"
},
{
"name": "APPLICATION_DEVICE_ID",
"aliases": [
"application_device_id"
],
"type": [
"null",
"string"
],
"doc": "A unique identifier for the device running the application"
},
{
"name": "APPLICATION_DEVICE_TYPE_DES",
"aliases": [
"application_device_type_des"
],
"type": [
"null",
"string"
],
"doc": "The device class"
},
{
"name": "APPLICATION_OUTPUT_SHOW_SUGGESTIONS_DES",
"aliases": [
"application_output_show_suggestions_des"
],
"type": [
"null",
"string"
],
"doc": "Suggestions shown to the user"
},
{
"name": "ENVIRONMENT_LOCATION_LOGICAL_DES",
"aliases": [
"environment_location_logical_des"
],
"type": [
"null",
"string"
],
"doc": "Current logical location for the user"
},
{
"name": "CONVERSATION_INPUT_MODALITY_DES",
"aliases": [
"conversation_input_modality_des"
],
"type": [
"null",
"string"
],
"doc": "Modality for the input user interaction"
},
{
"name": "CONVERSATION_INPUT_UTTERANCE_DES",
"aliases": [
"conversation_input_utterance_des"
],
"type": [
"null",
"string"
],
"doc": "Utterance sent by the user"
},
{
"name": "CONVERSATION_INPUT_COMMAND_DES",
"aliases": [
"conversation_input_command_des"
],
"type": [
"null",
"string"
],
"doc": "Stringified of the Aura Command object"
},
{
"name": "CONVERSATION_RECOG_MODULE_DES",
"aliases": [
"conversation_recog_module_des"
],
"type": [
"null",
"string"
],
"doc": "A string identifying the module that was responsible for the NLP decision"
},
{
"name": "CONVERSATION_RECOG_DOMAIN_DES",
"aliases": [
"conversation_recog_domain_des"
],
"type": [
"null",
"string"
],
"doc": "Domain recognized by NLP"
},
{
"name": "CONVERSATION_RECOG_RESULT_TYPE_DES",
"aliases": [
"conversation_recog_result_type_des"
],
"type": [
"null",
"string"
],
"doc": "Type of result produced by NLP"
},
{
"name": "CONVERSATION_RECOG_RESULT_LIST_DES",
"aliases": [
"conversation_recog_result_list_des"
],
"type": [
"null",
"string"
],
"doc": "Recognized results with their scores"
},
{
"name": "CONVERSATION_RECOG_ENTITIES_DES",
"aliases": [
"conversation_recog_entities_des"
],
"type": [
"null",
"string"
],
"doc": "Recognized entities"
},
{
"name": "CONVERSATION_RECOG_NEGATIVITY_QT",
"aliases": [
"conversation_recog_negativity_qt"
],
"type": [
"null",
"float"
],
"doc": "Grade of negative sentiment identified by a trained model"
},
{
"name": "CONVERSATION_DIALOG_INTENTS_DES",
"aliases": [
"conversation_dialog_intents_des"
],
"type": [
"null",
"string"
],
"doc": "Each intent redirection made by the bot"
},
{
"name": "CONVERSATION_DIALOG_IDS_DES",
"aliases": [
"conversation_dialog_ids_des"
],
"type": [
"null",
"string"
],
"doc": "Each dialog redirection made by the bot"
},
{
"name": "CONVERSATION_OUTPUT_TEXT_DES",
"aliases": [
"conversation_output_text_des"
],
"type": [
"null",
"string"
],
"doc": "Message sent back to the user"
},
{
"name": "CONVERSATION_OUTPUT_SPEAK_DES",
"aliases": [
"conversation_output_speak_des"
],
"type": [
"null",
"string"
],
"doc": "Message to be spoken sent back to the user"
},
{
"name": "CONVERSATION_OUTPUT_SUGGESTIONS_DES",
"aliases": [
"conversation_output_suggestions_des"
],
"type": [
"null",
"string"
],
"doc": "Produced suggestions"
},
{
"name": "USER_USER_PRODUCT_LIST_DES",
"aliases": [
"user_user_product_list_des"
],
"type": [
"null",
"string"
],
"doc": "Products/services contracted by the user"
},
{
"name": "USER_VIDEO_PROFILE_NAME",
"aliases": [
"user_video_profile_name"
],
"type": [
"null",
"string"
],
"doc": "The video profile assigned to the user"
},
{
"name": "PARTITION_TM",
"aliases": [
"partition_tm"
],
"type": {
"type": "string",
"logicalType": "datetime"
},
"doc": "Date-time of the record, for data partitioning purposes"
}
Last modified May 18, 2026: Remove KGB (52b04d91)