---
# === IDENTITY ===
id: business/customer-success/customer-feedback-collection-system/2026
canonical_question: "How do I collect customer feedback — NPS/CSAT/CES setup, feedback loop design (collect, analyze, act, close)?"
aliases:
  - "Customer feedback collection system setup 2026"
  - "NPS CSAT CES implementation guide"
  - "Voice of customer feedback loop design"
  - "How to build a closed-loop customer feedback system"
entity_type: execution_recipe
domain: business > customer-success > customer feedback collection system
region: global
jurisdiction: global
temporal_scope: 2025-2026

# === VERIFICATION ===
last_verified: 2026-03-12
confidence: 0.88
version: 1.0
first_published: 2026-03-12

# === TEMPORAL VALIDITY ===
temporal_validity:
  status: evolving
  last_breaking_change: "Delighted announced shutdown June 2026; SurveyMonkey enhanced Salesforce integration Feb 2025; HubSpot Service Hub moved to per-seat pricing Mar 2024; Typeform restructured pricing tiers to Core/Growth/Talent in 2025"
  next_review: 2026-09-08
  change_sensitivity: high

# === CONSTRAINTS ===
constraints:
  - "Survey fatigue: keep surveys under 3 questions for transactional touchpoints — completion rates drop 15-20% per additional question"
  - "NPS response rates average 4.5-12% via email — do not rely on email alone for statistically significant sample sizes"
  - "GDPR/CCPA: obtain explicit consent before collecting feedback data, include opt-out in all survey communications, and store responses with data retention policies"
  - "Close the loop within 24-48 hours for detractors and low scores — delayed follow-up loses the recovery opportunity"
  - "Do not use NPS as the sole metric — combine with CSAT (transactional) and CES (effort) for complete customer health visibility"

# === SKIP CONDITIONS ===
skip_this_unit_if:
  - condition: "User needs customer success strategy, not feedback system implementation"
    use_instead: "Search knowledgelib.io for customer success strategy — no dedicated unit yet"
  - condition: "User only needs to analyze existing survey data, not build the collection system"
    use_instead: "Search knowledgelib.io for survey data analysis — no dedicated unit yet"
  - condition: "User has an enterprise CX platform (Qualtrics, Medallia) and needs advanced configuration"
    use_instead: "Search knowledgelib.io for enterprise CX platform setup — no dedicated unit yet"

# === AGENT HINTS ===
inputs_needed:
  - key: tool_preference
    question: "Which survey tool should be used?"
    type: choice
    options: ["Typeform", "SurveyMonkey", "HubSpot Service Hub", "Google Forms", "no preference — auto-select"]
  - key: technical_skill
    question: "What is the user's technical skill level?"
    type: choice
    options: ["non-technical (no-code only)", "semi-technical (can edit code)", "developer (can write code)"]
  - key: budget_for_tools
    question: "What's the tool/API budget?"
    type: choice
    options: ["free tier only", "up to $50/month", "up to $200/month", "no limit"]
  - key: scale
    question: "How many customers will be surveyed?"
    type: choice
    options: ["small (under 500 customers)", "medium (500-5,000 customers)", "large (5,000+ customers)"]

