The agentic survey system for Shopify

Search for the articles here or browse the categories below.

Browse by topic

Find guides, tutorials, and answers organised by category.

Popular articles

What other people are reading right now.

βš™οΈ Advanced Features & Settings

Custom Domains

Custom domains are part of the Plus plan Custom domains let you serve UserLoop surveys and quizzes from your own URL (e.g. survey.yourbrand.com) with an automatic SSL certificate. Where to find it in UserLoop 1. Open the survey or quiz you want to publish. 2. Click the Settings tab. 3. Scroll to the Custom Domain section. What you’ll need - A Plus subscription. - Access to your domain’s DNS (Cloudflare, GoDaddy, Namecheap, Route53, etc.). - A subdomain to use, e.g. survey.yourbrand.com or feedback.yourbrand.com. We recommend a subdomain rather than the root domain (yourbrand.com). How it works (quick summary) 1. Enter the subdomain you want to use in Settings β†’ Custom Domain. 2. We show you two DNS records to add: - CNAME pointing your subdomain to our edge (e.g. fallback.user-loop.com). - TXT record for SSL (ACME) validation. 3. After DNS propagates, click Refresh. Your certificate is issued and the domain goes live. Step-by-step setup 1. Choose your subdomain - In Settings β†’ Custom Domain, enter something like survey.yourbrand.com, then save. 2. Add the DNS records shown in UserLoop * CNAME * Name/Host: survey (or the full subdomain, depending on your provider) - Target/Value: fallback.user-loop.com * TTL: Auto or 5 minutes * TXT (ACME challenge) - Name/Host: _acme-challenge.survey.yourbrand.com * Value: the long token shown in the UI * TTL: Auto or 5 minutes Some DNS providers append your domain automatically. If so, enter only the host (e.g. _acme-challenge.survey). 3. Wait for DNS to propagate * Usually minutes, sometimes longer depending on TTL. 4. Back in UserLoop, click Refresh * Certificate Status should move from Pending Validation (TXT) β†’ Issued. - Hostname Status should change from Pending β†’ Active. 5. Test * Visit https://survey.yourbrand.com and confirm the survey/quiz loads over HTTPS (padlock icon). Status guide - Certificate Status: Pending Validation (TXT) We haven’t detected the TXT record yetβ€”add it exactly as shown. - Hostname Status: Pending We’re not routing traffic yetβ€”usually clears once the certificate is issued and the CNAME is visible. - Active All setβ€”your custom domain is live. Common pitfalls & fixes - Only added CNAME β†’ You must add both CNAME and TXT for SSL. - Wrong β€œHost/Name” format β†’ Match your provider’s expectations (host only vs full name). - Conflicting records β†’ Remove A/AAAA records on the same subdomain. - Cloudflare users (orange cloud) β†’ If validation stalls, set the CNAME to DNS only (grey cloud), click Refresh, then switch back to Proxied if desired. - Still pending after ~60 minutes β†’ Recheck the exact TXT token and CNAME target; ensure no typos. Changing or removing your custom domain - Change subdomain: Update it in Settings β†’ Custom Domain, add the new DNS records, and remove the old ones. - Remove custom domain: Click Delete in the same section, then remove DNS records at your provider. FAQ Does this work for quizzes too? Yesβ€”the Custom Domain feature works for both surveys and quizzes. Can I use my root domain (yourbrand.com)? We recommend a subdomain. Many DNS providers don’t allow CNAMEs at the apex and it may already host your site. Is it secure? Yesβ€”HTTPS is automatic once we verify the TXT record and issue the certificate. Do I need the Plus plan? Yesβ€”Plus is required for custom domains. Need help? - Send us a screenshot of your DNS records (hide unrelated entries). - Include your subdomain (e.g. survey.yourbrand.com) and DNS provider. - Contact support from within the app or email usβ€”we’ll verify DNS and certificate status.

πŸ’» Developer Documentation

UserLoop SDK

