May 26, 20203:48 AM - edited May 26, 20203:51 AM
Participant
HOW TO: Make your own NPS System
SOLVE
HubSpot has a built-in NPS survey system that is very good. However, you need to have either; Service Hub Professional or Enterprise.
Since we didn't have access to one of those packages, I decided to create it myself. Here's the basic knowledge you'll need:
Create workflows
Create custom emails
Create landing pages (in HubSpot or on your website)
OPTIONAL: Create new properties
BONUS: Create HubSpot forms and embed them on your website
Some of the areas in my screenshots are blurred out as I don't want to share my companies private information. Most blurred out parts are only copy and personal information.
1) NPS Email
First, we must create the NPS email. Copy wise, there are plenty of examples online for you to find. The only necessary step here is to create 11 (numbers 0 - 10) links on which the recipients can click. Behind every number, is a link that goes to a custom landing page on our website. For example www.mywebsite.com/nps-0, www.mywebsite.com/nps-1, ... and so on.
HubSpot will recognise these links in the email, and we'll use them later to determine on which number the recipient clicked, i.e. what NPS score they gave us.
BONUS: you can create a new form and embed it on each of these pages where you can ask for extra feedback. We do this and over 50% leave extra written feedback. You can use the same form on all pages.
NPS email
2) Entry workflow
Now we can create the entry workflow on which the contact will enter the NPS flow. The trigger criteria for this workflow can vary, based on your own business and needs. I created a custom property since we have different NPS for different products. Once that property is manually set to the right value, the workflow triggers. The only thing this workflow has to do is send the NPS email.
NPS Entry Workflow
I have a small delay in place as an extra precaution should something go wrong. This is not necessary.
3) Distribution workflow
This is the final and most difficult step in the process. First, you need to create a new property to store the NPS SCORE in. The next part is not so easy to share visually, so please read the following very carefully:
The trigger criteria for this workflow has to be: clicked ANY LINK in NPS EMAIL.
To determine which link the recipients clicked, use the IF/THEN branches. YES: IF clicked link to www.mywebsite.com/nps-0 in NPS EMAIL -> Set NPS SCORE (property) to 0.
NO: Go to a new IF/THEN branch.
New branch, the same thing. Only with a new landing page this time:
YES: IF clicked link to www.mywebsite.com/nps-1 in NPS EMAIL -> Set NPS SCORE (property) to 1.
NO: Go to a new IF/THEN branch.
... and so on until you reach number 10.
This way, the system will check if the recipient clicked number 0 first. If not, he'll continue to check if number 1 was clicked. Then 2, 3, ... until it reaches a YES value in the IF/THEN branch.
NPS Distribution IF/THEN
The YES Value can just end the workflow. But in my case, I set up an internal email to notify the owner and some management people of the score that was just given. Since I have the feedback form on my landing page, I introduce this small delay so I can capture the feedback given on the page in that same internal email. But this is obviously not necessary.
NPS Internal email
That's the basic NPS system done!
With this, you are ready to start collecting NPS feedback! The original NPS system disregards any 'neutral' scores (7 and 😎 and calculated only the detractors (0 - 6) and promotors (9 and 10). You can set up a custom report that has this calculation, but I'm not going to delve deeper into that.
Extra: NPS internal email
I created 3 internal emails. One for detractor, one for neutral scores and one for the promotors. The only difference in mine is copy-wise. You can just create one if you want to.
Personalization tokens Displaying contacts information is very easy. All you need to do is create a new email, and use the personalization tokens. These can display nearly any property of that contact. The best example of this is using First name as the beginning of an email. Only here I display the NPS SCORE, feedback and some other info as well.
Personalization tokens
Here's what our email looks like:
NPS internal email
All is left to do now is include this internal email in all your YES endings of the IF/THEN branches. I send this out to some of our management staff and our customer satisfaction team as well as the sales rep responsible for the client.
Hope this can help you out collecting customer feedback in HubSpot!
Thanks for sharing! We ended up listing the numbers 1-10 and then linked each number to a landing page. Based on the score we have a tailored message ranging from thanking them for being an advocate to asking them to schedule a meeting with us to address their concerns. The folks who score us the highest will get an email in a few weeks inviting them to refer a friend. Cheers!
Since this thread is a bit outdated, I'd recommend to create a new thread, so that more people can see it.
Make sure to add context, examples and all the details you can (more information about what you'd like to achieve and explain what your goal is in more detail) 🙂
The more info, screenshots (without sensitive/confidential information), and details you can provide, the better the Community can assist.
I am creating something similar but I am confused about how to ask the customers for their feedback on the next page without asking for their email address. Is there someway that HubSpot can identify the contact based on the email link that they clicked?
Appreciate this workflow, but had a question for anyone knowledgeable. How do you enable the distribution workflow to re-enroll so that an update to NPS is reflected in the NPS properties on the Contact record? We may send the NPS email to the same customer after 6 mos, but my understanding is that it's not possible to re-enroll contacts based on activity like clicking a link.
I can imagine some workarounds (like using the URL view as the initial & re-enroll trigger, or creating a counter or date property that updates when that NPS email is opened/clicked) but any suggestions for enabling re-enrollment?
@CarloD This is awesome! I love the innovative use of CTAs and workflows. Great job!! 🙂
I am curious if you faced any issues with "spam checkers". These bots tend to click on every link in an email before sending it over to the recipient.
Also, did you face any issues where people forwarded the email to others in their organization and that resulted in the same contact clicking 2 numbers on the scoreboard?
Hope this helps Thank you. -AM8 #Did my post help answer your query? Help the Community by marking it as a solution.
First of all, we are B2C and sell a high-value product. That means we have a relatively low customer count and, as a result, we don't send out a whole lot of these emails.
To my knowledge, spam filters take a lot of things into account. Email copy, links, images, ... but also the domain of the sender.
Some do end up unopened (so I guess spam or non-priority) but no more than regular emails we send from our HubSpot account. I quickly checked my Google Analytics account and didn't notice a lot more of hits on those URL's than I expected, so I don't think a bot or AI actually visits that page. But I don't know for sure how those systems work.
When a client doesn't complete the NPS, our sales team call them up in most cases to ask if they have received it. If not, we manually enroll them again (the ENTRY worklow) and the sales rep asks them to check their spam. We also have people who just reply on the email to give their score (bad copy maybe, I don't know) but we can just add their feedback and score manually in the property.
For your other question, sometimes a client does click 2 times (or more). In that case, the system doesn't register it correctly all the time. I recall by memory here (and I don't have a very good one) but I remember the first score to be registered and not the second one. But if it's lower than a 9, our sales call them up anyway to check what we can do better and we catch most of not all issues that way.