NBA Strategy framework extension points
The Next-Best-Action strategy has a number of predefined extension points that you can use to add your own business logic to the framework. For example, you can use extension points to apply additional contact policies, or adjust model propensities. For a list of available extension points, see below.
Understanding the naming convention for extension points
Component names for extension points use the following notation:
- AllIssues
- Includes all issues from the Next-Best-Action Designer taxonomy.
- AllGroups
- Includes all groups within one or all issues from the Next-Best-Action Designer taxonomy.
- <Issue>
- The name of an issue in the Next-Best-Action Designer taxonomy.
- <Group>
- The name of a group in the Next-Best-Action Designer taxonomy.
- <Hierarchy_Level>
- Specific issues and groups from the Next-Best-Action Designer taxonomy. Not all of the
below combinations are available for all strategies.
- TopLevel - all groups within all issues
- <Issue> - all groups within the issue
- <Issue>_<Group> - a specific issue and group
- <Issue>_AllGroups - all groups within the issue
- AllIssues_AllGroups - all groups within all issues
- <Context>
- The name of a context entity from the Context Dictionary, for example Customer, Account, or Subscriber.
- <Channel>
- The name of a channel, for example Web, Email or SMS. Both built-in and custom channels are supported.
- <Direction>
- Inbound or outbound.
- <Triggering Strategy>
- Depending on the combination of issues and groups to be processed, and the method of
initiation, for example, real-time container, outbound schedule, or event trigger, the
Next-Best-Action Designer strategy can be invoked from the following strategies:
- H_NBA_<Issue>
- NBA_<Issue>
- NBA_<Issue>_<Group>
- NBA_TopLevel
- Trigger_H_NBA_<Issue>
- Trigger_NBA_<Issue>
- Trigger_NBA_<Issue>_<Group>
- Trigger_NBA_TopLevel
- ->
- Indicates the calling strategy hierarchy for the parent strategy. Each successive strategy is called from the previous one in the list.
List of extension points in strategies
The following table lists the available extension point strategies, the parent strategies where they are referenced, their type, and their purpose.
Extension point strategy name | Parent strategies | Extension type | Purpose |
AuthorizedContact | <Triggering Strategy> <Triggering Strategy> | Required | In a multi-level context implementation, insert logic to only select primary context records that are authorized contacts. When executed from the triggering strategy, the property IsPrimaryContact will be set to true for each of these. |
NBA_<Issue>_<Group>_Ext | Various | Extension | Apply any additional logic to all actions in the named <Issue> and <Group> after the Eligibility, Applicability and Suitability conditions have been evaluated. This logic is executed at the highest context level in the Context Dictionary, regardless of action context, and before the context specific engagement policies. |
NBA_AllIssues_AllGroups_Ext | Various | Extension | Apply any additional logic to all actions in all issue and group combinations after the Eligibility, Applicability and Suitability conditions have been evaluated. The same logic is executed for actions of any context level based on the context of the parent strategy, so if action context is significant, this needs to be accounted for within the logic. |
NBA Pre-Process Extension Point | Various | Extension | Logic can be inserted at the start of the Next-Best-Action strategy framework before any other logic is executed. This is after all engagement policies and any of the above extensions have been executed. |
Handle Model Maturity | <Triggering Strategy> <Triggering Strategy> | Modifiable | The values in the Model Maturity Threshold and Population Percentage Set Property shapes may be changed to suit local requirements. |
ActionLevelPropensityExt | <Triggering Strategy> | Extension | Logic can be inserted after action scoring has occurred, for example, to include addition models or adjust the model propensity. Note that this extension is not executed for transactional actions. |
<Channel>ChannelStrategy | <Triggering Strategy> <Triggering Strategy> | Modifiable | These strategies may need to be updated if additional treatment metadata needs to be added to the treatment definitions, for example if the <Channel>Treatments Decision Data Rule has been extended. |
OutboundPreferencesExtension | <Triggering Strategy> | Extension | Addition logic can be inserted after the treatment data has been retrieved, but before treatment scoring is performed. |
AIModelsExt | <Triggering Strategy> | Extension | Logic can be inserted after treatment scoring has occurred, but prior to outbound model maturity processing, for example, to include addition models or adjust the model propensity. |
TreatmentLevelPropensityExt | <Triggering Strategy> | Extension | Logic can be inserted after treatment scoring and outbound model maturity processing has occurred, for example, to include addition models or adjust the model propensity. |
ControlGroupImpl | <Triggering Strategy> | Extension | Logic can be inserted to determine whether the contact is part of a custom control group. If yes, the additional InControlGroup extension strategy is executed instead of all of the prior next-best-action processing, including action imports and validation. |
InControlGroup | <Triggering Strategy> | Extension | This strategy is provided as an alternative action selection mechanism if the ControlGroupImpl extension strategy identifies the current contact (customer) as being in a control group. |
CalculateValueExtension | <Triggering Strategy> | Extension | This strategy can be modified using the Action value feature from the Arbitration tab in Next-Best-Action Designer. It allows the Action Value property to be calculated for all actions. |
QnAContextWeightingExt | <Triggering Strategy> | Extension | Add any QnA-related logic in this extension strategy to update the .ContextWeight property. Changes should be additive to this property, that is, they should take the form of ContextWeight + myContextWeight. |
<Channel><Direction>ChannelExt | <Triggering Strategy> | Extension | These strategies allow for additional logic to be applied after all default channel processing has occurred. |
ContactPolicyExtension | <Triggering Strategy> | Extension | Allows for addition contact policy rules to be applied after the default rules have been executed. |
FinalLimitsAndBundlingPreExt | <Triggering Strategy> | Extension | This is executed before actions for all contexts have been processed by the Next-Best-Action Designer framework, and before any outbound bundling or final action limits are imposed. |
FinalLimitsAndBundlingPostExt | <Triggering Strategy> | Extension | This is executed before actions for all contexts have been processed by the Next-Best-Action Designer framework, and before any outbound bundling or final action limits are imposed. It is the final stage of the Next-Best-Action Designer framework strategies. |
List of Decision Data rule extension points
The following table lists the available extension point Decision Data rules, the parent strategies where they are referenced, their type, and their purpose.
Extension point Decision Data rules | Parent strategies | Extension type | Purpose |
<Channel>Treatments | <Channel>ChannelStrategy | Modifiable | Additional treatment properties may be added to these Decision Data rules. |
ModelPropensityThresholds | <Triggering Strategy> <Triggering Strategy> | Extension | Used to set lower limits on the propensity generated by the adaptive models at the Direction, Channel, Issue, Group, Action, or Treatment levels. |
ActionLimits | <Triggering Strategy> <Triggering Strategy> | Extension | Used to set limits on the number of actions that can be emitted for each action
context, limits can be set at the Direction and Channel levels. These limits are
processed after arbitration, and before outbound contact policies are applied. For inbound channels, they are only processed for the Web and Mobile channels if Channel treatment processing is disabled. |
OutputBundlingSettings | <Triggering Strategy> | Extension | Used to set the bundling output options (BundleOutputType, SinglePrimary and pyDeliverOffline) by Direction and Channel, which are mainly used for outbound processing. These settings are applied after actions for all contexts have been processed by the Next-Best-Action Designer framework and prior to evaluating the final action limits. |
FinalActionLimits | <Triggering Strategy> | Extension | Used to set limits on the number of actions that can be emitted for each contact or for the interaction as a whole. Limits can be set at the Direction, Channel and Action Context levels, and the limits for action contexts can be combined. |
Previous topic Output Bundling Use Cases Next topic Debugging the Next-Best-Action strategy framework