# === EXECUTION METADATA ===
execution:
  required_inputs:
    - name: "Customer contact list"
      source: "CRM or customer database"
      format: "CSV or CRM export with email addresses and customer segments"
    - name: "Customer journey map"
      source: "product team or customer success team"
      format: "document identifying key touchpoints (onboarding, support, renewal, feature release)"
    - name: "Existing customer communication channels"
      source: "marketing or support team"
      format: "list of active channels (email, in-app, SMS, support tickets)"
  outputs:
    - name: "Configured survey system"
      format: "configured platform"
      description: "Survey tool with NPS, CSAT, and CES surveys created, trigger rules defined, and distribution channels connected"
    - name: "Feedback analysis dashboard"
      format: "spreadsheet or dashboard"
      description: "Dashboard showing NPS trends, CSAT by touchpoint, CES by feature, response rates, and open-text theme analysis"
    - name: "Closed-loop action workflow"
      format: "documented process + automation rules"
      description: "Automated alerts for detractors, escalation rules by severity, and close-the-loop email templates"
  tools_required:
    - name: "Typeform"
      purpose: "Survey creation with conditional logic and branded design"
      tier: "free"
      cost: "$0 (free: 10 responses/mo) to $29/mo (Basic: 100 responses) to $59/mo (Plus)"
      alternatives: ["SurveyMonkey ($25/mo)", "Google Forms (free)", "Tally (free)"]
    - name: "HubSpot Service Hub"
      purpose: "CRM-integrated feedback with NPS/CSAT/CES surveys and ticket routing"
      tier: "paid"
      cost: "$90/seat/month (Professional)"
      alternatives: ["Zendesk ($55/agent/mo)", "Freshdesk ($15/agent/mo)", "Intercom ($74/seat/mo)"]
    - name: "Google Sheets or Notion"
      purpose: "Feedback aggregation, analysis, and theme tagging"
      tier: "free"
      cost: "$0"
      alternatives: ["Airtable (free tier)", "Excel", "Notion (free tier)"]
    - name: "Zapier or Make"
      purpose: "Automation: survey response triggers, CRM updates, Slack alerts"
      tier: "free"
      cost: "$0 (free: 100 tasks/mo) to $19.99/mo (Starter)"
      alternatives: ["Make ($9/mo)", "n8n (self-hosted free)", "Power Automate ($15/user/mo)"]
  credentials_needed:
    - service: "Typeform"
      type: "username+password or Google OAuth"
      where_to_get: "https://www.typeform.com/signup/"
      free_tier_limits: "10 responses/month, unlimited forms, basic logic"
    - service: "HubSpot (if using Service Hub)"
      type: "username+password or Google OAuth"
      where_to_get: "https://www.hubspot.com/products/service"
      free_tier_limits: "Free CRM with limited feedback features; Professional at $90/seat/mo for full NPS/CSAT/CES"
    - service: "Zapier"
      type: "username+password or Google OAuth"
      where_to_get: "https://zapier.com/sign-up"
      free_tier_limits: "100 tasks/month, 5 active Zaps, single-step automations"
  estimated_duration: "2-4 hours for initial survey setup; 1-2 weeks for full feedback loop with automation and dashboards"
  estimated_cost: "$0 (free tools with Google Forms + Sheets) to $150/month (Typeform Plus + Zapier Starter)"

# === DISTRIBUTION ===
canonical_source: "https://knowledgelib.io/business/customer-success/customer-feedback-collection-system/2026"
suggested_citation: "Source: knowledgelib.io — AI Knowledge Library (verified 2026-03-12)"

# === RELATED UNITS ===
related_kos:
  related_to:
    - id: "business/customer-success/churn-prevention-system-design/2026"
      label: "Churn early-warning and prevention — leading indicators mapped by churn reason, segment health scoring, intervention thresholds and save plays"
    - id: "business/startup-sales/sales-strategy-early-stage-startups/2026"
      label: "Post-sale feedback informs sales process improvement"
  alternative_to: []

# === SOURCES ===
sources:
  - id: src1
    title: "Customer Feedback Strategy: The Only Guide You'll Ever Need"
    author: HubSpot
    url: https://www.hubspot.com/customer-feedback
    type: technical_blog
    published: 2025-06-01
    reliability: authoritative
  - id: src2
    title: "The State of Survey Response Rates: 2025 Data, 2026 Outlook"
    author: Retently
    url: https://www.retently.com/blog/survey-response-rate-study/
    type: industry_report
    published: 2025-10-01
    reliability: high
  - id: src3
    title: "How to Create a Feedback Loop: Step-By-Step Guide + Best Practices"
    author: Userpilot
    url: https://userpilot.com/blog/how-to-create-a-feedback-loop/
    type: technical_blog
    published: 2025-08-01
    reliability: high
  - id: src4
    title: "NPS, CSAT and CES — Customer Satisfaction Metrics to Track in 2025"
    author: Retently
    url: https://www.retently.com/blog/customer-satisfaction-metrics/
    type: technical_blog
    published: 2025-07-01
    reliability: high
  - id: src5
    title: "CSAT, NPS, CES: The Ultimate Guide to CX Metrics"
    author: Armatis
    url: https://www.armatis.com/en/2025/09/26/nps-ces-csat-which-customer-experience-metrics-should-you-choose/
    type: technical_blog
    published: 2025-09-26
    reliability: high
  - id: src6
    title: "Customer Feedback Loops: How They Work and Examples (2025)"
    author: Shopify
    url: https://www.shopify.com/enterprise/blog/mastering-feedback-loops
    type: technical_blog
    published: 2025-05-01
    reliability: high
---

# Customer Feedback Collection System

