Keeping Item and Field Names Unique

There are many things that can help with confusion as a developer and as a content author.  One of the biggest confusions I’ve come across has been duplicate item names, fields, and placeholders.  Sitecore will render whatever the first instance of that name is.  So, if you have an item with the same name as another, it will render the one higher up in the tree.  The same idea expands to placeholders and field names as well.  There’s a way to work with the placeholders and not be required to create multiple placeholders that have the same function called “Dynamic Placeholders“. However, the other two require some discipline as a developer and a content author.

As a content author, to avoid general confusion, giving unique names to items will avoid a possible situation where content you’ve entered is not showing up properly or not at all.  I’ve run into a few situations where the client has asked me to troubleshoot why the content they’ve updated was not displaying like they were expecting.  When I started troubleshooting, I noticed that there were items that had the same name.  It turned out they were editing the lower of the items which meant the rendered content wasn’t actually updating.  In addition, I had also noticed that other renderings were missing content entirely.  After looking into this situation, I found out that there were different templates that were utilizing the same name as well.  So, the content author added a Rich Text block to the page and correctly pointed the Datasource.  However, the item above it was an Accordion template that shared the same name.  Since Sitecore uses the path to get to the Datasource as opposed to a GUID, the rendered page was trying to render the Accordion template in the Rich Text rendering, which didn’t render properly.  One of the easiest ways to do this is to either put all items that belong together in a folder or name each one differently but name them in a way that a content author will understand that they go together (see green highlighted area).

As a developer, however, one of the things that will avoid general confusion for content authors is to name your template fields well.  Naming something “Content” can work if you’re creating a template that’s going to be inherited in to multiple places.  However, if you are creating a field specifically for a template type, it’s worth naming your fields more specifically.  As you see in the screenshot, there are two fields named “Page Title”.  One field is being inherited while the other field was added to the template itself with the same name.  This means, the first one will be the field that gets rendered while the second one is about as useless as it can be.  To avoid these types of situations, it’s good to plan out your templates before you create them to see what fields are being inherited and what fields you’ll need to create.

Do you have a plan for new Data Privacy Laws?

What are data privacy laws?

Data privacy laws prohibit the misuse of information that is gathered about individuals. Laws may vary by country, but if your business extends into other countries, you can potentially be taken to task for some of their regulations. For example, if you’re a US company that sells products or collects data from EU citizens or provides data to companies in the EU, you might be affected the General Data Protection Regulation. The General Data Protection Regulation (GDPR for short) is a set of EU regulations taking effect on May 25, 2018.

The GDPR covers a myriad of topics: the responsibility and accountability of those who gather information, how companies handle data breaches, and how data should be provided to individuals at their request.

As a result of these regulations, companies need to come up with a plan to balance the needs of the business and the needs of the user. Even if the company is based in the US, that business can have users abroad, so it’s best to take these regulations into account.

Why should you care?

Protecting the interests of your users is always a sound business strategy. Look at it this way: when someone asks for their information, it’s not a personal attack on your company—they want to ensure that the information that you have is accurate. Users that go out of their way to request information are usually tech savvy individuals, and having a plan in place for when a user requests information shows that you have their best interests in mind.

Accountability for your user’s data also means that you should be transparent when there are problems such as a data breach. Getting ahead of things and communicating to your users when there are such problems can prevent further headaches—requests for information usually increase when there is outside press.

Companies that fail to comply with these new regulations could face fines. The French Data Protection Agency recently fined Google €100,000 for not scrubbing web search results enough in response to a European privacy ruling.

The GDPR has even steeper fines, requiring you to respond within a month’s time and providing the data in a portable format (such as XML). Breaches of some provisions could lead to fines of up to €20 million or 4% of global annual turnover for the preceding financial year, whichever is the greater amount. Just to put that into perspective, Google had a revenue of $74.54 billion in 2015, if they were found to be in violation of some of these provisions, they could be facing fines up to $2.9 billion.

How do I come up with a plan?

There are a few points to keep in mind when you’re coming up with a plan to better serve your clients information needs:

  • What information are you collecting about your users?
  • Where is this information stored?
  • How is that information being used?
  • How are we going to get this information to a user in a timely fashion in a format that they can easily read?

Tracking down all of that information can be daunting, as it could be fragmented throughout your CRM, analytics, and random databases. If you’re using a CMS such as Sitecore, finding your user data becomes an easier mountain to climb.

