MuxForms NPS forms collect the standard 0–10 recommendation score and follow-up comment on your thank-you page or via in-app JSON—one inbox for promoters and detractors without Delighted or Typeform, with hidden account_id for cohort exports.
Use case
You do not need a survey SaaS for one 0–10 score and one follow-up question—especially when the response should sit next to support and churn data in one backend.
| Field | Purpose |
|---|---|
| score | 0–10 NPS scale |
| comment | Verbatim reason |
| touchpoint | Hidden lifecycle stage |
| account_id | Hidden logged-in user |
Net Promoter Score is a single question with a standard scale. Product teams delay NPS because Typeform or Delighted adds another login, another export, and another silo when you only needed eleven select options and a textarea.
MuxForms embeds on post-checkout thank-you pages, in-app “How are we doing?” modals (POST JSON), or quarterly email campaigns that link to a branded `/nps` page on your domain—not a third-party survey URL.
Required `score` select 0–10 plus optional `comment` captures the classic NPS follow-up. Add email when respondents are logged out; pass hidden `account_id` and `plan` from authenticated pages for cohort analysis in exports.
Promoters (9–10), passives (7–8), and detractors (0–6) are easy to filter in inbox search before you build a dashboard. Customer success can outreach detractors manually from notify email while scores accumulate.
Trigger timing matters: post-onboarding day 14, post-support resolution, or post-renewal—use separate forms or hidden `touchpoint` so you do not mix lifecycle stages in one average.
Pair with the cancellation-feedback use case for churn: NPS measures relationship health; cancellation forms capture exit reasons. Same MuxForms account, different schemas.
Public NPS pages need honeypot and rate limits; in-app POST uses ingest secret. Optional Turnstile when you email a public link to your entire user base.
Create a form named Success — NPS with these fields, then paste the embed on your page. Set hidden account_id on logged-in pages; notify customer-success@; separate forms per touchpoint if averages must stay clean.
| Field | Type | Required |
|---|---|---|
| How likely are you to recommend us to a friend or colleague?score | select | Yes |
| What is the main reason for your score?comment | textarea | No |
| Emailemail | No | |
| Your rolerole | select | No |
| Account IDaccount_idhidden | text | No |
| Planplanhidden | text | No |
| Touchpointtouchpointhidden | text | No |
| Leave blank_hphidden | text | No |
Illustrative preview—wire your form id after signup.
{
"name": "Success — NPS",
"fields": [
{
"name": "score",
"label": "How likely are you to recommend us to a friend or colleague?",
"type": "select",
"required": true,
"options": [
"0",
"1",
"2",
"3",
"4",
"5",
"6",
"7",
"8",
"9",
"10"
]
},
{
"name": "comment",
"label": "What is the main reason for your score?",
"type": "textarea",
"required": false
},
{
"name": "email",
"label": "Email",
"type": "email",
"required": false,
"placeholder": "Optional if logged in elsewhere"
},
{
"name": "role",
"label": "Your role",
"type": "select",
"required": false,
"options": [
"End user",
"Admin",
"Buyer",
"Other"
]
}
]
}<div data-form-id="FORM_UUID"></div> <script src="https://www.muxforms.com/embed.js" defer></script>
Then clone the pattern for the next site or app.
Upgrade to Pro