I am new to Pega CDH. I need help with one of the strategy. Kindly help with some inputs or please let me know if i have missed something obvious..
Expectation: I want to completly exclude the action (Ex. action1) if user has already responded/made impression to that one and display only the remaining ones in same group.
Below are the steps take and few ways that are tried.
Channel: Web and Call center, and Direction: Inbound
-Defined few set of actions in an issue&group. Ex. total 16 actions. 4 each for 4 different users (based on criteria)
If the user has already responded/made impression for an action,
using suppression policies to exclude it. it works. but we could specify only N number of days of suppression- cannot specify Suppress “always”. after that N number of days we need to make another impression to exclude for next N days.
in strategy rule, pulled the IH or IHSummary and trying to map them with propositionData (all actions in my group) , then filtering the IH outcomes (pyOutcome) and applied to the group. It acts as a whole for all actions and excludes the whole group.
If applied at action level, then also all the actions are getting excluded (even the ones without impression)
but i want to exclude only those actions with impressions and not the others ones in the group.
in strategy rule, using same elements as point 2 but propositionData is set only for a specific action (ex. action1) and the strategy result is applied to that action (ex.action1). It works. But this needs to be done manually for each and every action.
Q1 ) Is there a way to make it work dynamically, instead manually applying step 3 for each and every action.?
Q2) how to pass the action Name dynamically as external input to the strategy while the action is being evaluated in strategy (ex. in NBA_issue_group_Ext)
Kindly help with your inputs/answers and suggestions. Thanking you in advance.
Can you explain what you business objective is? From step 1 it seems you want to suppress an action if impressed forever. That does not seem like a normal use case of suppression. Suppression is used for limiting over exposure, and that is why you select number of days to not show the action and then the action become available to be shown again. So why do you want to never show it again? What is the business objective for doing so? I suspect that you actually don’t want to limit over exposure, and therefore this is not how to accomplish it. If you can better articulate your objective, we will likely find how to set that up in NBA Designer and/or actions.
Hi @Saleem_A , thank you for the response. I used suppression policies As mentioned in step1, because i could not achieve it dynamically with strategy.
My objective is : If an action (ex.action1) is already given to the user, and user made an impression, i.e captured response as “Ignored” or “Rejected” or “Accepted”, then we do not want to show him the same action ever again.
Because the user has already responded to this and it is not appropriate to suggest the same action (action1) during his next engagements through any channel.
We would like to show him with only other available set of actions (ex. action2,3,4) from same group that follows similar criteria.
@Archana , I think what was confusing is that you mentioned impressions. It would be odd to never show an action again just because someone saw it before. Indeed it is also often odd to never show an action again if they accepted it. There is typically a time period that even accepted actions would be eligible for presentation again. Anyway, that’s more of a call out to you to work with the business to really validate if such a hard rule really exists.
What you are describing as the need (assuming its validated) is more of an engagement policy of type applicability or suitability. If the action is related to a product of some kind for example, and you already own the product, you would classify the action as not applicable, though there might be a better version of the product represented by another action that would be applicable as an up-sell. Such rules would typically be applied to “owning” the product, so the engagement applicability rule would look something like, customer.product_holdings has instances of “iPhone 12” for example. If you don’t have knowledge of the customers product_holdings and the only thing you can reference is Action history (via IH summary), then you would create a strategy with the starting shape being “external input” (right click on canvas, click sub-strategy->external) and use that as the driver for your subsequent IH summary logic to essentially either emit that action (meaning it was not accepted and OK to present) or filter it out. Then in the applicability condition, you would reference this strategy with the condition “has results” to represent it being OK to present.
I hope this helps and please consider the point of how appropriate such a hard rule is for your use case.
Hi @Saleem_A, thank you again for the clarification with an example about customer.product_holdings. I will check to apply such criterias also for accepted ones. for rejections and ignored cases (count of 3), I would still want to try out the strategy approach.
As of now, I have only the IH Summary as my reference. and I have already tried with the option of using a strategy to either my group level or action level engagement policies.
In strategy rule, used the IH or IHSummary and trying to map them with propositionData (all actions in my group) , then filtering the IH outcomes (pyOutcome).
-When applied to the group as “has results”. It acts as a whole and excludes the whole group. i.e if action1 is rejected, then the strategy “has results” and the other actions in the group are also not shown.
-If applied at action level for one of the action , then also all the actions are getting excluded (even the ones without impression)
Otherwise, i need to create a strategy for each of the action (N actions, N strategies) and apply it in the action-specific engagement.
how to pass the action Name dynamically in external input to the strategy while the action is being evaluated in run-time(ex. in NBA_issue_group_Ext).
@Archana , Please follow the instructions I provided about the use of external input and using that strategy in your applicability engagement policy. The external input is the “trick” to making it dynamic. While NBA is evaluating an action in an applicability condition, it will pass that action to your strategy and apply your logic.
@Saleem_A thank you so much!! It works fine when i let external input to choose the action name instead using the proposition data with filters that I was using in my previous strategy approach (point 2).