---
title: "Contact facets in the tracker"
slug: "contact-facets-in-the-tracker"
abstract: "Overview of contact facets and how they are used in the tracker."
---
# Contact facets in the tracker

> [!important]
> Facets that are loaded into session can be edited but are not saved to xConnect on session end. You must [use the xConnect Client API to update facets](https://doc.sitecore.com/xp/en/developers/91/sitecore-experience-platform/set-contact-facets-in-session.html "Set contact facets in session").

Facets are represented by the `Sitecore.Analytics.Tracker.Current.Contact.Facets` dictionary in the tracker and are [loaded from xConnect into shared session state](https://doc.sitecore.com/xp/en/developers/91/sitecore-experience-platform/load-facets-into-session.html "Load facets into session") at the start of a session. The tracker does not lock contacts in session, and changes made to facets stored in `Sitecore.Analytics.Tracker.Current.Contact.Facets` are **not saved** on session end.

```csharp
// Legacy facet
// NOT SAVED ON SESSION END
var personalInfo = Sitecore.Analytics.Tracker.Current.Contact.GetFacet<IContactPersonalInfo>("Personal");
personalInfo.FirstName = "Myrtle";

// xConnect facet
// NOT SAVED ON SESSION END
var xConnectFacets = Sitecore.Analytics.Tracker.Current.Contact.GetFacet<IXConnectFacets>("XConnectFacets");
PersonalInformation personalInfoXConnect = xConnectFacets.Facets[PersonalInformation.DefaultFacetKey] as PersonalInformation;
personalInfoXConnect.FirstName = "Myrtle";

```

You must use the xConnect Client API to [update contact facets](https://doc.sitecore.com/xp/en/developers/91/sitecore-experience-platform/set-contact-facets-in-session.html "Set contact facets in session"). Submitting facets to xConnect immediately reduces the risk of  [concurrency conflicts](https://doc.sitecore.com/xp/en/developers/91/sitecore-experience-platform/optimistic-concurrency-in-xconnect.html "Optimistic concurrency in xConnect").

<details>
<summary><h2>Facets are not automatically reloaded</h2></summary>

Facets that have been cached in shared session state are not automatically reloaded when you use the xConnect Client API to submit changes to xConnect. You must [manually update the cached facets or reload the contact from xConnect](https://doc.sitecore.com/xp/en/developers/91/sitecore-experience-platform/set-contact-facets-in-session.html "Set contact facets in session").

> [!important]
> Personalization relies on facets that have been cached in shared session state. Keep cached facets up to date in order to ensure that personalization is acting on the latest available data.

</details>