List locking

The List Manager uses the sitecore_analytics_index index as a data source. While lists are processed, Sitecore, by default, locks the contact lists and populates the sitecore_analytics_index index from the Analytics database.

This means that when you add or remove contacts from a list or clear an entire list, the list locks and you cannot use it in any application, such as EXM, until the processing is complete. This ensures that all contacts in a list are indexed and ready before the list is used. A list unlocks when the unlock list agent has checked and confirmed that all operations have finished.

Note

Refer to the Knowledge Base to troubleshoot list locking issues.

List locking when importing contacts

When you import contacts from a CSV file, the following actions occur in the background:

  • A contact list is generated based on the data in the CSV file.

  • The expected number of contacts in the import file is saved to the Recipients field on the contact list item.

    Note

    The expected number of contacts is the number of contacts in the CSV file minus the locked contacts or contacts with an invalid identifier.

  • The associated list is assigned to the imported contacts.

  • The imported contacts are added to the Analytics database in the Contacts collection.

  • A Mongo entry is created in the contact processing pool. It stores information about a contact and how it should be updated in the Reporting database and the Analytics index.

  • The imported contacts are updated in the Analytics index.

  • The unlock list agent (Sitecore.ListManagement.Analytics.UnlockContactListsAgent) checks that all jobs are complete and that all the contacts are added to the Analytics index, and then it unlocks the list.