Set interaction facets
Abstract
How to set a facet on an interaction.
Use the client.SetFacet()
extension method to set interaction facets. You cannot update an interaction’s facets. The following example demonstrates how to set the LocaleInfo
facet on a new interaction:
using Sitecore.XConnect.Collection.Model; using Sitecore.XConnect; using System; using System.Collections.ObjectModel; using Sitecore.XConnect.Client; namespace Documentation { public class AddInteractionFacetData { // Async Example public async void ExampleAsync() { using (Sitecore.XConnect.Client.XConnectClient client = Sitecore.XConnect.Client.Configuration.SitecoreXConnectClientConfiguration.GetClient()) { { try { var existingContactTask = client.GetAsync<Sitecore.XConnect.Contact>(new IdentifiedContactReference("twitter", "myrtlesitecore"), new Sitecore.XConnect.ContactExpandOptions()); var existingContact = await existingContactTask; if (existingContact != null) { var channelId = Guid.Parse("5746c4f3-7e16-40d9-ba1d-14c70875724c"); // Replace with real channel ID var userAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 10_3 like Mac OS X) AppleWebKit/602.1.50 (KHTML, like Gecko) CriOS/56.0.2924.75 Mobile/14E5239e Safari/602.1"; Interaction interaction = new Interaction(existingContact, InteractionInitiator.Brand, channelId, userAgent); LocaleInfo localeInfo = new LocaleInfo() { GeoCoordinate = new GeoCoordinate(55.676097, 12.568337) }; client.SetFacet<LocaleInfo>(interaction, LocaleInfo.DefaultFacetKey, localeInfo); client.AddInteraction(interaction); await client.SubmitAsync(); } } catch (XdbExecutionException ex) { // Handle exception } } } } // Sync example public async void ExampleSync() { using (Sitecore.XConnect.Client.XConnectClient client = Sitecore.XConnect.Client.Configuration.SitecoreXConnectClientConfiguration.GetClient()) { { try { var existingContact = client.Get<Contact>(new IdentifiedContactReference("twitter", "myrtlesitecore"), new Sitecore.XConnect.ContactExpandOptions()); if (existingContact != null) { var channelId = Guid.Parse("5746c4f3-7e16-40d9-ba1d-14c70875724c"); // Replace with real channel ID var userAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 10_3 like Mac OS X) AppleWebKit/602.1.50 (KHTML, like Gecko) CriOS/56.0.2924.75 Mobile/14E5239e Safari/602.1"; Interaction interaction = new Interaction(existingContact, InteractionInitiator.Brand, channelId, userAgent); LocaleInfo localeInfo = new LocaleInfo() { GeoCoordinate = new GeoCoordinate(55.676097, 12.568337) }; client.SetFacet<LocaleInfo>(interaction, LocaleInfo.DefaultFacetKey, localeInfo); client.AddInteraction(interaction); client.Submit(); } } catch (XdbExecutionException ex) { // Handle exception } } } } } }