Quick Start Copy-Paste Embed (easiest way) Drop the snippet below anywhere you want the survey to appear. Replace YOUR_SURVEY_ID with the ID from the UserLoop dashboard and you're doneβ€”no extra setup required. (function () { var SURVEY_ID = 'YOUR_SURVEY_ID'; var TARGET_ID = 'userloop_survey'; function start() { var target = document.getElementById(TARGET_ID); if (!target) return; UserLoop(SURVEY_ID, target).init(); } if (window.UserLoop) { start(); return; } var script = document.createElement('script'); script.src = 'https://cdn.userloop.io/sdk-2/userloop.js'; script.async = true; script.onload = start; document.head.appendChild(script); })(); When you need more control If you prefer to manage script loading yourself, or you need to toggle advanced options such as email_collection or branding, initialise the SDK manually once the DOM is ready: window.addEventListener('DOMContentLoaded', function () { const SURVEY_ID = 'YOUR_SURVEY_ID'; const TARGET_ELEMENT = document.getElementById('userloop_survey'); const CONFIG = { email_collection: true, expanded_mode: false, userloop_branding: false, }; const userLoopInstance = UserLoop(SURVEY_ID, TARGET_ELEMENT, CONFIG); userLoopInstance.init(); }); Add optional customer and transaction context by passing a fourth argument when available (see Passing Customer and Transaction Data). Initializer Anatomy UserLoop(surveyId, targetElement, config, context) returns an instance with init, refresh, setSurveyId, and mount methods. Below is a summary of the most common configuration options for production use: | Option | Type | Description | | ---- | ---- | ---- | | email_collection | boolean | Displays an email capture step when the survey requires it and the customer record lacks an email address. | | expanded_mode | boolean | Forces the survey into an expanded layout that stretches to the width of its container. Useful for wider marketing pages. | | userloop_branding | boolean | When true, shows the "Powered by UserLoop" footer if your survey has branding enabled. | | surface | string | Identifies the integration surface for analytics (defaults to sdk). Update if you manage multiple surfaces. | | quiz_mode | boolean | Enables quiz mode. After the respondent answers all questions, the SDK calls UserLoop's AI recommendation engine and displays personalized product suggestions. | | quiz_api_key | string | API key for the quiz recommendation service. Required when quiz_mode is true. | | allow_restart | boolean | Shows a "Restart survey" button on the thank-you page, letting respondents retake the survey. | | auto_answer_first_question | string | Pass an answer_id to automatically select and submit the first question. Useful for post-purchase flows where the trigger determines the first answer. | The fourth context argument is optional. Pass customer and transaction objects when you have them; the SDK defaults to empty objects when they are omitted. Passing Customer and Transaction Data Enriching responses with customer and order context makes it easier to segment and act on feedback. When you're ready, populate any of the fields below before calling init() or refresh(). Each field is optionalβ€”provide only what you have. Customer Fields - email: Customer email address * id: Internal customer identifier (e.g., CRM or platform ID) - firstName, lastName: Optional name fields * phone: Optional phone number Transaction Fields - transaction_id: Order or transaction identifier * order_creation_date: ISO-8601 timestamp (2024-03-01T10:05:00.000Z) - total: Numeric order total * currency: ISO currency code (e.g., USD) - coupon_code: Applied discount code * utm_source, utm_medium, utm_campaign, utm_content, utm_term: Attribution parameters * platform: Platform name (e.g., Shopify, WooCommerce, Custom Storefront) - source: Traffic source descriptor (website, email, etc.) - products: Array of { id, name, product_url } entries describing purchased items When additional fields become available (for example, after checkout completes), update the objects and call userLoopInstance.refresh() to pull the latest survey configuration while preserving current state when possible. const customer = { email: order.email, id: order.customerId, }; const transaction = { transaction_id: order.id, total: order.total, currency: order.currency, order_creation_date: order.createdAt, products: order.items.map((item) => ({ id: item.productId, name: item.title, product_url: item.url, })), }; // Later, pass the context when initializing or refreshing const userLoopInstance = UserLoop(SURVEY_ID, TARGET_ELEMENT, CONFIG, { customer, transaction, }); userLoopInstance.init(); Platform Examples Shopify Liquid const SURVEY_ID = 'YOUR_SURVEY_ID'; const TARGET_ELEMENT = document.getElementById('userloop_survey'); const CONFIG = { email_collection: true }; const customer = { email: '{{ customer.email | escape }}' || '', id: '{{ customer.id }}' || '', }; const transaction = {% if order %}{ transaction_id: '{{ order.order_number }}', total: {{ order.total_price | default: 0 }}, currency: '{{ order.currency | escape }}', order_creation_date: '{{ order.created_at | date: "%Y-%m-%dT%H:%M:%S.%LZ" }}', coupon_code: '{{ order.discount_code | escape }}', products: [ {% for line_item in order.line_items %} { id: '{{ line_item.product_id }}', name: '{{ line_item.title | escape }}', }{% unless forloop.last %},{% endunless %} {% endfor %} ], platform: 'Shopify', source: 'website', }{% else %}{}{% endif %}; document.addEventListener('DOMContentLoaded', function () { const userLoopInstance = UserLoop(SURVEY_ID, TARGET_ELEMENT, CONFIG, { customer, transaction, }); userLoopInstance.init(); }); WooCommerce (PHP Template) const SURVEY_ID = 'YOUR_SURVEY_ID'; const TARGET_ELEMENT = document.getElementById('userloop_survey'); const CONFIG = { email_collection: true }; const customer = { email: '<?php echo esc_js( wp_get_current_user()->user_email ?? '' ); ?>', id: '<?php echo esc_js( wp_get_current_user()->ID ?? '' ); ?>', }; <?php $transaction_payload = []; if ( function_exists( 'wc_get_order' ) && isset( $_GET['order-received'] ) ) { $order = wc_get_order( intval( $_GET['order-received'] ) ); if ( $order ) { $transaction_payload = [ 'transaction_id' => $order->get_id(), 'currency' => $order->get_currency(), 'total' => $order->get_total(), 'order_creation_date' => $order->get_date_created()->date( 'c' ), 'products' => array_map( fn ( $item ) => [ 'id' => $item->get_product_id(), 'name' => $item->get_name(), ], $order->get_items() ), 'platform' => 'WooCommerce', 'source' => 'website', ]; } } ?> const transaction = <?php echo wp_json_encode( $transaction_payload ); ?>; document.addEventListener('DOMContentLoaded', function () { const userLoopInstance = UserLoop(SURVEY_ID, TARGET_ELEMENT, CONFIG, { customer, transaction, }); userLoopInstance.init(); }); Advanced Capabilities - Refresh with new data: If customer or transaction details change after initialization (for example, when a user completes checkout), update your local objects and call userLoopInstance.refresh() to rebuild the survey with the latest context. - Switch surveys dynamically: Use userLoopInstance.setSurveyId('NEW_SURVEY_ID') to load a different survey into the same container without reloading the page. - Remount after DOM changes: On single-page applications, call userLoopInstance.mount() when route transitions replace the container element so the SDK can reattach itself. - Collect emails conditionally: Combine email_collection: true with a populated customer.email to skip the email step for known customers while still collecting contact info for anonymous visitors. - Quiz mode with product recommendations: Set quiz_mode: true and provide a quiz_api_key to enable AI-powered product recommendations. After all questions are answered, the SDK displays personalized product cards with images, prices, AI-generated reasoning, and "View Product" links with UTM tracking. - Auto-answer the first question: Pass auto_answer_first_question: 'ANSWER_ID' to automatically select and submit the first answer. This is useful for email campaign integrations where the link click itself determines the first response. - Allow survey restarts: Set allow_restart: true to add a "Restart survey" button on the thank-you page, letting respondents retake the survey without reloading the page. Best Practices - Load the SDK once per page and reuse the returned instance rather than creating duplicates. - Keep your container element stable; if your framework re-renders nodes, call mount() after the new node is in place. - Validate that the SURVEY_ID configured in production points to the correct environment-specific survey. - Test the full survey and quiz flow (including any recommendation steps configured in the dashboard) to ensure responses and follow-up logic behave correctly. - Monitor network requests in your browser developer tools to confirm the SDK can reach https://userloop.io endpoints from your environment.

