Responsive NPS survey based on the answer

This guide will help you understand

  • What is NPS
  • How to create a responsive NPS survey in Exponea
  • How to create and read evaluation of the survey

What is NPS

The Net Promoter Score is an index ranging from -100 to 100 that measures the willingness of customers to recommend a company's products or services to others. It is used as a proxy for gauging the customer's overall satisfaction with a company's product or service and the customer's loyalty to the brand. It is possible to target customers with the survey through different channels, such as a web layer or a survey .

This guide explains how to create an advanced email template that can be properly evaluated and also point the customer to additional questions based on the score they've selected.

How to create a responsive NPS survey in Exponea

To create a complete campaign, you need to

  • create a survey for each possible answer of the scoreboard
  • create an email template with the HTML component

Creating the survey

As you will need to ask different questions based on what answer the customer selected, you need to have different surveys for that, one per every NPS score option. You can ask detractors what you would need for them to award you a 10 instead of a 5 (depending on their response), or what you should do better; or simply thank promoters for their support.

To create these surveys, please follow our guide here.

Email template

In the email template, add an HTML component, which will consist of different links to different surveys, one per every NPS score option. Links need to be composed of two parts, a personalized link that can be acquired from personalization, and an identifier to track this value. This identifier has to be included in the link after the Jinja tags, separated with a question mark.

The resulting link tag will then look similar to this:

<a href="{{ surveys['NPS 0'] }}?utm_term=NPS0">

You can then customize the HTML any way you like, e.g. setting the links as standard buttons, stars, etc.


NPS Score

NPS is generally evaluated as ((number of promoters (score 9-10) - number of detractors (score 0-6)) / total responses)*100. To achieve this, create a new segmentation with 3 segments: promoters, detractors, and passives, each segment being done in a following fashion:

This is done specifically like this because:

  • As the evaluation is done based on campaign with status clicked (this allows you to evaluate also when a customer does not fill in the survey; separate answers can be acquired from a report), it is necessary to have a filter for each NPS score separately, and in segments, have a logical OR between the conditions.
  • filters matching customer aggregate of last campaign URL will allow the customers to move between segments when they select another option in different surveys throughout time, so always their most up-to-date status is considered.
  • It is necessary to include the common term in the event filter, in this case utm_term=NPS, so when a customer clicks another link, she does not disappear from the segment.

When the segmentation is ready, create a new metric called NPS in the following way:

The difference between the components is that Detractors need to match a different segment, and All responses are set as "NPS segmentation has value".

Positive NPS is good, above 50 is excellent.

Individual answers

You get the individual answers for survey questions in the survey event, attribute answer. There is an event for each question in each survey, so a survey below would result in 2 events.

Next create a report which will create a survey/question/answer combo, like in the image below. Feel free to remove any metric to see the unique answers. To also see the occurrences, add metric count event survey and select the option first.

This would result in the following result in a table with the answers exactly like customers wrote them:

Responsive NPS survey based on the answer

Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.