Walkthrough: Customizing contact purge conditions


Walkthrough to extend the purge tool with custom filters of contact data.

You can extend the purging tool with custom conditions to further filter contact data extraction before purging. This option is useful to refine the selection of contact data to purge for more specific use cases.

This walkthrough describes how to:

  • Implement the ICondition interface

  • Register the custom condition

To create a custom condition:

  • Implement the Sitecore.XConnect.DataTools.Abstractions.Conditions.ICondition interface with a unique ConditionId.


    The ConditionId is a string you set that uniquely identifies it in the system. You must pass the ConditionId in the Conditions POST parameter during task registration.

    For example:

    public interface ICondition
        bool IsAccepted(Contact contact);
        string ConditionId { get; }
    public class AnonymousCondition : ICondition
        public bool IsAccepted(Contact contact)
            return !contact.IsKnown;
        public string ConditionId { get; } = "AnonymousCondition";


The conditions are limited to filter by contact data and contact identifiers. You cannot create a condition based on the contact facet or interaction data in Sitecore 10.1.

You must register the condition in the Cortex Processing Engine instance.

To register the condition:

  1. Open the configuration file /App_Data/Config/Sitecore/Processing/sc.XConnect.DataTools.Conditions.xml.

  2. Under the <Settings>/<Sitecore>/<Processing>/<Services> tag, register the new condition.

    For example:



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.