Using Sitecore’s xDB can allow for the collection of all that data in one central place, using a noSQL database. From analytics to personalization, it can be your one-stop shop for all your users’ data.

Sitecore xDB allows for a 360° view of all of your customer interactions, and it tracks each individual customer. This is extremely valuable once you associate a user profile to an individual browser session. The data is stored for as long as you want and allows you to configure how long between requests for consent. This provides you with the flexibility to respond to requests for data efficiently and effectively.

The platform is extremely flexible, allowing your organization to tailor it to your specific needs through custom development efforts and third party integrations.

Additionally, Sitecore announced xConnect in 2016. This is Sitecore’s API for exchanging data with the xDB. Scheduled for release with Sitecore 8.3, it looks to be a promising tool in gathering data from all of your third party applications and putting them in one central repository.

What now?

Clients are concerned that they’re going to be caught between a rock and a hard place when data regulations come knocking. May 2018 is right around the corner, but as long as your organization can take the appropriate steps to plan for these regulations, you can know that you’re taking steps to make your users feel safe.


European Union Reference Site:

Google Compliance Help:

Sitecore Experience Profile:


Page Template vs. Component Site Architecture

In the last couple projects that I’ve worked on, I’ve been faced with a very common question.  How should we architect the solution, using Components or Page Templates?  Components meaning a piece of data that can be used in multiple places and can be rendered anywhere on the page.  Essentially a free way of designing a web page without needing a developer’s intervention.  Page Templates meaning a much more rigid design of the pages that will prevent possible design complications.  There are major pros and cons to both of these options, and most people will end up wanting a combination of the two.

Page Template Architecture

pagetemplatepresentationdetailsThis is one of the more common ways to architect the Sitecore content tree.  Essentially, you create numerous page types depending on what data you want to display on the page.  For example, you’d have a Homepage, a Products page, a Product Detail page, a 404 page, etc.  The perk of the Page Template architecture is that all the fields that are on the Page Template are relevant to the page and only that page.  There should not be any fields that crossover between the different pages that aren’t relevant to that page, assuming you inherited properly.  This also allows for all your data to be entered in one place.  All you’d need to do is create the page in the content tree and enter all your data in that item.  However, a perk and downfall is that a content author does not have control of the look of the page.  That is controlled by the template and layouts associated with that template.  The only choice the content author has is which template to create.

However, there are few downfalls to this architecture.  If you wanted to allow for any additional data to be added to the page, it would require some developer intervention to not only add the field in Sitecore, but to add the ability for the code to render that data.  This architecture also doesn’t make any repeated data easy to content manage.  Each time you created a page, you’d need to re-enter any repeated data.  Unless, of course, it is set in the Standard Values of that template.

Component Based Architecture

componentspresentationdetailsThe biggest perk to having a Component based architecture is the flexibility it provides the content editor.  You can take a blank page, and with the power of a handful of components, you can build a webpage multiple different ways.  Do you want a page that has 2 columns at the top with 1 column below that with a YouTube video in the 1 column and a rich text component in the left column and an image in the right column the 2 column one?  How about on the next page, you want that layout to change up a bit.  You can put 1 column at the top of the page with an image in that while the 2 column can go below it with a YouTube video in the left column and the rich text in the right.  Having a component based architecture allows for that.  It also allows for one page type to be created.  This is also depending on if all pages will have the same basic structure and data.  There may be some exceptions to this if there’s additional data that needs to be added specifically for certain page types.  The content author would create a page in the Sitecore content tree, then would start building out that page in the Experience Editor.  In the Experience Editor, there will be one placeholder that would allow for the structure of content (eg. one column, two column, three column, etc.).  Within that content, there will be additional placeholders that would allow for all the different component types to be inserted into them (eg. image, rich text, YouTube video).

There are also some very noticeable disadvantages for this architecture.  One of the biggest ones is that the content you enter is separate from the page itself.  So, you’ll need to not only create the page, but you’ll need to create the datasource as well.  Another disadvantage is the default Sitecore Placeholders don’t take into account adding multiple of the same placeholder (eg. adding two 2 column renderings that have “leftcolumn” and “rightcolumn” placeholders).  This can be solved by the use of Dynamic Placeholders.  However, Dynamic Placeholders aren’t an out-of-the-box solution from Sitecore.  So, there will need to be some custom work added to enable that ability.


