Posted: 23 Mar 2021 4:09 EDT Last activity: 6 Apr 2021 16:09 EDT
contact policy vs volume constraint
I'm struggling with the contact policy in Pega Marketing 8.4 and I would like to ask for your help.
We use NBA Designer to configure our marketing artifacts. We have configured the Customer Contact Policy to limit the number of outbound interactions with the customers(i.e 1 email and 1 SMS per week). We've also configured an Additional Schedule in the NBA designer. If this outbound campaign runs without a Volume Contraint then the contact policy works well. After the campaign-run, the updated records can be found in the related ContactSummary DB table(-> PegaMKT-Data-ContactSummary). And of course, the next campaign-run won't produce a new outbound message due to the Contact Policy. So everything works as expected.
But my issue is when we also configure a volume Constraint for the campaign (in the NBA designer) - and all of the other configurations are still the same - then the records in the ContactSummary table won't be updated and therefore the contact policy constraint won't/can't be applied in the following campaign-runs.
In my view, the Customer Contact Policy and the Volume Constraint are different types of artifacts with different purposes. So Contact Policy still should work with Volume Constraint.
What's your opinion?
Has anyone ever experienced this issue?
Thanks in advance!
***Edited by Moderator: Pooja Gadige to add platform capability tag***
***Edited by Moderator Marissa to update Support Case Details***
Earlier I tried to debug my issue and find out how it works in the background. I noticed that pega generates two different data flows in order to execute the campaign. I mean, if there is no Volume Constraint then the generated data flow will call directly the "DF_ProcessOffer" and if there is a Volume Constraint then first it calls the "DF_WriteToBatchTable" data flow and persists the result of the strategy and applies the Volume Constraint as well. In the following steps, the stored records will be processed by another data flow("DF_Wait") and the "DF_ProcessOffer" will be called too.
"DF_ProcessOffer" is important, as far as I understood, because this is will update the Contact Summary data set.
So "DF_ProcessOffer" is called in both cases but its execution will be different. The details of the contact summary are stored in the "ContactSummary" page property. This property exists and has value inside "DF_ProcessOffer" in the first case when there is no volume constraint configured. If there is a VC then it doesn't have value and ContactSummary data set won't be updated.
Based on my research, the contact policy is not applied if the given run is in TestExecutionMode or IsResumeOffer is true or IsWaitProcess is true.
If VC is set in the campaign then IsWaitProcess is true(set in "ExecuteWaitDF" activity) and therefore ContactPolicy is not applied.
Can anybody explain the reason for this implementation? Or is it a bug?
Ps: FYI - I've already raised an SR almost 2 months ago but there's no progress and that's why I'm trying to get an answer here.