🧩 App Block & Popup Surveys

Popup Surveys

Popup surveys let you display a survey as a modal overlay on any page of your Shopify store. They're perfect for capturing feedback, collecting emails, or understanding your visitors without requiring them to navigate to a specific page. Once a visitor completes or dismisses a popup survey, it won't appear again for that visitor, so you never have to worry about annoying repeat customers. How Popup Surveys Work When a visitor lands on one of your enabled pages, UserLoop waits for a trigger event β€” a timer, exit intent, or scroll depth β€” and then displays the survey as a popup overlay. The visitor answers your questions directly in the popup, and their responses flow straight into your UserLoop dashboard. Setting Up Your Popup Survey Step 1. Create a Popup Survey In your UserLoop dashboard, click Create Survey and select the Popup option. Create a new popup survey in the UserLoop dashboard Add your questions, configure your design and settings, then move on to activation. Step 2. Activate Your Survey Once your survey is ready, click the Activate Survey button in the top-right corner. If this is your first popup survey, it will automatically be set as your live one. If you have multiple popup surveys, you'll need to use the Activate button to choose which one is live. Click Activate Survey to make your popup live Step 3. Add to Shopify Once your survey is active, you'll see a green Add Popup to Shopify button appear. Click this to go directly to your Shopify theme editor where you can configure the popup settings. Click the green Add Popup to Shopify button Step 4. Configure in the Shopify Theme Editor You'll be taken to the App embeds section of your theme editor. Here you can toggle the popup on, choose your trigger type, set the popup width and position, and control which pages show the popup. Popup survey settings in the Shopify theme editor Click Save to publish your changes β€” your popup survey is now live on your store. Choosing a Trigger Type The trigger determines when the popup appears to your visitors. There are three options: Timer The popup appears after a set number of seconds. This is the default trigger. - Delay: Set anywhere from 1 to 60 seconds (default is 5 seconds). - Best for: Catching visitors who are browsing and have had a moment to engage with your page. - Tip: We recommend starting with 5-10 seconds. Too short and visitors may feel interrupted; too long and they may have already left. Exit Intent The popup appears when the visitor moves their mouse toward the top of the browser window, signaling they're about to leave. - No additional settings needed β€” it triggers automatically based on mouse movement. - Best for: Capturing feedback or emails from visitors who are about to bounce. - Note: Exit intent only works on desktop browsers. On mobile devices, the popup will fall back to a short timer delay. Scroll Depth The popup appears after the visitor scrolls to a certain percentage of the page. - Depth: Set anywhere from 10% to 100% (default is 50%). - Best for: Engaging visitors who have shown interest by scrolling through your content β€” especially useful on blog posts or collection pages. Choosing Where Popups Appear You have full control over which pages display the popup. In the settings panel, you can enable or disable popups for each page type independently: - Home page - Product pages - Collection pages - Cart page - Blog posts - Pages (e.g. About Us, Contact, FAQ) - Search results All page types are enabled by default. If you only want to survey visitors on product pages, for example, simply uncheck the other page types. Positioning and Sizing Position Choose where the popup appears on screen: - Center (default) β€” appears in the middle of the screen with a dark overlay behind it. - Bottom right β€” fixed to the bottom-right corner, less intrusive. - Bottom left β€” fixed to the bottom-left corner. - Top right β€” fixed to the top-right corner. - Top left β€” fixed to the top-left corner. The center position is the most attention-grabbing and tends to get the highest response rates. The corner positions are more subtle and work well if you want to survey visitors without interrupting their browsing. Width Set the popup width between 300 and 600 pixels (default is 480px). On mobile devices, the popup automatically transforms into a full-width bottom sheet for a smooth experience regardless of the width you set. Selecting Which Survey to Display The popup displays whichever survey you have set as active in your UserLoop dashboard. If this is your first popup survey, it will automatically be set as the live one. If you create multiple popup surveys, you'll need to click Activate Survey on the one you want to use. Only one popup survey can be active at a time. Supported Question Types Popup surveys support all of UserLoop's question types: - Single select β€” radio button choices - Multi select β€” checkbox choices - NPS / number scale β€” 0-10 rating buttons - Open-ended text β€” free text input - Email β€” email address collection - Date β€” date picker You can also enable the "Other" option on choice questions to let visitors type in their own answer. Smart Question Targeting Popup surveys support the same question targeting as other UserLoop survey types: - All customers β€” shown to everyone. - New customers only β€” shown only to visitors who have never placed an order. - Returning customers only β€” shown only to visitors who have ordered before. Customer status is determined by their email address. If a visitor hasn't provided their email, customer-type-restricted questions are automatically skipped. Follow-Up Questions If you've configured follow-up questions on any of your answers, they work seamlessly in popup surveys. When a visitor selects an answer that has a follow-up, the follow-up question appears inline without needing an extra click. Discount Codes If you've enabled discount codes on your survey, a unique code will be displayed to the visitor after they complete all the questions. Visitors can click the code to copy it to their clipboard, making it easy for them to use at checkout. Progress Bar When enabled in your survey settings, a progress bar appears at the top of the popup showing visitors how far through the survey they are (e.g. "Question 2 of 5"). This helps encourage completion by showing visitors the survey is short. Auto Proceed If you have Auto Proceed enabled on your survey, the popup will automatically advance to the next question when a visitor selects a single-choice answer β€” no need to click a submit button. This creates a faster, smoother experience. Mobile Experience On mobile devices, popup surveys automatically adapt: - The popup transforms into a bottom sheet that slides up from the bottom of the screen. - It takes up the full width of the screen for easy tapping. - All buttons and inputs are sized for touch. Tips for Higher Response Rates - Keep it short: 2-4 questions is the sweet spot. The fewer questions, the higher your completion rate. - Start with an easy question: Lead with a simple single-select question before asking for text input or email. - Offer an incentive: Enable a discount code to reward visitors for completing the survey. - Target the right pages: If you're asking about products, show the popup only on product pages. If you want general feedback, the home page works well. - Don't trigger too early: Give visitors at least 5 seconds (or 50% scroll) before showing the popup so they've had time to engage. FAQs Can I show different surveys on different pages? Currently, one survey is active for all popup-enabled pages. If you need different surveys on different pages, consider using App Block Surveys instead, which can be placed individually on specific pages. Will the popup show again if a visitor dismisses it? No. Once a visitor completes or dismisses the popup, it won't appear again in that browser. This is tracked via the browser's local storage. Does it work with my theme's language settings? Yes. Popup surveys automatically detect your store's language and display in the appropriate locale. Can I use popups alongside checkout surveys or email surveys? Absolutely. Popup surveys operate independently from your checkout and email surveys, so you can run all three at the same time. Need Help? If you have any questions about setting up popup surveys or need assistance, don't hesitate to reach out to our support team.

