Posting on behalf of a customer…
The use case that one of our customers asked me about is… Can they build one PX Engagement (e.g. updated terms of service) that is linked to ALL PX Products, which would be shown only 1 time to any user that accessed any of their PX tracked products?
My add-on comment/workaround…
Currently, this is not possible/supported in PX and our customers must build a separate PX Engagement for each PX Product. However, they want to avoid showing the same Engagement (e.g. updated terms of service) to the same user each time they access a different Product, which makes very good sense.
One thought that I had, which would require the user to take some action (click a link/button) the first time that they see the Engagement, would be to use the method described in my previous PX Community post Tip of the Week: Using a PX Dialog Engagement to collect additional information from your users to store on their PX User Profile to update an Attribute on the PX User’s profile.
Since every PX User has only 1 record in PX and it is shared across all PX Products within the PX Subscription … and the he same is the case for PX Accounts too ... this newly updated PX User Attribute could then be used in the Audience Logic of each Product’s PX Engagement to determine if it should be shown.
High level setup steps:
1) add a new PX User attribute, perhaps named “Viewed Updated Terms”
2) In those PX Engagements, add the simple custom code as described in the PX Community post linked above to update the PX User’s “Viewed Updated Terms” attribute to “true”. Perhaps a link/button named “Acknowledged” or “I Agree” would be effective.
3) Add Audience logic to each PX Product’s separate/identical PX Engagements to check if the “Viewed Update Terms” attribute is not set, which means they either did not see it or did not click the link/button that you provided in the first Engagement they were shown. See sample below:
