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
  • 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)