Skip to main content


Setting limits on the number of actions

Suggest edit Updated on November 16, 2021

Action Limits and Final Action Limits are two features that can be used to control the number of actions delivered to contacts. These features have a similar impact, but are implemented in different stages of the Next-Best-Action Strategy Framework as described below along with some other related concepts.

Action Limits Concepts concepts

The two Action Limits DDRs along with some other related concepts are described below.

Context entityAn entity on which next-best-action decisions can be made, for example, I want the next best action for a Customer, or the next best action for an Account.
Multilevel Context DictionaryA configuration that has a hierarchy of context entities where actions may be relevant for specific entities, for example:
  • Retail Banking
    • Customer – can have multiple Accounts
      • Account – one per card or account
  • Telecommunications
    • Account – can have multiple Subscribers
      • Subscriber – one for each phone number, can have multiple Devices
        • Device, for example, phone, tablet, watch
  • Healthcare
    • Policy – can have multiple Members
      • Member – can have multiple Claims
        • Claim
Primary Context entityThe entity to which all actions will be communicated, that is, the entity representing the person with the contact details such as phone number, email address, etc. In the above examples, this would be the Customer, Subscriber or Member.
Primary ContactAn instance of the Primary Context entity that is authorized to make decisions on behalf of the account or relationship, also known as an Authorized Contact. For example, this may be a parent for a family phone plan or the primary member on a healthcare policy. Note that there may be more than one Authorized Contact for an account / relationship. The IsPrimaryContact property is set to true for any actions that are assigned to an authorized contact.
Authorized ContactThis is the name of a sub-strategy that is configured by the user during the implementation phase to only select Primary Contacts for an account or relationship.
Action ContextThis is set on the action rule and is stored in the ActionContext property on the action. This is the name of the context entity for which the action is relevant, for example, a phone upgrade action would be for a Subscriber (or possibly Device), whereas a family data plan action would be for an Account, or a new credit card action would be for a Customer, whereas a credit line increase would be for an Account.
Action LimitsThis is a Data Decision Rule (DDR) containing settings that are evaluated separately for each action context and for each contact (that is, a primary context, such as a Subscriber or Customer) after arbitration has occurred. This means that although a CombineContexts property is available for this feature, it currently has no effect, since each action context is evaluated independently from any other.

Furthermore, all outbound channels are evaluated as a combined group (within Action Context and contact), and so a limit can be applied across all outbound channels, whereas for inbound channels, only a single channel will be processed during any interaction.

Final Action LimitsThis is a Data Decision Rule (DDR) containing settings that are evaluated after Action Limits have been applied, and after actions for all contexts and all contacts have been arbitrated and merged. This is the final process that occurs in the NBA framework prior to output bundling.

As such, limits can be applied to combinations of action contexts (using the CombineContexts setting), and to individual contacts, or across all contacts (using the LimitByContact setting). Note: A contact is an instance of the primary context entity with its own unique pySubjectID.

Action Limits DDR

pyLabelA user-friendly name for an action limits setting.
pyDirectionAction limits are defined separately for Outbound and Inbound directions.
pyChannelThe channel (in combination with the action context) to which the Action Limit is to be applied. Possible settings are described below.
  • Each - the same Action Limit is to be applied to each channel for the Action Context. This removes the need to define a separate limit for each channel.
  • <Channel Name> (for example, Web, Email) - applies the Action Limit to the specific channel. This will override any value already set by the Each functionality.
  • <Blank> - indicates that the Action Limit is to be applied over the combination of all channels. That is, it sets a limit for the Action Context regardless of channel. This limit is applied after individual channel limits have been applied, and is only available for Outbound processing, since for Inbound only a single channel is processed at a time.
pyIssueNot currently used.
pyGroupNot currently used.
pyNameNot currently used.
CombineContextsNot currently used.
ActionContextThe Action Context to which the Action Limit is to be applied.
ActionLimitThe maximum number of actions allowed for the combination of Action Context and Channel.

Final Action Limits DDR

This is the same as the Action Limits DDR but with the addition of the following two properties.

CombineContextsWhen set to true for multiple contexts within a channel specification, this allows a single limit to be applied to the combination of selected Action Contexts.
ActionLimitDetermines whether a limit applies to each contact or to the interaction as a whole. Possible settings are described below.
  • true - apply the limit n to each contact separately so that the top n actions ordered by descending priority are emitted for each contact.
  • false - apply the limit n to the interaction so that the top n actions ordered by descending priority within contact priority are emitted for each contact. Contact priority would be determined by whether the contact is a primary contact or not, with primary contacts have a higher priority; the order for contacts with equal priority would be undefined.
Note: For the CombineContexts property, the Action Limit needs to be set for each Action Context being combined. If actions for only one of the contexts are available, then the limit assigned to that context will be used; if more than one of the combined contexts are available, then the maximum of the limits for those contexts is used.

In the following example, if only Account context actions were available (i.e. had passed engagement policies, arbitration etc.), a maximum of 2 (Account-context) actions would be output, although if actions for both contexts were available, up to 3 actions (Account and / or Subscriber context) would be output.

  • Action Limits Use Cases

    The Action Limits use cases below are examples of how these two features can be utilized. These examples use the telecommunications paradigm of Device within Subscriber within Account.

Did you find this content helpful? YesNo

Have a question? Get answers now.

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

Ready to crush complexity?

Experience the benefits of Pega Community when you log in.

We'd prefer it if you saw us at our best. is not optimized for Internet Explorer. For the optimal experience, please use:

Close Deprecation Notice
Contact us