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. [src1]
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 |
Duration: 30-60 minutes · Tool: Spreadsheet or document
Define which metric to use at each customer touchpoint. NPS measures relationship loyalty (quarterly). CSAT measures transaction satisfaction (post-event). CES measures effort to complete a task (post-support/self-service). Map each touchpoint to exactly one survey type. [src4]
Verify: Every key touchpoint has exactly one survey type assigned. No touchpoint triggers more than one survey within 7 days. · If failed: If uncertain, default to CSAT for transactional moments and NPS for periodic relationship health checks.
Duration: 1-2 hours · Tool: Typeform (Path B), Google Forms (Path A/C), or HubSpot (Path D)
Create one survey per type: NPS (0-10 scale + conditional open text), CSAT (1-5 scale + optional text), CES (1-7 scale + optional text). Add conditional logic to branch follow-up questions by score range. Connect responses to a spreadsheet or CRM. [src5]
Verify: Each survey loads correctly, conditional logic works (test with scores 3, 7, and 10 for NPS), and responses appear in connected spreadsheet or dashboard. · If failed: If conditional logic does not work in Google Forms, create separate forms per score range. Typeform and HubSpot handle branching natively.
Duration: 1-2 hours · Tool: Zapier (Path B), Apps Script (Path C), or HubSpot Workflows (Path D)
Configure automated triggers: CES 1 hour after support ticket closes, CSAT 24 hours after onboarding milestone, NPS on quarterly schedule. Enforce a 30-day cooldown per customer to prevent survey fatigue. Throttle batch sends to 50 emails per batch. [src1]
Verify: Send a test trigger for each automation. Confirm survey arrives within configured delay and responses route correctly. · If failed: If Zapier free tier runs out of tasks, batch NPS sends manually and automate only detractor alert routing.
Duration: 1-2 hours · Tool: Google Sheets (Path A/B/C) or HubSpot Reports (Path D)
Create a dashboard with tabs for: raw responses, NPS trend tracker (quarterly NPS score + response rate), CSAT by touchpoint (bar chart), CES by interaction type, open-text theme tags, and prioritized action items sorted by severity times frequency. [src3]
Verify: Dashboard populates correctly with test data. NPS formula returns a number between -100 and 100. CSAT percentages are between 0% and 100%. · If failed: Simplify to manual NPS calculation. Add complexity once the basic flow works.
Duration: 30-60 minutes · Tool: Zapier + Slack/Email (Path B), or HubSpot Workflows (Path D)
Define score-based routing: NPS 0-6 triggers immediate Slack alert + CRM task (4-24h follow-up SLA). NPS 7-8 logs for passive nurture. NPS 9-10 triggers thank-you + review request. CSAT 1-2 alerts support lead. CES 1-3 aggregated weekly for product team review. [src6]
Verify: Send test responses at each score level. Confirm alerts fire to correct channels and the correct owner is notified. · If failed: Start with a single rule (NPS 0-6 sends Slack message) and add additional rules weekly.
Duration: Ongoing (15-30 minutes per week) · Tool: Email + CRM
Follow up with every respondent: detractors get personal outreach within 24-48h referencing their specific comment, passives receive a one-question follow-up, promoters are asked for reviews or referrals. Send monthly product update emails referencing feedback-driven changes. [src3] [src6]
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. · If failed: If volume exceeds capacity, prioritize by account value. Enterprise detractors get calls; SMB detractors get emails.
{
"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 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 | > 50% | > 80% | > 95% |
| Monthly close-the-loop email | 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. If detractor follow-up rate is below 70%, simplify the escalation workflow and assign one owner for all detractor responses.
| 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 to business hours |
| Automation not firing | Trigger misconfigured or disconnected | Check trigger connection, test with manual event, verify API credentials |
| NPS score is misleading | Sample bias — only happy or unhappy respond | Increase sample size, randomize timing, add in-app channel |
| Open-text responses empty | Follow-up question not conditional or compelling | Add score-conditional follow-ups, make open text required for detractors |
| Survey fatigue complaints | Too many surveys or wrong moments | Enforce 30-day cooldown per customer, sample instead of 100% |
| Detractor follow-up feels generic | Same template for all detractors | Reference customer's specific comment, assign to account owner |
| Component | Free Tier | Starter Tier | Growth Tier |
|---|---|---|---|
| Survey tool | Google Forms (free) | Typeform Basic: $29/mo | SurveyMonkey Advantage: $39/mo |
| Automation | Manual / Apps Script | Zapier Starter: $19.99/mo | HubSpot Service Hub: $90/seat/mo |
| Analysis | Google Sheets (free) | Sheets + Looker Studio (free) | Dedicated analytics platform |
| Communication | Gmail (free) | SendGrid free (100/day) | Customer.io: $100/mo |
| Total (500 customers) | $0 | $49-69/mo | $190+/mo |
Surveys without follow-up are worse than no surveys. Customers who give feedback and see no change become more frustrated. Response rates decline on subsequent surveys when feedback goes unacknowledged. [src3]
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.
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]
CSAT after support tickets. CES after self-service. NPS quarterly. Each metric has a purpose — using it at the wrong moment produces unreliable data.
Cherry-picking who receives surveys produces inflated scores that hide real problems. When churn spikes, leadership is blindsided because the metrics looked fine. [src2]
Include every customer segment in survey distribution. Analyze results by segment (plan tier, tenure, usage level) to find hidden dissatisfaction.
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.