🧩 App Block & Popup Surveys

Email Collection on App Block and Popup Surveys

App Block and Popup surveys can now collect email addresses from visitors β€” without requiring one. This means visitors can respond to your survey completely anonymously, or choose to provide their email if you include an Email question. How It Works When you add an Email question to your App Block or Popup survey, visitors will see an email input field as part of the survey flow. If they enter their email, all of their responses from that session are linked to that address β€” including answers they already gave before reaching the Email question. If a visitor skips the Email question (when Allow Skip is enabled) or you don't include one at all, they can still complete the survey anonymously. Their responses are still captured and counted in your analytics. Why Add an Email Question? There are a few key benefits to collecting emails: Link responses to customers β€” Without an email, App Block and Popup responses are anonymous. Adding an Email question lets you connect feedback to a real customer, which makes the data more useful for follow-up and segmentation. Enable smart customer targeting β€” If your survey has questions that target new or returning customers, the Email question makes that possible for anonymous visitors. After the visitor enters their email, UserLoop checks their order history in real time. Subsequent questions can then be shown or hidden based on whether that visitor is new or returning. Build your email list β€” Pair the Email question with a discount code reward to capture email addresses from visitors who might not otherwise subscribe. Setting It Up 1. Go to your App Block or Popup survey in the UserLoop dashboard. 2. Click the Questions tab, then click Add Question. 3. Select Email from the question type list. 4. Type your question β€” for example, "What's your email address?" or "Enter your email for 10% off". 5. Configure the settings: - Enable Allow Skip if you want the email to be optional. - Add a Sub Heading with context, like "We'll send your discount code to this address." Where to Place the Email Question The position of the Email question in your survey matters: - At the start β€” Best when you need the email to enable customer targeting on later questions, or when you want to identify the visitor before they answer anything. - At the end β€” Best for maximizing survey completions. Some visitors will drop off at an email request, so placing it last means you still get their other answers even if they skip the email. - Before a reward β€” If you're offering a discount code, place the Email question just before the thank-you page so visitors are motivated to enter it. Without an Email Question If you don't add an Email question to your App Block or Popup survey, the survey works exactly as before β€” visitors answer questions anonymously and their responses appear in your dashboard. You don't need to include an Email question unless you want to. Need Help? If you have any questions about email collection, reach out to us via live chat and we'll be happy to help.

