How do I run an NPS survey in Notion?

Run a Notion NPS survey with a 0 to 10 form question, then one formula that turns every response into +100, 0 or -100 so the column average is your NPS.

Nookesh KarriNovember 12, 20266 min read
Light cover card with the title 'How do I run an NPS survey in Notion?' in dark text and a blue accent bar

To run an NPS survey in Notion, create a form with one required 0 to 10 question (“How likely are you to recommend us to a friend or colleague?”) plus an open follow-up, and share it by link. Then add a formula property that turns each score into +100, 0 or -100. The average of that column is your Net Promoter Score.

Notion has no NPS question type or score calculator, so the database does the math.

What an NPS survey measures

An NPS survey measures how likely customers are to recommend you, on a single 0 to 10 scale. Bain, which created the method, says to start with the question “How likely are you to recommend us to a friend or colleague?” and score the answers on a zero-to-ten scale.

Each answer lands in one of three groups:

Score Group Counts toward NPS as
9 to 10 Promoters plus
7 or 8 Passives nothing
0 to 6 Detractors minus

The score is the percentage of promoters minus the percentage of detractors. The result runs from -100, when everyone is a detractor, to +100, when everyone is a promoter, as Tally’s NPS guide puts it.

Notion’s own NPS article works an example: of 2,500 people, 1,250 are promoters and 500 are detractors. That’s 50% minus 20%, an NPS of 30. The same article says values above 50 are typically considered strong.

Step 1: build the Notion NPS survey form

A Notion NPS survey is a normal Notion form with two or three questions. All members on all Notion plans can create forms, and each question is tied to a property in the form’s database.

  1. Create a new database and add a Form view. Name it something your customers will recognise, like “Quick feedback”.
  2. Add the score question. Set the type to Multiple choice and type eleven options: 0, 1, 2 and so on up to 10. Keep them in order.
  3. Mark the score question Required. A blank score would break the math later.
  4. Add a long text question: “What’s the main reason for your score?” Make this one optional.
  5. If you want to follow up, add a short text question for an email address or company name.

Why multiple choice? Notion’s help page says the question type “is the equivalent of the property type”. A multiple choice question becomes a select property, and a select value is text a formula can read and convert.

Step 2: decide whether you need names

Notion records names only for people inside your workspace. Forms shared with “Anyone on the web with link” are anonymous automatically, so the Respondent property stays empty for customers.

That’s fine for most customer surveys. If you plan to email every detractor, you need step 1’s optional email question, or a separate link per customer segment.

Step 3: share the form

Open the form’s share menu and pick Anyone on the web with link. People who don’t use Notion can then fill it out in any browser.

Good places for the link:

  • the email that follows a support ticket
  • your in-app help menu
  • a quarterly customer newsletter

Change the submit screen while you’re here. Notion lets you set the button text and colour, a Confirmation title and body, and an email copy of each submission for you. “Thanks, we read every answer” beats the default.

Step 4: calculate the NPS with one formula

Give every response its share of the score. Add a formula property called NPS points with this formula:

ifs(
  toNumber(format(prop("Score"))) >= 9, 100,
  toNumber(format(prop("Score"))) >= 7, 0,
  -100
)

format() turns the select value into text, and toNumber() “parses a number from text”. ifs() returns the value for the first condition that’s true.

Now set the column’s footer calculation to Average. That average is your NPS. To check it, take Notion’s example of 2,500 responses: 1,250 promoters, 750 passives and 500 detractors. The column holds 1,250 rows of 100, 750 rows of 0 and 500 rows of -100. Averaging them gives 50 minus 20, an NPS of 30, the same answer as Bain’s method.

Add a second formula, Group, so you can filter and chart by segment:

ifs(
  toNumber(format(prop("Score"))) >= 9, "Promoter",
  toNumber(format(prop("Score"))) >= 7, "Passive",
  "Detractor"
)

A real catch: if an option is renamed to “10 - very likely”, toNumber() fails and the row counts as a detractor. Keep the option names as bare digits.

Step 5: watch the score over time

A filtered view and a chart turn the raw rows into something you’ll check each week.

  • Detractors to call: a table view filtered to Group is Detractor, sorted by newest. Read the reason column first.
  • Mix of groups: a donut chart grouped by Group. Notion’s charts help page lists vertical bar, horizontal bar, line, donut and number charts. Charts come with every paid plan, and the Free Plan can create one chart.
  • Score per month: group the table by created time, by month, and read the NPS points average in each group.

My take: read the comments before the number. A score of 30 tells you almost nothing on its own. Ten detractors who all mention slow support tell you what to fix.

Following up with detractors, and the limits

Asking detractors a different question needs conditional logic. In Notion forms, conditional logic works only for multiple choice questions and only on the Business and Enterprise plans. On Free or Plus, everyone gets the same follow-up.

The other limit is that Notion won’t calculate NPS for you. Some form tools do: as of November 2026, Tally’s help page says its Insights tab calculates NPS for any 0 to 10 linear scale question. In Notion, you own the formula and every way it can break.

If you want branching without a Business plan, nDBForms offers logic rules on its Pro plan and writes each response as a new row in your Notion database, so the same NPS points formula works unchanged. nDBForms has rating and scale question types and sends an email notification for each submission. Its analytics track views, completions and drop-off by question, not NPS, so the score still comes from the Notion formula.

For the wider set-up, see how to run a survey in Notion, the feedback survey template, and how conditional logic works in Notion forms. To get pinged for each detractor, set up a form email notification.

FAQ

Does Notion calculate NPS automatically?

No. Notion forms save each answer as a database row, and you add the NPS math yourself with a formula property. A formula that returns 100, 0 or -100 per response lets the column average show the score.

Which question type should I use for the 0 to 10 score?

Use a multiple choice question with eleven options, 0 through 10. The question type matches the property type in Notion, so you get a select property the formula can read.

Can I ask detractors a different follow-up question?

In Notion forms, only on the Business or Enterprise plan, where conditional logic is available for multiple choice questions. On other plans, ask one open question of everyone.

Is a Notion NPS survey anonymous?

Forms shared with anyone on the web with the link are anonymous automatically. Add a short text question for the email or company if you want to follow up with detractors.

Sources