I am upgrading code from Sitecore 8.2 to Sitecore 9.3. In Sitecore 8.2 we have a code snippet:- public Contact GetCurrentContact() { if (Tracker.IsActive && Tracker.Current != null && Tracker.Current.Session != null) { return Tracker.Current.Session.Contact; } return null; } public Contact IdentifyContact(global::Sitecore.Security.Accounts.User user) { if (user == null) return null; string contactIdentifier = GetContactIdentifier(user); if (string.IsNullOrEmpty(contactIdentifier) || contactIdentifier.Contains("anonymous") || Tracker.Current == null || Tracker.Current.Session == null) { return null; } Tracker.Current.Contact.Identifiers.AuthenticationLevel = AuthenticationLevel.PasswordValidated; Tracker.Current.Session.Identify(contactIdentifier); return Tracker.Current.Contact; } In this Sitecore 8.2 Contact object is coming from Sitecore.Analystics.Tracking but in Sitecore 9.3 do you need to convert Contact to Sitecore.XConnect.Contact? Contact contact = _contactProvider.GetCurrentContact(); DocLanguageAndRegionPreferences docPreferences; _contactRepository.SetDocumentLanguageAndRegionPreference(contact, docPreferences); I have another class using this contact to add item to facet and then communicating with Xdb in Sitecore 8.2 public void SetDocumentLanguageAndRegionPreference(Contact contact, DocLanguageAndRegionPreferences docPreferences) { if (contact == null) return; IFacetData facet = contact.GetFacet<IFacetData>(FacetData.FacetName); if (docPreferences.Languages != null && docPreferences.Languages.Any()) { foreach (var language in docPreferences.Languages) { var docLanguage = facet.FacetCentralData.Preferences.DocumentLanguageFilters.Create(); docLanguage.Language = language; } } } This is Sample code of that class. Facet is working fine, just have some doubt:- In this class also I am getting parameter contact in form on SItecore.Tracking.Analytics.Contact. How can I convert this contact to XConnect.Contact for Sitecore 9.3?