## Purpose

This recipe builds a complete customer feedback collection system: NPS, CSAT, and CES surveys configured with trigger-based distribution, an analysis pipeline that turns raw scores into prioritized action items, and a closed-loop workflow that follows up with every respondent. The output is a configured survey platform, automated alert rules, an analysis dashboard, and documented close-the-loop processes — not a theoretical customer experience strategy. [src1]

## Prerequisites

- [ ] **Customer contact list** — email addresses for at least 100 customers, segmented by tenure, plan tier, or lifecycle stage
- [ ] **Customer journey map** — key touchpoints identified (onboarding, support interaction, feature release, renewal)
- [ ] **Communication channel access** — ability to send emails, embed in-app widgets, or configure post-interaction triggers
- [ ] **CRM or customer database** — system of record for customer data (HubSpot, Salesforce, spreadsheet)
- [ ] **Team owner assigned** — one person responsible for reviewing feedback weekly and routing action items

## Constraints

- Survey fatigue: keep transactional surveys (CSAT, CES) to 1-2 questions plus one open-text field. Completion rates drop 15-20% per additional question. [src2]
- NPS response rates average 4.5-12% via email. Achieve statistical significance by surveying at least 250 customers per NPS cycle. In-app surveys can reach 20-40% response rates. [src2]
- GDPR/CCPA compliance: include opt-out mechanism in all survey communications, store responses with retention policies, and do not share individual feedback externally without consent.
- Follow up with detractors (NPS 0-6) and low scorers (CSAT 1-2) within 24-48 hours. Delayed follow-up loses the recovery opportunity and signals that you do not care about the feedback. [src3]
- Do not send NPS and CSAT surveys in the same interaction — choose one per touchpoint. Use NPS for relationship health (quarterly) and CSAT for transactional quality (post-event). [src5]

## Tool Selection Decision

```
Which path?
├── Non-technical AND budget = free
│   └── PATH A: No-Code Free — Google Forms + Sheets + manual follow-up
├── Non-technical AND budget > $0
│   └── PATH B: No-Code Paid — Typeform + Zapier + Sheets/Notion
├── Semi-technical or developer AND budget = free
│   └── PATH C: Code + Free — Google Forms + Sheets + Apps Script automation
└── Already using HubSpot/Zendesk AND budget > $50/mo
    └── PATH D: CRM-Integrated — HubSpot Service Hub or Zendesk surveys
```

| Path | Tools | Cost | Setup Time | Output Quality |
|------|-------|------|------------|---------------|
| A: No-Code Free | Google Forms + Sheets | $0 | 2-3 hours | Basic — manual analysis, no automation |
| B: No-Code Paid | Typeform + Zapier + Notion | $29-49/mo | 3-5 hours | Good — branded surveys, automated alerts |
| C: Code + Free | Google Forms + Sheets + Apps Script | $0 | 4-6 hours | Good — automated analysis, custom dashboards |
| D: CRM-Integrated | HubSpot Service Hub | $90/seat/mo | 2-4 hours | Excellent — full CRM integration, automated workflows |

## Execution Flow

### Step 1: Choose Survey Types and Map to Touchpoints

**Duration**: 30-60 minutes
**Tool**: Spreadsheet or document

Define which metric to use at each customer touchpoint. Each metric measures something different — using the wrong one at the wrong moment produces meaningless data.

```
Survey Type Mapping:
──────────────────────────────────────────────────
METRIC       WHAT IT MEASURES           WHEN TO USE
NPS          Relationship loyalty       Quarterly or semi-annually
             (0-10 scale)               NOT after a single interaction

CSAT         Transaction satisfaction   After support ticket resolution
             (1-5 scale)               After onboarding completion
                                       After feature delivery

CES          Effort to accomplish task  After self-service interaction
             (1-7 scale)               After support experience
                                       After checkout/signup

Touchpoint → Survey Mapping:
──────────────────────────────────────────────────
Onboarding complete (Day 7-14)     → CSAT + open text
Support ticket resolved            → CES + open text
Feature release (2 weeks after)    → CSAT + open text
Quarterly relationship check       → NPS + open text
Renewal approaching (60 days out)  → NPS + open text
Cancellation/churn                 → CSAT + "What could we improve?"
```

**Verify**: Every key touchpoint has exactly one survey type assigned. No touchpoint triggers more than one survey within 7 days.
**If failed**: If uncertain which metric to use, default to CSAT for transactional moments and NPS for relationship health.

