we have some dependent enrichments all executed at the "any event" trigger.
Example: User is classified by a string attribute and based on that attribute and others a badge is assigned.
The documentation does not explain evaluation order within the "on any event" level: https://community.tealiumiq.com/t5/Universal-Data-Hub/Understanding-AudienceStream-Order-of-Events/t...
We want to make sure that the badge is immediately assigned based on the already updated string value.
Does tealium detect the dependency and execute the enrichtment in the right order? If not, how could I control the execution order?
Thanks for helping :)
Solved! Go to Solution.
01-27-2020 02:30 AM - edited 01-27-2020 02:32 AM
There is a setting that controls whether this is, or is not, the case. The setting is accessed via the gear icon in the top right of the screen
And then the setting is "Enable Rule Dependency Checking". If this is "On", then Server UDH orders the enrichments for attributes such that any that depend on a rule based on another attribute will have that other attribute's enrichments run first.
If this is "Off", then there is no such ordering, but the behaviour will be still deterministic.
The reason there is a setting, and a choice around this, is that the functionality was added to Server UDH to do this, a couple of years back. To avoid introducing a potentially breaking change (in some edge cases), it was added in such a way that it was set as "On" by default for any new UDH profiles, but it needed to be switched on manually for existing UDH profiles.
So, if you have a relatively new UDH profile, this should already be on, and you will have the behaviour you expect. If not, and the setting is Off, you can switch it On, and then publish.
There is another similar setting, with similar rationale, called "Enrichment Order Respects UI Order". If this is "On", then multiple enrichments for a single attribute run in the same order they are present in the UI, from top to bottom. If it is "Off" then again there is no such ordering, but the behaviour is still deterministic.