While testing EXM on a Sitecore 9.0.1 instance we noticed some strange happenings when attempting to view previews for a specific recipient. While the lists were being populated ok, it was not searchable by email. This was also the case in List Manager.
After investigation, 2 issues were identified:
Firstly the OOTB javascript was not applying the appropriate search filters. Modifying ContactsDataSource.js to include the options filter as below triggered the search request as expected.
options.filter = this.get("filter") || "";
Yet, there were still no results. This was down to the fact that Indexing PII sensitive fields is disabled by default, so any search against PII fields (such as email address) would be fruitless. The easy fix was to patch in a change to the IndexPIISensitiveData config setting on the XConnect indexing service (as per the documentation). This is very much an overkill solution (we really only wanted to make the email searchable), but luckily for us this was not a GDPR sensitive situation….so a quick win.
<Settings> <Sitecore> <XConnect> <SearchIndexer> <Services> <IndexerSettings> <Options> <IndexPIISensitiveData>true</IndexPIISensitiveData> </Options> </IndexerSettings> </Services> </SearchIndexer> </XConnect> </Sitecore> </Settings>
Still, we had an issue. The final step in the documentation was “Rebuild the xDB search index.” . But 9.0.1 using Azure Search does not support rebuilding of the XDB index 🤔. Small conundrum.
As we really were only interested (at that point) in having the email address indexed, we were able to force the re-indexing by exporting, then re- uploading all of the contacts in the designated lists. This triggered each contact to be indexed.
Contact search in List Manager and EXM now works 👍