### Step 2: Configure Survey Tool and Create Surveys

**Duration**: 1-2 hours
**Tool**: Typeform (Path B), Google Forms (Path A/C), or HubSpot (Path D)

Create one survey per type with consistent branding, clear questions, and follow-up logic.

```
NPS Survey Structure:
──────────────────────────────────────────────────
Q1: "How likely are you to recommend [Company] to a colleague?"
    Scale: 0-10 (0 = Not at all likely, 10 = Extremely likely)
    Scoring: 0-6 = Detractor, 7-8 = Passive, 9-10 = Promoter
    NPS = % Promoters - % Detractors

Q2 (conditional):
    If 0-6: "We're sorry to hear that. What's the main reason for your score?"
    If 7-8: "Thanks! What could we do to earn a higher score?"
    If 9-10: "That's great to hear! What do you value most about [Company]?"

    Type: Open text (required)

CSAT Survey Structure:
──────────────────────────────────────────────────
Q1: "How satisfied were you with [specific interaction]?"
    Scale: 1-5 (1 = Very dissatisfied, 5 = Very satisfied)
    CSAT% = (count of 4+5 responses / total responses) x 100

Q2: "Any additional comments?" (optional open text)

CES Survey Structure:
──────────────────────────────────────────────────
Q1: "[Company] made it easy to [resolve my issue / complete my task]"
    Scale: 1-7 (1 = Strongly disagree, 7 = Strongly agree)
    CES = Average score across all responses

Q2: "What would have made this easier?" (optional open text)

Typeform Setup (Path B):
──────────────────────────────────────────────────
1. Create workspace at typeform.com/signup
2. For each survey type:
   a. New form → Start from scratch
   b. Add Opinion Scale question (NPS: 0-10, CSAT: 1-5, CES: 1-7)
   c. Add Logic Jump: branch to conditional follow-up by score range
   d. Add open-text Long Text question
   e. Add Thank You screen with personalized message
   f. Design → Apply brand colors, logo
   g. Share → Generate embed code and direct link
3. Enable Typeform Webhooks (Settings → Connect → Webhooks)
   → POST to Zapier or custom endpoint on each submission

Google Forms Setup (Path A/C):
──────────────────────────────────────────────────
1. Create form at forms.google.com
2. Add Linear Scale question (NPS: 0-10)
3. Add Paragraph question for follow-up
4. Link to Google Sheet (Responses → Link to Sheets)
5. For automation: Tools → Script editor → Apps Script triggers
```

**Verify**: Each survey loads correctly, conditional logic works (test with scores 3, 7, and 10 for NPS), and responses appear in the connected spreadsheet or dashboard.
**If failed**: If conditional logic does not work in Google Forms, create separate forms per score range and link them manually. Typeform and HubSpot handle branching natively.

### Step 3: Set Up Survey Triggers and Distribution

**Duration**: 1-2 hours
**Tool**: Zapier (Path B), Apps Script (Path C), or HubSpot Workflows (Path D)

Configure automated triggers so surveys are sent at the right moment without manual effort.

```
Trigger Configuration:
──────────────────────────────────────────────────
TRIGGER EVENT              SURVEY    DELAY         CHANNEL
Support ticket closed      CES       1 hour        Email
Onboarding milestone       CSAT      24 hours      In-app or email
Feature release            CSAT      14 days       Email
Quarterly NPS cadence      NPS       Scheduled     Email
Renewal 60 days out        NPS       Immediate     Email
Post-purchase              CSAT      48 hours      Email

Zapier Automation (Path B):
──────────────────────────────────────────────────
Zap 1: Support Ticket Closed → Send CES Survey
  Trigger: Zendesk/Freshdesk/HubSpot → Ticket status changed to "Closed"
  Filter: Only if ticket category != "spam" AND customer email exists
  Delay: 1 hour
  Action: Send Typeform survey link via email (Gmail/SendGrid)
  Template: "Hi {first_name}, we just resolved your ticket.
            How easy was it? [survey_link]"

Zap 2: NPS Quarterly Send
  Trigger: Schedule → Every 90 days
  Action: Loop through customer list → Send NPS survey
  Throttle: Max 50 emails per batch (avoid spam filters)

Zap 3: New Typeform Response → Route by Score
  Trigger: Typeform → New response
  Filter by score:
    NPS 0-6 → Slack alert to #cx-urgent + create CRM task
    NPS 7-8 → Log to spreadsheet for passive follow-up
    NPS 9-10 → Log + send "Thank you" email + request review/referral

Sampling Rules (avoid survey fatigue):
──────────────────────────────────────────────────
- Max 1 survey per customer per 30 days
- NPS: survey 100% of customers quarterly (or sample 25% monthly)
- CSAT: survey 100% of relevant interactions (post-support, post-onboarding)
- CES: survey 50% of support interactions (randomized)
- Exclude churned customers from NPS (survey separately with exit survey)
```

