Skip to main content


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

NBA Strategy framework extension points

Updated on August 4, 2022

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.

Pega Customer Decision Hub

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
Note: Since groups are individually defined for each issue, groups defined for different issues are distinct rules, even if they have the same name. Because of that, AllIssues_<Group> is not a valid combination.
<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.
Note: Some extension points are referenced more than once, in which case they will have multiple parent strategies.

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.

Note: If an extension is required, the extension point must be configured. If it is marked as extension, it means that the strategy is empty, and you can configure it as needed to suit your requirements, or leave it blank. Extension points marked as modifiable are fully functional out of the box, but you can still modify the logic if it is critically important to your business needs.
Extension point strategy nameParent strategiesExtension typePurpose
AuthorizedContact

<Triggering Strategy>

<Triggering Strategy>-> FinalActionLimitsAndBundling-> BundlingSettingsYieldActions -> GetPrimaryContacts

RequiredIn 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-> NBA_<Issue>_<Group>_AllActions

ExtensionApply 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-> NBA_AllIssues_AllGroups_<Context>

ExtensionApply 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-> NBA Strategy Framework

ExtensionLogic 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>-> NBA Strategy Framework-> Action Level Propensity -> Predict Action Propensity

<Triggering Strategy>-> NBA Strategy Framework-> TreatmentsChannels -> TreatmentLevelPropensity-> PredictTreatmentPropensity

ModifiableThe values in the Model Maturity Threshold and Population Percentage Set Property shapes may be changed to suit local requirements.
ActionLevelPropensityExt

<Triggering Strategy>-> NBA Strategy Framework-> Action Level Propensity

ExtensionLogic 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>-> NBA Strategy Framework-> TreatmentsChannels-> OutboundChannels

<Triggering Strategy>-> NBA Strategy Framework-> TreatmentsChannels-> InboundChannels

ModifiableThese 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>-> NBA Strategy Framework-> TreatmentsChannels-> OutboundChannels-> OutboundChannelPreferences

ExtensionAddition logic can be inserted after the treatment data has been retrieved, but before treatment scoring is performed.
Note: An extension point is not available for Inbound channels.
AIModelsExt

<Triggering Strategy>-> NBA Strategy Framework-> TreatmentsChannels-> TreatmentLevelPropensity-> PredictTreatmentPropensity

ExtensionLogic 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.
Note: This extension is not executed for transactional actions.
TreatmentLevelPropensityExt

<Triggering Strategy>-> NBA Strategy Framework-> TreatmentsChannels-> TreatmentLevelPropensity

ExtensionLogic can be inserted after treatment scoring and outbound model maturity processing has occurred, for example, to include addition models or adjust the model propensity.
Note: This extension is not executed for transactional actions.
ControlGroupImpl

<Triggering Strategy>-> NBA Strategy Framework

ExtensionLogic 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>-> NBA Strategy Framework

ExtensionThis 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.
Note: The External input option is disabled for this strategy, so it does not import any actions from the Next-Best-Action Designer framework and must generate any output required from the framework.
CalculateValueExtension

<Triggering Strategy>-> NBA Strategy Framework-> Arbitration-> Calculate Business Value

ExtensionThis 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>-> NBA Strategy Framework-> Arbitration-> QnAContextWeighting

ExtensionAdd 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>-> NBA Strategy Framework-> ChannelProcessing -> <Direction>ChannelProcessing-> (Process)<Channel><Direction>Channel

ExtensionThese strategies allow for additional logic to be applied after all default channel processing has occurred.
Note: For some channels the words Process or <Direction> may be omitted from the strategy name.
ContactPolicyExtension

<Triggering Strategy>-> NBA Strategy Framework-> ChannelProcessing -> OutboundChannelProcessing-> ProcessOutboundChannels-> TopOfferOrBundleForOutbound-> OutboundLimits

ExtensionAllows for addition contact policy rules to be applied after the default rules have been executed.
Note: The Contact Policy is not applied to transactional actions.
FinalLimitsAndBundlingPreExt

<Triggering Strategy>-> FinalActionLimitsAndBundling

ExtensionThis 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>-> FinalActionLimitsAndBundling

ExtensionThis 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.

Note: If an extension point is marked as extension, it means that the rule is empty, and you can configure it as needed to suit your requirements, or leave it blank. Extension points marked as modifiable are fully functional out of the box, but you can still modify the logic if it is critically important to your business needs.
Extension point Decision Data rulesParent strategiesExtension typePurpose
<Channel>Treatments<Channel>ChannelStrategyModifiableAdditional treatment properties may be added to these Decision Data rules.
Note: You must update the parent strategies to map the new data in the associated Data Join.
ModelPropensityThresholds

<Triggering Strategy>-> NBA Strategy Framework -> Action Level Propensity -> PredictActionPropensity

<Triggering Strategy>-> NBA Strategy Framework -> TreatmentsChannels -> TreatmentLevelPropensity-> PredictTreatmentPropensity

ExtensionUsed to set lower limits on the propensity generated by the adaptive models at the Direction, Channel, Issue, Group, Action, or Treatment levels.
Note: The Treatment level is only referenced if the propensity calculation is set to Best treatment.
ActionLimits

<Triggering Strategy>-> NBA Strategy Framework -> ChannelProcessing -> OutboundChannelProcessing-> ProcessOutboundChannels-> TopOfferOrBundleForOutbound

<Triggering Strategy>-> NBA Strategy Framework -> ChannelProcessing -> InboundChannelProcessing-> AssistedInboundChannel OtherInboundChannelProcessWebChannelProcessMobileChannel

ExtensionUsed 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>-> FinalActionLimitsAndBundling-> BundlingSettingsYieldActions

ExtensionUsed 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>-> FinalActionLimitsAndBundling-> ApplyFinalActionLimits

ExtensionUsed 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.

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