The SURVEY category is designed for collecting feedback, conducting polls, and gathering user opinions. Use this category when your primary goal is data collection, research, or understanding user preferences and experiences.
Category Specification
{
"flowCategories" : [ "SURVEY" ]
}
Use Cases
Perfect for SURVEY
Customer Satisfaction - Post-purchase feedback, service ratings
Market Research - Product preferences, feature requests
User Experience - App feedback, website usability studies
Opinion Polls - Public opinion, preference surveys
Event Feedback - Post-event evaluations, workshop assessments
Employee Surveys - Internal feedback, satisfaction studies
Not Suitable for SURVEY
Account creation - Use SIGN_UP instead
Booking appointments - Use APPOINTMENT_BOOKING instead
Contact requests - Use CONTACT_US instead
Lead generation - Use LEAD_GENERATION instead
Recommended Components
Essential Components
RADIO_BUTTONS_GROUP - Single-choice questions, rating scales
CHECKBOX_GROUP - Multiple-choice questions, preference selection
CHIPS_SELECTOR - Tag-based selections, interest categories
TEXT_AREA - Open-ended feedback, detailed comments
FOOTER - Survey submission
Optional Components
DROPDOWN - Long lists (countries, industries, age ranges)
TEXT_INPUT - Short text responses, numeric answers
DATE_PICKER - Date-related questions
PHOTO_PICKER - Visual feedback, condition documentation
OPT_IN - Consent for data usage, follow-up contact
Implementation Examples
Customer Satisfaction Survey
{
"flowName" : "customer_satisfaction_survey" ,
"flowCategories" : [ "SURVEY" ],
"flowJson" : {
"screens" : [
{
"id" : "SATISFACTION_SURVEY" ,
"terminal" : true ,
"success" : true ,
"title" : "Customer Satisfaction Survey" ,
"layout" : {
"children" : [
{
"type" : "TEXT_HEADING" ,
"text" : "How was your experience?"
},
{
"type" : "BODY" ,
"text" : "Your feedback helps us improve our service. This survey takes about 2 minutes to complete."
},
{
"type" : "RADIO_BUTTONS_GROUP" ,
"name" : "overall_satisfaction" ,
"label" : "Overall Satisfaction" ,
"required" : true ,
"dataSource" : [
{ "id" : "very_satisfied" , "title" : "Very Satisfied" },
{ "id" : "satisfied" , "title" : "Satisfied" },
{ "id" : "neutral" , "title" : "Neutral" },
{ "id" : "dissatisfied" , "title" : "Dissatisfied" },
{ "id" : "very_dissatisfied" , "title" : "Very Dissatisfied" }
]
},
{
"type" : "CHECKBOX_GROUP" ,
"name" : "service_aspects" ,
"label" : "What did you like most? (Select all that apply)" ,
"required" : false ,
"dataSource" : [
{ "id" : "speed" , "title" : "Fast service" },
{ "id" : "quality" , "title" : "High quality" },
{ "id" : "communication" , "title" : "Clear communication" },
{ "id" : "pricing" , "title" : "Fair pricing" },
{ "id" : "professionalism" , "title" : "Professional staff" },
{ "id" : "convenience" , "title" : "Convenient process" }
]
},
{
"type" : "TEXT_AREA" ,
"label" : "What could we improve?" ,
"name" : "improvement_suggestions" ,
"required" : false ,
"maxLength" : "500" ,
"helperText" : "Your specific suggestions help us prioritize improvements"
},
{
"type" : "RADIO_BUTTONS_GROUP" ,
"name" : "recommendation" ,
"label" : "Would you recommend us to others?" ,
"required" : true ,
"dataSource" : [
{ "id" : "definitely" , "title" : "Definitely" },
{ "id" : "probably" , "title" : "Probably" },
{ "id" : "maybe" , "title" : "Maybe" },
{ "id" : "probably_not" , "title" : "Probably not" },
{ "id" : "definitely_not" , "title" : "Definitely not" }
]
},
{
"type" : "OPT_IN" ,
"label" : "You may contact me for follow-up questions about my feedback" ,
"name" : "followup_consent" ,
"required" : false
},
{
"type" : "FOOTER" ,
"label" : "Submit Feedback" ,
"onClickAction" : {
"name" : "COMPLETE"
},
"centerCaption" : "Thank you for helping us improve!"
}
]
}
}
]
}
}
Quick Pulse Survey
{
"flowName" : "quick_pulse_survey" ,
"flowCategories" : [ "SURVEY" ],
"flowJson" : {
"screens" : [
{
"id" : "PULSE_SURVEY" ,
"terminal" : true ,
"success" : true ,
"title" : "Quick Pulse Check" ,
"layout" : {
"children" : [
{
"type" : "TEXT_HEADING" ,
"text" : "Quick Question for You"
},
{
"type" : "BODY" ,
"text" : "Help us improve with this 30-second survey. Your feedback shapes our priorities."
},
{
"type" : "RADIO_BUTTONS_GROUP" ,
"name" : "feature_priority" ,
"label" : "What should we focus on next?" ,
"required" : true ,
"dataSource" : [
{
"id" : "performance" ,
"title" : "Performance & Speed" ,
"description" : "Faster loading, smoother experience"
},
{
"id" : "features" ,
"title" : "New Features" ,
"description" : "More functionality and capabilities"
},
{
"id" : "design" ,
"title" : "Design & Usability" ,
"description" : "Better interface and user experience"
},
{
"id" : "integrations" ,
"title" : "Integrations" ,
"description" : "Connect with more tools and services"
}
]
},
{
"type" : "CHIPS_SELECTOR" ,
"name" : "satisfaction_factors" ,
"label" : "What makes you most satisfied? (Optional)" ,
"required" : false ,
"maxSelectedItems" : 3 ,
"dataSource" : [
{ "id" : "reliability" , "title" : "Reliability" },
{ "id" : "support" , "title" : "Customer Support" },
{ "id" : "value" , "title" : "Value for Money" },
{ "id" : "ease" , "title" : "Ease of Use" },
{ "id" : "innovation" , "title" : "Innovation" },
{ "id" : "community" , "title" : "Community" }
]
},
{
"type" : "TEXT_INPUT" ,
"label" : "One word to describe us (Optional)" ,
"name" : "one_word" ,
"required" : false ,
"maxLength" : "50"
},
{
"type" : "FOOTER" ,
"label" : "Submit" ,
"onClickAction" : {
"name" : "COMPLETE"
},
"centerCaption" : "Results help guide our roadmap - thank you!"
}
]
}
}
]
}
}
Survey Design Best Practices
Question Types and Components
Rating Scales
Use RADIO_BUTTONS_GROUP for Likert scales:
{
"dataSource" : [
{ "id" : "strongly_agree" , "title" : "Strongly Agree" },
{ "id" : "agree" , "title" : "Agree" },
{ "id" : "neutral" , "title" : "Neutral" },
{ "id" : "disagree" , "title" : "Disagree" },
{ "id" : "strongly_disagree" , "title" : "Strongly Disagree" }
]
}
Multiple Choice Questions
Use CHECKBOX_GROUP for "select all that apply":
{
"name" : "product_usage" ,
"label" : "How do you use our product? (Select all that apply)" ,
"required" : false ,
"dataSource" : [
{ "id" : "personal" , "title" : "Personal projects" },
{ "id" : "work" , "title" : "Work/Business" },
{ "id" : "education" , "title" : "Education/Learning" }
]
}
Open-Ended Questions
Use TEXT_AREA for detailed feedback:
{
"type" : "TEXT_AREA" ,
"label" : "What's the biggest challenge you face?" ,
"maxLength" : "300" ,
"helperText" : "Be as specific as possible"
}
Survey Flow Design
Progress Indicators
Show survey progress:
{
"type" : "CAPTION" ,
"text" : "Question 2 of 5 - About one minute remaining"
}
Question Grouping
Group related questions on same screen:
{
"type" : "TEXT_HEADING" ,
"text" : "Demographics"
},
{
"type" : "CAPTION" ,
"text" : "These questions help us understand our audience better"
}
Privacy and Consent
Data Usage Transparency
{
"type" : "BODY" ,
"text" : "Your responses are anonymous and will only be used to improve our products and services."
}
Optional vs Required
Balance data collection with user experience:
{
"type" : "CAPTION" ,
"text" : "* Required questions | Optional questions help us serve you better"
}
Follow-up Consent
{
"type" : "OPT_IN" ,
"label" : "You may contact me with follow-up questions about this survey" ,
"name" : "followup_consent" ,
"required" : false
}
Survey Quality Guidelines
Question Clarity
Specific questions - Avoid vague or ambiguous wording
Single concept - One idea per question
Neutral language - Avoid leading or biased questions
Clear options - Mutually exclusive, comprehensive choices
Response Options
Balanced scales - Equal positive and negative options
Include "Other" - For categories that might not be complete
"Prefer not to say" - For sensitive demographics
"Don't know/N/A" - For knowledge or applicability questions
Survey Length
Survey Type Questions Time Drop-off Risk Micro survey 1-3 questions Under 1 minute Very low Short survey 5-10 questions 2-3 minutes Low Standard survey 10-20 questions 5-7 minutes Moderate Long survey 20+ questions Over 10 minutes High
Response Validation
Required vs Optional Balance
{
"type" : "RADIO_BUTTONS_GROUP" ,
"required" : true ,
"errorMessage" : "This question helps us understand your primary need"
},
{
"type" : "TEXT_AREA" ,
"required" : false
}
Input Validation
{
"type" : "TEXT_INPUT" ,
"inputType" : "EMAIL" ,
"pattern" : "^[ \\ w- \\ .]+@([ \\ w-]+ \\ .)+[ \\ w-]{2,4}$" ,
"errorMessage" : "Please enter a valid email address"
}
Analytics and Follow-up
Response Tracking
Monitor survey performance:
Completion rate - Percentage finishing survey
Drop-off points - Where users abandon
Response quality - Meaningful vs low-quality responses
Time to complete - Average completion time
Incentive Strategies
{
"type" : "CAPTION" ,
"text" : "Complete this survey for a chance to win a $50 gift card! Winner selected monthly."
}
Thank You Messaging
{
"type" : "FOOTER" ,
"label" : "Submit Survey" ,
"centerCaption" : "Your feedback helps improve the experience for everyone - thank you!"
}
Common Survey Errors
Survey Fatigue
{
"errorCode" : "SURVEY_TOO_LONG" ,
"message" : "Consider breaking long surveys into multiple shorter surveys"
}
Required Question Overload
{
"errorCode" : "TOO_MANY_REQUIRED" ,
"message" : "Minimize required questions to improve completion rates"
}
Unclear Question Wording
{
"errorCode" : "AMBIGUOUS_QUESTION" ,
"message" : "Question wording should be clear and specific"
}
Related Categories
SURVEY flows should prioritize user experience, clear questions, and appropriate incentives to maximize response quality and completion rates
Last modified on October 7, 2026