I've implemented a custom Predicate to create the segmented list in Sitecore 9.1. But Segment Rule is not working. I've followed the below steps :

  1. Custom Predicate Class: Custom Predicate class code

  2. Deployed DLL to Project Root and MA root

  3. Created a condition descriptor in Sitecore Condition Descriptor

  4. Patch File with name sc.XConnect.CustomSegmentation.Predicates.xml under path_to_xconnect\App_Data\jobs\continuous\AutomationEngine\App_Data\Config\sitecore\Segmentation Config

After doing all this, when I am creating a segmented list based on the above rule, contacts are not appearing in the list.

  • You do not need to push the code to your MA site unless you are planning to use your code in an MA plan. But you do need to push it to your Sitecore site. Just push your dll to the sitecore site and create a segmented list using "all contacts" as the souce.
    – Chris Auer
    Commented May 6, 2020 at 0:51
  • @ChrisAuer I've deleted DLL from MA plan, but still the rule is not working. I've already created a segmented list using "all contacts" as the source Commented May 6, 2020 at 4:23
  • In the Evaluate can you turn the return into variable. Log.Info those variables and return it. In the CreateContactSearchQuery just add a Log.Info("I'm here", this);. Let's see if you rule is running and what it says. Are you looking for a segmented list that is full of people with the 1st name of Chris?
    – Chris Auer
    Commented May 6, 2020 at 19:00
  • @ChrisAuer In the CreateContactSearchQuery, I added a Log.Info("Custom Predicate", this); and getting this message in log file. Means rule is running. Yes, i am looking for a segmented list that is full of people with the matching first name. but that is not populating. Commented May 7, 2020 at 5:54
  • Great it is running. Let’s remove the contact.interactions.any from both functions. Just test the contact only.
    – Chris Auer
    Commented May 7, 2020 at 11:39

1 Answer 1


The Experience Profile and List Manager interfaces rely on personal data being available in the xDB index. As the FirstName facet is marked as [PIISensitive], you will not be able to use it by default.

To use contact facets marked [PIISensitive] in the custom predicate, please enable indexing of PII sensitive data in the xDB index.

I am able to see the segmented list based on FirstName after I enabled indexing of PII sensitive data in the xDB index.

  • 2
    Just to add more information, I tried to set the value on the following file: "C:\<Path to indexer>\App_data\Config\Sitecore\SearchIndexer\sc.Xdb.Collection.IndexerSettings.xml" but it didnt work, make sure to change the value on the on-premise deployment (if you have it): "C:\<Path to xConnect>\root\App_data\jobs\continuous\IndexWorker\App_data\Config\Sitecore\SearchIndexer\sc.Xdb.Collection.IndexerSettings.xml"
    – gonzdn
    Commented Oct 28, 2020 at 14:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.