Drupal website personalization with SharpSpring

By Panshul khurana Nov 7, 2016

What is Personalization ?

When you go to a cafe and order coffee, the barista asks you how you want it. Your answer depends upon the choices made available to you. Based on your preferences/likes/dislikes, the barista makes the coffee.

If you are a regular visitor, and have interacted with the barista several times, then they might not even need to ask what you like. They would know what you want, the moment you walk through the door.


Website personalization is very similar to your choice of coffee. Basically, it's content displayed to you on a website, based upon your characteristics and user profile. In other words, it’s tailor-made to your preferences.

Why do we need personalization ?

Why do we need personalization ?

Website personalization is the key to effective content marketing. It’s an important implementation for websites, that allows them to customize and display different content to different users, based upon their behaviour on the site. It is one of the best tools to determine what a user is interested in, and according to the data collected, make improvements in the UI or the content available on the site. Most marketers agree that content marketing makes up an important piece of their advertising strategy.

How can we achieve website personalization in Drupal ?

There are several tools and modules available to achieve content personalization on a website:

  • Personalization: Provides configuration to add implicit and explicit personalization to Drupal websites based upon geo-location and taxonomies.
  • SharpSpring and SharpSpring Personalize: These modules can be used to add SharpSpring tracking to website pages. They can also personalize content on the website using data returned from SharpSpring on page-visits, or information about the user/lead visiting the page.
  • Acquia Lift: An Acquia solution that unifies content and customer data from multiple sources to deliver data-driven, personalized experiences across any channel or device.

With the introduction of BigPipe caching, content personalization for Drupal site also got a whole lot faster.

In this blog, let's focus on the SharpSpring module to achieve content personalization of a single block. Our purpose is to display personalized content to different users/leads according to their profile present on SharpSpring.

What is SharpSpring ?

SharpSpring is a marketing automation platform that combines site analytics and lead generation in one Platform as a Service. It tracks user activities on website and provides relevant data to the admin.  This allows them to create more powerful automation rules, that can send dynamic content to the lead, and target leads based upon their interests.

Workflow of the implementation

Workflow of the implementation


  • The flow starts with an email that is sent from SharpSpring web portal to the targeted lead, with the URL of the website whose personalized content is to be displayed. Here we are making an assumption that the lead data is present on SharpSpring web portal.
  • The lead receives an email and clicks on the URL present in the mail. They are then redirected to the Drupal website.
  • As soon as the lead clicks on the URL, the SharpSpring module installed on the Drupal portal makes an API call back to the SharpSpring portal. This API is responsible for fetching lead details from SharpSpring. The amount of data that is returned depends upon the data present in SharpSpring.
  • SharpSpring then recognizes the person who clicked on the link as a lead (if the profile is created on SharpSpring) and returns all the data present on the portal related to that lead in a form of a JSON object as shown below :                                                                                                                                                                  SharpSprin
  • In our Drupal portal, we are then capturing lead details in the form of a cookie, and reading the data from the cookie.

Also, we have our content tagged with a taxonomy term. In our case, let’s take an example of the taxonomy term “Job Title”. In this case the title that will be captured is “Intern”. Now, only the content on the site tagged with the term 'intern' will be displayed to the lead, here named as “Panshul Khurana”. In case for a different lead where Title is “Developer”, only the content tagged with the term “Developer” will be displayed to that specific lead.

Hence, according to the lead details captured from the SharpSpring portal, the content on the site is being personalized for that specific lead.

Pre-Requisites in the current implementation

  • Lead must have a profile in SharpSpring
  • Lead must click the promotional link at least once to trigger content personalization

There can be multiple ways to achieve website personalization. The idea is to automate the system or develop a system which is not dependent on a third party tool and have a system that captures user details and displays the personalized content at any level, be it block level, content level, or even a UI based personalization.

After all, it is all about providing a customer his favourite coffee, brewed exactly how he likes it. ;)

And if you have already implemented some basic website/content personalization, we have a few forecasts that you might find useful.

Shared Success

Building a Drupal-based content collaboration tool
How We Helped a Leading Biopharma Company Streamline their Publishing Cycle with a Drupal CMS
How We Helped 8world Deliver New Digital Experiences Through A Hybrid CMS
How We Helped A Telecom Giant Shorten The Time-To-Market For APIs

Let’s start our conversation

  • Business Inquiry
  • Career
  • Others

Business Inquiry