0

While I have used Sitecore for several years now, I am relatively new to xDB. About a month or so ago, I finally got xDB configured and am capturing data complete with some custom facet data.

One of the facets we capture is the visitors industry. I would like to start grouping folks based on what industry they selected and display different content to them. I believe the first step to this is to configure a Persona -- such as Manufacturer or Retailer. Is this correct?

If so, is there a good step by step guide for doing so? The profile key template seems to just be focused on scores, not values of fields, so maybe I am looking in the complete wrong place.

2 Answers 2

3

You don't necessarily need to implement Persona's to achieve this. You could implement a custom rule to check the value stored on the facet and react accordingly.

You can then implement your custom rule and display differing components dependent on the outcome of the rule.

https://sitecorecommerce.wordpress.com/2016/10/24/create-and-configure-xdb-custom-facet/

https://community.sitecore.net/technical_blogs/b/getting_to_know_sitecore/posts/using-custom-contact-data-part-3-rules

Persona's would make sense if you needed to display particular content on a combination of different user behaviours.

1
  • How would I preview these personalizations? For example if I wanted to see what my entire page would look like for "Manufacturers" or "Retailers" Commented Jul 20, 2017 at 21:44
1

If you are wanting to trigger a user to go into a persona automatically, you can do it with the code below. You need to create a profile, profile key and a persona that has a level set for your profile key. Then you can register a hit to the profile high enough to trigger the persona.

You have to call the profile by name. I have not found a way to call it by ID other that calling the item and getting the name from the profile item.

  • profile is the profile
  • profileitem is the profile key

code

var profile = Tracker.Current.Interaction.Profiles[Constants.Items.Profiles.Industry.Name];
var scores = new Dictionary<string, float> { { profileItem.Name, 10 } };

profile.Score(scores);
profile.UpdatePattern();

For just how to make profiles and scoring working, see my answer here Behavioral personalization?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.