In Sitecore 9.x the contact identifiers are case sensitive and users are uploading contact lists with emails that are not cased correctly. Before I start digging through the pipelines, anyone know off the top of their head the pipeline where the contact import data is being processed. So I can add a pipeline that will case them properly.
There is the pipeline listManagement.importMediaContacts
and that leads to Sitecore.ListManagement.Services.Pipelines.ImportMediaContacts.GetContactsFromStream
That leads to
<streamContactImporter type="Sitecore.ListManagement.Import.StreamContactImporter, Sitecore.ListManagement">
<param ref="/sitecore/import/contactSource"/>
<param ref="/sitecore/import/contactImporter"/>
<param type="Sitecore.Abstractions.BaseLog, Sitecore.Kernel" resolve="true"/>
</streamContactImporter>
The source is this. I think maybe I can override in here.
<contactSource type="Sitecore.ListManagement.Import.ValidIdentifierSourceFilter, Sitecore.ListManagement">
<param type="Sitecore.ListManagement.Import.UniqueIdentifierFilter, Sitecore.ListManagement">
<param type="Sitecore.ListManagement.Import.RequiredFieldsFilter, Sitecore.ListManagement">
<param type="Sitecore.ListManagement.Import.IdentifierIndexRangeFilter, Sitecore.ListManagement">
<param type="Sitecore.ListManagement.Import.CsvContactSource, Sitecore.ListManagement">
<param type="Sitecore.ListManagement.Import.CsvReader, Sitecore.ListManagement" resolve="true"/>
</param>
</param>
</param>
</param>
<param type="Sitecore.Abstractions.BaseLog, Sitecore.Kernel" resolve="true"/>
</contactSource>
Or I can write my own xConnect importer
<contactImporter type="Sitecore.ListManagement.Import.RequiredMappingFieldRangeValidator, Sitecore.ListManagement">
<param type="Sitecore.ListManagement.Import.ObservableContactImporter, Sitecore.ListManagement">
<param type="Sitecore.ListManagement.Import.BatchContactImporter, Sitecore.ListManagement">
<param type="Sitecore.ListManagement.XConnect.Web.Import.XConnectContactImporter, Sitecore.ListManagement.XConnect.Web">
<param type="Sitecore.ListManagement.XConnect.Web.XdbClientFactory, Sitecore.ListManagement.XConnect.Web"/>
<param ref="/sitecore/import/facetMapper"/>
<param type="Sitecore.ListManagement.Configuration.ListManagementSettings, Sitecore.ListManagement" resolve="true"/>
<param type="Sitecore.Abstractions.BaseLog, Sitecore.Kernel" resolve="true"/>
</param>
<param type="Sitecore.ListManagement.Configuration.ListManagementSettings, Sitecore.ListManagement" resolve="true"/>
</param>
<param type="Sitecore.ListManagement.Operations.IListOperationRepository, Sitecore.ListManagement" resolve="true"/>
</param>
</contactImporter>