6 min read

How to Automate Net Promoter Score Surveys with HubSpot

This post is an excerpt from my upcoming course — Mastering HubSpot. Sign-up for the pre-launch list to receive an exclusive discount.

The HubSpot Academy has a basic walkthrough that shows you how to do a Net Promoter Score survey with HubSpot, but I’ve got a turbo-charged version for you. Using steps below you’ll be able to:

  1. Easily re-measure NPS over time.
  2. Make the email performance report double as a NPS report.
  3. Collect feedback to understand why someone gave you a particular score.

Best of all, I’ll give you a custom-built HubSpot-ready NPS email template that you can drop right into your portal.

What is NPS?

Net Promoter Score is a survey designed to help you measure customer loyalty.

You ask one simple question like “How likely are you to recommend HubSpot to a friend or colleague?” and recipients can respond on a scale of 0 (not likely) to 10 (extremely likely).

Responders are grouped into three buckets based on the score they gave:

  • 0-6 are considered Detractors—unhappy customers who are likely to churn in the next 30-90 days.
  • 7-8 are considered Neutrals—no strong feelings one way or the other.
  • 9-10 are considered Promoters—your super fans who are eager to help spread the word.

A high overall score indicates strong customer loyalty. NPS can range from –100 to +100, and is calculated as % of Promoters – % of Detractors.

Don’t be discouraged if your initial survey produces a low score. The important thing is that you use the feedback to make improvements. You want your NPS to trend upwards with each survey.

Let’s get into the setup.

Step 1: Create two custom NPS properties

Go to Contacts –> Contact Settings and create a custom radio select property called NPS Bucket. Enter three possible options: Detractor, Neutral, and Promoter.

NPS Bucket Property in HubSpot

Next, create a multi-line text property called NPS Feedback.

NPS Feedback Property in HubSpot

Step 2: Create an NPS feedback form

Go to Contacts –> Forms and build a simple form with two fields for our post-survey thank you pages to capture the reason behind someone’s score.

  1. Add Email (required) and make it Smart 🔄 so cookied visitors won’t even see this field.
  2. Add your NPS Feedback multi-line text field and give it a label that says “What is the most important reason for your score?”

Easy enough.

NPS Feedback Form in HubSpot

Step 3: Create 3 thank you pages

Go to Content –> Landing pages and build 3 landing pages–one for each bucket:

  1. Build a thank you page for Promoters (e.g., https://info.varonis.com/ty-survey-p-thanks)
  2. Build a thank you page for Neutrals. (e.g., https://info.varonis.com/ty-survey-n-thanks)
  3. Build a thank you page for Detractors. (e.g., https://info.varonis.com/ty-survey-d-thanks)

Build the Promoters page first and add the NPS Feedback form to it. Then clone it twice. Change the URL and modify the messaging (if you want). Here’s what mine looks like:

NPS Thank You Page in HubSpot

In our survey email, scores 0-6 will link to the Detractors page, scores 7-8 to the Neutrals page, and 9-10 to the Promoters page. Each link will have a query string parameter that indicates their score.

For example:

  • http://info.varonis.com/ty-survey-d-thanks?score=2
  • http://info.varonis.com/ty-survey-n-thanks?score=8
  • http://info.varonis.com/ty-survey-p-thanks?score=10

Don’t worry, this is all built-in to my custom template. You just have to provide your 3 thank you page URLs, which I’ll show you in a sec.

(A minor stylistic point: I wouldn’t make your URL slugs /detractors, /neutrals, and /promoters. It just feels weird to display that info to your customers. I like to be more subtle.)

Step 4: Create a workflow to assign NPS property values

Our NPS Bucket value is going to be set via a workflow. The HubSpot Academy would have you create 3 separate workflows, but you can do it with just one. (This is where a visual workflow builder would come in handy HubSpotters!)

  1. Create an enrollment trigger on Page View: Contact has visited a URL containing ty-survey
  2. Create an If/Then branch on Page View: Contact has visited a URL containing ty-survey-p-thanks
  3. If Yes: Set a contact property NPS Bucket to Promoter then end the workflow
  4. If No: Create an If/Then branch on Page View: Contact has visited URL containing ty-survey-d-thanks
  5. If Yes: Set a contact property NPS Bucket to Detractor then end the workflow
  6. If No: Set a contact property NPS Bucket to Neutral then end the workflow

You also want contacts to be able to repeat this workflow since their opinion of you might change over time:

HubSpot NPS Workflow Allow Repeat

Step 4: Create your survey email

I built a HubSpot-ready NPS email template for you.

Click here to grab the template HTML file

  1. Go to Content –> Design Manager
  2. Click New Template –> Code Editor –> Email –> Create
  3. Name your file hubspot-nps-template.html
  4. Copy and paste in the HTML code
  5. Publish your template

You don’t have to change anything inside the template HTML. It’ll pull in most of your portal’s styles and your logo.

When you create an email using this template, click on Edit Modules in the left sidebar. Here you’ll be able to enter your 3 thank you page URLs. That’s all you have to do. Of course you can optionally change the text of the email.

HubSpot NPS Email Template

Save your email for automation if you plan to use it in a workflow. Otherwise, add your list and send away!

Step 5: Send your NPS survey email

You have to decide when it makes sense to send your NPS survey email. You can send it as a manual broadcast to a Smart or Static List on a specific date to canvas a bunch of customers at once, or you can trigger your NPS survey via a workflow whenever a certain interaction occurs—e.g., resolving a customer service ticket or hitting a product usage milestone.

HubSpot NPS Email Template

Step 6: Calculate your NPS score

You can calculate your all-time NPS score by creating three Smart Lists based on the value of the NPS Bucket property: Promoters, Detractors, and Neutrals. That’ll give you the bucket totals.

  1. Take the total number of Promoters
  2. Subtract the total number of Detractors
  3. Divide by the total number of responders
  4. Multiply by 100

For example:

  • Promoters = 70
  • Detractors = 10
  • Neutrals = 20

NPS = ((70-10)/100)*100)

NPS = 60

Email performance tab

Because of the way we structured our thank you pages, each email’s performance tab will reflect your NPS score for that discrete survey. Just look at the click distribution:


If you uncheck the Combine similar links box you’ll even get a per score breakdown. 🤘

If you send your surveys via an automation email, the performance tab will reflect a cumulative score score for however long that automation email is in play.

If you want to put a date boundary on your survey—for example, NPS for Fall 2016—you can simply remove the automation email from the workflow, clone it, and attach the new one (which will have fresh performance stats) to the workflow.