**Verify**: Send a test trigger for each automation. Confirm survey arrives within the configured delay, the correct survey type is sent, and responses route to the right destination.
**If failed**: If Zapier free tier runs out of tasks, batch NPS sends manually and automate only the response routing. Prioritize automating detractor alerts over send triggers.

### Step 4: Build the Analysis Pipeline

**Duration**: 1-2 hours
**Tool**: Google Sheets (Path A/B/C) or HubSpot Reports (Path D)

Create a dashboard that converts raw survey responses into actionable insights.

```
Analysis Dashboard Structure (Google Sheets):
──────────────────────────────────────────────────
Tab 1: Raw Responses
  Columns: timestamp, customer_email, customer_segment, survey_type,
           score, open_text, touchpoint, follow_up_status

Tab 2: NPS Tracker
  Rows: One per quarter
  Columns: quarter, total_responses, promoters, passives, detractors,
           nps_score, response_rate, top_3_themes_positive, top_3_themes_negative
  Chart: NPS trend line over time
  Formula: =((COUNTIF(range,">=9")-COUNTIF(range,"<=6"))/COUNT(range))*100

Tab 3: CSAT by Touchpoint
  Pivot: touchpoint × average_score
  Columns: touchpoint, total_responses, csat_percentage, trend_vs_prior
  Chart: Bar chart of CSAT% by touchpoint

Tab 4: CES Tracker
  Columns: interaction_type, average_ces, response_count, trend
  Chart: CES trend by interaction type

Tab 5: Open Text Themes
  Manual or semi-automated theme tagging:
  Columns: response_text, theme_tag, sentiment, action_required
  Common theme tags: "pricing", "onboarding", "performance",
                     "feature_request", "support_quality", "bug"
  Weekly task: Tag new responses, update theme frequency counts

Tab 6: Action Items
  Columns: theme, frequency, severity (1-5), owner, status, due_date
  Sort: severity × frequency (highest first)
  Review: Weekly by CS team lead
```

**Verify**: Dashboard populates correctly with test data. NPS formula returns a number between -100 and 100. CSAT percentages are between 0% and 100%. Pivot tables update when new responses arrive.
**If failed**: If formulas break, simplify to manual NPS calculation (count promoters and detractors in separate columns). Add complexity once the basic flow works.

### Step 5: Create Action Workflows and Escalation Rules

**Duration**: 30-60 minutes
**Tool**: Zapier + Slack/Email (Path B), or HubSpot Workflows (Path D)

Define what happens for each score range — automated alerts, assigned owners, and required actions.

```
Action Workflow by Score:
──────────────────────────────────────────────────
NPS DETRACTORS (0-6):
  Immediate: Slack alert to #cx-alerts with customer name, score, comment
  Within 24h: CS manager calls customer (or sends personal email)
  Goal: Understand root cause, offer resolution, prevent churn
  Log: Update CRM with "detractor_outreach" activity

NPS PASSIVES (7-8):
  Within 48h: Send personalized email asking what would improve the score
  Goal: Identify one specific improvement to convert passive → promoter
  Log: Tag in CRM as "passive_nurture"

NPS PROMOTERS (9-10):
  Within 48h: Send thank-you email + ask for public review (G2, Capterra)
  Within 7d: Invite to referral program or case study opportunity
  Log: Tag in CRM as "promoter_advocacy"

CSAT LOW SCORES (1-2):
  Immediate: Alert support team lead via Slack/email
  Within 24h: Review the specific interaction, contact customer
  Goal: Service recovery — resolve the issue and follow up
  Log: Create support escalation ticket

CES HIGH EFFORT (1-3):
  Weekly review: Aggregate high-effort interactions by category
  Action: Prioritize UX/process improvements for top friction points
  Goal: Reduce effort for the most common high-effort scenarios

Escalation Matrix:
──────────────────────────────────────────────────
Score Range     Owner              SLA          Channel
NPS 0-3         CS Manager         4 hours      Phone call
NPS 4-6         CS Team            24 hours     Personal email
CSAT 1          Support Lead       4 hours      Phone or video
CSAT 2          Support Team       24 hours     Email
CES 1-2         Product Team       Weekly       Batch review
```