πŸš€ Getting Started

Getting Started

UserLoop helps you collect customer feedback through surveys on your Shopify store, via email, or through shareable links. This guide introduces the different survey types and helps you pick the right one. Survey Types UserLoop offers five ways to reach your customers: Checkout Surveys β€” Appear on your Shopify Thank You and Order Status pages immediately after a purchase. Because the shopping experience is fresh, checkout surveys get the highest response rates. Best for post-purchase attribution ("How did you hear about us?"), satisfaction, and quick feedback. Email Surveys β€” Sent to customers via email after an event like a purchase, order fulfillment, or abandoned cart. You control the timing and trigger. Best for detailed feedback once the customer has received and used your product. App Block Surveys β€” Embedded inline on any page of your Shopify store as a native section. The survey sits within your page content and is visible to every visitor who scrolls to it. Best for ongoing feedback, email capture, and page-specific questions. Popup Surveys β€” Displayed as a modal overlay on your storefront, triggered by a timer, exit intent, or scroll depth. Best for catching visitors while they browse, exit surveys, and site-wide questions. Link Surveys β€” A shareable URL that opens your survey on a standalone page. Works anywhere β€” social media, SMS, packaging inserts, QR codes, or partner channels. Best for reaching customers outside your Shopify store. Link surveys also support video questions. Which Survey Type Should I Use? | Goal | Recommended Type | |---|---| | Post-purchase attribution ("How did you hear about us?") | Checkout | | Product satisfaction after delivery | Email (order fulfilled trigger) | | Collect feedback on a specific page | App Block | | Catch visitors before they leave | Popup (exit intent trigger) | | Collect feedback from packaging or in-store | Link + QR Code | | Video testimonials | Link | | Email / lead capture from anonymous visitors | App Block or Popup | | NPS tracking over time | Checkout or Email | You can run multiple survey types at the same time. For example, many stores use a checkout survey for attribution, an email survey for post-delivery satisfaction, and a popup for general feedback. Creating Your First Survey 1. Go to Surveys in the left menu and click New Survey. 2. Choose your survey type. 3. Add questions using the Questions tab. Click Add Question to add one manually, or click Suggest Questions for AI-generated suggestions tailored to your store. 4. Customize the design using the Design tab β€” set your button color, thank-you page message, and optionally add a discount code reward. 5. Publish or activate your survey: - Checkout surveys β€” Click Add to Shopify Checkout to place the survey on your Thank You page. - Email surveys β€” Enable the trigger (post-purchase, order fulfilled, or abandoned cart) and set the delay. - App Block surveys β€” Click Activate Survey, then Add App Block to Shopify to place it in your theme. - Popup surveys β€” Click Activate Survey, then Add Popup to Shopify to configure the trigger and pages. - Link surveys β€” Click Share to get your URL or download a QR code. Key Features Here are some features that work across all survey types: - Question types β€” Single Select, Multi Select, Open Ended, NPS, Number Score, CSAT, Date, Email, and Video. - AI-powered suggestions β€” Get AI-generated questions and answer options tailored to your store. - Follow-up questions β€” Show a follow-up question based on a specific answer to dig deeper. - Customer targeting β€” Show questions only to new customers, returning customers, or everyone. - Language translations β€” Automatically translate surveys into 50+ languages. - Discount codes β€” Reward customers who complete your survey. - Analytics and AI insights β€” Track responses, view breakdowns by question, and get AI-powered summaries and business insights. - Integrations β€” Push data to Slack, Klaviyo, Meta Conversion API, and Shopify customer tags. Next Steps - Checkout Survey Overview β€” Set up your first post-purchase survey. - Question Types β€” Learn about every question type and when to use each one. - Analytics Overview β€” Understand your survey results. Need Help? If you have any questions about getting started, reach out to us via live chat and we'll be happy to help.