hybridpresentationdetailsWhat a lot of people settle on is a hybrid of the two of these architectures.  For example, you have a News Feed page.  This page pulls in a feed of any articles you have published.  The layout of that page shouldn’t change.  However, there can be placeholders placed at the top or bottom of the page to allow for flexible content to be added.  There are even more options that aren’t as obvious.  It could be as subtle as the HTML structure being slightly different between two fully component based pages.  For example, one renders slightly wider than the other.  This would require a different sublayout or rendering which would mean that a developer would need to create a new template in order to add that wider sublayout or rendering to the Standard Values as opposed to the narrower initial sublayout or rendering.

Sitecore Campaign Set-up

Now that you know more about your users and their behavior, it’s time to analyze what brings users to your site in order to create marketing initiatives that result in more conversions.

Sitecore Campaigns allow you to target the user once they arrive at the site. Campaigns, like the Google Analytics URL Builder, include a query string that ensures inbound links are tracked in Sitecore Analytics. However, Campaigns can take this tracking further—they can be used to trigger personalization. (More on this in a future post.)

Once you have Campaigns set up, you can incorporate them into any inbound marketing activities. Analytics can track the activities that are triggering Goals and Profiles you’ve established. For example, you could see that email marketing is leading to more brochure downloads from the Retired Profile you established. Or you could track that Facebook is driving more newsletter signups for the Young segment.

To configure a Sitecore Campaign, log into the Sitecore Experience Platform dashboard and open the Marketing control panel.

Create the Campaign Category

To create the category, right click on the Campaign folder and Insert New Category (social categories are configured). Name it and save.


Create the Campaign

This is where you’ll create the specific Campaign. For example, you may have several AdWords campaigns simultaneously in flight. To create, right click on the Campaign Category that you created, insert new Campaign and name it to correlate to your on- or offline Campaign (example: Fall Sale).

Fill in the appropriate fields. Not all of these are necessary—we recommend starting with these:



Channel Select the appropriate channel from the available dropdowns.
Title The title of the Campaign should match your on- or offline Campaign.
Campaign Link This Campaign query string will be used to ensure site visits generated by this campaign are recorded by Analytics and can trigger personalization.

For example: sc_camp=7147FC33D65741B78CF354926779C1AE

Append the query to the link to your website from the inbound source. If the link already includes a query string, prefix the provided text with an ampersand (&). If the link does not include an existing query string, prefix the text with a question mark (?).

Type A Campaign can either be online or offline.
Enroll in Engagement Plan Select the engagement plan state you’ll assign to visitors when they participate in this Campaign.
Traffic Type This is how the Campaign is categorized in Analytics. Example: A visitor might come from an email campaign, which will put them into the Referred – Other category. To ensure that this visit is classified as the Email type, set traffic type as Email.

Deploy the Campaign in Workflow

You must deploy a Campaign in the workflow before you can associate it with a content item. To deploy a Campaign:

In the Marketing Center, select the campaign you want to deploy.

On the Review tab in the Workflow group, click Deploy.

Associating a Campaign with a Content Item

After creating a Campaign in the Marketing Center, you must ensure that the Campaign is triggered in Sitecore Analytics so you can track which Campaigns are driving visitors to your site.

To associate a Campaign with a content item:

assign campaign

In the Content Editor, expand the content tree and navigate to the content item you want to associate a campaign with.

In the Analyze tab, in the Attributes group, click Attributes.

In the Attributes dialog (Figure 2), click the Campaigns tab and select the Campaign you wish to associate with the content item.

Campaigns can also be assigned at the Standard Values level, if you would like to track all content. For further implementation information, Contact HI. 

Configuring Goals in Sitecore

You’ve done the work of categorizing your users and content. Now it’s time to discuss your specific goals for each user group. Sitecore goals measure activities visitors can perform on your website. You can assign a goal for any action you’d like your user to take.

Example goals:

  • Download a brochure
  • Register for a newsletter
  • Visit a page

We’ve established our data-first approach in previous posts: gather data now; capitalizing on it later. We recommend setting up all of your goals on the site to start compiling insights on your users. When you’ve created profiles, you’ll have the ability to segment your data to note trends—such as young users are more likely to download a brochure compared to senior users.

Prioritizing your goals by level of importance will give you the best insights. For example, a user signing up for a newsletter is likely more valuable than a page visit. Sitecore allows you to assign different engagement value points to each goal. As a visitor navigates through the site, Sitecore tracks points as the user triggers goals. Once the visitor leaves, Sitecore calculates the engagement value for the visit. The Experience Profile will allow you the goals and engagement value of each site visit.

