Development of AI Customer Survey Autocall System (CSAT/NPS)
Voice surveys achieve 30–45% response rate vs 5–10% for email. The AI bot collects ratings, asks follow-up questions on low scores, and feeds detailed responses to analytics.
Survey Architecture
class SurveyBot:
async def conduct_survey(self, call: ActiveCall, context: dict) -> SurveyResult:
responses = {}
for question in self.questions:
# Ask question
await call.say(question["text"].format(**context))
# Collect response
user_response = await call.listen(timeout_sec=10)
parsed = await self.parse_response(user_response, question["type"])
responses[question["id"]] = parsed
# Conditional follow-up if low score
if question.get("followup_if_low") and parsed.get("value", 10) <= 6:
followup = question["followup_if_low"]
await call.say(followup["text"])
followup_response = await call.listen(timeout_sec=20)
responses[f"{question['id']}_reason"] = followup_response
# Escalate to human for critical scores
if parsed.get("value") is not None and parsed["value"] <= 3:
await self.escalate_to_human(call, context, responses)
break
return SurveyResult(...)
NPS-Specific Logic
Categorizes scores:
- 9–10: Promoter
- 7–8: Passive
- 0–6: Detractor
Analytics
Calculates NPS = (Promoters – Detractors) / Total * 100 Performs thematic analysis of open-ended responses
Timeline: NPS/CSAT bot — 2–3 weeks. With thematic analysis — 1.5 months.