**Verify**: Send test responses at each score level. Confirm alerts fire to the correct channels, the correct owner is notified, and CRM is updated.
**If failed**: If automation is too complex, start with a single rule: NPS 0-6 sends a Slack message. Add additional rules weekly as the team builds the habit.

### Step 6: Close the Loop with Customers

**Duration**: Ongoing (15-30 minutes per week)
**Tool**: Email + CRM

Closing the loop means telling customers what you did with their feedback. This is the step most companies skip — and the one that drives the highest retention impact.

```
Close-the-Loop Templates:
──────────────────────────────────────────────────
DETRACTOR FOLLOW-UP (within 24-48h of response):
  Subject: "Thank you for your feedback, {first_name}"
  Body: "Hi {first_name}, I saw your recent feedback and I
        wanted to reach out personally. I understand that
        {paraphrase their comment}. Here's what we're doing
        about it: {specific action}. I'd love to hear if
        there's anything else we can improve. Would you have
        15 minutes this week for a quick call?"

PASSIVE FOLLOW-UP (within 48h):
  Subject: "One quick question, {first_name}"
  Body: "Hi {first_name}, thanks for your feedback. You rated
        us a {score} — we appreciate it. I'm curious: what's
        the one thing we could do to make your experience even
        better? Your input directly shapes our roadmap."

PROMOTER ADVOCACY (within 48h):
  Subject: "You made our day, {first_name}"
  Body: "Hi {first_name}, your feedback means a lot to our team.
        Since you're having a great experience, would you consider:
        - Leaving a quick review on [G2/Capterra]? [link]
        - Sharing your story for a case study? (we'd feature you!)
        - Referring a colleague? [referral link]"

PRODUCT UPDATE BROADCAST (monthly):
  Subject: "You asked, we built: {feature/improvement}"
  Body: "Last month, {N} customers told us about {theme}.
        We listened. Here's what we shipped: {specific changes}.
        Thank you for helping us improve."

Weekly Close-the-Loop Checklist:
──────────────────────────────────────────────────
□ Review all new detractor and low-CSAT responses
□ Ensure every detractor has been contacted within SLA
□ Update action items spreadsheet with new themes
□ Tag resolved items as "closed" in feedback tracker
□ Send product update email if a feedback-driven feature shipped
□ Update NPS/CSAT dashboard with latest data
```

**Verify**: Every detractor has a follow-up logged in CRM within 48 hours. At least one product update email sent per month referencing customer feedback. Promoter referral requests are sent within 7 days of positive feedback.
**If failed**: If follow-up volume exceeds capacity, prioritize by account value. Enterprise detractors get phone calls; SMB detractors get personalized emails.

## Output Schema

```json
{
  "output_type": "feedback_collection_system",
  "format": "configured platform + dashboard + documented workflows",
  "columns": [
    {"name": "nps_survey_configured", "type": "boolean", "description": "NPS survey created and trigger rules active", "required": true},
    {"name": "csat_survey_configured", "type": "boolean", "description": "CSAT survey created for at least 2 touchpoints", "required": true},
    {"name": "ces_survey_configured", "type": "boolean", "description": "CES survey created for support/self-service", "required": true},
    {"name": "trigger_automations_active", "type": "number", "description": "Number of automated survey triggers configured", "required": true},
    {"name": "analysis_dashboard_built", "type": "boolean", "description": "Dashboard with NPS trend, CSAT by touchpoint, CES tracker", "required": true},
    {"name": "detractor_alert_active", "type": "boolean", "description": "Automated alert fires for NPS 0-6 and CSAT 1-2", "required": true},
    {"name": "close_loop_templates", "type": "number", "description": "Number of follow-up email templates created", "required": true},
    {"name": "first_nps_score", "type": "number", "description": "Baseline NPS score from first survey cycle", "required": false}
  ],
  "expected_row_count": "1",
  "sort_order": "N/A",
  "deduplication_key": "nps_survey_configured"
}
```

## Quality Benchmarks

