Heads up! Profile Card Names Matter in Sitecore

I was playing with a Sitecore PowerShell script to automatically assign content profile cards to content this morning when I discovered something surprising and important: Sitecore stores content profile card data by name.

Take a look at the XML used to store the relationships in the Tracking field.

<?xml version="1.0" encoding="UTF-8"?>
    <profile id="{EB377C0E-7141-456F-949D-1F864FB4843F}" name="Accessories" presets="Chargers|100||">
        <key name="Chargers" value="10" />
    <profile id="{DEC98691-52A0-4518-A5A6-94BAD457C2D3}" name="Mobilenest Product Catalog" presets="Accessories|100||">
        <key name="Accessories" value="10" />

The name of the assigned profile card is the “Accessories” value stored in the profile node’s “presets” attribute. Change the name of the preset (ie, the profile card item name) and all of your references break.

This means that if you rename a profile card after it’s been created and assigned the relationship between content items and that card will be lost. This is a very important thing to keep in mind while setting up and managing your content profile personalization efforts.

Sitecore is currently aware of this issue but has not come up with a solution yet.

Because there is currently no fix available for this issue the important workaround of using Display Names if you ever need to change the visible name of a Profile Card must be used.

About The Author