The number of engagement value points allocated to each goal isn’t as important as the ratio between engagement value points assigned to the different goals. For example, a user signing up for a newsletter could be 10 times more valuable to a marketer than one simply visiting a page. In that case, your engagement value points would look like this:

Engagement Values

In a future post, we’ll talk about incorporating goals into engagement plans to further capitalize on Sitecore’s advanced marketing functions. In the meantime, what follows are the step-by-step instructions for setting up Sitecore goals.

Setting Up Sitecore Goals

 To configure a goal, log into the Sitecore Experience Platform dashboard and open the Marketing control panel.

  1. Create the Goal

To create the category, right-click on the Goals folder and insert new Goal. (An optional step would be to first create a Goal Category to group goals.) Name it and save.

creating goal

  1. Fill in the appropriate fields

Not all of these categories are necessary; we recommend starting with these:

Name The name for your goal.
Points The number of engagement value points that are assigned to a visitor when they achieve this goal.
Description A suitable description of the action, such as a user signing up for a newsletter.
Rule Select the rule that should be evaluated when the page event associated with this goal is triggered.
Goal Checked by default. Select this checkbox to ensure that the goal appears in the Content Editor’s Goals dialog. You can then associate the goal with a content item.
Track as Latest Event (Sitecore 8) Select this checkbox to ensure that the goal appears in the lists of latest events on the Experience Profile.
Show in Events (Sitecore 8) Select this checkbox to ensure that the goal appears in the lists of events on the Experience Profile.

(We recommend choosing one of the final two options.)

  1. Save, Deploy and Publish the Goal

After you’ve filled in the appropriate fields, you can save the Goal. You must deploy the new goal before it becomes available in the Marketing Center, and you can associate it with a content item or a campaign.

To deploy a Goal:

  1. In the Marketing Center, select the goal that you want to deploy.
  2. On the Review tab, in the Workflow group, click Deploy.
  3. Publish the item.

The new Goal is now available in the Marketing Center and you can associate it with content items and use it in your campaigns.

Associating a Goal with a Content Item or Media Library File

After you have created a Goal and deployed it, you can associate it with a content item or Media Library file. This means that the Goal is achieved every time a visitor views this item.

assign goal

To associate a Goal with a content item:

  1. In the Content Editor, navigate to the content item to be assigned a specific goal
  2. Click the Analyze tab and, in the Attributes group, click Goals. In the Goals dialog, select the Goal that you want to associate with the selected content item.

To associate a Goal with a media item:

  1. In the Sitecore desktop, open the Media Library.
  2. Navigate to or search for the content item you want to track.
  3. In the ribbon, Analyze tab, Attributes group, click Goals.
  4. In the Goals dialog, select the desired Goal.
  5. In the Media Library ribbon, click Save.

Sitecore User Categorization: How-To

Now that you know all about Sitecore Profile and Pattern Cards, it’s time to learn how to set them up.

To configure a persona profile and profile keys, log into the Sitecore Experience Platform dashboard and open the marketing control panel.

Our Sample Personas are:

  • Yanni Young Person
  • Mary Middle Age
  • Sally Senior

1. Create the Persona Profile.

To create the persona profile, right-click on the profiles folder and insert new profile. Name it “Persona” and set the Type to “Sum.”

Pic 1

2. Create Profile Keys.

Right-click on the persona profile you created, insert new profile key and name it according to your profile key. Set the maxvalue to the highest value in the scale; we recommend a scale of 0 to 5.

Pic 2

3. Create the Profile Cards.

Profile cards contain the information about each persona. To assign presets for the profile cards, select the profile cards folder below the persona profile and click on “Insert Profile Card–Persona”.

A Profile Card–Persona comes with these presets to describe the Profile:

  • Name
  • Image
  • Title
  • Details
  • Age
  • Description
  • Education
  • Family

You do not need to fill out every field, but the more you complete, the more smoothly your content editors can access necessary information about the personas.

The final step is assigning the profile keys to each persona.

Pic 3

Profile Cards Configuration

Here you can also select whether multiple Profile Cards can be used to profile a content Item or whether just a single Profile Card is more appropriate.

Click on the Profile Cards folder and then the Content tab. If you determine that multiple cards are applicable, Sitecore will allow you to use the same weighting for each card by selecting Multiple; or use custom weighting by selecting Multiple with Percentages.

Pic 4

4. Create the Pattern Cards

