Add contact image to experience profile in Sitecore 9

Adding contact image in Sitecore 9 is pretty straight forward, you might come across the requirement where you have to update the contact profile image in xProfile based on contact social profile or custom image URL.


Below code can be used to set the profile image using Avatar Facet.

var trackerIdentifier = new IdentifiedContactReference("xDB.Tracker", Sitecore.Analytics.Tracker.Current.Contact.ContactId.ToString("N"));
using (XConnectClient client = Sitecore.XConnect.Client.Configuration.SitecoreXConnectClientConfiguration.GetClient())
var contact = client.Get<Sitecore.XConnect.Contact>(trackerIdentifier, new Sitecore.XConnect.ContactExpandOptions());
if (contact != null)
    var profileImageUrl = "profile URL comes here";
    var objWebClient = new System.Net.WebClient();
    byte[] profileImageBytes = objWebClient.DownloadData(profileImageUrl);
    string mimeType= "image/jpeg";
    client.SetFacet<Avatar>(contact, Avatar.DefaultFacetKey, new Avatar(mimeType, profileImageBytes)
        MimeType= mimeType,
        Picture= profileImageBytes

Hope this helps!

Happy learning 🙂