Skip to main content


         This documentation site is for previous versions. Visit our new documentation site for current releases.      
 

Extending Interaction History

Updated on July 5, 2022

Learn about the underlying configuration of Interaction History and how to extend it to match your business objectives.

You can extend Interaction History to record more aspects of customer interactions as property values and use those values to determine the next best action for your customers or as key performance indicators (KPIs) of your decisioning strategy. As an example, Interaction History can be extended with two properties: ProductID and HandleTime.

Interaction History is the Decision Management data layer that stores all interactions with customers (responses to specific propositions). Information that is collected during each interaction is written into the appropriate Interaction History database table. Each database table contains several default properties that are defined on the corresponding class. Case-sensitive name matching is used between properties in the database table, Strategy Result (SR) properties, and Interaction History properties. Typically, the same Interaction History is used by multiple applications that use a shared implementation.

Data transform for Interaction History configuration

The pyInteractionHistoryConfiguration data transform that is defined in the Data-Decision-IH-Configuration class configures Interaction History by setting the properties in this class. In your application ruleset, you can override the pyInteractionHistoryConfiguration data transform to customize Interaction History.

The following table provides an overview of the properties that you can set by using the pyInteractionHistoryConfiguration data transform.

Properties that can be set by using the pyInteractionHistoryConfiguration data transform

PropertyTypeDescription
pyFactPropertiesValue List (Text)Lists FACT properties.
pyActionPropertiesValue List (Text)Lists action dimension properties.
pyApplicationPropertiesValue List (Text)Lists application dimension properties.
pyChannelPropertiesValue List (Text)Lists channel dimension properties.
pyContextPropertiesValue List (Text)Lists context dimension properties.
pyCustomerPropertiesValue List (Text)Lists customer dimension properties.
pyLocationPropertiesValue List (Text)Lists location dimension properties.
pyOperatorPropertiesValue List (Text)Lists operator dimension properties.
pyOutcomePropertiesValue List (Text)Lists outcome dimension properties.
Note: The pxOutcomeTime property should be set to the system time.
pyMeasurementsValue List (Text)Lists the subset of pyFactProperties that can be used as KPIs.
Note: The pyOutcome dimension drives interaction, adaptive learning, and business monitoring results, even if you explicitly set other properties in this dimension.

For more information, see Data transforms.

Extending Interaction History

The process of extending the Interaction History layer in your application consists of the following steps:

  1. Adding columns in a database table
  2. Adding extensions in application rulesets

Adding columns in a database table

Select the most appropriate database table. It is recommended that you add a column to the FACT table if you expect that the column will contain multiple values that are unique or if the column will represent a property to be used as a KPI. In any other case, consider adding columns to dimension tables. For example, you can extend Interaction History with the ProductID and HandleTime properties.

  • Perform the following steps to add ProductID, which is the ID of the offered product, to a dimension database table:
    1. Add the column to the action dimension table, because the list of product IDs consists of a limited number of values, and ProductID is part of a proposition.
    2. Specify the data type of the database column as one that can hold characters and numbers, for example, VARCHAR2(255), because ProductID has a text value.
  • Perform the following steps to add HandleTime, which is the duration of the conversation, to the FACT table:
    1. Add the column to the FACT table, because a large number of distinct values is expected and the property is used as a KPI.
    2. Specify the data type of the database column as one that can hold integers, for example, NUMBER(18,0), because HandleTime has an integer value.

For more information, see Database tables.

Adding extensions in application rulesets

Add the properties that are extensions of Interaction History to the FACT, dimension, and SR class.

Note: Properties can be shared among multiple applications or they can be application-specific if security or privacy considerations make certain properties unavailable for other applications. Assume that the sample ProductID property is shared among call center and outbound marketing applications while HandleTime is specific only to the call center application.
  • Perform the following actions to extend Interaction History with the ProductID property for all applications in the action dimension table:
    1. Add a new property ProductID of type Text to the Data-Decision-IH-Dimension-Action data model in the application rulesets of the call center and outbound marketing applications.
    2. Add the ProductID property of type Text to the Strategy Result (SR) class of both applications.
    3. Override the pyInteractionHistoryConfiguration data transform in the Data-Decision-IH-Configuration data model for both application rulesets:
      1. Add a Set action and set Primary.pyActionProperties(<APPEND>) to "ProductID".
      2. Enable the Call superclass data transform setting to ensure that the default configuration is included.
  • Perform the following actions to extend Interaction History with the HandleTime property for the call center application:
    1. Add a new property HandleTime of type Integer to the Data-Decision-IH-Fact data model in the application ruleset of the call center application.
    2. Add the HandleProperty to the SR class of the call center application.
    3. Override the pyInteractionHistoryConfiguration data transform in Data-Decision-IH-Configuration for the call center ruleset:
      1. Add a Set action and set Primary.pyFactProperties(<APPEND>) to "HandleTime".
      2. Add a Set action and set Primary.pyMeasurements(<APPEND>) to "HandleTime". This step is necessary so that you can use the property as a KPI.
      3. Enable the Call superclass data transform setting.
Tip: If the new properties are not recognized, save the corresponding database table rule, then log out and log in again.
Tip: To prevent issues with loading or saving instances of a class, if you add a property to the FACT or dimension classes but that property is not to be considered part of Interaction History, configure the property's persistence settings so that it does not save property data.

Have a question? Get answers now.

Visit the Support Center to ask questions, engage in discussions, share ideas, and help others.

Did you find this content helpful?

Want to help us improve this content?

We'd prefer it if you saw us at our best.

Pega.com is not optimized for Internet Explorer. For the optimal experience, please use:

Close Deprecation Notice
Contact us