Engagement Propensity models
Algorithm name: Engagement Propensity
Applies to: B2B, B2C
Engagement Propensity algorithm helps build a custom classification model specific to a customer use case where the user can define custom target variable as well as custom data inputs
What is Engagement Propensity model?
The Engagement Propensity Model is a ready-to-use data science model that measures the likelihood of customers' engagement with marketing campaigns based on their historical behavior. It helps marketers better understand customer intent, allowing for more targeted and effective campaign strategies. Engagement can include key actions such as opening an email, clicking a link, subscribing, or any other significant interaction.
In addition to its primary use case, the Engagement Propensity Model can be adopted as a custom classification model, enabling development of custom propensity models tailored to specific business needs.
Parameters of the model
When setting up the Engagement Propensity Model, you will need to define several key parameters:
-
Algorithm: This is the core piece of code that runs the model. When selecting the Engagement Propensity algorithm, you must also define:
-
Target: Specifies the target variable (desired outcome) for the model. Currently, the model supports the following events: email open, email click, email subscribe, and email unsubscribe.
-
To build a custom classification model, choose ‘Custom Target’ option
-
-
Queries: The queries you select generate the dataset used for both model training and scoring.
-
Inputs: Inputs are attributes from the Oracle Unity data model that the model uses during training and scoring.
-
Outputs: These are the data objects and attributes from the Unity data model that store the model's output values. You can customize the default output mappings if needed.
To build a custom propensity model using Engagement propensity algorithm, click here
To implement the engagement propensity model with out of the box target labels, click here
To build a custom propensity model
Follow the below steps
-
Create a new model profile in Intelligence Workbench
-
Details - Enter a model name and a description that clearly outlines the use case for the model.
-
Algorithm – Select the ‘Engagement Propensity’ algorithm.
-
This action will trigger the ‘Parameters’ pop-up. In the dropdown menu, select the "Custom target" option to build a custom propensity model.
-
-
Query
-
Ensure the correct training and scoring queries are mapped to the model.
-
Verify that the training query includes the custom target variable ("Target") containing the labels. Ensure that the target attribute is correctly mapped to the field with label values, which should be represented by 0 and 1. (refer to this code snippet for sample)
-
For instance, if you are building a custom churn model, the label 1 should represent "churn" and 0 should represent "non-churn."
-
-
-
Mapping - The Inputs section will now indicate that the inputs are custom, reflecting the custom data query attributes.
-
'Schedule' - Select the appropriate training and scoring schedule to ensure the model runs as desired.
To build the model using out-of-the-box target labels
Follow the below steps
-
Create a new model profile in Intelligence Workbench
-
Details - Enter a model name and a description that clearly outlines the use case for the model.
-
Algorithm – Select the ‘Engagement Propensity’ algorithm.
-
Query -
-
Ensure the correct training and scoring queries are mapped to the model.
-
Ensure the relevant events are available in the data for the model to learn the patterns
-
-
Mapping - The Inputs section will now indicate that the inputs are custom, reflecting the custom data query attributes.
-
'Schedule' - Select the appropriate training and scoring schedule to ensure the model runs as desired.
Model inputs
The Engagement Propensity model uses the following data. For the model to successfully run, data needs to be ingested into all the input attributes mentioned below.
Attribute from Unity data object |
Attribute name in the query |
Unity Data object |
Description of the attribute |
Expected Data Type |
Must have? |
---|---|---|---|---|---|
ID |
ID |
MasterCustomer |
MasterCustomer identifier |
String |
Yes |
Medium |
Medium |
Event |
Engagement channel through which an event was captured |
String |
Yes |
Type |
Type |
Event |
Engagement event type indicating lead's intent |
String |
Yes |
Target |
Target |
Event |
Required only if the user selects "Custom Target' as input parameter in the model profile; it is required to have the values "1" and "0" denoting positive & negative labelvalue |
Boolean |
Yes |
EventTS |
EventTS |
Event |
Timestamp of when an event occurred |
timestamp |
Yes |
City |
City |
Customer |
City of the customer - helps assess regional differences in driving outcomes |
String |
|
Gender |
Gender |
Customer |
Gender of the customer - helps assess gender based differences in driving outcomes |
String |
|
Age |
Age |
Customer |
Age of the customer - helps assess age based differences in driving outcomes |
INT |
|
SourceID |
Source_ID |
Customer |
SourceID of the customer |
String |
Yes |
SourceMarketingProgramID/ SourceCampaignID |
Campaign_ID |
MarketingProgram/ Campaign |
SourceCampaignID from Campaign object |
String |
|
ProgramType/ Type |
campaign_type |
MarketingProgram/ Campaign |
Campaign type: Ex: Promotional campaign, Transactional campaign |
String |
|
Key considerations on model inputs
-
Data schema checks: If an attribute is unavailable, assign a constant default value across all records. This allows the model to validate the input schema. This will not impact the model outcomes as the attribute will be excluded during feature importance analysis due to lack of data variance.
-
Target variable: Ensure the selected ‘Target variable’ is available in the input data. Additionally, verify that there are two distinct classes of profiles (based on the ‘Target variable’), which is essential for the classification model to learn effectively. For example, if ‘Email open’ is chosen as the target variable, the dataset must include both customers who opened the email and those who did not.
-
Schema consistency: Ensure that the attributes used in the query exactly match the specified 'Attribute name in the query' (in the above table) to avoid schema mismatches during model execution.
-
Non-mandatory attributes: These attributes, when available, can enhance the model’s learning and improve its predictive performance. However, if they are missing, the model will still leverage other available attributes to make predictions.
Key input data guidelines for Propensity models
-
Label requirements: Ensure the model data contains at least 500 positive signals (leads) and 500 negative signals (non-leads)
-
Data requirements:
-
It is recommended to provide at least 50,000 data records for model training. However, it is important to bring as much data as possible to build a robust model
-
It is recommended to keep the dataset under 10M records (soft limit). This limit can vary for every model, but maintain a manageable size helps ensure efficient model performance.
-
Best practices
-
Use case first approach: Begin with a specific use case to determine the data required for solving the problem effectively.
-
Review model data requirements with both business and data teams to ensure alignment
-
-
Contextual parameters: Choose model parameters (such as lookback window) based on the business/ use case context.
-
Query validation: Test both the training and scoring queries to validate that they return data and inspect sample records resulting from the query
Model outputs
Output values will be stored in the EngagementPropensity data object. You can review the propensity score values for each customer in the PropensityScore attribute.
Attribute ID |
Attribute Name |
Attribute Description |
Data type |
---|---|---|---|
SourceMasterCustomerID |
Source Master Customer ID |
This attribute contains the original form of the MasterCustomer ID from the source data system. |
STRING |
SourceEngagementPropensityID |
Source Engagement Propensity ID |
This attribute contains the unique ID for the object. |
STRING |
PropensityScoreBin |
Propensity Score Bin |
This attribute contains the score classification (High/ Medium/ Low). |
STRING |
PropensityScore |
Propensity Score |
This attribute contains the engagement score of the customer. |
FLOAT |
Medium |
Medium |
This attribute contains the medium for which the model was implemented; examples: Email,SMS. |
STRING |
MasterCustomerID |
Master Customer ID |
This attribute contains the foreign key to the MasterCustomerID. |
STRING |
MarketingProgramType |
Marketing Program Type |
This attribute contains the program type leveraged in the model. |
STRING |
EventType |
Event Type |
This attribute contains the target event type, examples: EmailClick, EmailOpen. |
STRING |
The Decision attribute will generate one of the following values based on the propensity score.
Propensity score |
Decision |
---|---|
0 - 0.33 |
Low |
0.33 – 0.66 |
Medium |
0.67 – 1 |
High |
Code sample for defining custom target labels
