3

We are working on porting our site to Sitecore 9 Update 1.
We have installed Sitecore 9 Update 1 with (WFFM) Web Forms For Marketers 9.0 Update-1 and Solr 6.6.2.

Issue: The contacts are always shown as Unknown as shown below:

enter image description here

We have the save action set for wffm forms. Which stores the Full Name, Email etc.

I tried filling up the forms with different Email Id's, and different Names. The contacts appear in User Manager dashboard. But the same is not displayed in Experience profile dashboard.

Solutions Tried:
1. Updated "~\sc91.xconnect\App_data\jobs\continuous\IndexWorker\App_data\Config\Sitecore\SearchIndexer\sc.Xdb.Collection.IndexerSettings.xml" as shown below
<IndexAnonymousContactData>true</IndexAnonymousContactData>
2. Rebuilt our Solr xDB index as mentioned here (https://doc.sitecore.net/developers/xp/xconnect/xconnect-search-indexer/rebuild-index/rebuild-solr-index.html?highlight=rebuild%20reporting)

I came across few more posts, who talk about identifying and saving the contacts in experience profile on form submit. like this (Profile data is not saving in Experience Profile). But i wonder is this the only way to get the contacts displayed in Experience Profile dashboard?

I am trying to decompile and Sitecore.Cintel.dll and see if i can find something. It would be of great help if someone can shed some insights on this. Thanks in advance!

Solution: I have created a blog for this issue. The solution can be found here: https://tectraveleat.wordpress.com/2018/06/04/sitecore-9-experience-profile-dashboard-unknown-contacts/

3
  • Can you check if those contacts have identifiers?
    – grg
    Commented Mar 7, 2018 at 12:28
  • Yes they do. The users are captured from the form i fill. The users are being added, i can see the users in "User Manager" with extranet\<identifier>.
    – Pawan
    Commented Mar 7, 2018 at 20:06
  • ExperienceProfile pulls data from XDB index. You could try to use xConnect client to search for contacts by an identifier that you know should exist, but is not shown in ExperienceProfile. doc.sitecore.net/developers/xp/xconnect/xconnect-client-api/…
    – grg
    Commented Mar 9, 2018 at 10:02

3 Answers 3

4

I had a similar issue. Make sure you follow the below steps exactly as-is and I am sure you will see a difference.

  • Update IndexerSettings.xml file within [site_prefix].xconnect\App_data\jobs\continuous\IndexWorker\App_data\Config\Sitecore\SearchIndexer to change IndexAnonymousContactData to true
  • Update IndexerSettings.xml within [site_prefix].xconnect\App_data\config\sitecore\SearchIndexer to change IndexAnonymousContactData to true
  • Open command prompt in admin mode and navigate to [site_prefix].xconnect\App_data\jobs\continuous\IndexWorker and execute XConnectSearchIndexer -rr or XConnectSearchIndexer -requestrebuild

Once done with the above steps, make sure to rebuild your indexes and rebuild link databases, both from Sitecore control panel.

2
  • Thank you for the response. This worked for me :) I had to add a save action which will create a contact and update it's facets. Then, i had to set IndexAnonymousContactData to true in both the configs to make it work. Thank you very much!
    – Pawan
    Commented Mar 14, 2018 at 16:31
  • This solution works, but getting error while rebuild index 'The constructor to deserialize an object of type 'Sitecore.Nexus.Licensing.LicenseException' was not found.' latter found from the article that now in Sitecore 9.0 the license file needs to be kept in 4 places. In the Sitecore website, the default /App_Data folder. In the xConnect website in the following default locations: /App_Data /App_Data/jobs/continuous/AutomationEngine/App_Data /App_Data/jobs/continuous/IndexWorker/App_Data -- fuseit.zendesk.com/hc/en-us/articles/… Commented Dec 25, 2018 at 17:44
2

The Experience Profile uses facets to display the names and emails. So you will need to set the proper facet (of the correct type and filled data) into the XConnectClient object.

I've done something similar below, I had to create an EmailAddressList facet object in addition to the PersonalInformation facet object to fill in the names and emails:

Contact myContact = new Contact(identifier);

var emailFacet = new EmailAddressList(new EmailAddress("[email protected]", true), "something");
client.SetFacet<EmailAddressList>(myContact, EmailAddressList.DefaultFacetKey, emailFacet);

PersonalInformation personalInfoFacet = new PersonalInformation();

personalInfoFacet.FirstName = "First Name";
personalInfoFacet.LastName = "Last Name";

client.SetFacet<PersonalInformation>(myContact, PersonalInformation.DefaultFacetKey, personalInfoFacet);

client.AddContact(myContact);

Using the above code I was able to see the actual Name and Email in the Experience Profile Table (which were Unknown before setting the facets)

3
  • Thank you for the response @TamerM ! I will this a try too.
    – Pawan
    Commented Mar 12, 2018 at 17:19
  • i tried your solution with a custom save action. The contact was successfully added. But, i do not see any interaction or contact in Experience profile and User manager. When i try to add the same contact, i get the exception that, the contact exists. Do you have any pointers on this? I see my services are running fine without any error.
    – Pawan
    Commented Mar 13, 2018 at 21:43
  • The above code doesn't add interactions on its own, you'll need to do so yourself (for example there is the WebVisit interaction). Not seeing the contact in Experience Profile means there something else that is not right too. The code sample provided is not complete, it is just a sample on how to set the contact name and email...
    – TamerM
    Commented Mar 14, 2018 at 10:38
2

You need to add new custom submit action which will map first name ,last name and email fields to XConnect facet values and store them in XConnect.

In order to achieve this, you need to create Speak dialog, custom submit action and custom class.

Follow this article in Sitecore documentation to achieve this: https://doc.sitecore.net/sitecore_experience_platform/digital_marketing/sitecore_forms/setting_up_and_configuring/walkthrough_creating_a_custom_submit_action_that_updates_contact_details

After implementing this, don't forget to add this custom submit action to your submit button on form. Your contacts won't be anonymous any more :)

8
  • Thank you for the response @chorpo ! I will give this a try. A quick question, shouldn't sitecore display names and email in experience profile without we customizing it? Is this an expected behavior ?
    – Pawan
    Commented Mar 12, 2018 at 17:18
  • I was also wondering why this is not there OOTB. Maybe in Sitecore 9 Update 2 it will be :). For now this is only way how we were able to make it working Commented Mar 12, 2018 at 19:16
  • Were you successful? If yes, please mark this as correct answer. Commented Mar 13, 2018 at 11:19
  • I am going to give it a try today. Will mark it as answer once done. Thank you @chorpo
    – Pawan
    Commented Mar 13, 2018 at 13:18
  • Hi @chorpo, i tried the solution you suggested. I did not create a custom form, but i created a custom Save Action and tried to add the contact on form submit event. Which is similar to the logic you suggested. Here is the link (doc.sitecore.net/developers/xp/xconnect/xconnect-client-api/…). Although the contact was added, i do not see it in either "User Manager" or "Experience Profile". I can see the contact table "_Xdb.Collection.Shard0" filled. xConnect indexer is running fine without any errors. Also i get contact exist error on running the code again.
    – Pawan
    Commented Mar 13, 2018 at 21:41

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.