❓ Survey Questions

Question Types

UserLoop offers nine question types to help you collect different kinds of feedback. Each type is designed for a specific purpose, from simple multiple choice to video responses and data collection. Adding Questions to a Survey 1. Go to Surveys and select your survey (or create a new one). 2. Click the Questions tab, then click Add Question. 3. Choose your question type from the list. Add a question type 4. Type your question and click Suggest Answers to get AI-generated answer options (for Single Select and Multi Select questions). 5. Drag and drop questions to reorder them. Single Select Single Select questions let customers choose exactly one answer from a list of options. This is the most common question type. Single Select question When to use it: - Attribution β€” "How did you hear about us?" - Demographics β€” "What is your age range?" - Preferences β€” "Which product category are you most interested in?" - Satisfaction β€” "How would you describe your experience?" Click Suggest Answers to get AI-generated options tailored to your question, or add answers manually. You can drag and drop answers to reorder them. Single Select questions support the Other toggle (adds a free-text option at the end of the list) and Randomize Order (shuffles answer positions each time the survey is shown). You can also add follow-up questions to individual answers. Multi Select Multi Select questions let customers choose one or more answers from a list of options. Use this when multiple answers could apply. Multi Select question When to use it: - Product interests β€” "Which of these products are you interested in?" - Feature feedback β€” "Which features do you use the most?" - Pain points β€” "What challenges are you facing?" - Shopping habits β€” "Where else do you shop for similar products?" Click Suggest Answers to get AI-generated options, or add answers manually. Multi Select also supports the Other toggle, Randomize Order, and follow-up questions. Open Ended Open Ended questions give customers a free-text field to write their response in their own words. This is the best way to collect detailed, qualitative feedback. Open Ended question When to use it: - General feedback β€” "Is there anything else you'd like to share with us?" - Product suggestions β€” "What features would you like to see?" - Experience details β€” "What almost stopped you from buying today?" Keep the question focused so customers know what kind of response you're looking for. Open Ended responses are analyzed in the Analytics section, where UserLoop uses AI to identify common themes across responses. Open Ended settings 1. Sub Heading β€” Add extra text below the question heading to provide instructions or context. 2. Placeholder Text β€” Sets the hint text shown inside the text field before the customer starts typing. Use this to guide customers on what kind of response you're looking for. Number Score Number Score questions let customers select a number on a scale. This is useful for any kind of rating or satisfaction question. Number Score question When to use it: - Overall experience β€” "How would you rate your overall experience?" - Product satisfaction β€” "How would you rate this product?" - Effort score β€” "How easy was it to complete your purchase?" - Any custom rating β€” Use the label fields to define what the low and high ends mean. Number Score settings 1. Scale β€” Choose the range and direction of the number scale: 1–10 (default), 10–1 (reversed), 1–5 (shorter scale), or 5–1 (shorter, reversed). 2. Left Label β€” The label shown at the low end of the scale (e.g. "Least", "Poor", "Very Difficult"). 3. Right Label β€” The label shown at the high end of the scale (e.g. "Most", "Excellent", "Very Easy"). NPS NPS (Net Promoter Score) is a widely used metric for measuring customer loyalty. It asks customers how likely they are to recommend your brand on a scale of 1 to 10. NPS question When to use it: - Post-purchase β€” "How likely are you to recommend us to a friend or family member?" - Ongoing tracking β€” Add an NPS question to your checkout survey to track loyalty over time. Responses are automatically grouped into three categories: - Detractors (1–6) β€” Unhappy customers who are unlikely to recommend you. - Passives (7–8) β€” Satisfied but unenthusiastic customers. - Promoters (9–10) β€” Loyal customers who will actively recommend you. Your NPS score is calculated as: % Promoters - % Detractors, ranging from -100 to 100. Go to Analytics to see your score and trend over time. NPS uses a fixed 1–10 scale with customizable Left Label and Right Label (pre-filled with "Not Likely" and "Very Likely"). Unlike Number Score, the scale cannot be changed. Date Date questions let customers select a specific date using dropdown selectors for day, month, and year. Date question When to use it: - Birthdays β€” "When is your birthday?" Use this to send personalized birthday offers or discounts. - Anniversaries β€” "When did you first start using our products?" - Event dates β€” "When is the event you're shopping for?" Video Video questions let customers record a short video response using their device's camera and microphone, or upload an existing video file. Video question When to use it: - Testimonials β€” "Record a short video telling us about your experience." - Product feedback β€” "Show us how you use our product." - Unboxing reactions β€” "Record your first impressions when opening your order." Customers can record up to 2 minutes of video, review and re-record before submitting, or upload a file instead. Video questions are available in Link and Popup surveys. They are not currently supported in Checkout surveys. CSAT CSAT (Customer Satisfaction) questions measure how satisfied a customer is with a specific experience. Customers choose from a set of satisfaction levels like "Very Satisfied", "Satisfied", "Neutral", etc. When to use it: - Post-purchase β€” "How satisfied are you with your purchase?" - Support interactions β€” "How would you rate your experience with our support team?" - Delivery experience β€” "How satisfied were you with the delivery?" CSAT works like a Single Select question with satisfaction-focused answer options. Unlike NPS (which measures loyalty on a 1-10 scale), CSAT measures satisfaction with a specific touchpoint. It supports the Other toggle, Randomize Order, and follow-up questions. Email Email questions let you collect a customer's email address as part of your survey. This is especially useful for App Block and Popup surveys where visitors may not be logged in. When to use it: - Lead capture β€” Collect emails from anonymous visitors. - Identify visitors β€” Link anonymous survey responses to a customer record. - Enable targeting β€” Once an email is collected, subsequent questions can target new or returning customers based on order history. When an email is collected, all previous responses from that survey session are linked to the email address. Question Settings Every question type has the following settings, available in the settings panel on the right side when you click a question. Question settings panel 1. Other β€” Available on Single Select and Multi Select questions only. When enabled, an "Other" option is added to the end of the answer list. If a customer selects it, a text field appears where they can type their own answer. 2. Required β€” When enabled, customers must answer the question before they can move to the next one. The submit button stays disabled until they select or type an answer. 3. Allow Skip β€” Shows a Skip button below the submit button, letting customers skip the question without answering. Skipped questions don't record a response. If both Required and Allow Skip are enabled, customers can still skip using the skip button β€” but they can't proceed without answering unless they explicitly choose to skip. 4. Randomize Order β€” Shuffles the order of answer choices each time the survey is shown. This helps reduce bias from answer position. If you have an Other option, it always stays at the end of the list regardless of randomization. This setting applies to Single Select and Multi Select questions. 5. Sub Heading β€” Add extra text below the main question heading. This is useful for providing instructions or additional context without cluttering the main question. Need Help? If you have any questions about question types, reach out to us via live chat and we'll be happy to help.