How EnergySmart Uses CMS Hub and HubSpot CRM for Smart Reporting

Savvy companies are aware of how effective CRM and CMS technologies can be for their bottom line. EnergySmart discovered that the intersection of these two technologies creates novel approaches to solving modern business problems.

EnergySmart operates a successful business performing heat pump and insulation installations. When they attempted to scale up their business, they struggled with the limitations of their software for customer booking and employee schedule management. Despite being successful at their work, EnergySmart’s outdated system just wasn’t working.

EnergySmart’s Problem

EnergySmart’s old system was almost more trouble than it was worth. Their software provided them with no business or staff information, and their booking software frequently made mistakes. Data was challenging to find and often duplicated, with no mechanism for reporting at all. Worse still, the software would repeatedly crash every time a user attempted to upload a photo – which was part of their process.

All this made EnergySmart aware that they needed to make dramatic changes to their software. In addition to overhauling its mission-critical systems, EnergySmart wanted several new features.

To help inform business decisions, EnergySmart wanted the software to offer in-depth reporting on key performance indicators (KPIs). They wanted to answer questions about their projects and employees’ activity quickly. And, they wanted to see statistics about essential information — information like how many square meters of insulation a particular employee has installed.

The HubSpot Solution

Although EnergySmart knew that all the information and software to do what they wanted was available, they needed a solution to put it all together. The answer they found was a combination of HubSpot’s CRM and Content Management System.

Their clever solution utilizes HubSpot’s CRM as the back-end of their system, while a custom application built on HubSpot’s CMS acts as the front-end. By synergizing these two products, EnergySmart was able to accomplish its three primary goals:

  • Create a (working!) system that allows customers to make bookings and employees to manage schedules.
  • Enable visibility into KPIs, business metrics, and CRM data for stakeholders.
  • Operate a dynamic web app that serves the needs of employees and customers alike.

Here are a few more details on how this system is designed to work:

At the core of EnergySmart’s implementation is HubSpot Memberships. Using Memberships, EnergySmart created an all-in-one application that serves the needs of customers and employees. The Memberships feature allows organizations to control who has access to specific areas of their website. EnergySmart uses Memberships to ensure employees have access to the correct data and to enhance their customer’s journey.

With Memberships, developers can customize how content appears to different users. Combined with custom CRM objects, Memberships can change the page’s content based on what the CRM knows about the user viewing the page. All use simple HubL syntax.

Take a look at this sample from our HubSpot Developer Docs:

					{% if request_contact.is_logged_in %}
  {% set membership_contact = crm_object('contact',, 'firstname,lastname') %}
  Welcome back, {{ membership_contact.firstname }} {{ membership_contact.lastname }}
{% else %}
    <a href="/_hcms/mem/login">Log In</a>
{% endif %}

In this example, we’re checking to see if the user is active. If they are, we greet them by name by retrieving information from the customer’s CRM object. If the user didn’t log on, we direct them to the login page.

This code snippet illustrates how powerful the combination of memberships and custom CRM objects can be. This same process can be used to retrieve any number of details about the customer. For example, retrieving their purchasing history, last interaction, physical location, or anything stored as CRM data in HubSpot.

By using Memberships, EnergySmart’s stakeholders can access and manipulate data relevant to their interests without using HubSpot directly. Rather than requiring stakeholders to get their hands dirty with CRM data or muss about in the back-end of a CMS, EnergySmart’s app provides teams with need-to-know information in a sleek front-end presentation powered by CMS Hub and gated using Memberships.

Leveraging Serverless Functions

To interact with their HubSpot data from apps and APIs, EnergySmart implemented a series of serverless functions. Serverless functions allow third-party requests to interact with data held in HubSpot. Using serverless functions, EnergySmart can update and retrieve CRM data from other system parts or for use by third parties.

Serverless functions can perform complex operations. Because of HubSpot’s serverless functions in Node.js, the sky’s the limit for what you can configure serverless functions to do.

You can trigger a serverless function by sending a POST or GET request to a URL on your HubSpot CMS corresponding to the function. Once you make the request, the corresponding Node.js code executes and returns a response.

For example, a business might configure serverless functions to perform the following tasks:

  • Receive a request to book an appointment from a third-party website
  • Check if the requested appointment time is available.
  • Add the appointment to the schedule and adjust the availability of staff.
  • Return a response telling the requester that the company scheduled the appointment.

As described in our HubSpot Serverless Functions Developer Docs, you can create serverless functions by adding JavaScript files to the appropriate directory within HubSpot.

See how easy it is to create a serverless function in this brief code snippet:

					exports.main = (context, sendResponse) => {
   // your code called when the function is executed
   const functionResponse = "Congrats! You've just deployed a Serverless Function."
   // sendResponse is a callback function you call to send your response.
   sendResponse({body: functionResponse, statusCode: 200});

This example from HubSpot Developer Docs demonstrates the simplicity of serverless functions. You can execute any JavaScript code after calling a function. By using the sendResponse function, you can return the output of your new serverless function. You could even invoke third-party APIs and other services from your serverless function. To perform a complex operation on our CRM data or return a basic response, you can deploy serverless functions for just about any scenario.

Wrapping it up

Although HubSpot may have its origins as a marketing platform, EnergySmart is an excellent example of how CRMs can do more. EnergySmart demonstrates how using the HubSpot CRM as a central point of truth is an essential building block for coordinating activity.

With its clever use of Memberships, EnergySmart’s web app meets the organization’s diverse team members’ needs. Relevant data appear in customized presentations depending on the team member’s role. This gives employees ready access to everything they need to inform their decisions and complete their tasks.

Curious to see what your business could do with a bit of help from HubSpot? Try CMS Hub today and explore the many possibilities.

If you’re interested in developing expert technical content that performs, let’s have a conversation today.



If you work in a tech space and aren’t sure if we cover you, hit the button below to get in touch with us. Tell us a little about your content goals or your project, and we’ll reach back within 2 business days. 

Share via
Copy link
Powered by Social Snap