Platform · Voice of customer

Ask inside the experiment

On-site NPS, CSAT, CES and custom surveys with a guided builder. Tie one to an experiment and the answers arrive split by variant, right beside the numbers.

Asking

The question, the moment, and the answer

Building a survey in minutes, firing it when it is worth asking, and reading the reply beside the number it explains.

  • One trigger per survey, from page view, delay, exit intent, scroll depth or your own event
  • Frequency capping, with one survey per session across everything you are running
  • AI sentiment on every written answer, so a few hundred replies stay readable
  • Results split by variant, with small samples flagged
  • A separate bundle, requested only by sites that have a survey to show
NPSCSATCESCustom
A running NPS survey inside a variant: a score of plus forty-two from 1,284 answers at an 8.4% response rate, the distribution of scores from nought to ten, and the split of written answers into positive, neutral and negative.

The builder

A survey in a few minutes, not a project

Five steps: pick an instrument or start a custom survey, write the questions, choose who sees it, choose when it fires, and match the widget and its wording to your site. NPS, CSAT and CES arrive with their scales and their standard wording already right.

  • NPS, CSAT and CES templates with the correct scale and the standard phrasing, or a custom survey of your own
  • Score, single choice, multiple choice and open text, up to five questions shown one at a time
  • A live preview of the widget as you build it, with your own button texts and scale labels
  • An internal name for the library, which visitors never see
A survey being built: NPS chosen from the four survey types, the standard recommendation question written into the field, and an optional open-text follow-up asking for the reason behind the score.

Triggers

Asked at the moment it is worth asking

One trigger per survey, chosen from five, plus page rules, devices and a share of visitors. Exit intent watches the pointer leaving the viewport on desktop and fast upward scrolling on touch, so it means the same thing on a phone.

  • Page view, a delay, exit intent, a scroll depth, or an event your own site emits
  • Page rules with seven conditions, three device types, and a share of the visitors who qualify
  • One survey per session across everything running, not one per survey
  • Answered once means never asked again, with no re-ask window at all
A survey's trigger settings: exit intent on checkout pages on mobile, positioned bottom right, capped at two prompts per visitor with a thirty-day cooldown and one survey per session across the account.

Inside the experiment

The quote next to the number

Tie a survey to an experiment and only its visitors are asked, narrowed to chosen variants if you like. The results then split by variant, views, respondents, response rate and every question, which is usually where the explanation for a lift turns out to be.

  • Every response carries the variant the visitor was shown
  • Views, respondents, response rate and every question, read per arm
  • Every classification opens the reply that produced it
  • Sentiment stamped once per answer, so a reply nobody could classify stays visible as one
The same NPS question read per variant: variant B scores plus fifty-one from 641 respondents at a 9.1% response rate, against the control's plus twenty-nine from 643 at 8.2%.

The widget

What a visitor sees, and how rarely they see it

A survey is a small prompt on your own site, and everything about it is built around not wearing out its welcome. The caps below are the defaults, not the ceiling of what you can configure.

Four question kinds

Score, single choice, multiple choice and open text, up to five questions shown one at a time. Any of them can be optional, except the score that defines an NPS, CSAT or CES survey.

Four positions

Bottom right, bottom left, bottom centre, or centred over the page. The first three are a prompt; the fourth is an interruption, which is occasionally what you want and usually not.

Matched to your site

Your accent colour and corner radius, and your own wording on every button and message. The widget renders inside its own shadow root, so your styles cannot leak into it and it cannot leak into your page.

One survey per session, ever

A global cap, not a per-survey one. Two widgets in one visit is how you teach people to dismiss on sight, so the second never appears however many surveys are running.

Answered once, never asked again

Somebody who replied is not asked that question again, with no re-ask window at all. Somebody who dismissed it is held off for a cooldown you set, up to a maximum number of prompts.

Loaded only where a survey runs

The survey code is a separate bundle, requested last and only when the website has a survey to show. A site with none never asks for the file at all, so it costs nothing rather than a little.

The answers

Reading a few hundred replies without reading a few hundred replies

Scores roll up into one number per instrument. Written answers are classified so the pile stays navigable, and both are attributable to the variant the person was in.

The right headline per instrument

Net promoter score on minus a hundred to a hundred, average satisfaction on one to five, average effort on one to seven. One shared "score" field would be a lie about two of the three.

Sentiment on every written answer

Each comment is classified positive, neutral or negative, and the response feed filters on it. That is what keeps several hundred free-text replies readable rather than merely archived.

