Walkthrough: Customizing interaction purge conditions
You can extend the purging tool with custom conditions to further filter interaction data extraction before purging. This option is useful to refine the selection of interaction data to purge for more specific use cases.
This walkthrough describes how to:
-
Implement the
IInteractionConditioninterface -
Register the custom condition
Implement the IInteractionCondition interface
To create a custom condition:
-
Implement the
Sitecore.XConnect.DataTools.Abstractions.Conditions.IInteractionConditioninterface with a uniqueConditionId.NoteThe
ConditionIdis a string you set that uniquely identifies it in the system. You must pass theConditionIdin theConditionsPOST parameter during task registration.For example:
RequestResponsepublic interface IInteractionCondition { bool IsAccepted(Interaction interaction); string ConditionId { get; } } public class ChannelInteractionCondition : IInteractionCondition { public static readonly Guid ChannelId = new Guid("DF9900DE-61DD-47BF-9628-058E78EF05C6"); public string ConditionId { get; } = nameof(ChannelInteractionCondition); public bool IsAccepted(Interaction interaction) { return interaction?.ChannelId == ChannelId; } }
The conditions are limited to filter by interaction data. You cannot create a condition based on the interaction facet data in Sitecore 10.2.
Register the custom condition
You must register the condition in the Cortex Processing Engine instance.
To register the condition:
-
Open the configuration file
/App_Data/Config/Sitecore/Processing/sc.XConnect.DataTools.Conditions.xml. -
Under the
<Settings>/<Sitecore>/<Processing>/<Services>tag, register the new condition.For example:
RequestResponse<Settings> <Sitecore> <Processing> <Services> <Condition.ChannelInteractionCondition> <Type>Sitecore.XConnect.DataTools.SampleConditions.ChannelInteractionCondition,Sitecore.XConnect.DataTools.SampleConditions</Type> <As>Sitecore.XConnect.DataTools.Abstractions.Conditions.IInteractionCondition,Sitecore.XConnect.DataTools.Abstractions</As> <LifeTime>Singleton</LifeTime> </Condition.ChannelInteractionCondition> </Services> </Processing> </Sitecore> </Settings>
You cannot get a list of all the registered conditions. After you extend processing with a custom condition, you must make a note of the ConditionId.