Product/Market Fit Survey

Product/Market Fit Survey Template

                        

    
        Survey.StylesManager.applyTheme("default");
    


var json = {
 "title": "Product/Market Fit Survey Template",
 "pages": [
  {
   "name": "page1",
   "elements": [
    {
     "type": "radiogroup",
     "name": "customer_role",
     "title": "What best describes your role?",
     "hasOther": true,
     "choices": [
      "Engineering Lead",
      "Project Manager",
      "Software Developer",
      "Designer",
      "Product Manager",
      "CEO / Founder",
      "Customer Support"
     ],
     "otherText": "Other",
     "colCount": 3
    },
    {
     "type": "radiogroup",
     "name": "start_using",
     "title": "How did you start using the product?",
     "choices": [
      {
       "value": "created",
       "text": "I created my account"
      },
      {
       "value": "invited",
       "text": "I was invited to an account"
      }
     ]
    },
    {
     "type": "radiogroup",
     "name": "product_discovering",
     "title": "How did you first discover the product? ",
     "hasOther": true,
     "choices": [
      "Friend or colleague",
      "Search engine",
      "Facebook",
      "Twitter",
      "Blog"
     ],
     "otherText": "Other",
     "colCount": 3
    },
    {
     "type": "radiogroup",
     "name": "paid_customer",
     "title": "Do you currently pay for the product? ",
     "isRequired": true,
     "choices": [
      "Yes",
      "No"
     ]
    }
   ]
  },
  {
   "name": "page2",
   "elements": [
    {
     "type": "radiogroup",
     "name": "product_fit",
     "title": "How would you feel if you could no longer use the product?",
     "isRequired": true,
     "choices": [
      {
       "value": "3",
       "text": "Very disappointed"
      },
      {
       "value": "2",
       "text": "Somewhat disappointed"
      },
      {
       "value": "1",
       "text": "Not disappointed"
      }
     ]
    },
    {
     "type": "comment",
     "name": "product_fit_comment",
     "visibleIf": "{product_fit} notempty",
     "title": "Please help us understand why you selected the answer above"
    }
   ]
  },
  {
   "name": "page3",
   "elements": [
    {
     "type": "radiogroup",
     "name": "product_alternative",
     "title": "What would you use as an alternative if [the product] were no\nlonger available?",
     "hasOther": true,
     "choices": [
      "Alternative 1",
      "Alternative 2",
      "Alternative 3",
      "Alternative 4",
      "Alternative 5",
      "Alternative 6"
     ],
     "otherText": "Other (please name)",
     "colCount": 3
    },
    {
     "type": "radiogroup",
     "name": "product_benefit",
     "title": "What is the primary benefit that you have received from the\nproduct?",
     "hasOther": true,
     "choices": [
      "Benefit 1",
      "Benefit 2",
      "Benefit 3",
      "Benefit 4",
      "Benefit 5",
      "Benefit 6"
     ],
     "colCount": 3
    },
    {
     "type": "radiogroup",
     "name": "product_recommend",
     "title": "Have you recommended the product to anyone?",
     "choices": [
      "Yes",
      "No"
     ]
    }
   ]
  },
  {
   "name": "page4",
   "elements": [
    {
     "type": "rating",
     "name": "nps_score",
     "title": "How likely are you to recommend the product to a friend or\ncolleague? ",
     "isRequired": true,
     "rateMin": 0,
     "rateMax": 10,
     "minRateDescription": "Most unlikely",
     "maxRateDescription": "Most likely"
    },
    {
     "type": "radiogroup",
     "name": "favorite_functionality",
     "title": "What's your favorite functionality / add-on for the product?",
     "hasOther": true,
     "choices": [
      "Feature 1",
      "Feature 2",
      "Feature 3",
      "Feature 4",
      "Feature 5",
      "Feature 6"
     ],
     "colCount": 3
    },
    {
     "type": "comment",
     "name": "product_improvement",
     "title": "How could the product be improved to better meet your\nneeds?"
    }
   ]
  },
  {
   "name": "page5",
   "elements": [
    {
     "type": "multipletext",
     "name": "contact_customer",
     "title": "Want us to follow-up? Leave your name and email here:",
     "items": [
      {
       "name": "Name"
      },
      {
       "name": "E-mail",
       "inputType": "email",
       "validators": [
        {
         "type": "email"
        }
       ]
      }
     ]
    }
   ]
  }
 ]
};

window.survey = new Survey.Model(json);


    survey.onComplete.add(function(result) {
        document.querySelector('#surveyResult').textContent =
            "Result JSON:\n" + JSON.stringify(result.data, null, 3);
    });


ReactDOM.render(<Survey.Survey model={survey}  />, document.getElementById("surveyElement"));


                    
<!DOCTYPE html>
<html>
<head>
    <title>Product/Market Fit Survey Template, Reactjs Survey Library Example</title>


    <meta name="viewport" content="width=device-width, initial-scale=1">
    <script src="https://unpkg.com/react@15/dist/react.js"></script>
    <script src="https://unpkg.com/react-dom@15/dist/react-dom.js"></script>
    <script src="https://unpkg.com/@babel/standalone@7.2.5/babel.min.js"></script>
<script src="https://surveyjs.azureedge.net/1.1.12/survey.react.js"></script>
<link href="https://surveyjs.azureedge.net/1.1.12/survey.css" type="text/css" rel="stylesheet" />
    <link rel="stylesheet" href="./index.css">

</head>
<body>
                <div id="surveyElement">
            </div>
    <div id="surveyResult"></div>

<script type="text/babel" src="./index.js"></script>

</body>
</html>