Open the Marketing Center and navigate to Marketing Center/Profiles.

Select the Pattern Cards item and right click to create new Pattern Card.

Name the pattern card. Click OK to create it.

In the new pattern card item, enter the appropriate information.

In the Pattern field, enter the profile values that you think are appropriate for the visitor behavior that you want to characterize.

Save your changes.

PIc 5

5. Tagging Content to a Profile

With the personas configured in Sitecore, you are ready to use them for profiling content.

Within the Content Editor, click on the content you would like to profile, then click on the icon for Edit the Profile Cards associated with this item.

Pic 6

Here you’ll be able to add and remove the Profile Card for each piece of content.

If you have configured your profile cards as multiple with percentages, you will be able to tag the content with multiple profiles and weight the relevance for each profile.

Pic 7

Rinse and repeat for all applicable content.

Congratulations. You have now laid the groundwork for gathering insights on each user segment and can now personalize your content to each categorized user.





Introduction to Sitecore Advanced Marketing and xDB capabilities

Sitecore clients are poised to start capitalizing on the power of the Experience Platform (formerly DMS), but many are overwhelmed as to where to begin. They’ve seen the demo—they understand Sitecore has tools that help them know their customers and personalize experiences based on behavior. But then what?

This is where we at HI come in. In this series of posts, we’ll lay the foundation for predictive personalization in Sitecore. We’ll help you make sense of Profile Keys, Profile and Pattern Cards, Goals and Campaigns, and we’ll provide instruction on using the rules engine to target content.

You’re ready, but where do you start?

The big question! I’m approaching this series with the assumption that you and your organization have undertaken instrumental strategic and user-experience planning sessions while designing your marketing goals and website. These initiatives offer keen insight into your users’ behavior. So, before we dig in, you should:

  • know the types of users visiting your site and buying your product.
  • have defined personas and/or customer or visitor segments.
  • have mapped out the customer journey of your personas or segments.
  • possess a strong grasp of your goals for each user group.
  • know what content is tailored to each segment—and have tagged it accordingly.
  • are familiar with inbound activities driving users to the site.
  • be familiar with the content authoring experience in Sitecore.

Once you have all of the above in place, you’re truly ready to get started—which means approaching things from a data standpoint. Now we’ll determine how we can optimize each user’s experience with the support of user categorization.

Sitecore User Categorization

I recommended getting started by first setting up your visitor segments and tagging your content to gain insights into your users’ behavior. Once that’s in place, you’re ready to set up user categorization.

Where to start?  Many Sitecore clients get tripped up over the difference between profile cards, profile keys and pattern cards. Here are some simple definitions of each:

Profile: a category of visitor to your website

Profile Keys: personality attributes that apply to your profiles

Profile Card—Personas: descriptions of the lifestyle, habits, background, interests and profession of a user. Creating profile cards and profile keys allows you to classify the visitors to your website. The profile cards and keys you create should reflect the interests of the personas for whom you designed your website.

Pattern Cards: a category of the behavior and interests of the user based on the content they consume

Profile Values: a value corresponding to the interests and behavior of the visitor

Now let’s discuss the order of operations. It’s best to start by clearly defining your personas. For example, let’s say our client is a bank with products for customers based on different stages of life. Let’s categorize the site’s users.


  • Young: under 35 years old
  • Middle Aged: 35–60 years old
  • Senior: 60+ years old

Profile Keys:

What attributes/behaviors apply to each profile?

  • Opening a checking account
  • Saving
  • Funding college
  • Looking for a loan
  • Ready to retire

Profile Card—Personas:

Personas humanize your segments and make it easier for your content authors to categorize content.

  • Yanni Young Person
  • Mary Middle Age
  • Sally Senior

Personas include multiple weighted profile keys to define the user. For example, on a scale of 1 to 5 (this scale and these values are the profile values), Mary Middle Age could have the following profile keys attached to her:

  • Opening a checking account: 1
  • Saving: 3
  • Funding college: 5
  • Looking for a loan: 3
  • Ready to retire: 2

Pattern Cards:

Pattern cards are very similar to profile cards—they are a collection of profile values and keys, but they have different purposes. When a visitor navigates through the site and views different pages and consumes different resources, they accumulate the profile values of all the pages and resources they request. Sitecore calculates the average score the visitor has accumulated for each profile and maps the visitor to the pattern card that is the closest match.

Next, we’ll discuss how to set up these elements in Sitecore.