Learn how to build a net promoter score (NPS) survey directly in Pardot. I will show you how to create an NPS survey that asks the recipient to give you a score from 1 – 10 using an in-email rating that directs them to a Pardot landing page to collect more information.

What is a net promoter score (NPS)?

A net promoter score is a rating from 0-10 that answers the question ‘how likely are you to recommend us to a friend or colleague?’. This question is followed by ‘Why would you give us this score?’. Anyone who answers 10-9 is considered a ‘promoter’, this means they are satisfied with your product or service enough that they would gladly be willing to promote your company given you provide an easy platform for such promotion. A rating of 8-7 is considered ‘passive’, these users are likely not to go out of their way to promote you but will still use your product. Users who choose 6-0 are considered “detractors”. This subset has not had a great experience with your product or service. Though a rating of 0-6 is never ideal, it can help identify problems with your product or service, promoting positive evolution, and providing an incentive for changing detractors and passives to promoters.

The concept

An NPS survey email will be sent out from Pardot that asks the receipient to rate you on a scale from 1 to 10.

The recipient clicks on a rating and is directed to a landing page where they can fill out more information on why they gave you that rating.

The rating the recipient selected from the email is automatically displayed on the landing page and passed to a hidden field in the form to capture in the Pardot database.

1. Create new fields

Create new fields in Salesforce and Pardot to capture the NPS results. In this example, I will be using a field named NPS Score and NPS Comments.

2. Create a form

Create a new form named NPS Form in Pardot. Add these three fields to the form:

  1. Email
  2. NPS Comments – select textarea as the type and leave it optional.
  3. NPS Score – select hidden as the type and mark it has required.

3. Create a layout template

A new layout template will need to be created in order to create the landing page. Here’s the code I used for my layout template.




	
	
	
	%%title%%


	
You gave us a score of:
What is the most important reason for your score?
%%content%%

You can use my code to create your own layout template, or you can create your own. If you create your own you will need to add some CSS and JavaScript to make the form work correctly.

The JavaScript

JavaScript is used to take the nps score the recepient selects from the email and pass it to the hidden field within the form. It also is used to grab the receipient’s email address from the URL and pass it into the email field within the form. Here’s what the script looks like:


Note: The jQuery library will need to be loaded in order for this to work.

The CSS

The only piece of required CSS is to hide the email field since we will be auto-populating it through the URL.

   p.email {
   	display: none !important;
   }


4. Create the landing page

Once your layout template is set up, use it to create a new landing page.

5. Set up the email

Lastly, create an email that includes the option to select a rating, which directs the recipient to the landing page you just created. Here’s what my email HTML looks like:






    
    



    
How likely are you to recommend us to a friend or colleague?
Please take a second to leave us your feedback so we can continue to improve.
1
2
3
4
5
6
7
8
9
10
0: not at all likely 10: extremely likely

© Jenna Molby. All rights reserved.
Unsubscribe

I used tables within the email to create the rating buttons. Here’s what the HTML for that section looks like:

1
2
3
4
5
6
7
8
9
10

Each link to the landing page should pass two paramters through the URL:

  1. NPS – The score of the of the clicked link
  2. Email – The email of the receipent, using a varaible tag.

Here’s an example of what one of the links looks like:

https://pi.pardot.com/my-landing-page.html?nps=10&email=%%email%%


Questions?

Send me a tweet @jennamolby, leave a comment below, or book a Peer Chat.

Author

I'm a Freelance Marketing Operations Consultant With 15 years of experience in Marketing Operations, I’ve worked with a wide range of tools including Salesforce, Marketing Cloud Account Engagement (Pardot), Marketo, and many other sales and marketing platforms. I help teams optimize their tech stacks, improve processes, and get accurate, actionable reporting. Whether it’s setting up your Marketing Automation Platform, building Salesforce reports, managing lead lifecycles, tracking attribution, or integrating your tech stack, I ensure everything is aligned to drive real results.

33 Comments

  1. Natasha Loomis Reply

    Hi Jenna,

    My question is around reporting. Is there a reporting feature for full analytics post campaign with this option?

    • Jenna Molby

      Hi Natasha, If you sync the fields to Salesforce, you would be able to pull reports based on the NPS score.

  2. Hi there! First time Salesforce user here, so apologies for the possibly simple question.

    The form doesn’t seem to want to accept a zero score. The URL parameter won’t place 0 in the NPS Score field.

    A proper NPS survey as I understand it from our data/analytics team must include a zero option, though I see that yours does not include one. Is there a way to allow someone to submit a zero for their score?

    The field in SF seems to be set up to accept it, but I am wondering if the JavaScript isn’t passing it along properly.

    • Jenna Molby

      Hi Robert, You should be able to pass 0 to the form. Send me an email with the link to your page and I can take a look.

    • Jenna Molby

      Hi Serena, How are you testing the page? Is it directly from an email? It’s likely that the email isn’t being populated correctly and that’s why you cannot submit the form.

  3. Riley Humes Reply

    Hi Jenna! The email field does not seem to be pulling into the URL. We are using %% tags (not {{ ) and if I put %%email%% somewhere else in my email, it does pull in. It’s just not appending to the URL. Any thoughts?

    • Jenna Molby

      Hi Riley, How are you testing the link in the email? Are you selecting a test list? If you are testing via inputting an individual email address, the email will not populate in the URL.

  4. Hi Jenna

    Thanks for the guide, really helpful!

    I am getting stuck in two places.
    1. Salesforce have changed thier %%email%% tag and i’m not sure what to change it to for it to pull from the URL
    2. I did orignially have the form working but now the submit button and the comment text box wont show on the landing page.

    What do I/we have to change on the landing page code (i.e customer fields, %%content%%) etc.

    Thanks

    • Jenna Molby

      Hi Ross, You’re welcome! Do you have HML activated in your instance? In that case, you would use {{Recipient.Email}} instead of %%email%%. Do you have the comment field set up to always show and not prep-populate? Cheers, Jenna

Write A Comment