How to Automate NPS Surveys with n8n and Smart Segmentation
Build n8n NPS survey automation that buckets 0-6, 7-8, and 9-10 scores, then routes detractors to alerts, passives to nurture, and promoters to reviews.
A Net Promoter Score that just sits in a dashboard is a vanity metric. The number moved, nobody acted, the detractor who scored you a 3 churned three weeks later, and the promoter who'd have left a glowing review never got asked. n8n NPS survey automation earns its keep only when each score triggers a different next move.
Search results for this job collect scores and stop there. n8n's library has a GoHighLevel-Gmail-Notion NPS flow and a cross-platform NPS tracker built on Bright Data, and automation blogs like Restflow cover monitoring and tagging. They capture and store. What they skip is the segmentation flywheel: the explicit 0-6 / 7-8 / 9-10 logic and the three different downstream actions that turn a score into a retained customer or a public review.
The score is the input, not the output
Here's the take that reframes the whole build: NPS is a router, not a report. The standard buckets exist precisely because each one demands a different response. A detractor needs a human in the next hour. A passive needs education about the feature they're not using. A promoter needs to be asked, today, while they still feel it. Most NPS tooling treats all three the same, dumps them in a spreadsheet, and calls it analytics. That's the gap.
If you build the routing and nothing else, you've already beaten the ranking pages.
What you can automate in an NPS program
- Sending the survey on a trigger (post-purchase, day-30, renewal, support close)
- Capturing the 0-10 score plus the free-text reason
- Bucketing into detractor, passive, and promoter automatically
- Alerting a human the moment a detractor scores you low
- Dropping passives into a feature-education nurture sequence
- Routing promoters to a review or referral ask while sentiment is high
- Logging every response to Sheets so the trend line is real, not anecdotal
The bucketing and the three routes are the part worth getting right. Everything else is standard n8n.
The NPS routing pipeline
Trigger (Schedule / event)
→ Send survey (email or SMS with the 0-10 link)
→ Webhook (capture score + comment)
→ Code (bucket: detractor / passive / promoter)
→ Switch (route by bucket)
detractor → Slack alert + recovery email
passive → nurture drip
promoter → review / referral request
→ Google Sheets (log)
The Code node in the middle is four lines. It's also the difference between an NPS dashboard and an NPS engine.
1. Send the survey
A Schedule trigger fires the survey on your cadence, or an event webhook fires it after a specific moment (order delivered, ticket closed). Send a one-click 0-10 link by email or SMS. Keep the survey itself dumb: one number, one optional comment box. The intelligence lives downstream.
A note on the Schedule trigger that the tutorials gloss over: if it fires every minute while a previous run is still in flight, n8n can silently drop the overlapping execution. For a daily survey send that's irrelevant, but if you batch-send to a large list, move to a Cron expression with a sane interval and let each batch finish.
2. Capture the response
The survey's submit button hits an n8n Webhook node. Pull the score (0-10) and the free-text comment into clean fields. If a comment exists on a low score, this is where an optional OpenAI call earns its place: summarize the complaint into a one-line reason so the detractor alert is actually actionable, not just "customer scored 2."
3. Bucket the score
The whole flywheel turns on this Code node:
const score = Number($json.score);
let segment;
if (score <= 6) segment = 'detractor';
else if (score <= 8) segment = 'passive';
else segment = 'promoter';
return [{ json: { ...$json, segment } }];
That's it. Three buckets, NPS-standard. Now the Switch has something concrete to route on.
4. Route each segment differently
The Switch node reads segment and forks three ways.
Detractor (0-6): fire a Slack alert to the account owner now, with the score and the AI-summarized reason. Queue a recovery email or, better, a human reach-out task. Speed matters here. A detractor reached within a day is a save; reached next week, they're already gone.
Passive (7-8): these customers are fine, not thrilled. Drop them into a short nurture drip that highlights the feature they're probably not using. A Wait node spaces the sends. Passives are the cheapest segment to convert into promoters, and almost nobody works them.
Promoter (9-10): ask. Send a Google review request or a referral link while the goodwill is fresh. This is the segment that funds the whole program, and the one most NPS setups forget to act on.
5. Log everything
A Google Sheets append on every path: timestamp, customer, score, segment, comment, and the action taken. That sheet is your real NPS trend plus a record of what you did about it. When someone asks "did the detractor outreach work," you have rows, not vibes.
Implementation patterns
Pattern A — the detractor SLA. Treat a low score like an incident. Stamp the alert with a target response time and, if no human marks it handled within the window, escalate to a second Slack channel via a Wait node and a status check. Detractors decay fast.
Pattern B — promoter gating before the public ask. Don't send every promoter straight to a public review link blind. Confirm the comment isn't secretly negative (a 9 with a "but the onboarding was rough" note). A quick OpenAI sentiment check on the comment catches the mismatch, so only genuinely happy promoters hit the public review step.
The 0-6 / 7-8 / 9-10 split is the only piece of NPS logic that's truly universal, and it's the one most workflows leave implicit. Make it an explicit field early (the four-line Code node above) and every downstream decision becomes a simple Switch read. Change your follow-ups later and the bucketing never has to move.
n8n nodes you'll use most
| Node | Purpose |
|---|---|
| Schedule / Webhook Trigger | Fire the survey on a cadence or after an event |
| Webhook | Capture the 0-10 score and free-text comment |
| OpenAI (optional) | Summarize the comment so detractor alerts are actionable |
| Code | Bucket the score into detractor / passive / promoter |
| Switch | Route each segment to its own follow-up |
| Slack | Alert the account owner on a detractor in real time |
| Google Sheets | Log every response and the action taken |
Getting started
- Pick a trigger: a Schedule for cadence surveys or an event webhook for post-purchase.
- Send the 0-10 survey link by email or SMS, comment box optional.
- Capture the response in a Webhook node and flatten score and comment.
- Add the four-line Code node to bucket the score into a
segmentfield. - Wire a Switch on
segmentwith three distinct follow-up branches. - Build the detractor alert, the passive drip, and the promoter review ask.
- Append every response to Google Sheets and watch the segment mix over time.
The promoter branch is where NPS pays you back. The ReviewFlow review request engine ships the promoter-to-public-review flow with a built-in pre-screen that sends unhappy customers to a private form instead, and the User Feedback Loop handles the multi-source ingest and sentiment scoring that feeds the whole pipeline.
Browse the feedback templates →The ReviewFlow review request engine ships the exact promoter-routing logic this post ends on: it pre-screens by sentiment so detractors land on a private feedback form and promoters get the public Google review link, sending over both SMS (Twilio) and email and tracking every touch in Google Sheets. It's part of The Complete n8n Templates Bundle, a one-time lifetime license to the full catalog plus future templates, which makes sense once you run more than one feedback automation.
An NPS score that triggers nothing is a number you'll regret collecting. Bucket it, route it, and let each segment pull its own weight. For the upstream collection side read How to Automate Customer Feedback Collection with n8n, and for the retention angle on detractors see n8n Churn Prevention. The detractor gets a human. The promoter gets asked. The passive finally learns about the feature they paid for.
Start with ReviewFlow →Common questions
How does n8n segment NPS responses?
Can n8n send the follow-up automatically based on the NPS score?
What stack do I need for n8n NPS automation?
Get the workflow templates this guide is built on
Import-ready n8n JSON, step-by-step setup, and tested end-to-end. One-time payment, own it forever.
Get 3 tested n8n templates, free
The full customer package for three real catalog templates — workflow JSON, step-by-step setup guide, credential checklist. Test-run on a live n8n instance like everything we sell. Plus new templates and automation guides in your inbox. No spam, unsubscribe anytime.
- 01Smart To-Do List ManagerPre-built n8n workflow template that automates productivity with OpenAI. Live in about 10 minutes.$14
- 02Email Follow-Up AutomatorPre-built n8n workflow template that automates crm with OpenAI. Live in about 15 minutes.$12
- 03Market Trend AnalyzerPre-built n8n workflow template that automates data processing with OpenAI. Live in about 10 minutes.$14
More automation guides

How to Build n8n Lead Capture to CRM With One Canonical Webhook
A growing business sprouts lead sources like weeds. The website form, the Typeform on the landing page, the Facebook lead ad, the chatbot, the trade-show scanner, the missed-call text-back. Each one w…

How to Build n8n Pipedrive Automation With a Stale-Deal Digest
Search "n8n Pipedrive automation" and you'll find the same article five times: a numbered list of workflows you could build, none of which you can copy and run. n8n Pipedrive automation is worth more…

How to Build n8n Salesforce Automation That Survives Production
The Salesforce integration that works in a demo and falls apart in production usually fails the same way: it creates a fresh Lead every time a form is submitted, and three months later the rep is star…