| Quality Metric | Minimum Acceptable | Good | Excellent |
|---------------|-------------------|------|-----------|
| NPS response rate (email) | > 5% | > 15% | > 25% |
| CSAT response rate | > 10% | > 25% | > 40% |
| CES response rate | > 15% | > 30% | > 50% |
| Detractor follow-up within SLA | > 70% | > 90% | > 98% |
| Open-text responses tagged with themes | > 50% | > 80% | > 95% |
| Monthly close-the-loop email sent | Yes/No | Yes + specific | Yes + metrics |

**If below minimum**: If NPS response rate is below 5%, switch from email-only to in-app surveys or add an incentive (donation per response). If detractor follow-up rate is below 70%, simplify the escalation workflow — assign one owner for all detractor responses until the team can handle routing.

## Error Handling

| Error | Likely Cause | Recovery Action |
|-------|-------------|----------------|
| Response rate below 3% | Survey too long, wrong channel, or bad timing | Shorten to 1 question + open text, test in-app delivery, adjust send time to business hours |
| Automation not firing | Zapier/HubSpot trigger misconfigured or disconnected | Check trigger connection, test with manual event, verify API credentials |
| NPS score is misleading (extreme positive or negative) | Sample bias — only happy or unhappy customers respond | Increase sample size, randomize send timing, add in-app channel alongside email |
| Open-text responses are empty or generic | Follow-up question is not conditional or not compelling | Add score-conditional follow-up questions, make open text required for detractors |
| Survey fatigue complaints | Too many surveys or surveys at wrong moments | Enforce 30-day cooldown per customer, reduce to one survey per touchpoint, sample instead of surveying 100% |
| Detractor follow-up feels generic | Using same template for all detractors | Reference the customer's specific comment in follow-up, assign to account owner not generic inbox |

## Cost Breakdown

| Component | Free Tier | Starter Tier | Growth Tier |
|-----------|-----------|--------------|-------------|
| Survey tool | Google Forms (free, unlimited) | Typeform Basic: $29/mo (100 resp) | SurveyMonkey Advantage: $39/mo |
| Automation | Manual / Apps Script | Zapier Starter: $19.99/mo | HubSpot Service Hub: $90/seat/mo |
| Analysis | Google Sheets (free) | Google Sheets + Looker Studio (free) | Dedicated analytics (Thematic, MonkeyLearn) |
| Communication | Gmail (free) | SendGrid free (100 emails/day) | Customer.io: $100/mo |
| **Total for 500 customers** | **$0** | **$49-69/mo** | **$190+/mo** |

## Anti-Patterns

### Wrong: Collecting feedback and never acting on it
Surveys without follow-up are worse than no surveys. Customers who give feedback and see no change become more frustrated than those never asked. Response rates decline 30-50% on subsequent surveys when feedback goes unacknowledged. [src3]

### Correct: Act on the top 3 themes monthly and communicate changes
Review open-text themes weekly. Prioritize the top 3 by frequency and severity. Take action on at least one each month and send a product update email referencing the feedback.

### Wrong: Sending NPS surveys after every support interaction
NPS measures relationship loyalty over time. Sending it after a single interaction conflates transaction satisfaction with brand loyalty, producing scores that fluctuate wildly and mean nothing. [src5]

### Correct: Use CSAT or CES for transactional moments, NPS for periodic relationship health
CSAT after support tickets. CES after self-service. NPS quarterly. Each metric has a purpose — using it at the wrong moment produces unreliable data.

### Wrong: Only surveying happy customers
Cherry-picking who receives surveys produces inflated scores that hide real problems. When churn spikes, leadership is blindsided because the metrics looked fine. [src2]

### Correct: Survey all segments including at-risk accounts
Include every customer segment in survey distribution. Use stratified sampling if volume is too high. Analyze results by segment (plan tier, tenure, usage level) to find hidden dissatisfaction.

## When This Matters

Use this recipe when a company needs to build a customer feedback collection system from scratch — from survey tool selection through closed-loop follow-up workflows. Requires a customer contact list and identified touchpoints. This recipe handles survey configuration, trigger automation, analysis dashboards, and close-the-loop processes — not customer success strategy design or advanced CX platform administration.

## Related Units

- [Startup Analytics Implementation Guide](/business/startup-metrics/startup-analytics-implementation-guide/2026) — NPS/CSAT/CES feed into overall analytics
- [Sales Strategy for Early-Stage Startups](/business/startup-sales/sales-strategy-early-stage-startups/2026) — post-sale feedback improves sales process