Tied to the variant that was shown

A response records which variant of which experiment the visitor was in when they answered. Reading the same question per variant is usually where the explanation for a lift turns out to be.

Response rate you can trust

Impressions are counted separately from responses, so the rate is measured rather than estimated. When nothing has been shown yet the console says so instead of printing nought per cent.

Every question, over time

Every scale step and every option with its count, the ones nobody picked included, plus responses and the score by day or by week. One visitor’s answers stay together on one card.

Asked of the right visitors

Page rules, devices and a share of visitors, or tie the survey to an experiment so that only its visitors, or only chosen variants, are asked.

Questions

Before you put one on your site

Will this annoy our customers?

It is the right thing to worry about, and the caps are built around it rather than bolted on afterwards. At most one survey is shown per session across every survey you are running, not one per survey, because two widgets in one visit is how you teach people to dismiss on sight and that damage is permanent. Somebody who has answered is never asked that question again, with no re-ask window at all. Somebody who dismissed it is left alone for a cooldown you set, and after a small number of prompts is left alone regardless. If the browser cannot tell whether they have been asked before, nothing is shown at all.

Why not just buy a dedicated feedback tool?

If all you want is a score, a dedicated tool is fine. What you cannot get from one is the thing this exists for: every response records which variant of which experiment the visitor was in when they answered, so the same question can be read per arm. An experiment tells you variant B converted better and cannot tell you why. Read the answers per variant and it often can, and the why is what decides what you test next. It also catches the case a conversion metric hides entirely, a variant that wins on conversion while scoring worse on effort.

Will it slow the site down?

Not on pages with no survey running, because nothing is requested at all. The survey code is a separate file from the experiment runtime, and a website with no survey never asks for it: the flag that would trigger the request is simply absent rather than set to false. Where it does load, it loads last, after the page is already visible and after measurement has been requested, so a failure inside it cannot cost you a render or a conversion event.

What do we actually do with a few hundred written answers?

This is the honest failure mode of most feedback programmes: the free-text answers are the valuable part and nobody reads them past the first fifty. Every written answer is classified positive, neutral or negative and the response feed filters on it, which makes the negative bucket reachable, and that is where the specific, actionable complaints are. It is per answer rather than an overall mood, so a high score sitting next to negative comments shows up as the disagreement it is instead of being averaged away.

Which instrument should we start with?

Each one is defined by its scale and by the moment it belongs in. NPS asks about loyalty on nought to ten, after a completed purchase or a support interaction. CSAT asks about satisfaction on one to five, immediately after a specific interaction. CES asks how easy it was on one to seven, after checkout or a self-service task, and it is usually the most useful to conversion work because it finds friction rather than feeling. All three arrive with the standard wording already in place, because an NPS question that does not ask about recommending is not NPS whatever scale it renders. And when the question is none of the three, a Custom survey takes your own questions in any mix.

Everything in the box

The full feature set

Pertento is a conversion-rate-optimisation platform for websites and online stores, built for both in-house teams and CRO agencies running experimentation programmes across a client roster.

Integrations

Works with the stack you already run

One snippet drops into any site, or go fully server-side. Nothing to re-architect.

One-line snippet

Paste one tag in your head and you are live: a 0.9 KB loader, no build step, no dependencies.

Google Tag Manager

Deploy and manage experiments straight through GTM. No developer time required.

Server-side API

Run tests beyond the browser: pricing, search and routing, flicker-free.

  • Shopify
  • BigCommerce
  • Shopware
  • Centra
  • Geins
  • Saleor
  • WordPress
  • Optimizely CMS
  • Storyblok
  • Next.js
  • Vue
  • Astro
  • Matomo
  • Amplitude
  • RudderStack
  • Slack
  • WooCommerce
  • Salesforce
  • Wix
  • Litium
  • commercetools
  • Medusa
  • Drupal
  • Contentful
  • Webflow
  • Nuxt
  • Angular
  • Remix
  • Piwik PRO
  • Mixpanel
  • Tag Manager
  • Webhooks
  • Adobe Commerce
  • PrestaShop
  • Squarespace
  • Norce
  • Shopify Hydrogen
  • Vendure
  • Umbraco
  • Sanity
  • Framer
  • React
  • SvelteKit
  • GA4
  • Adobe Analytics
  • Segment
  • Klaviyo

Not on the list? If it renders HTML, Pertento can test it:read how each one connects.

Better experiments, better conversions

Test on all visitors with the world’s lightest script and make confident decisions powered by real-time reporting.