Why most SaaS NPS programs fail
Running an NPS survey is easy. Acting on the results is where most SaaS teams fail. The standard pattern: send a quarterly NPS blast to the entire customer base, collect scores, report the aggregate in a board deck, and do nothing with individual responses. Detractors hear silence. Promoters are never asked for referrals. Passives never get a nudge toward higher engagement.
The NPS Survey automation closes this loop. It delivers surveys at lifecycle-appropriate moments (not on a broadcast calendar), and fires distinct automated sequences based on the response — so every score triggers an action, not just an aggregate update.
Survey delivery timing
1. Day 30 post-signup — early signal survey The customer has had enough time to form an opinion but hasn’t yet made a definitive stay-or-leave decision. A low score at day 30 is a save opportunity, not a loss. A high score is a referral activation opportunity before the customer’s enthusiasm fades.
2. Day 90 post-signup — relationship establishment survey At 3 months, the customer’s relationship with the product is more established. This survey reveals whether early satisfaction held or eroded, and feeds the health score model in the churn prediction system.
3. Post-core-feature activation — micro-NPS When a user activates a key feature for the first time, a 1-question micro-NPS fires within 48 hours: “How was the experience setting up [Feature X]?” This captures satisfaction at the peak of product interaction — before the feeling fades.
4. Pre-renewal (annual accounts, 60 days before renewal) Fires 60 days before annual contract renewal to surface dissatisfaction before the renewal conversation. An account that’s a detractor at day 60 before renewal needs a human intervention — not a renewal reminder email.
5. Post-support-ticket close A 2-question feedback form fires 24 hours after a support ticket is marked resolved: “Was your issue resolved? How would you rate the experience?” This closes the support feedback loop and feeds into the CS team’s quality metrics.
Trigger → action by NPS score
| Score | Segment | Immediate action | Follow-up sequence |
|---|---|---|---|
| 9–10 | Promoter | Tag nps_promoter, send thank-you email | Referral request sequence (2 touches, 3 days apart) |
| 7–8 | Passive | Tag nps_passive, send “thanks for the feedback” | Feature highlight sequence (what they might be missing) |
| 0–6 | Detractor | Tag nps_detractor, create urgent CS task | Save intervention + health score penalty (−20) |
Promoter flow (scores 9–10)
Promoters are your highest-converting referral source — they just need to be asked at the right moment. The promoter sequence:
- Immediate: Thank-you email: “Thanks for the 9 — that genuinely means a lot.”
- Day 3: “Since you’ve had a great experience, would you be willing to share it? [One-click referral link or G2/Capterra review request]”
- If review or referral submitted: Acknowledgment email + tag
has_referred. Route into referral engine for tracking.
Passive flow (scores 7–8)
Passives like the product but haven’t been wowed. The passive sequence aims to close the gap between “it works” and “I love it”:
- Day 2: Feature highlight email: 1–2 features the passive hasn’t used yet, with a concrete outcome framing: “[Feature X] typically cuts [time/cost/effort] by [X]% — here’s a 2-minute setup guide.”
- Day 14: If still no feature adoption: a brief check-in: “Did the [Feature X] guide help? Anything we can do better?”
Detractor flow (scores 0–6)
Detractors need a human response, not an automated email. The detractor sequence:
- Immediate: CS task created with the score and open-text response visible to the rep.
- Automated email (CS rep’s name): “Thank you for the honest feedback — I’d love to understand more. Do you have 15 minutes this week?” + calendar link.
- Health score penalty: −20 applied to the contact’s health score, potentially triggering the churn prediction Stage 1 or 2 intervention simultaneously.
- If no CS response within 48 hours: Escalation task to CS manager.
- If no customer response within 7 days: Exit survey link: “We’d still love to understand what wasn’t working.”
ROI math: the value of the detractor close loop
Vandelay Industries — $200k ARR, quarterly NPS survey, no response-triggered follow-up.
With no detractor follow-up, 25% of detractors churn within 90 days. With structured detractor follow-up within 48 hours, save rate is 25–30%.
At 6% monthly churn, $200k ARR: ~$12,000 ARR churns monthly. If 20% of churns were flagged as detractors before churning, that’s ~$2,400 ARR/month in identifiable at-risk revenue. At 28% save rate: $672 ARR saved per month, $8,064/year — from detractor follow-up alone, before counting the referral revenue from activated promoters.
For Globex ($500k ARR, 5% monthly churn): same model produces +$21,000 ARR/year in combined saves and referral activation.
Connecting to Delighted or Satismeter
If you prefer to run the NPS survey delivery through a dedicated tool (Delighted, Satismeter, or Typeform NPS), the snapshot accommodates this: when the third-party tool receives a response, it fires a webhook to GHL with the score and open-text. GHL handles all the follow-up automation from there — the survey delivery is handled externally, but every response triggers the right GHL sequence.
Can I use a third-party NPS tool (Delighted, Satismeter) with this?
Yes — the snapshot can ingest NPS scores from any tool that fires webhooks. Delighted and Satismeter both offer webhook integrations. When a response comes in, their webhook fires to GHL via a Zapier relay, with the score and open text captured as custom field values on the contact. GHL triggers the appropriate follow-up sequence (promoter, passive, or detractor) based on the score value.
How do I prevent survey fatigue?
The snapshot includes NPS frequency capping: a contact can receive at most one NPS survey per 90 days regardless of how many triggers fire. The lifecycle triggers (day 30, day 90) run once per contact. Only event-triggered surveys (post-feature, post-support) can fire between lifecycle surveys, and those are capped at one per 30 days. The system checks the contact's `last_nps_date` field before every survey trigger.
What should I do with the NPS open-text responses?
GHL captures open-text responses in a custom field on the contact record. The snapshot includes a monthly NPS review smart list — filter contacts by `nps_detractor`, `nps_passive`, or `nps_promoter` tag, sort by score, and read the open text column in bulk for your CS review meeting. Patterns across detractor responses are your highest-signal product roadmap input: common themes reveal systemic issues no amount of usage data will surface.
How do I track NPS trend over time by cohort?
The snapshot stores each NPS response as a timestamped custom field. GHL smart lists can filter by signup month, plan tier, or industry (if you capture it) and export to CSV for cohort analysis. For real-time NPS trend dashboards, feed the GHL NPS data via webhook into Chartio or your existing BI tool. ChartMogul also accepts NPS data via API for combined revenue + NPS cohort views.