[{"data":1,"prerenderedAt":336},["ShallowReactive",2],{"blog-how-to-integrate-mailgun-smtp-with-formester":3},{"blogData":4,"relatedArticles":32},{"id":5,"title":6,"author":7,"authorImage":8,"authorProfile":9,"coverImg":10,"coverImgAlt":6,"createdAt":11,"description":12,"featured":13,"jsonld":14,"keywords":15,"metaDescription":16,"metaImage":17,"metaTitle":23,"publishedAt":24,"slug":25,"updatedAt":11,"__hash__":26,"body":27,"coverImgWidth":28,"coverImgHeight":29,"readingStats":30},"blog\u002Fblog\u002Fhow-to-integrate-mailgun-smtp-with-formester.md","How to integrate MailGun SMTP with Formester","Ravindra Kumar Verma",null,"https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fravindraverma12\u002F","https:\u002F\u002Fformester-strapi.s3.ap-south-1.amazonaws.com\u002Fhow_to_integrate_mailgunsmtp_with_formester_a16d3dc197.png","2024-04-07T10:04:43.719Z","This guide helps you configure SMTP settings for MailGun SMTP on Formester. You can then start sending all emails through your personalized emails and receive response directly in your inbox",false,[],"smtp, mailgun smtp, mailgun smtp integration, mailgun smtp credentials","Mailgun SMTP integration with Formester. Now, send emails effortlessly with our step-by-step guide on configuring Mailgun SMTP. Try it now!",[18,19,20,21,22],"https:\u002F\u002Fformester-strapi.s3.ap-south-1.amazonaws.com\u002Fhow_to_integrate_mailgun_smtp_with_formester_home_page_e7ba52a8ca.png","https:\u002F\u002Fformester-strapi.s3.ap-south-1.amazonaws.com\u002Fhow_to_integrate_mailgun_smtp_with_formester_signup_b8bbac0ae7.png","https:\u002F\u002Fformester-strapi.s3.ap-south-1.amazonaws.com\u002Fhow_to_integrate_mailgun_smtp_with_formester_create_smtp_0f53ad88dc.png","https:\u002F\u002Fformester-strapi.s3.ap-south-1.amazonaws.com\u002Fhow_to_integrate_mailgun_smtp_with_formester_smtp_credentials_6a1ed714a5.png","https:\u002F\u002Fformester-strapi.s3.ap-south-1.amazonaws.com\u002Ftest_credentails_01390efb4d.png","How To Integrate Mailgun SMTP With Formester? - By Formester","2022-12-19T11:20:02.681Z","how-to-integrate-mailgun-smtp-with-formester","utlBpket3-IwqdeM-8lXbv3_oHYDUjtk_2X1H4RE3To","**How to use MailGun SMTP Serve**\n\nMailgun's primary purpose is to provide transactional email services for developers. But, even non-technical people can easily use their service. We'll show you exactly how easy it is in the steps below!\n\n**Step 1:**  Visit [MailGun](https:\u002F\u002Fwww.mailgun.com\u002F \"MailGun\") and first sign up for a free account by clicking on Get Started\n\n![Visit MailGun site and click on get started on top-right corner](https:\u002F\u002Fformester-strapi.s3.ap-south-1.amazonaws.com\u002Fhow_to_integrate_mailgun_smtp_with_formester_home_page_eda2c5bd8c.png \"Visit MailGun site and click on get started on top-right corner\")\n\n**Step 2:**  Fill in the required details and signup\n\n![Fill in the details asked and click on create account](https:\u002F\u002Fformester-strapi.s3.ap-south-1.amazonaws.com\u002Fhow_to_integrate_mailgun_smtp_with_formester_signup_28f243655b.png \"Fill in the details asked and click on create account\")\n\n**Step 3:** Go to the overview section from sending option and select SMTP\n\n![Visit the overview section from sending menu and click on SMTP](https:\u002F\u002Fformester-strapi.s3.ap-south-1.amazonaws.com\u002Fhow_to_integrate_mailgun_smtp_with_formester_create_smtp_f21bb20234.png \"Visit the overview section from sending menu and click on  SMTP\")\n\n**Step 4:** Find your integration credentials here\n\n![You will find your credentials listed ](https:\u002F\u002Fformester-strapi.s3.ap-south-1.amazonaws.com\u002Fhow_to_integrate_mailgun_smtp_with_formester_smtp_credentials_92b5bcaef9.png \"You will find your credentials listed \")\n\n**Step 5:** Final step, check your integration credentials with [Formester](https:\u002F\u002Fapp.formester.com\u002Fusers\u002Fsign_in \"Formester\") to verify if it’s working or not,\n\n**Login to your account -> select a form -> Click on SMTP Integration from the top -> Click on Add Account**\n\n![Visit Formester's SMTP Integration section add a new account and test it](https:\u002F\u002Fformester-strapi.s3.ap-south-1.amazonaws.com\u002Ftest_credentails_1abb43131b.png \"Visit Formester's SMTP Integration section add a new account and test it\")\n\n```\nFill in the required fiels as mentioned below:\n* Name – Can be anything of your choice\n* SMTP server - smtp.mailgun.org\n* Port - 587  ( Some users may have different ports do checkout other ports as well 25\u002F465\u002F587\u002F2525)\n* Username – As mentioned in STEP 4\n* Password - As mentioned in STEP 4\n* From email – Your MailGun account\n```\n\nAdd your credentials and click on three dots at the end of the mail account and select the Test option. Wait for a few seconds for the result.\n",1200,630,{"text":31},"2 min read",[33,55,193,212],{"title":34,"author":35,"authorImage":8,"authorProfile":36,"coverImg":37,"coverImgAlt":38,"createdAt":39,"description":40,"featured":13,"jsonld":41,"keywords":42,"metaDescription":43,"metaImage":44,"metaTitle":45,"publishedAt":46,"slug":47,"updatedAt":48,"__hash__":49,"body":50,"id":51,"coverImgWidth":52,"coverImgHeight":29,"readingStats":53},"How to Make a Feedback Form in HTML (with Code, CSS, and a Backend)","Harish Kumar","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fharish-kumar2424\u002F","https:\u002F\u002Fformester-strapi.s3.ap-south-1.amazonaws.com\u002Fan_illustration_of_how_to_make_feedback_form_in_html_c6203dc935.png","an illustration of how to make feedback form in html","2024-06-27T06:19:40.031Z","Learn how to create a feedback form in HTML with easy steps. Set up an HTML document, add form fields, style with CSS, and add JavaScript for validation. Test your form and start collecting feedback.",[],"feedback forms, fillable freedback form, how to make feedback form in html, style feedback form with css, feedback form html code","Build a working feedback form in HTML with copy-paste code, CSS styling, JavaScript validation, accessibility, and a backend that stores submissions without a server.",[],"How to Make a Feedback Form in HTML (Code, CSS, Validation, Backend)","2026-05-17T04:46:01.940Z","how-to-make-feedback-form-in-html","2026-05-17T04:46:01.948Z","wyyctYTKwdEs6QGo1-xhuZdxYoLFow0lRYEcN7glo1g","![an illustration of how to make feedback form in html](https:\u002F\u002Fformester-strapi.s3.ap-south-1.amazonaws.com\u002Fan_illustration_of_how_to_make_feedback_form_in_html_c6203dc935.png)\n\n\u003Cstyle>\n\u002F* host-link-override *\u002F\n.fmstr-cmp-ffh-body a { text-decoration: none !important; }\n.fmstr-cmp-ffh-body {\n--c-bg-card: #ffffff;\n--c-bg-soft: #f9fafb;\n--c-fg-1: #101828; --c-fg-2: #475467; --c-fg-3: #697586;\n--c-violet-500: #7f56d9; --c-violet-600: #6941c6;\n--c-tint: #f7f3ff; --c-edge: #e4d7ff; --c-border: #eaecf0;\n--c-code-bg: #0f172a; --c-code-fg: #e2e8f0;\n--c-code-keyword: #a78bfa; --c-code-attr: #67e8f9; --c-code-string: #fcd34d; --c-code-comment: #64748b;\n--c-warn-bg: #fef3c7; --c-warn-fg: #92400e; --c-warn-edge: #fde68a;\n\nbackground: transparent; padding: 24px;\nfont-family: inherit;\ncolor: var(--c-fg-1);\n}\n.fmstr-cmp-ffh-body *, .fmstr-cmp-ffh-body *::before, .fmstr-cmp-ffh-body *::after { box-sizing: border-box; }\n.fmstr-cmp-ffh-body__container { max-width: 820px; margin: 0 auto; }\n\n.fmstr-cmp-ffh-body__intro p { font-size: 17px; line-height: 1.7; color: var(--c-fg-2); margin: 0 0 16px; }\n.fmstr-cmp-ffh-body__intro a { color: var(--c-violet-600) !important; text-decoration: none !important; font-weight: 500; }\n.fmstr-cmp-ffh-body__intro a:hover { text-decoration: underline !important; }\n.fmstr-cmp-ffh-body__intro code { background: var(--c-tint); color: var(--c-violet-600); padding: 2px 6px; border-radius: 4px; font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 14.5px; border: 1px solid var(--c-edge); }\n\n.fmstr-cmp-ffh-body__h2 {\nfont-size: 28px; font-weight: 700; line-height: 1.25; letter-spacing: -.02em;\nmargin: 40px 0 16px; color: var(--c-fg-1);\n}\n.fmstr-cmp-ffh-body__h3 {\nfont-size: 20px; font-weight: 700; line-height: 1.35; letter-spacing: -.01em;\nmargin: 28px 0 12px; color: var(--c-fg-1);\n}\n.fmstr-cmp-ffh-body p { font-size: 16px; line-height: 1.7; color: var(--c-fg-2); margin: 0 0 14px; }\n.fmstr-cmp-ffh-body p strong { color: var(--c-fg-1); }\n.fmstr-cmp-ffh-body a { color: var(--c-violet-600) !important; text-decoration: none !important; font-weight: 500; }\n.fmstr-cmp-ffh-body a:hover { text-decoration: underline !important; }\n.fmstr-cmp-ffh-body ul, .fmstr-cmp-ffh-body ol { margin: 0 0 16px; padding-left: 22px; }\n.fmstr-cmp-ffh-body li { font-size: 16px; line-height: 1.7; color: var(--c-fg-2); margin: 6px 0; }\n.fmstr-cmp-ffh-body li strong { color: var(--c-fg-1); }\n.fmstr-cmp-ffh-body code { background: var(--c-tint); color: var(--c-violet-600); padding: 2px 6px; border-radius: 4px; font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 14.5px; border: 1px solid var(--c-edge); }\n\n.fmstr-cmp-ffh-body__code {\nbackground: var(--c-code-bg); color: var(--c-code-fg);\nborder-radius: 12px; padding: 18px 20px; margin: 8px 0 18px;\noverflow-x: auto;\nfont-family: ui-monospace, Menlo, Consolas, monospace; font-size: 13.5px; line-height: 1.6;\n}\n.fmstr-cmp-ffh-body__code pre { margin: 0; }\n.fmstr-cmp-ffh-body__code code {\nbackground: transparent !important; color: inherit !important; padding: 0; border: 0;\nfont-family: inherit !important; font-size: inherit;\n}\n.fmstr-cmp-ffh-body__code .kw { color: var(--c-code-keyword); }\n.fmstr-cmp-ffh-body__code .at { color: var(--c-code-attr); }\n.fmstr-cmp-ffh-body__code .st { color: var(--c-code-string); }\n.fmstr-cmp-ffh-body__code .cm { color: var(--c-code-comment); font-style: italic; }\n.fmstr-cmp-ffh-body__code .lang { display: inline-block; font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; padding: 3px 10px; border-radius: 6px; background: rgba(255,255,255,.1); color: rgba(255,255,255,.7); margin: 0 0 12px; }\n\n.fmstr-cmp-ffh-body__note {\nmargin: 14px 0 18px; padding: 14px 18px;\nbackground: var(--c-bg-soft); border-left: 3px solid var(--c-violet-500);\nborder-radius: 8px; font-size: 15.5px; color: var(--c-fg-2); line-height: 1.6;\n}\n.fmstr-cmp-ffh-body__note strong { color: var(--c-fg-1); }\n.fmstr-cmp-ffh-body__note--warn { background: var(--c-warn-bg); border-left-color: var(--c-warn-fg); }\n.fmstr-cmp-ffh-body__note--warn strong { color: var(--c-warn-fg); }\n\n.fmstr-cmp-ffh-body__variants {\ndisplay: grid; grid-template-columns: 1fr; gap: 14px; margin: 12px 0 24px;\n}\n.fmstr-cmp-ffh-body__variant {\nbackground: var(--c-bg-card); border: 1px solid var(--c-border); border-radius: 14px;\npadding: 18px 22px;\n}\n.fmstr-cmp-ffh-body__variant h4 {\nfont-size: 16px; font-weight: 700; color: var(--c-fg-1);\nmargin: 0 0 8px; line-height: 1.35;\n}\n.fmstr-cmp-ffh-body__variant p { font-size: 15px; line-height: 1.65; color: var(--c-fg-2); margin: 0; }\n\n@media (max-width: 760px) {\n.fmstr-cmp-ffh-body { padding: 16px; }\n.fmstr-cmp-ffh-body__intro p, .fmstr-cmp-ffh-body p, .fmstr-cmp-ffh-body li { font-size: 15.5px; }\n.fmstr-cmp-ffh-body__h2 { font-size: 24px; margin-top: 32px; }\n.fmstr-cmp-ffh-body__h3 { font-size: 18.5px; }\n.fmstr-cmp-ffh-body__code { padding: 14px 16px; font-size: 12.5px; border-radius: 10px; }\n.fmstr-cmp-ffh-body__variant { padding: 16px 18px; }\n}\n\u003C\u002Fstyle>\n\n\u003Csection class=\"fmstr-cmp-ffh-body\" aria-label=\"How to make a feedback form in HTML\">\n\u003Cdiv class=\"fmstr-cmp-ffh-body__container\">\n\n\u003Cdiv class=\"fmstr-cmp-ffh-body__intro\">\n\u003Cp>A feedback form in HTML is twenty lines of markup, a bit of CSS, and one decision that trips up almost everyone: what happens after the user clicks Submit?\u003C\u002Fp>\n\u003Cp>This guide ships the full pattern. You'll get a working \u003Ccode>&lt;form&gt;\u003C\u002Fcode> with name, email, and message fields, CSS that styles it without a framework, JavaScript validation that doesn't break keyboard users, and three honest options for the backend, including one that needs zero server code. Paste the snippets in order, swap the action URL, and you have a live feedback form on your site in about ten minutes.\u003C\u002Fp>\n\u003Cp>If you want to skip the code entirely, \u003Ca href=\"https:\u002F\u002Fformester.com\u002Ffeatures\u002Fdrag-and-drop-form-builder\u002F\">Formester's drag-and-drop builder\u003C\u002Fa> ships a feedback form you can \u003Ca href=\"https:\u002F\u002Fformester.com\u002Ffeatures\u002Fembed-forms\u002F\">embed in any HTML page\u003C\u002Fa> with one snippet. Keep reading for the hand-coded path.\u003C\u002Fp>\n\u003C\u002Fdiv>\n\n\u003Ch2 class=\"fmstr-cmp-ffh-body__h2\">What a feedback form in HTML actually needs\u003C\u002Fh2>\n\u003Cp>Four pieces, in order:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>A \u003Ccode>&lt;form&gt;\u003C\u002Fcode> element\u003C\u002Fstrong> with the right \u003Ccode>action\u003C\u002Fcode> and \u003Ccode>method\u003C\u002Fcode> so the browser knows where to send data.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Labeled inputs\u003C\u002Fstrong> for the fields you care about (name, email, rating, message), with \u003Ccode>name\u003C\u002Fcode> attributes so the server can read them.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Validation\u003C\u002Fstrong> on the client (for user experience) and on the server (for trust).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>A backend\u003C\u002Fstrong> that receives the submission, stores it, and ideally notifies you. This is the part most tutorials skip; it's the part you need most.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Below, each piece is a separate step with a copy-paste block. The last step is a single complete file you can save as \u003Ccode>feedback.html\u003C\u002Fcode> and open in a browser.\u003C\u002Fp>\n\n\u003Ch2 class=\"fmstr-cmp-ffh-body__h2\">Step 1: Set up the HTML document\u003C\u002Fh2>\n\u003Cp>Save this as \u003Ccode>feedback.html\u003C\u002Fcode>. It's the shell every form goes inside.\u003C\u002Fp>\n\u003Cdiv class=\"fmstr-cmp-ffh-body__code\">\u003Cspan class=\"lang\">HTML\u003C\u002Fspan>\n\u003Cpre>\u003Ccode>&lt;!DOCTYPE html&gt;\n&lt;html lang=\"en\"&gt;\n&lt;head&gt;\n&#160;&#160;&lt;meta charset=\"UTF-8\"&gt;\n&#160;&#160;&lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"&gt;\n&#160;&#160;&lt;title&gt;Feedback Form&lt;\u002Ftitle&gt;\n&lt;\u002Fhead&gt;\n&lt;body&gt;\n&#160;&#160;&lt;h1&gt;Tell us what you think&lt;\u002Fh1&gt;\n&#160;&#160;&lt;!-- form goes here --&gt;\n&lt;\u002Fbody&gt;\n&lt;\u002Fhtml&gt;\u003C\u002Fcode>\u003C\u002Fpre>\n\u003C\u002Fdiv>\n\u003Cp>Two small things that matter later: \u003Ccode>lang=\"en\"\u003C\u002Fcode> helps screen readers pick the right voice, and the viewport meta tag makes the form usable on phones.\u003C\u002Fp>\n\n\u003Ch2 class=\"fmstr-cmp-ffh-body__h2\">Step 2: Add the form fields\u003C\u002Fh2>\n\u003Cp>Paste this inside \u003Ccode>&lt;body&gt;\u003C\u002Fcode>, where the comment says \"form goes here\":\u003C\u002Fp>\n\u003Cdiv class=\"fmstr-cmp-ffh-body__code\">\u003Cspan class=\"lang\">HTML\u003C\u002Fspan>\n\u003Cpre>\u003Ccode>&lt;form id=\"feedback-form\" action=\"\u002Fsubmit-feedback\" method=\"post\" novalidate&gt;\n&#160;&#160;&lt;div class=\"field\"&gt;\n&#160;&#160;&#160;&#160;&lt;label for=\"name\"&gt;Name&lt;\u002Flabel&gt;\n&#160;&#160;&#160;&#160;&lt;input type=\"text\" id=\"name\" name=\"name\" autocomplete=\"name\" required&gt;\n&#160;&#160;&lt;\u002Fdiv&gt;\n\n&#160;&#160;&lt;div class=\"field\"&gt;\n&#160;&#160;&#160;&#160;&lt;label for=\"email\"&gt;Email&lt;\u002Flabel&gt;\n&#160;&#160;&#160;&#160;&lt;input type=\"email\" id=\"email\" name=\"email\" autocomplete=\"email\" required&gt;\n&#160;&#160;&lt;\u002Fdiv&gt;\n\n&#160;&#160;&lt;div class=\"field\"&gt;\n&#160;&#160;&#160;&#160;&lt;label for=\"rating\"&gt;How was your experience?&lt;\u002Flabel&gt;\n&#160;&#160;&#160;&#160;&lt;select id=\"rating\" name=\"rating\" required&gt;\n&#160;&#160;&#160;&#160;&#160;&#160;&lt;option value=\"\"&gt;Pick one&lt;\u002Foption&gt;\n&#160;&#160;&#160;&#160;&#160;&#160;&lt;option value=\"5\"&gt;Loved it&lt;\u002Foption&gt;\n&#160;&#160;&#160;&#160;&#160;&#160;&lt;option value=\"4\"&gt;Good&lt;\u002Foption&gt;\n&#160;&#160;&#160;&#160;&#160;&#160;&lt;option value=\"3\"&gt;Okay&lt;\u002Foption&gt;\n&#160;&#160;&#160;&#160;&#160;&#160;&lt;option value=\"2\"&gt;Not great&lt;\u002Foption&gt;\n&#160;&#160;&#160;&#160;&#160;&#160;&lt;option value=\"1\"&gt;Bad&lt;\u002Foption&gt;\n&#160;&#160;&#160;&#160;&lt;\u002Fselect&gt;\n&#160;&#160;&lt;\u002Fdiv&gt;\n\n&#160;&#160;&lt;div class=\"field\"&gt;\n&#160;&#160;&#160;&#160;&lt;label for=\"message\"&gt;Your feedback&lt;\u002Flabel&gt;\n&#160;&#160;&#160;&#160;&lt;textarea id=\"message\" name=\"message\" rows=\"5\" required&gt;&lt;\u002Ftextarea&gt;\n&#160;&#160;&lt;\u002Fdiv&gt;\n\n&#160;&#160;&lt;button type=\"submit\"&gt;Send feedback&lt;\u002Fbutton&gt;\n&lt;\u002Fform&gt;\u003C\u002Fcode>\u003C\u002Fpre>\n\u003C\u002Fdiv>\n\u003Cp>Three details that beginners miss:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Every input has a matching \u003Ccode>&lt;label for&gt;\u003C\u002Fcode>.\u003C\u002Fstrong> Click the label, the input focuses. Screen readers read the label out loud. Skip this and the form fails accessibility and loses keyboard users.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ccode>name\u003C\u002Fcode> attributes are not cosmetic.\u003C\u002Fstrong> The server reads submissions by \u003Ccode>name\u003C\u002Fcode>, so \u003Ccode>name=\"email\"\u003C\u002Fcode> is what makes the email value reach your inbox. Missing \u003Ccode>name\u003C\u002Fcode> = silent data loss.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ccode>autocomplete=\"name\"\u003C\u002Fcode> and \u003Ccode>autocomplete=\"email\"\u003C\u002Fcode>\u003C\u002Fstrong> let browsers pre-fill from saved info. One line, measurable bump in completion.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cdiv class=\"fmstr-cmp-ffh-body__note\">\u003Cstrong>Note:\u003C\u002Fstrong> \u003Ccode>novalidate\u003C\u002Fcode> on the form tag turns off the browser's default error bubbles so you can show your own (covered in Step 4). Drop it if you want native validation only.\u003C\u002Fdiv>\n\n\u003Ch2 class=\"fmstr-cmp-ffh-body__h2\">Step 3: Style it with CSS\u003C\u002Fh2>\n\u003Cp>Paste this inside \u003Ccode>&lt;head&gt;\u003C\u002Fcode> between \u003Ccode>&lt;title&gt;\u003C\u002Fcode> and the closing \u003Ccode>&lt;\u002Fhead&gt;\u003C\u002Fcode>:\u003C\u002Fp>\n\u003Cdiv class=\"fmstr-cmp-ffh-body__code\">\u003Cspan class=\"lang\">CSS\u003C\u002Fspan>\n\u003Cpre>\u003Ccode>&lt;style&gt;\n&#160;&#160;body {\n&#160;&#160;&#160;&#160;font-family: system-ui, -apple-system, \"Segoe UI\", Roboto, sans-serif;\n&#160;&#160;&#160;&#160;background: #f7f7f9;\n&#160;&#160;&#160;&#160;margin: 0;\n&#160;&#160;&#160;&#160;padding: 40px 16px;\n&#160;&#160;&#160;&#160;color: #1a1a1a;\n&#160;&#160;}\n&#160;&#160;h1 { font-size: 1.5rem; margin: 0 0 24px; text-align: center; }\n&#160;&#160;form {\n&#160;&#160;&#160;&#160;max-width: 480px;\n&#160;&#160;&#160;&#160;margin: 0 auto;\n&#160;&#160;&#160;&#160;background: #fff;\n&#160;&#160;&#160;&#160;padding: 24px;\n&#160;&#160;&#160;&#160;border-radius: 12px;\n&#160;&#160;&#160;&#160;box-shadow: 0 2px 12px rgba(0,0,0,0.06);\n&#160;&#160;}\n&#160;&#160;.field { margin-bottom: 16px; }\n&#160;&#160;label {\n&#160;&#160;&#160;&#160;display: block;\n&#160;&#160;&#160;&#160;font-weight: 600;\n&#160;&#160;&#160;&#160;font-size: 0.9rem;\n&#160;&#160;&#160;&#160;margin-bottom: 6px;\n&#160;&#160;}\n&#160;&#160;input, select, textarea {\n&#160;&#160;&#160;&#160;width: 100%;\n&#160;&#160;&#160;&#160;box-sizing: border-box;\n&#160;&#160;&#160;&#160;padding: 10px 12px;\n&#160;&#160;&#160;&#160;font: inherit;\n&#160;&#160;&#160;&#160;border: 1px solid #d0d0d6;\n&#160;&#160;&#160;&#160;border-radius: 8px;\n&#160;&#160;&#160;&#160;background: #fff;\n&#160;&#160;}\n&#160;&#160;input:focus, select:focus, textarea:focus {\n&#160;&#160;&#160;&#160;outline: 2px solid #5b6cff;\n&#160;&#160;&#160;&#160;outline-offset: 1px;\n&#160;&#160;&#160;&#160;border-color: #5b6cff;\n&#160;&#160;}\n&#160;&#160;input[aria-invalid=\"true\"],\n&#160;&#160;select[aria-invalid=\"true\"],\n&#160;&#160;textarea[aria-invalid=\"true\"] {\n&#160;&#160;&#160;&#160;border-color: #d33;\n&#160;&#160;}\n&#160;&#160;.error {\n&#160;&#160;&#160;&#160;display: block;\n&#160;&#160;&#160;&#160;color: #d33;\n&#160;&#160;&#160;&#160;font-size: 0.8rem;\n&#160;&#160;&#160;&#160;margin-top: 4px;\n&#160;&#160;&#160;&#160;min-height: 1em;\n&#160;&#160;}\n&#160;&#160;button {\n&#160;&#160;&#160;&#160;width: 100%;\n&#160;&#160;&#160;&#160;padding: 12px;\n&#160;&#160;&#160;&#160;background: #5b6cff;\n&#160;&#160;&#160;&#160;color: #fff;\n&#160;&#160;&#160;&#160;font-weight: 600;\n&#160;&#160;&#160;&#160;border: none;\n&#160;&#160;&#160;&#160;border-radius: 8px;\n&#160;&#160;&#160;&#160;cursor: pointer;\n&#160;&#160;}\n&#160;&#160;button:hover { background: #4a59e0; }\n&lt;\u002Fstyle&gt;\u003C\u002Fcode>\u003C\u002Fpre>\n\u003C\u002Fdiv>\n\u003Cp>Two things this stylesheet does that the typical tutorial skips:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Keeps the focus outline visible. Default focus styles are ugly, so most tutorials remove them. Removing them breaks keyboard users. Replace, don't remove.\u003C\u002Fli>\n\u003Cli>Uses \u003Ccode>system-ui\u003C\u002Fcode> for fonts, so the form inherits the host site's native typography on macOS, Windows, iOS, and Android without shipping a font file.\u003C\u002Fli>\n\u003C\u002Ful>\n\n\u003Ch2 class=\"fmstr-cmp-ffh-body__h2\">Step 4: Add accessible JavaScript validation\u003C\u002Fh2>\n\u003Cp>The alert-on-submit pattern works but it's the worst possible UX. This version shows inline errors, marks invalid fields for screen readers with \u003Ccode>aria-invalid\u003C\u002Fcode>, and keeps focus where the user can fix the problem.\u003C\u002Fp>\n\u003Cp>Paste this right before \u003Ccode>&lt;\u002Fbody&gt;\u003C\u002Fcode>:\u003C\u002Fp>\n\u003Cdiv class=\"fmstr-cmp-ffh-body__code\">\u003Cspan class=\"lang\">JavaScript\u003C\u002Fspan>\n\u003Cpre>\u003Ccode>&lt;script&gt;\n&#160;&#160;const form = document.getElementById('feedback-form');\n\n&#160;&#160;function setError(input, message) {\n&#160;&#160;&#160;&#160;input.setAttribute('aria-invalid', 'true');\n&#160;&#160;&#160;&#160;let errorEl = input.parentElement.querySelector('.error');\n&#160;&#160;&#160;&#160;if (!errorEl) {\n&#160;&#160;&#160;&#160;&#160;&#160;errorEl = document.createElement('span');\n&#160;&#160;&#160;&#160;&#160;&#160;errorEl.className = 'error';\n&#160;&#160;&#160;&#160;&#160;&#160;errorEl.id = input.id + '-error';\n&#160;&#160;&#160;&#160;&#160;&#160;input.parentElement.appendChild(errorEl);\n&#160;&#160;&#160;&#160;}\n&#160;&#160;&#160;&#160;errorEl.textContent = message;\n&#160;&#160;&#160;&#160;input.setAttribute('aria-describedby', errorEl.id);\n&#160;&#160;}\n\n&#160;&#160;function clearError(input) {\n&#160;&#160;&#160;&#160;input.setAttribute('aria-invalid', 'false');\n&#160;&#160;&#160;&#160;const errorEl = input.parentElement.querySelector('.error');\n&#160;&#160;&#160;&#160;if (errorEl) errorEl.textContent = '';\n&#160;&#160;}\n\n&#160;&#160;form.addEventListener('submit', function (event) {\n&#160;&#160;&#160;&#160;let firstInvalid = null;\n\n&#160;&#160;&#160;&#160;[...form.querySelectorAll('input, select, textarea')].forEach((input) =&gt; {\n&#160;&#160;&#160;&#160;&#160;&#160;clearError(input);\n&#160;&#160;&#160;&#160;&#160;&#160;if (!input.value.trim()) {\n&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;setError(input, 'This field is required.');\n&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;firstInvalid = firstInvalid || input;\n&#160;&#160;&#160;&#160;&#160;&#160;} else if (input.type === 'email' &amp;&amp; !\u002F^\\S+@\\S+\\.\\S+$\u002F.test(input.value)) {\n&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;setError(input, 'Enter a valid email address.');\n&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;firstInvalid = firstInvalid || input;\n&#160;&#160;&#160;&#160;&#160;&#160;}\n&#160;&#160;&#160;&#160;});\n\n&#160;&#160;&#160;&#160;if (firstInvalid) {\n&#160;&#160;&#160;&#160;&#160;&#160;event.preventDefault();\n&#160;&#160;&#160;&#160;&#160;&#160;firstInvalid.focus();\n&#160;&#160;&#160;&#160;}\n&#160;&#160;});\n&lt;\u002Fscript&gt;\u003C\u002Fcode>\u003C\u002Fpre>\n\u003C\u002Fdiv>\n\u003Cp>What this does that the original snippet missed:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Sets \u003Ccode>aria-invalid=\"true\"\u003C\u002Fcode> and \u003Ccode>aria-describedby\u003C\u002Fcode> so screen readers announce the error.\u003C\u002Fli>\n\u003Cli>Inserts the error message next to the field, not in a modal.\u003C\u002Fli>\n\u003Cli>Focuses the first invalid field on failed submit, so a keyboard user lands exactly where they need to fix.\u003C\u002Fli>\n\u003Cli>Doesn't trust the email regex to be perfect (it isn't); always re-validate on the server.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cdiv class=\"fmstr-cmp-ffh-body__note\">\u003Cstrong>Rule of thumb:\u003C\u002Fstrong> client-side validation is for UX. Server-side validation is for trust. Do both.\u003C\u002Fdiv>\n\n\u003Ch2 class=\"fmstr-cmp-ffh-body__h2\">Step 5: Test the form locally\u003C\u002Fh2>\n\u003Cp>Open \u003Ccode>feedback.html\u003C\u002Fcode> in a browser. Run this checklist:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Tab through every field with the keyboard. Focus should be visible at every stop.\u003C\u002Fli>\n\u003Cli>Try to submit empty. You should see inline error messages, focus should jump to the first empty field.\u003C\u002Fli>\n\u003Cli>Type a malformed email. You should see \"Enter a valid email address.\"\u003C\u002Fli>\n\u003Cli>Open the browser's network tab, submit a valid form. You should see a POST to \u003Ccode>\u002Fsubmit-feedback\u003C\u002Fcode>. That request will currently 404 because you don't have a backend yet. Step 6 fixes that.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>If you want to skip the backend setup entirely, the next step shows the \u003Ca href=\"https:\u002F\u002Fformester.com\u002Ffeatures\u002Fhtml-form-backend\u002F\">Formester HTML form backend\u003C\u002Fa> path: change one \u003Ccode>action\u003C\u002Fcode> attribute and your form starts collecting submissions.\u003C\u002Fp>\n\n\u003Ch2 class=\"fmstr-cmp-ffh-body__h2\" id=\"step-6-backend\">Step 6: Wire up a backend that stores submissions\u003C\u002Fh2>\n\u003Cp>A feedback form without a backend is a dead form. The browser POSTs the data, the server returns 404, the user sees an error page, the feedback is gone. You have three real options, compared side-by-side below.\u003C\u002Fp>\n\n\u003C\u002Fdiv>\n\u003C\u002Fsection>\n\n\u003Cstyle>\n\u002F* host-link-override *\u002F\n.fmstr-cmp-ffh-back a { text-decoration: none !important; }\n.fmstr-cmp-ffh-back {\n--fmstr-cmp-ffh-back-bg-card: #ffffff;\n--fmstr-cmp-ffh-back-bg-code: #0f172a;\n--fmstr-cmp-ffh-back-fg-1: #101828;\n--fmstr-cmp-ffh-back-fg-2: #475467;\n--fmstr-cmp-ffh-back-fg-3: #697586;\n--fmstr-cmp-ffh-back-violet-500: #7f56d9;\n--fmstr-cmp-ffh-back-violet-600: #6941c6;\n--fmstr-cmp-ffh-back-tint: #f7f3ff;\n--fmstr-cmp-ffh-back-edge: #e4d7ff;\n--fmstr-cmp-ffh-back-border: #eaecf0;\n--fmstr-cmp-ffh-back-red: #dc2626;\n--fmstr-cmp-ffh-back-red-bg: #fef2f2;\n--fmstr-cmp-ffh-back-red-edge: #fecaca;\n--fmstr-cmp-ffh-back-amber: #d97706;\n--fmstr-cmp-ffh-back-amber-bg: #fffbeb;\n--fmstr-cmp-ffh-back-amber-edge: #fde68a;\n--fmstr-cmp-ffh-back-green: #15803d;\n--fmstr-cmp-ffh-back-green-bg: #f0fdf4;\n--fmstr-cmp-ffh-back-green-edge: #bbf7d0;\n--fmstr-cmp-ffh-back-code-fg: #e2e8f0;\n--fmstr-cmp-ffh-back-shadow: 0 4px 20px rgba(16,24,40,.06), 0 2px 6px rgba(16,24,40,.04);\n\nbackground: transparent; padding: 56px 24px;\nfont-family: inherit; color: var(--fmstr-cmp-ffh-back-fg-1);\n}\n.fmstr-cmp-ffh-back *, .fmstr-cmp-ffh-back *::before, .fmstr-cmp-ffh-back *::after { box-sizing: border-box; }\n.fmstr-cmp-ffh-back__container { max-width: 820px; margin: 0 auto; }\n.fmstr-cmp-ffh-back__head { margin: 0 0 28px; }\n.fmstr-cmp-ffh-back__eyebrow {\ndisplay: inline-block; padding: 5px 12px; border-radius: 9999px;\nbackground: var(--fmstr-cmp-ffh-back-tint); color: var(--fmstr-cmp-ffh-back-violet-600);\nfont-size: 12px; font-weight: 600; letter-spacing: .04em;\ntext-transform: uppercase; border: 1px solid var(--fmstr-cmp-ffh-back-edge); margin: 0 0 14px;\n}\n.fmstr-cmp-ffh-back__h2 { font-size: clamp(26px, 3vw, 36px); font-weight: 700; line-height: 1.15; letter-spacing: -.02em; margin: 0; }\n.fmstr-cmp-ffh-back__intro { color: var(--fmstr-cmp-ffh-back-fg-3); font-size: 17px; line-height: 1.6; margin: 14px 0 0; }\n\n.fmstr-cmp-ffh-back__grid { display: grid; grid-template-columns: 1fr; gap: 16px; }\n.fmstr-cmp-ffh-back__card {\nbackground: var(--fmstr-cmp-ffh-back-bg-card);\nborder: 1px solid var(--fmstr-cmp-ffh-back-border);\nborder-radius: 18px; padding: 24px 26px; display: flex; flex-direction: column; gap: 16px;\nbox-shadow: var(--fmstr-cmp-ffh-back-shadow); position: relative;\n}\n.fmstr-cmp-ffh-back__card--red { border-top: 4px solid var(--fmstr-cmp-ffh-back-red); }\n.fmstr-cmp-ffh-back__card--amber { border-top: 4px solid var(--fmstr-cmp-ffh-back-amber); }\n.fmstr-cmp-ffh-back__card--green { border-top: 4px solid var(--fmstr-cmp-ffh-back-violet-500); background: linear-gradient(180deg, #fdfbff 0%, #fff 60%); }\n\n.fmstr-cmp-ffh-back__verdict {\ndisplay: inline-flex; align-items: center; gap: 8px; align-self: flex-start;\npadding: 5px 12px; border-radius: 9999px; font-size: 11.5px; font-weight: 700;\nletter-spacing: .04em; text-transform: uppercase;\n}\n.fmstr-cmp-ffh-back__verdict--red { background: var(--fmstr-cmp-ffh-back-red-bg); color: var(--fmstr-cmp-ffh-back-red); border: 1px solid var(--fmstr-cmp-ffh-back-red-edge); }\n.fmstr-cmp-ffh-back__verdict--amber { background: var(--fmstr-cmp-ffh-back-amber-bg); color: var(--fmstr-cmp-ffh-back-amber); border: 1px solid var(--fmstr-cmp-ffh-back-amber-edge); }\n.fmstr-cmp-ffh-back__verdict--green { background: var(--fmstr-cmp-ffh-back-tint); color: var(--fmstr-cmp-ffh-back-violet-600); border: 1px solid var(--fmstr-cmp-ffh-back-edge); }\n\n.fmstr-cmp-ffh-back__name { font-size: 19px; font-weight: 700; margin: 0; letter-spacing: -.01em; color: var(--fmstr-cmp-ffh-back-fg-1); }\n.fmstr-cmp-ffh-back__sub { font-size: 13.5px; color: var(--fmstr-cmp-ffh-back-fg-3); margin: -8px 0 0; line-height: 1.5; }\n\n.fmstr-cmp-ffh-back__code {\nbackground: var(--fmstr-cmp-ffh-back-bg-code);\nborder-radius: 10px; padding: 14px 16px;\nfont-family: ui-monospace, Menlo, Monaco, monospace;\nfont-size: 12px; line-height: 1.55;\ncolor: var(--fmstr-cmp-ffh-back-code-fg);\noverflow-x: auto; margin: 0; white-space: pre;\n}\n.fmstr-cmp-ffh-back__code code { font-family: inherit; }\n.fmstr-cmp-ffh-back__code .t { color: #f472b6; }\n.fmstr-cmp-ffh-back__code .a { color: #a5b4fc; }\n.fmstr-cmp-ffh-back__code .s { color: #86efac; }\n.fmstr-cmp-ffh-back__code .c { color: #64748b; font-style: italic; }\n\n.fmstr-cmp-ffh-back__list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 8px; }\n.fmstr-cmp-ffh-back__row { display: flex; gap: 10px; font-size: 14px; line-height: 1.5; color: var(--fmstr-cmp-ffh-back-fg-2); }\n.fmstr-cmp-ffh-back__row::before {\ncontent: \"\"; width: 16px; height: 16px; border-radius: 50%; flex-shrink: 0; margin-top: 3px;\nbackground-repeat: no-repeat; background-position: center;\n}\n.fmstr-cmp-ffh-back__row--bad::before { background-color: var(--fmstr-cmp-ffh-back-red-bg); background-image: url(\"data:image\u002Fsvg+xml,%3Csvg xmlns='http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg' width='10' height='10' viewBox='0 0 10 10' fill='none' stroke='%23dc2626' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M2 2 L8 8 M8 2 L2 8'\u002F%3E%3C\u002Fsvg%3E\"); }\n.fmstr-cmp-ffh-back__row--meh::before { background-color: var(--fmstr-cmp-ffh-back-amber-bg); background-image: url(\"data:image\u002Fsvg+xml,%3Csvg xmlns='http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg' width='10' height='10' viewBox='0 0 10 10' fill='none' stroke='%23d97706' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M2 5 L8 5'\u002F%3E%3C\u002Fsvg%3E\"); }\n.fmstr-cmp-ffh-back__row--good::before { background-color: var(--fmstr-cmp-ffh-back-green-bg); background-image: url(\"data:image\u002Fsvg+xml,%3Csvg xmlns='http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg' width='10' height='10' viewBox='0 0 10 10' fill='none' stroke='%2315803d' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 5 L4 7 L8 3'\u002F%3E%3C\u002Fsvg%3E\"); }\n.fmstr-cmp-ffh-back__row strong { color: var(--fmstr-cmp-ffh-back-fg-1); font-weight: 600; }\n\n.fmstr-cmp-ffh-back__cta {\nmargin-top: auto; padding-top: 4px;\ndisplay: inline-flex; align-items: center; gap: 8px;\ncolor: var(--fmstr-cmp-ffh-back-violet-600) !important;\nfont-weight: 600; font-size: 14.5px;\ntext-decoration: none !important;\n}\n.fmstr-cmp-ffh-back__cta:hover { text-decoration: underline !important; }\n\n@media (max-width: 760px) {\n.fmstr-cmp-ffh-back { padding: 40px 16px; }\n.fmstr-cmp-ffh-back__card { padding: 22px; }\n.fmstr-cmp-ffh-back__intro { font-size: 15.5px; }\n.fmstr-cmp-ffh-back__code { font-size: 11.5px; padding: 12px 14px; }\n}\n\u003C\u002Fstyle>\n\n\u003Csection class=\"fmstr-cmp-ffh-back\" aria-labelledby=\"fmstr-cmp-ffh-back-h2\">\n\u003Cdiv class=\"fmstr-cmp-ffh-back__container\">\n\u003Cdiv class=\"fmstr-cmp-ffh-back__head\">\n\u003Cspan class=\"fmstr-cmp-ffh-back__eyebrow\">Three honest paths\u003C\u002Fspan>\n\u003Ch2 class=\"fmstr-cmp-ffh-back__h2\" id=\"fmstr-cmp-ffh-back-h2\">What happens after the user clicks Submit\u003C\u002Fh2>\n\u003Cp class=\"fmstr-cmp-ffh-back__intro\">Without a backend, a feedback form is a dead form. The browser POSTs the data, the server returns 404, the user sees an error page. Here are the three real options, ranked by how much pain each one ships with.\u003C\u002Fp>\n\u003C\u002Fdiv>\n\n\u003Cdiv class=\"fmstr-cmp-ffh-back__grid\">\n\n\u003Carticle class=\"fmstr-cmp-ffh-back__card fmstr-cmp-ffh-back__card--red\">\n\u003Cspan class=\"fmstr-cmp-ffh-back__verdict fmstr-cmp-ffh-back__verdict--red\">Don&rsquo;t ship this\u003C\u002Fspan>\n\u003Ch3 class=\"fmstr-cmp-ffh-back__name\">Path 1: \u003Ccode>mailto:\u003C\u002Fcode>\u003C\u002Fh3>\n\u003Cp class=\"fmstr-cmp-ffh-back__sub\">The \"no server\" hack that loses about half your submissions.\u003C\u002Fp>\n\u003Cpre class=\"fmstr-cmp-ffh-back__code\">\u003Ccode>\u003Cspan class=\"c\">&lt;!-- Opens the user's mail client --&gt;\u003C\u002Fspan>\n\u003Cspan class=\"t\">&lt;form\u003C\u002Fspan>\n\u003Cspan class=\"a\">action\u003C\u002Fspan>=\u003Cspan class=\"s\">\"mailto:you@example.com\"\u003C\u002Fspan>\n\u003Cspan class=\"a\">method\u003C\u002Fspan>=\u003Cspan class=\"s\">\"post\"\u003C\u002Fspan>\n\u003Cspan class=\"a\">enctype\u003C\u002Fspan>=\u003Cspan class=\"s\">\"text\u002Fplain\"\u003C\u002Fspan>\u003Cspan class=\"t\">&gt;\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cul class=\"fmstr-cmp-ffh-back__list\">\n\u003Cli class=\"fmstr-cmp-ffh-back__row fmstr-cmp-ffh-back__row--bad\">\u003Cspan>\u003Cstrong>User-action required.\u003C\u002Fstrong> Browser opens a draft email. They have to click Send manually. Half won&rsquo;t.\u003C\u002Fspan>\u003C\u002Fli>\n\u003Cli class=\"fmstr-cmp-ffh-back__row fmstr-cmp-ffh-back__row--bad\">\u003Cspan>\u003Cstrong>Breaks on mobile.\u003C\u002Fstrong> Many phones have no configured mail client.\u003C\u002Fspan>\u003C\u002Fli>\n\u003Cli class=\"fmstr-cmp-ffh-back__row fmstr-cmp-ffh-back__row--bad\">\u003Cspan>\u003Cstrong>Spam-filter bait.\u003C\u002Fstrong> Resulting messages are unsigned and easy to flag.\u003C\u002Fspan>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Farticle>\n\n\u003Carticle class=\"fmstr-cmp-ffh-back__card fmstr-cmp-ffh-back__card--amber\">\n\u003Cspan class=\"fmstr-cmp-ffh-back__verdict fmstr-cmp-ffh-back__verdict--amber\">You&rsquo;ll maintain it\u003C\u002Fspan>\n\u003Ch3 class=\"fmstr-cmp-ffh-back__name\">Path 2: Your own server\u003C\u002Fh3>\n\u003Cp class=\"fmstr-cmp-ffh-back__sub\">PHP, Node, or whatever you already run. Full control, full ownership.\u003C\u002Fp>\n\u003Cpre class=\"fmstr-cmp-ffh-back__code\">\u003Ccode>\u003Cspan class=\"c\">\u002F\u002F minimal Node\u002FExpress receiver\u003C\u002Fspan>\napp.\u003Cspan class=\"t\">post\u003C\u002Fspan>(\u003Cspan class=\"s\">'\u002Fsubmit-feedback'\u003C\u002Fspan>, (req, res) =&gt; {\n\u003Cspan class=\"t\">const\u003C\u002Fspan> { name, email, message } = req.body;\n\u003Cspan class=\"t\">if\u003C\u002Fspan> (!validate(email)) \u003Cspan class=\"t\">return\u003C\u002Fspan> res.\u003Cspan class=\"t\">status\u003C\u002Fspan>(400);\ndb.\u003Cspan class=\"t\">insert\u003C\u002Fspan>({ name, email, message });\nres.\u003Cspan class=\"t\">redirect\u003C\u002Fspan>(\u003Cspan class=\"s\">'\u002Fthank-you'\u003C\u002Fspan>);\n});\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cul class=\"fmstr-cmp-ffh-back__list\">\n\u003Cli class=\"fmstr-cmp-ffh-back__row fmstr-cmp-ffh-back__row--meh\">\u003Cspan>\u003Cstrong>You own the server.\u003C\u002Fstrong> Hosting, TLS, scaling, uptime monitoring are yours.\u003C\u002Fspan>\u003C\u002Fli>\n\u003Cli class=\"fmstr-cmp-ffh-back__row fmstr-cmp-ffh-back__row--meh\">\u003Cspan>\u003Cstrong>Spam protection is on you.\u003C\u002Fstrong> Honeypot, rate limiting, CAPTCHA, all DIY.\u003C\u002Fspan>\u003C\u002Fli>\n\u003Cli class=\"fmstr-cmp-ffh-back__row fmstr-cmp-ffh-back__row--good\">\u003Cspan>\u003Cstrong>Maximum control.\u003C\u002Fstrong> Custom logic, database, queues, webhooks however you want.\u003C\u002Fspan>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Farticle>\n\n\u003Carticle class=\"fmstr-cmp-ffh-back__card fmstr-cmp-ffh-back__card--green\">\n\u003Cspan class=\"fmstr-cmp-ffh-back__verdict fmstr-cmp-ffh-back__verdict--green\">Skip the server\u003C\u002Fspan>\n\u003Ch3 class=\"fmstr-cmp-ffh-back__name\">Path 3: Formester HTML form backend\u003C\u002Fh3>\n\u003Cp class=\"fmstr-cmp-ffh-back__sub\">One \u003Ccode>action\u003C\u002Fcode> attribute swap. No server code, no infra.\u003C\u002Fp>\n\u003Cpre class=\"fmstr-cmp-ffh-back__code\">\u003Ccode>\u003Cspan class=\"c\">&lt;!-- The only change vs. Path 2 --&gt;\u003C\u002Fspan>\n\u003Cspan class=\"t\">&lt;form\u003C\u002Fspan>\n\u003Cspan class=\"a\">action\u003C\u002Fspan>=\u003Cspan class=\"s\">\"https:\u002F\u002Fapp.formester.com\u002F\u003C\u002Fspan>\n\u003Cspan class=\"s\">    api\u002Fv1\u002Fforms\u002FYOUR_ID\u002Fsubmissions\"\u003C\u002Fspan>\n\u003Cspan class=\"a\">method\u003C\u002Fspan>=\u003Cspan class=\"s\">\"post\"\u003C\u002Fspan>\u003Cspan class=\"t\">&gt;\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cul class=\"fmstr-cmp-ffh-back__list\">\n\u003Cli class=\"fmstr-cmp-ffh-back__row fmstr-cmp-ffh-back__row--good\">\u003Cspan>\u003Cstrong>Submissions land in the dashboard.\u003C\u002Fstrong> View, filter, \u003Ca href=\"https:\u002F\u002Fformester.com\u002Ffeatures\u002Fexport-form-submission-pdf\u002F\">export to PDF\u003C\u002Fa>, push to Sheets\u002FSlack\u002FHubSpot.\u003C\u002Fspan>\u003C\u002Fli>\n\u003Cli class=\"fmstr-cmp-ffh-back__row fmstr-cmp-ffh-back__row--good\">\u003Cspan>\u003Cstrong>Spam protection built in.\u003C\u002Fstrong> Honeypot plus \u003Ca href=\"https:\u002F\u002Fformester.com\u002Ffeatures\u002Fspam-protection\u002F\">reCAPTCHA-style checks\u003C\u002Fa> on every submission.\u003C\u002Fspan>\u003C\u002Fli>\n\u003Cli class=\"fmstr-cmp-ffh-back__row fmstr-cmp-ffh-back__row--good\">\u003Cspan>\u003Cstrong>Free with unlimited submissions.\u003C\u002Fstrong> Email notifications, dashboard, integrations included. Used by 56,000+ teams.\u003C\u002Fspan>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ca class=\"fmstr-cmp-ffh-back__cta\" href=\"https:\u002F\u002Fformester.com\u002Ffeatures\u002Fhtml-form-backend\u002F\">See the HTML form backend &rarr;\u003C\u002Fa>\n\u003C\u002Farticle>\n\n\u003C\u002Fdiv>\n\u003C\u002Fdiv>\n\u003C\u002Fsection>\n\n\u003Cstyle>\n\u002F* host-link-override *\u002F\n.fmstr-cmp-ffh-code a { text-decoration: none !important; }\n.fmstr-cmp-ffh-code {\n--fmstr-cmp-ffh-code-bg-card: #ffffff;\n--fmstr-cmp-ffh-code-bg-code: #0f172a;\n--fmstr-cmp-ffh-code-bg-preview: #f7f7f9;\n--fmstr-cmp-ffh-code-fg-1: #101828;\n--fmstr-cmp-ffh-code-fg-2: #475467;\n--fmstr-cmp-ffh-code-fg-3: #697586;\n--fmstr-cmp-ffh-code-violet-500: #7f56d9;\n--fmstr-cmp-ffh-code-violet-600: #6941c6;\n--fmstr-cmp-ffh-code-tint: #f7f3ff;\n--fmstr-cmp-ffh-code-edge: #e4d7ff;\n--fmstr-cmp-ffh-code-border: #eaecf0;\n--fmstr-cmp-ffh-code-code-fg: #e2e8f0;\n--fmstr-cmp-ffh-code-code-tag: #f472b6;\n--fmstr-cmp-ffh-code-code-attr: #a5b4fc;\n--fmstr-cmp-ffh-code-code-str: #86efac;\n--fmstr-cmp-ffh-code-code-comment: #64748b;\n--fmstr-cmp-ffh-code-shadow: 0 4px 20px rgba(16,24,40,.06), 0 2px 6px rgba(16,24,40,.04);\n\nbackground: transparent; padding: 56px 24px;\nfont-family: inherit; color: var(--fmstr-cmp-ffh-code-fg-1);\n}\n.fmstr-cmp-ffh-code *, .fmstr-cmp-ffh-code *::before, .fmstr-cmp-ffh-code *::after { box-sizing: border-box; }\n.fmstr-cmp-ffh-code__container { max-width: 820px; margin: 0 auto; }\n.fmstr-cmp-ffh-code__head { max-width: 780px; margin: 0 0 32px; }\n.fmstr-cmp-ffh-code__eyebrow {\ndisplay: inline-block; padding: 5px 12px; border-radius: 9999px;\nbackground: var(--fmstr-cmp-ffh-code-tint); color: var(--fmstr-cmp-ffh-code-violet-600);\nfont-size: 12px; font-weight: 600; letter-spacing: .04em;\ntext-transform: uppercase; border: 1px solid var(--fmstr-cmp-ffh-code-edge); margin: 0 0 14px;\n}\n.fmstr-cmp-ffh-code__h2 { font-size: clamp(26px, 3vw, 36px); font-weight: 700; line-height: 1.15; letter-spacing: -.02em; margin: 0; }\n.fmstr-cmp-ffh-code__intro { color: var(--fmstr-cmp-ffh-code-fg-3); font-size: 17px; line-height: 1.6; margin: 14px 0 0; }\n\n.fmstr-cmp-ffh-code__grid {\ndisplay: grid; grid-template-columns: 1fr; gap: 0;\nbackground: var(--fmstr-cmp-ffh-code-bg-card);\nborder: 1px solid var(--fmstr-cmp-ffh-code-border);\nborder-radius: 20px; overflow: hidden;\nbox-shadow: var(--fmstr-cmp-ffh-code-shadow);\n}\n\n.fmstr-cmp-ffh-code__preview-pane {\nbackground: var(--fmstr-cmp-ffh-code-bg-preview);\npadding: 28px 24px;\ndisplay: flex; flex-direction: column; gap: 14px;\nborder-bottom: 1px solid var(--fmstr-cmp-ffh-code-border);\n}\n.fmstr-cmp-ffh-code__preview-label {\nfont-size: 11px; font-weight: 700; letter-spacing: .08em;\ntext-transform: uppercase; color: var(--fmstr-cmp-ffh-code-fg-3);\ndisplay: flex; align-items: center; gap: 8px;\n}\n.fmstr-cmp-ffh-code__preview-label::before {\ncontent: \"\"; width: 8px; height: 8px; border-radius: 50%;\nbackground: #22c55e; flex-shrink: 0;\n}\n.fmstr-cmp-ffh-code__preview-form {\nbackground: #fff; padding: 22px 20px; border-radius: 12px;\nbox-shadow: 0 2px 12px rgba(0,0,0,0.06);\ndisplay: flex; flex-direction: column; gap: 14px;\n}\n.fmstr-cmp-ffh-code__preview-h { font-size: 16px; font-weight: 700; text-align: center; margin: 0 0 4px; color: var(--fmstr-cmp-ffh-code-fg-1); }\n.fmstr-cmp-ffh-code__preview-field { display: flex; flex-direction: column; gap: 6px; }\n.fmstr-cmp-ffh-code__preview-label-row { font-size: 12.5px; font-weight: 600; color: var(--fmstr-cmp-ffh-code-fg-1); }\n.fmstr-cmp-ffh-code__preview-input {\nbackground: #fff; border: 1px solid #d0d0d6; border-radius: 8px;\npadding: 9px 11px; font-size: 12.5px; color: var(--fmstr-cmp-ffh-code-fg-3);\n}\n.fmstr-cmp-ffh-code__preview-input--focus { outline: 2px solid var(--fmstr-cmp-ffh-code-violet-500); outline-offset: 1px; border-color: var(--fmstr-cmp-ffh-code-violet-500); color: var(--fmstr-cmp-ffh-code-fg-1); }\n.fmstr-cmp-ffh-code__preview-select {\nbackground: #fff; border: 1px solid #d0d0d6; border-radius: 8px;\npadding: 9px 11px; font-size: 12.5px; color: var(--fmstr-cmp-ffh-code-fg-3);\ndisplay: flex; justify-content: space-between; align-items: center;\n}\n.fmstr-cmp-ffh-code__preview-textarea {\nbackground: #fff; border: 1px solid #d0d0d6; border-radius: 8px;\npadding: 9px 11px; font-size: 12.5px; color: var(--fmstr-cmp-ffh-code-fg-3);\nmin-height: 54px;\n}\n.fmstr-cmp-ffh-code__preview-btn {\nbackground: var(--fmstr-cmp-ffh-code-violet-500); color: #fff;\npadding: 10px; border-radius: 8px; text-align: center;\nfont-weight: 600; font-size: 13px; margin-top: 4px;\n}\n.fmstr-cmp-ffh-code__preview-caption {\nfont-size: 12px; color: var(--fmstr-cmp-ffh-code-fg-3); line-height: 1.5; margin: 4px 0 0;\n}\n\n.fmstr-cmp-ffh-code__code-pane {\nbackground: var(--fmstr-cmp-ffh-code-bg-code);\nposition: relative; max-height: 560px;\ndisplay: flex; flex-direction: column;\n}\n.fmstr-cmp-ffh-code__code-header {\ndisplay: flex; align-items: center; justify-content: space-between;\npadding: 14px 18px; border-bottom: 1px solid rgba(255,255,255,0.08);\ncolor: var(--fmstr-cmp-ffh-code-code-comment);\nfont-family: ui-monospace, Menlo, Monaco, monospace; font-size: 12px;\n}\n.fmstr-cmp-ffh-code__code-filename { display: flex; align-items: center; gap: 8px; }\n.fmstr-cmp-ffh-code__code-filename::before {\ncontent: \"\"; width: 10px; height: 10px; border-radius: 50%; background: #f87171;\nbox-shadow: 16px 0 0 #fbbf24, 32px 0 0 #34d399;\nmargin-right: 12px;\n}\n.fmstr-cmp-ffh-code__code-copy {\nbackground: rgba(127, 86, 217, 0.18) !important;\ncolor: #c4b5fd !important; border: 1px solid rgba(127, 86, 217, 0.4);\npadding: 6px 14px; border-radius: 6px; font-size: 12px; font-weight: 600;\ncursor: pointer; font-family: ui-monospace, Menlo, Monaco, monospace;\ndisplay: inline-flex; align-items: center; gap: 6px;\n}\n.fmstr-cmp-ffh-code__code-copy:hover { background: rgba(127, 86, 217, 0.28) !important; }\n.fmstr-cmp-ffh-code__code-body {\nmargin: 0; padding: 18px 20px;\nfont-family: ui-monospace, Menlo, Monaco, monospace;\nfont-size: 12.5px; line-height: 1.65;\ncolor: var(--fmstr-cmp-ffh-code-code-fg);\noverflow: auto; flex-grow: 1;\nwhite-space: pre;\nscrollbar-width: thin; scrollbar-color: rgba(167,139,250,.35) transparent;\n}\n.fmstr-cmp-ffh-code__code-body::-webkit-scrollbar { width: 10px; height: 10px; }\n.fmstr-cmp-ffh-code__code-body::-webkit-scrollbar-track { background: transparent; }\n.fmstr-cmp-ffh-code__code-body::-webkit-scrollbar-thumb { background: rgba(167,139,250,.3); border-radius: 5px; }\n.fmstr-cmp-ffh-code__code-body::-webkit-scrollbar-thumb:hover { background: rgba(167,139,250,.5); }\n.fmstr-cmp-ffh-code__code-body code { font-family: inherit; }\n.fmstr-cmp-ffh-code__tag { color: var(--fmstr-cmp-ffh-code-code-tag); }\n.fmstr-cmp-ffh-code__attr { color: var(--fmstr-cmp-ffh-code-code-attr); }\n.fmstr-cmp-ffh-code__str { color: var(--fmstr-cmp-ffh-code-code-str); }\n.fmstr-cmp-ffh-code__cmt { color: var(--fmstr-cmp-ffh-code-code-comment); font-style: italic; }\n\n.fmstr-cmp-ffh-code__foot {\nmargin: 20px auto 0; max-width: 780px; text-align: center;\ncolor: var(--fmstr-cmp-ffh-code-fg-3); font-size: 14.5px; line-height: 1.6;\n}\n.fmstr-cmp-ffh-code__foot a { color: var(--fmstr-cmp-ffh-code-violet-600) !important; font-weight: 600; }\n.fmstr-cmp-ffh-code__foot a:hover { text-decoration: underline !important; }\n\n@media (max-width: 760px) {\n.fmstr-cmp-ffh-code { padding: 40px 16px; }\n.fmstr-cmp-ffh-code__grid { border-radius: 16px; }\n.fmstr-cmp-ffh-code__preview-pane { padding: 22px 18px; }\n.fmstr-cmp-ffh-code__code-pane { max-height: 420px; }\n.fmstr-cmp-ffh-code__code-body { font-size: 11.5px; padding: 14px 16px; }\n.fmstr-cmp-ffh-code__intro { font-size: 15.5px; }\n}\n\u003C\u002Fstyle>\n\n\u003Csection class=\"fmstr-cmp-ffh-code\" aria-labelledby=\"fmstr-cmp-ffh-code-h2\">\n\u003Cdiv class=\"fmstr-cmp-ffh-code__container\">\n\u003Cdiv class=\"fmstr-cmp-ffh-code__head\">\n\u003Cspan class=\"fmstr-cmp-ffh-code__eyebrow\">Copy, paste, ship\u003C\u002Fspan>\n\u003Ch2 class=\"fmstr-cmp-ffh-code__h2\" id=\"fmstr-cmp-ffh-code-h2\">The complete feedback form, in one file\u003C\u002Fh2>\n\u003Cp class=\"fmstr-cmp-ffh-code__intro\">Structure, styling, and accessible JavaScript validation in a single working file. Save as \u003Ccode>feedback.html\u003C\u002Fcode>, swap the \u003Ccode>action\u003C\u002Fcode> URL, and the form is live.\u003C\u002Fp>\n\u003C\u002Fdiv>\n\n\u003Cdiv class=\"fmstr-cmp-ffh-code__grid\">\n\u003Cdiv class=\"fmstr-cmp-ffh-code__preview-pane\">\n\u003Cdiv class=\"fmstr-cmp-ffh-code__preview-label\">Live preview\u003C\u002Fdiv>\n\u003Cdiv class=\"fmstr-cmp-ffh-code__preview-form\">\n\u003Ch3 class=\"fmstr-cmp-ffh-code__preview-h\">Tell us what you think\u003C\u002Fh3>\n\u003Cdiv class=\"fmstr-cmp-ffh-code__preview-field\">\n\u003Cspan class=\"fmstr-cmp-ffh-code__preview-label-row\">Name\u003C\u002Fspan>\n\u003Cdiv class=\"fmstr-cmp-ffh-code__preview-input\">Jane Doe\u003C\u002Fdiv>\n\u003C\u002Fdiv>\n\u003Cdiv class=\"fmstr-cmp-ffh-code__preview-field\">\n\u003Cspan class=\"fmstr-cmp-ffh-code__preview-label-row\">Email\u003C\u002Fspan>\n\u003Cdiv class=\"fmstr-cmp-ffh-code__preview-input fmstr-cmp-ffh-code__preview-input--focus\">jane@example.com\u003C\u002Fdiv>\n\u003C\u002Fdiv>\n\u003Cdiv class=\"fmstr-cmp-ffh-code__preview-field\">\n\u003Cspan class=\"fmstr-cmp-ffh-code__preview-label-row\">How was your experience?\u003C\u002Fspan>\n\u003Cdiv class=\"fmstr-cmp-ffh-code__preview-select\">\u003Cspan>Loved it\u003C\u002Fspan>\u003Cspan>&#9662;\u003C\u002Fspan>\u003C\u002Fdiv>\n\u003C\u002Fdiv>\n\u003Cdiv class=\"fmstr-cmp-ffh-code__preview-field\">\n\u003Cspan class=\"fmstr-cmp-ffh-code__preview-label-row\">Your feedback\u003C\u002Fspan>\n\u003Cdiv class=\"fmstr-cmp-ffh-code__preview-textarea\">The dashboard is fast and the export to PDF saved my week.\u003C\u002Fdiv>\n\u003C\u002Fdiv>\n\u003Cdiv class=\"fmstr-cmp-ffh-code__preview-btn\">Send feedback\u003C\u002Fdiv>\n\u003C\u002Fdiv>\n\u003Cp class=\"fmstr-cmp-ffh-code__preview-caption\">Rendered output. Keyboard-accessible focus ring on the active field, inline error slot ready, mobile-friendly layout.\u003C\u002Fp>\n\u003C\u002Fdiv>\n\n\u003Cdiv class=\"fmstr-cmp-ffh-code__code-pane\">\n\u003Cdiv class=\"fmstr-cmp-ffh-code__code-header\">\n\u003Cspan class=\"fmstr-cmp-ffh-code__code-filename\">feedback.html\u003C\u002Fspan>\n\u003Cbutton type=\"button\" class=\"fmstr-cmp-ffh-code__code-copy\" aria-label=\"Copy code\">Copy\u003C\u002Fbutton>\n\u003C\u002Fdiv>\n\u003Cpre class=\"fmstr-cmp-ffh-code__code-body\">\u003Ccode>\u003Cspan class=\"fmstr-cmp-ffh-code__cmt\">&lt;!DOCTYPE html&gt;\u003C\u002Fspan>\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;html\u003C\u002Fspan> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">lang\u003C\u002Fspan>=\u003Cspan class=\"fmstr-cmp-ffh-code__str\">\"en\"\u003C\u002Fspan>\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&gt;\u003C\u002Fspan>\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;head&gt;\u003C\u002Fspan>\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;meta\u003C\u002Fspan> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">charset\u003C\u002Fspan>=\u003Cspan class=\"fmstr-cmp-ffh-code__str\">\"UTF-8\"\u003C\u002Fspan>\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&gt;\u003C\u002Fspan>\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;meta\u003C\u002Fspan> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">name\u003C\u002Fspan>=\u003Cspan class=\"fmstr-cmp-ffh-code__str\">\"viewport\"\u003C\u002Fspan> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">content\u003C\u002Fspan>=\u003Cspan class=\"fmstr-cmp-ffh-code__str\">\"width=device-width, initial-scale=1.0\"\u003C\u002Fspan>\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&gt;\u003C\u002Fspan>\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;title&gt;\u003C\u002Fspan>Feedback Form\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;\u002Ftitle&gt;\u003C\u002Fspan>\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;style&gt;\u003C\u002Fspan>\nbody { font-family: system-ui, sans-serif; background: #f7f7f9; padding: 40px 16px; }\nform { max-width: 480px; margin: 0 auto; background: #fff; padding: 24px; border-radius: 12px; }\n.field { margin-bottom: 16px; }\nlabel { display: block; font-weight: 600; margin-bottom: 6px; }\ninput, select, textarea { width: 100%; padding: 10px 12px; border: 1px solid #d0d0d6; border-radius: 8px; box-sizing: border-box; }\ninput:focus, select:focus, textarea:focus { outline: 2px solid #5b6cff; border-color: #5b6cff; }\n[aria-invalid=\"true\"] { border-color: #d33; }\n.error { display: block; color: #d33; font-size: 0.8rem; margin-top: 4px; }\nbutton { width: 100%; padding: 12px; background: #5b6cff; color: #fff; font-weight: 600; border: none; border-radius: 8px; cursor: pointer; }\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;\u002Fstyle&gt;\u003C\u002Fspan>\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;\u002Fhead&gt;\u003C\u002Fspan>\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;body&gt;\u003C\u002Fspan>\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;h1&gt;\u003C\u002Fspan>Tell us what you think\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;\u002Fh1&gt;\u003C\u002Fspan>\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;form\u003C\u002Fspan> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">id\u003C\u002Fspan>=\u003Cspan class=\"fmstr-cmp-ffh-code__str\">\"feedback-form\"\u003C\u002Fspan> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">action\u003C\u002Fspan>=\u003Cspan class=\"fmstr-cmp-ffh-code__str\">\"https:\u002F\u002Fapp.formester.com\u002Fapi\u002Fv1\u002Fforms\u002FYOUR_FORM_ID\u002Fsubmissions\"\u003C\u002Fspan> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">method\u003C\u002Fspan>=\u003Cspan class=\"fmstr-cmp-ffh-code__str\">\"post\"\u003C\u002Fspan> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">novalidate\u003C\u002Fspan>\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&gt;\u003C\u002Fspan>\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;div\u003C\u002Fspan> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">class\u003C\u002Fspan>=\u003Cspan class=\"fmstr-cmp-ffh-code__str\">\"field\"\u003C\u002Fspan>\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&gt;\u003C\u002Fspan>\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;label\u003C\u002Fspan> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">for\u003C\u002Fspan>=\u003Cspan class=\"fmstr-cmp-ffh-code__str\">\"name\"\u003C\u002Fspan>\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&gt;\u003C\u002Fspan>Name\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;\u002Flabel&gt;\u003C\u002Fspan>\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;input\u003C\u002Fspan> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">type\u003C\u002Fspan>=\u003Cspan class=\"fmstr-cmp-ffh-code__str\">\"text\"\u003C\u002Fspan> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">id\u003C\u002Fspan>=\u003Cspan class=\"fmstr-cmp-ffh-code__str\">\"name\"\u003C\u002Fspan> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">name\u003C\u002Fspan>=\u003Cspan class=\"fmstr-cmp-ffh-code__str\">\"name\"\u003C\u002Fspan> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">autocomplete\u003C\u002Fspan>=\u003Cspan class=\"fmstr-cmp-ffh-code__str\">\"name\"\u003C\u002Fspan> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">required\u003C\u002Fspan>\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&gt;\u003C\u002Fspan>\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;\u002Fdiv&gt;\u003C\u002Fspan>\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;div\u003C\u002Fspan> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">class\u003C\u002Fspan>=\u003Cspan class=\"fmstr-cmp-ffh-code__str\">\"field\"\u003C\u002Fspan>\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&gt;\u003C\u002Fspan>\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;label\u003C\u002Fspan> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">for\u003C\u002Fspan>=\u003Cspan class=\"fmstr-cmp-ffh-code__str\">\"email\"\u003C\u002Fspan>\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&gt;\u003C\u002Fspan>Email\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;\u002Flabel&gt;\u003C\u002Fspan>\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;input\u003C\u002Fspan> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">type\u003C\u002Fspan>=\u003Cspan class=\"fmstr-cmp-ffh-code__str\">\"email\"\u003C\u002Fspan> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">id\u003C\u002Fspan>=\u003Cspan class=\"fmstr-cmp-ffh-code__str\">\"email\"\u003C\u002Fspan> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">name\u003C\u002Fspan>=\u003Cspan class=\"fmstr-cmp-ffh-code__str\">\"email\"\u003C\u002Fspan> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">autocomplete\u003C\u002Fspan>=\u003Cspan class=\"fmstr-cmp-ffh-code__str\">\"email\"\u003C\u002Fspan> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">required\u003C\u002Fspan>\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&gt;\u003C\u002Fspan>\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;\u002Fdiv&gt;\u003C\u002Fspan>\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;div\u003C\u002Fspan> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">class\u003C\u002Fspan>=\u003Cspan class=\"fmstr-cmp-ffh-code__str\">\"field\"\u003C\u002Fspan>\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&gt;\u003C\u002Fspan>\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;label\u003C\u002Fspan> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">for\u003C\u002Fspan>=\u003Cspan class=\"fmstr-cmp-ffh-code__str\">\"rating\"\u003C\u002Fspan>\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&gt;\u003C\u002Fspan>How was your experience?\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;\u002Flabel&gt;\u003C\u002Fspan>\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;select\u003C\u002Fspan> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">id\u003C\u002Fspan>=\u003Cspan class=\"fmstr-cmp-ffh-code__str\">\"rating\"\u003C\u002Fspan> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">name\u003C\u002Fspan>=\u003Cspan class=\"fmstr-cmp-ffh-code__str\">\"rating\"\u003C\u002Fspan> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">required\u003C\u002Fspan>\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&gt;\u003C\u002Fspan>\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;option\u003C\u002Fspan> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">value\u003C\u002Fspan>=\u003Cspan class=\"fmstr-cmp-ffh-code__str\">\"\"\u003C\u002Fspan>\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&gt;\u003C\u002Fspan>Pick one\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;\u002Foption&gt;\u003C\u002Fspan>\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;option\u003C\u002Fspan> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">value\u003C\u002Fspan>=\u003Cspan class=\"fmstr-cmp-ffh-code__str\">\"5\"\u003C\u002Fspan>\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&gt;\u003C\u002Fspan>Loved it\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;\u002Foption&gt;\u003C\u002Fspan>\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;option\u003C\u002Fspan> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">value\u003C\u002Fspan>=\u003Cspan class=\"fmstr-cmp-ffh-code__str\">\"3\"\u003C\u002Fspan>\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&gt;\u003C\u002Fspan>Okay\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;\u002Foption&gt;\u003C\u002Fspan>\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;option\u003C\u002Fspan> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">value\u003C\u002Fspan>=\u003Cspan class=\"fmstr-cmp-ffh-code__str\">\"1\"\u003C\u002Fspan>\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&gt;\u003C\u002Fspan>Bad\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;\u002Foption&gt;\u003C\u002Fspan>\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;\u002Fselect&gt;\u003C\u002Fspan>\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;\u002Fdiv&gt;\u003C\u002Fspan>\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;div\u003C\u002Fspan> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">class\u003C\u002Fspan>=\u003Cspan class=\"fmstr-cmp-ffh-code__str\">\"field\"\u003C\u002Fspan>\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&gt;\u003C\u002Fspan>\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;label\u003C\u002Fspan> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">for\u003C\u002Fspan>=\u003Cspan class=\"fmstr-cmp-ffh-code__str\">\"message\"\u003C\u002Fspan>\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&gt;\u003C\u002Fspan>Your feedback\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;\u002Flabel&gt;\u003C\u002Fspan>\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;textarea\u003C\u002Fspan> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">id\u003C\u002Fspan>=\u003Cspan class=\"fmstr-cmp-ffh-code__str\">\"message\"\u003C\u002Fspan> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">name\u003C\u002Fspan>=\u003Cspan class=\"fmstr-cmp-ffh-code__str\">\"message\"\u003C\u002Fspan> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">rows\u003C\u002Fspan>=\u003Cspan class=\"fmstr-cmp-ffh-code__str\">\"5\"\u003C\u002Fspan> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">required\u003C\u002Fspan>\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&gt;&lt;\u002Ftextarea&gt;\u003C\u002Fspan>\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;\u002Fdiv&gt;\u003C\u002Fspan>\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;button\u003C\u002Fspan> \u003Cspan class=\"fmstr-cmp-ffh-code__attr\">type\u003C\u002Fspan>=\u003Cspan class=\"fmstr-cmp-ffh-code__str\">\"submit\"\u003C\u002Fspan>\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&gt;\u003C\u002Fspan>Send feedback\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;\u002Fbutton&gt;\u003C\u002Fspan>\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;\u002Fform&gt;\u003C\u002Fspan>\n\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;script&gt;\u003C\u002Fspan>\n\u003Cspan class=\"fmstr-cmp-ffh-code__cmt\">\u002F\u002F Accessible inline validation: aria-invalid, aria-describedby, focus management\u003C\u002Fspan>\nconst form = document.getElementById(\u003Cspan class=\"fmstr-cmp-ffh-code__str\">'feedback-form'\u003C\u002Fspan>);\nform.addEventListener(\u003Cspan class=\"fmstr-cmp-ffh-code__str\">'submit'\u003C\u002Fspan>, (e) =&gt; {\nlet firstInvalid = null;\n[...form.querySelectorAll(\u003Cspan class=\"fmstr-cmp-ffh-code__str\">'input, select, textarea'\u003C\u002Fspan>)].forEach((input) =&gt; {\nconst valid = input.value.trim() &amp;&amp; (input.type !== \u003Cspan class=\"fmstr-cmp-ffh-code__str\">'email'\u003C\u002Fspan> || \u002F^\\S+@\\S+\\.\\S+$\u002F.test(input.value));\ninput.setAttribute(\u003Cspan class=\"fmstr-cmp-ffh-code__str\">'aria-invalid'\u003C\u002Fspan>, valid ? \u003Cspan class=\"fmstr-cmp-ffh-code__str\">'false'\u003C\u002Fspan> : \u003Cspan class=\"fmstr-cmp-ffh-code__str\">'true'\u003C\u002Fspan>);\nif (!valid &amp;&amp; !firstInvalid) firstInvalid = input;\n});\nif (firstInvalid) { e.preventDefault(); firstInvalid.focus(); }\n});\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;\u002Fscript&gt;\u003C\u002Fspan>\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;\u002Fbody&gt;\u003C\u002Fspan>\n\u003Cspan class=\"fmstr-cmp-ffh-code__tag\">&lt;\u002Fhtml&gt;\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\u003C\u002Fdiv>\n\u003C\u002Fdiv>\n\n\u003Cp class=\"fmstr-cmp-ffh-code__foot\">The \u003Ccode>action\u003C\u002Fcode> URL above points to \u003Ca href=\"https:\u002F\u002Fformester.com\u002Ffeatures\u002Fhtml-form-backend\u002F\">Formester&rsquo;s HTML form backend\u003C\u002Fa>. Replace \u003Ccode>YOUR_FORM_ID\u003C\u002Fcode> with your form&rsquo;s ID, or point it at your own server. Everything else stays the same.\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003C\u002Fsection>\n\n\u003Csection class=\"fmstr-cmp-ffh-body\" aria-label=\"Common mistakes and variants\">\n\u003Cdiv class=\"fmstr-cmp-ffh-body__container\">\n\n\u003Ch2 class=\"fmstr-cmp-ffh-body__h2\">Common mistakes that break feedback forms\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>\u003Cstrong>\u003Ccode>mailto:\u003C\u002Fcode> as the action.\u003C\u002Fstrong> Looks like the easy answer. Drops half your submissions because the user has to manually send the draft. Use a real backend.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Missing \u003Ccode>name\u003C\u002Fcode> attributes.\u003C\u002Fstrong> The form POSTs successfully but the server gets empty fields. \u003Ccode>id\u003C\u002Fcode> is for CSS and labels; \u003Ccode>name\u003C\u002Fcode> is what the server reads.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Removed focus outlines.\u003C\u002Fstrong> \u003Ccode>outline: none\u003C\u002Fcode> is the most copy-pasted CSS mistake on the web. It breaks keyboard navigation. Replace the outline; don't delete it.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Client-side validation only.\u003C\u002Fstrong> A user with DevTools open can submit anything. Validate on the server too.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>No spam protection.\u003C\u002Fstrong> Public forms attract bots within hours. Add a honeypot field (a hidden input that bots fill and humans don't) or a CAPTCHA. \u003Ca href=\"https:\u002F\u002Fformester.com\u002Ffeatures\u002Fspam-protection\u002F\">Formester's backend\u003C\u002Fa> does this automatically.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>No confirmation page or message.\u003C\u002Fstrong> The user submits, the page reloads, nothing visibly changes. They submit again. Add a \u003Ccode>&lt;p role=\"status\"&gt;Thanks, we got it&lt;\u002Fp&gt;\u003C\u002Fcode> or redirect to a thank-you page.\u003C\u002Fli>\n\u003C\u002Ful>\n\n\u003Ch2 class=\"fmstr-cmp-ffh-body__h2\">Variants of the feedback form\u003C\u002Fh2>\n\u003Cp>The base form covers most cases. Three common variants:\u003C\u002Fp>\n\u003Cdiv class=\"fmstr-cmp-ffh-body__variants\">\n\u003Cdiv class=\"fmstr-cmp-ffh-body__variant\">\n\u003Ch4>Customer feedback (with rating)\u003C\u002Fh4>\n\u003Cp>Add a 1-5 star scale instead of the dropdown. The \u003Ccode>&lt;input type=\"range\"&gt;\u003C\u002Fcode> works, but a row of radio buttons styled as stars is clearer for screen readers. The \u003Ca href=\"https:\u002F\u002Fformester.com\u002Ftemplates\u002Fcustomer-feedback-form-31840\u002F\">customer feedback form template\u003C\u002Fa> ships this layout pre-built.\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003Cdiv class=\"fmstr-cmp-ffh-body__variant\">\n\u003Ch4>Product feedback (with feature picker)\u003C\u002Fh4>\n\u003Cp>Add a checkbox group: \"Which features did you use?\" with options like Onboarding, Search, Reporting. Use \u003Ccode>&lt;fieldset&gt;&lt;legend&gt;\u003C\u002Fcode> around the group so screen readers announce it as one question. The \u003Ca href=\"https:\u002F\u002Fformester.com\u002Ftemplates\u002Fcategories\u002Ffeedback-forms\u002F\">feedback form templates library\u003C\u002Fa> has a fuller version.\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003Cdiv class=\"fmstr-cmp-ffh-body__variant\">\n\u003Ch4>Employee feedback (anonymous)\u003C\u002Fh4>\n\u003Cp>Drop the name and email fields entirely. Add a \"Department\" dropdown and a longer text area. If you collect this through Formester, turn off IP tracking in the form settings to keep submissions genuinely anonymous. The \u003Ca href=\"https:\u002F\u002Fformester.com\u002Ftemplates\u002Fcategories\u002Ffeedback-forms\u002F\">employee feedback templates\u003C\u002Fa> are preconfigured for this.\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003C\u002Fdiv>\n\n\u003C\u002Fdiv>\n\u003C\u002Fsection>\n\n\u003Cstyle>\n\u002F* host-link-override *\u002F\n.fmstr-cmp-ffh-a11y a { text-decoration: none !important; }\n.fmstr-cmp-ffh-a11y {\n--fmstr-cmp-ffh-a11y-bg-card: #ffffff;\n--fmstr-cmp-ffh-a11y-bg-code: #0f172a;\n--fmstr-cmp-ffh-a11y-fg-1: #101828;\n--fmstr-cmp-ffh-a11y-fg-2: #475467;\n--fmstr-cmp-ffh-a11y-fg-3: #697586;\n--fmstr-cmp-ffh-a11y-violet-500: #7f56d9;\n--fmstr-cmp-ffh-a11y-violet-600: #6941c6;\n--fmstr-cmp-ffh-a11y-tint: #f7f3ff;\n--fmstr-cmp-ffh-a11y-edge: #e4d7ff;\n--fmstr-cmp-ffh-a11y-border: #eaecf0;\n--fmstr-cmp-ffh-a11y-red-bg: #fef2f2;\n--fmstr-cmp-ffh-a11y-red-edge: #fecaca;\n--fmstr-cmp-ffh-a11y-red: #b91c1c;\n--fmstr-cmp-ffh-a11y-green-bg: #f0fdf4;\n--fmstr-cmp-ffh-a11y-green-edge: #bbf7d0;\n--fmstr-cmp-ffh-a11y-green: #15803d;\n--fmstr-cmp-ffh-a11y-shadow: 0 4px 20px rgba(16,24,40,.06), 0 2px 6px rgba(16,24,40,.04);\n\nbackground: transparent; padding: 56px 24px;\nfont-family: inherit; color: var(--fmstr-cmp-ffh-a11y-fg-1);\n}\n.fmstr-cmp-ffh-a11y *, .fmstr-cmp-ffh-a11y *::before, .fmstr-cmp-ffh-a11y *::after { box-sizing: border-box; }\n.fmstr-cmp-ffh-a11y__container { max-width: 820px; margin: 0 auto; }\n.fmstr-cmp-ffh-a11y__head { margin: 0 0 28px; }\n.fmstr-cmp-ffh-a11y__eyebrow {\ndisplay: inline-block; padding: 5px 12px; border-radius: 9999px;\nbackground: var(--fmstr-cmp-ffh-a11y-tint); color: var(--fmstr-cmp-ffh-a11y-violet-600);\nfont-size: 12px; font-weight: 600; letter-spacing: .04em;\ntext-transform: uppercase; border: 1px solid var(--fmstr-cmp-ffh-a11y-edge); margin: 0 0 14px;\n}\n.fmstr-cmp-ffh-a11y__h2 { font-size: clamp(26px, 3vw, 36px); font-weight: 700; line-height: 1.15; letter-spacing: -.02em; margin: 0; }\n.fmstr-cmp-ffh-a11y__intro { color: var(--fmstr-cmp-ffh-a11y-fg-3); font-size: 17px; line-height: 1.6; margin: 14px 0 0; }\n\n.fmstr-cmp-ffh-a11y__list { display: flex; flex-direction: column; gap: 16px; }\n.fmstr-cmp-ffh-a11y__item {\nbackground: var(--fmstr-cmp-ffh-a11y-bg-card);\nborder: 1px solid var(--fmstr-cmp-ffh-a11y-border);\nborder-radius: 16px; padding: 22px 24px;\ndisplay: grid; grid-template-columns: 44px 1fr 1fr; gap: 20px; align-items: start;\nbox-shadow: var(--fmstr-cmp-ffh-a11y-shadow);\n}\n.fmstr-cmp-ffh-a11y__num {\nwidth: 36px; height: 36px; border-radius: 10px;\nbackground: var(--fmstr-cmp-ffh-a11y-tint);\ncolor: var(--fmstr-cmp-ffh-a11y-violet-600);\ndisplay: grid; place-items: center;\nfont-weight: 700; font-size: 15px;\nborder: 1px solid var(--fmstr-cmp-ffh-a11y-edge);\n}\n\n.fmstr-cmp-ffh-a11y__copy h3 {\nfont-size: 17px; font-weight: 600; letter-spacing: -.01em;\ncolor: var(--fmstr-cmp-ffh-a11y-fg-1); margin: 0 0 6px;\n}\n.fmstr-cmp-ffh-a11y__copy p { color: var(--fmstr-cmp-ffh-a11y-fg-2); font-size: 14.5px; line-height: 1.6; margin: 0; }\n.fmstr-cmp-ffh-a11y__copy strong { color: var(--fmstr-cmp-ffh-a11y-fg-1); font-weight: 600; }\n\n.fmstr-cmp-ffh-a11y__pair { display: flex; flex-direction: column; gap: 10px; }\n.fmstr-cmp-ffh-a11y__codebox {\nbackground: var(--fmstr-cmp-ffh-a11y-bg-code);\nborder-radius: 8px; padding: 10px 12px;\nfont-family: ui-monospace, Menlo, Monaco, monospace;\nfont-size: 11.5px; line-height: 1.55;\ncolor: #e2e8f0; overflow-x: auto; margin: 0;\nwhite-space: pre; position: relative; padding-left: 50px;\n}\n.fmstr-cmp-ffh-a11y__codebox code { font-family: inherit; }\n.fmstr-cmp-ffh-a11y__codebox::before {\ncontent: \"\"; position: absolute; left: 10px; top: 11px;\nwidth: 14px; height: 14px; border-radius: 50%;\nbackground-repeat: no-repeat; background-position: center;\n}\n.fmstr-cmp-ffh-a11y__codebox--bad::before { background-color: var(--fmstr-cmp-ffh-a11y-red-bg); background-image: url(\"data:image\u002Fsvg+xml,%3Csvg xmlns='http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg' width='8' height='8' viewBox='0 0 8 8' fill='none' stroke='%23b91c1c' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M1.5 1.5 L6.5 6.5 M6.5 1.5 L1.5 6.5'\u002F%3E%3C\u002Fsvg%3E\"); }\n.fmstr-cmp-ffh-a11y__codebox--good::before { background-color: var(--fmstr-cmp-ffh-a11y-green-bg); background-image: url(\"data:image\u002Fsvg+xml,%3Csvg xmlns='http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg' width='9' height='9' viewBox='0 0 9 9' fill='none' stroke='%2315803d' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1.5 4.5 L3.5 6.5 L7 3'\u002F%3E%3C\u002Fsvg%3E\"); }\n.fmstr-cmp-ffh-a11y__codebox-label {\nposition: absolute; top: 11px; left: 28px;\nfont-size: 9px; font-weight: 700; letter-spacing: .08em;\ntext-transform: uppercase;\n}\n.fmstr-cmp-ffh-a11y__codebox--bad .fmstr-cmp-ffh-a11y__codebox-label { color: var(--fmstr-cmp-ffh-a11y-red); }\n.fmstr-cmp-ffh-a11y__codebox--good .fmstr-cmp-ffh-a11y__codebox-label { color: var(--fmstr-cmp-ffh-a11y-green); }\n\n.fmstr-cmp-ffh-a11y__codebox .t { color: #f472b6; }\n.fmstr-cmp-ffh-a11y__codebox .a { color: #a5b4fc; }\n.fmstr-cmp-ffh-a11y__codebox .s { color: #86efac; }\n\n.fmstr-cmp-ffh-a11y__foot {\nmargin: 28px auto 0; max-width: 760px; text-align: center;\ncolor: var(--fmstr-cmp-ffh-a11y-fg-3); font-size: 14.5px; line-height: 1.6;\n}\n.fmstr-cmp-ffh-a11y__foot a { color: var(--fmstr-cmp-ffh-a11y-violet-600) !important; font-weight: 600; }\n.fmstr-cmp-ffh-a11y__foot a:hover { text-decoration: underline !important; }\n\n@media (max-width: 880px) {\n.fmstr-cmp-ffh-a11y__item { grid-template-columns: 36px 1fr; gap: 16px; }\n.fmstr-cmp-ffh-a11y__pair { grid-column: 1 \u002F -1; }\n}\n@media (max-width: 760px) {\n.fmstr-cmp-ffh-a11y { padding: 40px 16px; }\n.fmstr-cmp-ffh-a11y__item { padding: 18px; border-radius: 14px; }\n.fmstr-cmp-ffh-a11y__intro { font-size: 15.5px; }\n.fmstr-cmp-ffh-a11y__codebox { font-size: 11px; }\n}\n\u003C\u002Fstyle>\n\n\u003Csection class=\"fmstr-cmp-ffh-a11y\" aria-labelledby=\"fmstr-cmp-ffh-a11y-h2\">\n\u003Cdiv class=\"fmstr-cmp-ffh-a11y__container\">\n\u003Cdiv class=\"fmstr-cmp-ffh-a11y__head\">\n\u003Cspan class=\"fmstr-cmp-ffh-a11y__eyebrow\">Five flags worth catching\u003C\u002Fspan>\n\u003Ch2 class=\"fmstr-cmp-ffh-a11y__h2\" id=\"fmstr-cmp-ffh-a11y-h2\">Accessibility checklist for an HTML feedback form\u003C\u002Fh2>\n\u003Cp class=\"fmstr-cmp-ffh-a11y__intro\">Every item below is something keyboard and screen-reader users actually hit. Skip these and a measurable chunk of your audience can&rsquo;t complete the form.\u003C\u002Fp>\n\u003C\u002Fdiv>\n\n\u003Cdiv class=\"fmstr-cmp-ffh-a11y__list\">\n\n\u003Carticle class=\"fmstr-cmp-ffh-a11y__item\">\n\u003Cdiv class=\"fmstr-cmp-ffh-a11y__num\">1\u003C\u002Fdiv>\n\u003Cdiv class=\"fmstr-cmp-ffh-a11y__copy\">\n\u003Ch3>Pair every label with its input\u003C\u002Fh3>\n\u003Cp>The label&rsquo;s \u003Ccode>for\u003C\u002Fcode> must match the input&rsquo;s \u003Ccode>id\u003C\u002Fcode>. Click the label, focus the input. Screen readers announce the label out loud. Skip this and the form fails WCAG 2.1 and loses keyboard users.\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003Cdiv class=\"fmstr-cmp-ffh-a11y__pair\">\n\u003Cpre class=\"fmstr-cmp-ffh-a11y__codebox fmstr-cmp-ffh-a11y__codebox--bad\">\u003Cspan class=\"fmstr-cmp-ffh-a11y__codebox-label\">No\u003C\u002Fspan>\u003Ccode>\u003Cspan class=\"t\">&lt;label&gt;\u003C\u002Fspan>Email\u003Cspan class=\"t\">&lt;\u002Flabel&gt;\u003C\u002Fspan>\n\u003Cspan class=\"t\">&lt;input\u003C\u002Fspan> \u003Cspan class=\"a\">type\u003C\u002Fspan>=\u003Cspan class=\"s\">\"email\"\u003C\u002Fspan>\u003Cspan class=\"t\">&gt;\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cpre class=\"fmstr-cmp-ffh-a11y__codebox fmstr-cmp-ffh-a11y__codebox--good\">\u003Cspan class=\"fmstr-cmp-ffh-a11y__codebox-label\">Yes\u003C\u002Fspan>\u003Ccode>\u003Cspan class=\"t\">&lt;label\u003C\u002Fspan> \u003Cspan class=\"a\">for\u003C\u002Fspan>=\u003Cspan class=\"s\">\"email\"\u003C\u002Fspan>\u003Cspan class=\"t\">&gt;\u003C\u002Fspan>Email\u003Cspan class=\"t\">&lt;\u002Flabel&gt;\u003C\u002Fspan>\n\u003Cspan class=\"t\">&lt;input\u003C\u002Fspan> \u003Cspan class=\"a\">id\u003C\u002Fspan>=\u003Cspan class=\"s\">\"email\"\u003C\u002Fspan> \u003Cspan class=\"a\">type\u003C\u002Fspan>=\u003Cspan class=\"s\">\"email\"\u003C\u002Fspan>\u003Cspan class=\"t\">&gt;\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\u003C\u002Fdiv>\n\u003C\u002Farticle>\n\n\u003Carticle class=\"fmstr-cmp-ffh-a11y__item\">\n\u003Cdiv class=\"fmstr-cmp-ffh-a11y__num\">2\u003C\u002Fdiv>\n\u003Cdiv class=\"fmstr-cmp-ffh-a11y__copy\">\n\u003Ch3>Connect errors with \u003Ccode>aria-describedby\u003C\u002Fcode>\u003C\u002Fh3>\n\u003Cp>An invalid field needs \u003Ccode>aria-invalid=\"true\"\u003C\u002Fcode> plus an \u003Ccode>aria-describedby\u003C\u002Fcode> that points at the visible error message. Screen readers then announce the error along with the field name on focus.\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003Cdiv class=\"fmstr-cmp-ffh-a11y__pair\">\n\u003Cpre class=\"fmstr-cmp-ffh-a11y__codebox fmstr-cmp-ffh-a11y__codebox--bad\">\u003Cspan class=\"fmstr-cmp-ffh-a11y__codebox-label\">No\u003C\u002Fspan>\u003Ccode>\u003Cspan class=\"t\">&lt;input\u003C\u002Fspan> \u003Cspan class=\"a\">id\u003C\u002Fspan>=\u003Cspan class=\"s\">\"email\"\u003C\u002Fspan>\u003Cspan class=\"t\">&gt;\u003C\u002Fspan>\n\u003Cspan class=\"t\">&lt;span&gt;\u003C\u002Fspan>Invalid email\u003Cspan class=\"t\">&lt;\u002Fspan&gt;\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cpre class=\"fmstr-cmp-ffh-a11y__codebox fmstr-cmp-ffh-a11y__codebox--good\">\u003Cspan class=\"fmstr-cmp-ffh-a11y__codebox-label\">Yes\u003C\u002Fspan>\u003Ccode>\u003Cspan class=\"t\">&lt;input\u003C\u002Fspan> \u003Cspan class=\"a\">id\u003C\u002Fspan>=\u003Cspan class=\"s\">\"email\"\u003C\u002Fspan>\n\u003Cspan class=\"a\">aria-invalid\u003C\u002Fspan>=\u003Cspan class=\"s\">\"true\"\u003C\u002Fspan>\n\u003Cspan class=\"a\">aria-describedby\u003C\u002Fspan>=\u003Cspan class=\"s\">\"email-error\"\u003C\u002Fspan>\u003Cspan class=\"t\">&gt;\u003C\u002Fspan>\n\u003Cspan class=\"t\">&lt;span\u003C\u002Fspan> \u003Cspan class=\"a\">id\u003C\u002Fspan>=\u003Cspan class=\"s\">\"email-error\"\u003C\u002Fspan>\u003Cspan class=\"t\">&gt;\u003C\u002Fspan>Invalid email\u003Cspan class=\"t\">&lt;\u002Fspan&gt;\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\u003C\u002Fdiv>\n\u003C\u002Farticle>\n\n\u003Carticle class=\"fmstr-cmp-ffh-a11y__item\">\n\u003Cdiv class=\"fmstr-cmp-ffh-a11y__num\">3\u003C\u002Fdiv>\n\u003Cdiv class=\"fmstr-cmp-ffh-a11y__copy\">\n\u003Ch3>Use \u003Ccode>autocomplete\u003C\u002Fcode> tokens\u003C\u002Fh3>\n\u003Cp>One line per field. Browsers prefill from saved info, password managers behave, and assistive tech recognizes the field&rsquo;s purpose. Measurable lift in completion rate on mobile.\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003Cdiv class=\"fmstr-cmp-ffh-a11y__pair\">\n\u003Cpre class=\"fmstr-cmp-ffh-a11y__codebox fmstr-cmp-ffh-a11y__codebox--bad\">\u003Cspan class=\"fmstr-cmp-ffh-a11y__codebox-label\">No\u003C\u002Fspan>\u003Ccode>\u003Cspan class=\"t\">&lt;input\u003C\u002Fspan> \u003Cspan class=\"a\">type\u003C\u002Fspan>=\u003Cspan class=\"s\">\"text\"\u003C\u002Fspan> \u003Cspan class=\"a\">name\u003C\u002Fspan>=\u003Cspan class=\"s\">\"name\"\u003C\u002Fspan>\u003Cspan class=\"t\">&gt;\u003C\u002Fspan>\n\u003Cspan class=\"t\">&lt;input\u003C\u002Fspan> \u003Cspan class=\"a\">type\u003C\u002Fspan>=\u003Cspan class=\"s\">\"email\"\u003C\u002Fspan> \u003Cspan class=\"a\">name\u003C\u002Fspan>=\u003Cspan class=\"s\">\"email\"\u003C\u002Fspan>\u003Cspan class=\"t\">&gt;\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cpre class=\"fmstr-cmp-ffh-a11y__codebox fmstr-cmp-ffh-a11y__codebox--good\">\u003Cspan class=\"fmstr-cmp-ffh-a11y__codebox-label\">Yes\u003C\u002Fspan>\u003Ccode>\u003Cspan class=\"t\">&lt;input\u003C\u002Fspan> \u003Cspan class=\"a\">type\u003C\u002Fspan>=\u003Cspan class=\"s\">\"text\"\u003C\u002Fspan> \u003Cspan class=\"a\">name\u003C\u002Fspan>=\u003Cspan class=\"s\">\"name\"\u003C\u002Fspan>\n\u003Cspan class=\"a\">autocomplete\u003C\u002Fspan>=\u003Cspan class=\"s\">\"name\"\u003C\u002Fspan>\u003Cspan class=\"t\">&gt;\u003C\u002Fspan>\n\u003Cspan class=\"t\">&lt;input\u003C\u002Fspan> \u003Cspan class=\"a\">type\u003C\u002Fspan>=\u003Cspan class=\"s\">\"email\"\u003C\u002Fspan> \u003Cspan class=\"a\">name\u003C\u002Fspan>=\u003Cspan class=\"s\">\"email\"\u003C\u002Fspan>\n\u003Cspan class=\"a\">autocomplete\u003C\u002Fspan>=\u003Cspan class=\"s\">\"email\"\u003C\u002Fspan>\u003Cspan class=\"t\">&gt;\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\u003C\u002Fdiv>\n\u003C\u002Farticle>\n\n\u003Carticle class=\"fmstr-cmp-ffh-a11y__item\">\n\u003Cdiv class=\"fmstr-cmp-ffh-a11y__num\">4\u003C\u002Fdiv>\n\u003Cdiv class=\"fmstr-cmp-ffh-a11y__copy\">\n\u003Ch3>Keep focus outlines visible\u003C\u002Fh3>\n\u003Cp>\u003Ccode>outline: none\u003C\u002Fcode> is the single most-copied CSS mistake on the web. It breaks keyboard navigation. Replace the default outline, never delete it. The visible ring is how a sighted keyboard user knows where they are.\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003Cdiv class=\"fmstr-cmp-ffh-a11y__pair\">\n\u003Cpre class=\"fmstr-cmp-ffh-a11y__codebox fmstr-cmp-ffh-a11y__codebox--bad\">\u003Cspan class=\"fmstr-cmp-ffh-a11y__codebox-label\">No\u003C\u002Fspan>\u003Ccode>input:focus { outline: none; }\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cpre class=\"fmstr-cmp-ffh-a11y__codebox fmstr-cmp-ffh-a11y__codebox--good\">\u003Cspan class=\"fmstr-cmp-ffh-a11y__codebox-label\">Yes\u003C\u002Fspan>\u003Ccode>input:focus {\noutline: 2px solid #5b6cff;\noutline-offset: 1px;\n}\u003C\u002Fcode>\u003C\u002Fpre>\n\u003C\u002Fdiv>\n\u003C\u002Farticle>\n\n\u003Carticle class=\"fmstr-cmp-ffh-a11y__item\">\n\u003Cdiv class=\"fmstr-cmp-ffh-a11y__num\">5\u003C\u002Fdiv>\n\u003Cdiv class=\"fmstr-cmp-ffh-a11y__copy\">\n\u003Ch3>Mark required fields semantically\u003C\u002Fh3>\n\u003Cp>The native \u003Ccode>required\u003C\u002Fcode> attribute does two jobs at once: it tells the browser to block submission and tells screen readers the field is required. Don&rsquo;t fake it with just a red asterisk in the label.\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003Cdiv class=\"fmstr-cmp-ffh-a11y__pair\">\n\u003Cpre class=\"fmstr-cmp-ffh-a11y__codebox fmstr-cmp-ffh-a11y__codebox--bad\">\u003Cspan class=\"fmstr-cmp-ffh-a11y__codebox-label\">No\u003C\u002Fspan>\u003Ccode>\u003Cspan class=\"t\">&lt;label&gt;\u003C\u002Fspan>Email \u003Cspan class=\"t\">&lt;span&gt;\u003C\u002Fspan>*\u003Cspan class=\"t\">&lt;\u002Fspan&gt;&lt;\u002Flabel&gt;\u003C\u002Fspan>\n\u003Cspan class=\"t\">&lt;input\u003C\u002Fspan> \u003Cspan class=\"a\">type\u003C\u002Fspan>=\u003Cspan class=\"s\">\"email\"\u003C\u002Fspan>\u003Cspan class=\"t\">&gt;\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cpre class=\"fmstr-cmp-ffh-a11y__codebox fmstr-cmp-ffh-a11y__codebox--good\">\u003Cspan class=\"fmstr-cmp-ffh-a11y__codebox-label\">Yes\u003C\u002Fspan>\u003Ccode>\u003Cspan class=\"t\">&lt;label\u003C\u002Fspan> \u003Cspan class=\"a\">for\u003C\u002Fspan>=\u003Cspan class=\"s\">\"email\"\u003C\u002Fspan>\u003Cspan class=\"t\">&gt;\u003C\u002Fspan>Email (required)\u003Cspan class=\"t\">&lt;\u002Flabel&gt;\u003C\u002Fspan>\n\u003Cspan class=\"t\">&lt;input\u003C\u002Fspan> \u003Cspan class=\"a\">id\u003C\u002Fspan>=\u003Cspan class=\"s\">\"email\"\u003C\u002Fspan> \u003Cspan class=\"a\">type\u003C\u002Fspan>=\u003Cspan class=\"s\">\"email\"\u003C\u002Fspan> \u003Cspan class=\"a\">required\u003C\u002Fspan>\u003Cspan class=\"t\">&gt;\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\u003C\u002Fdiv>\n\u003C\u002Farticle>\n\n\u003C\u002Fdiv>\n\n\u003Cp class=\"fmstr-cmp-ffh-a11y__foot\">For edge cases (fieldsets, error summaries, custom controls), the \u003Ca href=\"https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FHTML\u002FReference\u002FElements\u002Fform\">MDN \u003Ccode>&lt;form&gt;\u003C\u002Fcode> reference\u003C\u002Fa> is the canonical source.\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003C\u002Fsection>\n\n\u003Cstyle>\n\u002F* host-link-override *\u002F\n.fmstr-cmp-ffh-faq a { text-decoration: none !important; }\n.fmstr-cmp-ffh-faq {\n--c-bg: #fafafb; --c-card: #ffffff;\n--c-fg-1: #101828; --c-fg-2: #475467;\n--c-violet-600: #6941c6; --c-tint: #f7f3ff; --c-edge: #e4d7ff;\n--c-border: #eaecf0; --c-chip-bg: #f4f4f7;\n--c-shadow: 0 1px 3px rgba(16,24,40,.05);\n\nbackground: transparent; padding: 56px 24px;\nfont-family: inherit;\ncolor: var(--c-fg-1);\n}\n.fmstr-cmp-ffh-faq *, .fmstr-cmp-ffh-faq *::before, .fmstr-cmp-ffh-faq *::after { box-sizing: border-box; }\n.fmstr-cmp-ffh-faq__container { max-width: 820px; margin: 0 auto; }\n.fmstr-cmp-ffh-faq__h2 { font-size: clamp(26px, 3vw, 36px); font-weight: 700; line-height: 1.15; letter-spacing: -.02em; margin: 0; color: var(--c-fg-1); }\n.fmstr-cmp-ffh-faq__intro { color: #697586; font-size: 17px; line-height: 1.6; margin: 14px 0 28px; max-width: 760px; }\n.fmstr-cmp-ffh-faq__list { display: flex; flex-direction: column; gap: 12px; }\n.fmstr-cmp-ffh-faq__item {\nbackground: var(--c-card); border: 1px solid var(--c-border);\nborder-radius: 14px; box-shadow: var(--c-shadow); overflow: hidden;\n}\n.fmstr-cmp-ffh-faq__item > summary {\npadding: 18px 22px; cursor: pointer; font-weight: 600; font-size: 16.5px;\ncolor: var(--c-fg-1); display: flex; align-items: center; gap: 14px;\nlist-style: none;\n}\n.fmstr-cmp-ffh-faq__item > summary::-webkit-details-marker { display: none; }\n.fmstr-cmp-ffh-faq__item > summary::before {\ncontent: \"\"; width: 28px; height: 28px; border-radius: 8px; flex-shrink: 0;\nbackground-color: var(--c-chip-bg);\nbackground-image: url(\"data:image\u002Fsvg+xml,%3Csvg xmlns='http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg' width='14' height='14' viewBox='0 0 14 14' fill='none' stroke='%2375747f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 5l4 4 4-4'\u002F%3E%3C\u002Fsvg%3E\");\nbackground-repeat: no-repeat; background-position: center;\ntransition: transform .15s ease, background-color .15s ease;\n}\n.fmstr-cmp-ffh-faq__item[open] > summary::before { transform: rotate(180deg); background-color: var(--c-tint); }\n.fmstr-cmp-ffh-faq__item[open] > summary { color: var(--c-violet-600); }\n.fmstr-cmp-ffh-faq__answer { padding: 0 22px 22px 64px; color: var(--c-fg-2); font-size: 15.5px; line-height: 1.7; }\n.fmstr-cmp-ffh-faq__answer a { color: var(--c-violet-600) !important; text-decoration: none !important; }\n.fmstr-cmp-ffh-faq__answer a:hover { text-decoration: underline !important; }\n.fmstr-cmp-ffh-faq__answer code {\nbackground: var(--c-chip-bg); padding: 1px 6px; border-radius: 4px;\nfont-family: ui-monospace, Menlo, Monaco, monospace; font-size: 13.5px;\ncolor: var(--c-violet-600);\n}\n\n@media (max-width: 760px) {\n.fmstr-cmp-ffh-faq { padding: 40px 16px; }\n.fmstr-cmp-ffh-faq__intro { font-size: 15.5px; }\n.fmstr-cmp-ffh-faq__item > summary { padding: 16px 16px; font-size: 15.5px; gap: 12px; }\n.fmstr-cmp-ffh-faq__item > summary::before { width: 26px; height: 26px; }\n.fmstr-cmp-ffh-faq__answer { padding: 0 16px 18px 16px; font-size: 15px; line-height: 1.65; }\n}\n\u003C\u002Fstyle>\n\n\u003Csection class=\"fmstr-cmp-ffh-faq\" aria-labelledby=\"fmstr-cmp-ffh-faq-h2\">\n\u003Cdiv class=\"fmstr-cmp-ffh-faq__container\">\n\u003Ch2 class=\"fmstr-cmp-ffh-faq__h2\" id=\"fmstr-cmp-ffh-faq-h2\">HTML feedback form FAQ\u003C\u002Fh2>\n\u003Cp class=\"fmstr-cmp-ffh-faq__intro\">Answers that mirror the FAQPage JSON-LD on the live page.\u003C\u002Fp>\n\u003Cdiv class=\"fmstr-cmp-ffh-faq__list\">\n\n\u003Cdetails class=\"fmstr-cmp-ffh-faq__item\">\n\u003Csummary>How do you add a feedback form in HTML?\u003C\u002Fsummary>\n\u003Cdiv class=\"fmstr-cmp-ffh-faq__answer\">Use a \u003Ccode>&lt;form&gt;\u003C\u002Fcode> element with \u003Ccode>action\u003C\u002Fcode> set to your submission endpoint and \u003Ccode>method=\"post\"\u003C\u002Fcode>. Inside the form, add labeled \u003Ccode>&lt;input&gt;\u003C\u002Fcode> and \u003Ccode>&lt;textarea&gt;\u003C\u002Fcode> elements with \u003Ccode>name\u003C\u002Fcode> attributes. Style with CSS, validate with JavaScript, and point the \u003Ccode>action\u003C\u002Fcode> at a backend (your server, or a service like \u003Ca href=\"https:\u002F\u002Fformester.com\u002Ffeatures\u002Fhtml-form-backend\u002F\">Formester&rsquo;s HTML form backend\u003C\u002Fa>). The complete copy-paste example above is the shortest working version.\u003C\u002Fdiv>\n\u003C\u002Fdetails>\n\n\u003Cdetails class=\"fmstr-cmp-ffh-faq__item\">\n\u003Csummary>How do I create a feedback form?\u003C\u002Fsummary>\n\u003Cdiv class=\"fmstr-cmp-ffh-faq__answer\">Decide what to ask (name, email, rating, open-ended feedback are the standard four). Write the HTML using a \u003Ccode>&lt;form&gt;\u003C\u002Fcode> with one labeled input per question. Style it with CSS so it matches your site. Hook the \u003Ccode>action\u003C\u002Fcode> to a backend that stores submissions. The full process is the six steps above, or skip ahead to \u003Ca href=\"https:\u002F\u002Fformester.com\u002Ffeatures\u002Fdrag-and-drop-form-builder\u002F\">Formester&rsquo;s drag-and-drop builder\u003C\u002Fa> if you&rsquo;d rather not write code.\u003C\u002Fdiv>\n\u003C\u002Fdetails>\n\n\u003Cdetails class=\"fmstr-cmp-ffh-faq__item\">\n\u003Csummary>How do I create an inquiry form in HTML?\u003C\u002Fsummary>\n\u003Cdiv class=\"fmstr-cmp-ffh-faq__answer\">Same pattern as a feedback form, with different field labels. Swap \"How was your experience?\" for \"What are you interested in?\" and \"Your feedback\" for \"Your message.\" Keep the name, email, and submit-button structure identical. For a longer inquiry form with subject lines and contact preferences, the \u003Ca href=\"https:\u002F\u002Fformester.com\u002Fblog\u002Fcontact-form-design-tips-best-practices-and-examples\u002F\">contact form design best practices guide\u003C\u002Fa> covers the patterns.\u003C\u002Fdiv>\n\u003C\u002Fdetails>\n\n\u003Cdetails class=\"fmstr-cmp-ffh-faq__item\">\n\u003Csummary>How do you add a comment to a form in HTML?\u003C\u002Fsummary>\n\u003Cdiv class=\"fmstr-cmp-ffh-faq__answer\">Two meanings. (1) An HTML comment for developers: \u003Ccode>&lt;!-- this is the feedback section --&gt;\u003C\u002Fcode> between elements. (2) A user-facing comment field: a \u003Ccode>&lt;textarea&gt;\u003C\u002Fcode> with a label like \"Your comments.\" If you want comments to be optional, leave off the \u003Ccode>required\u003C\u002Fcode> attribute. Use \u003Ccode>rows\u003C\u002Fcode> and \u003Ccode>cols\u003C\u002Fcode> (or CSS height) to size the box.\u003C\u002Fdiv>\n\u003C\u002Fdetails>\n\n\u003Cdetails class=\"fmstr-cmp-ffh-faq__item\">\n\u003Csummary>How do I add CSS to a feedback form?\u003C\u002Fsummary>\n\u003Cdiv class=\"fmstr-cmp-ffh-faq__answer\">Two options. Inline \u003Ccode>&lt;style&gt;\u003C\u002Fcode> tags inside \u003Ccode>&lt;head&gt;\u003C\u002Fcode> work fine for one-off pages. For any real site, link an external stylesheet with \u003Ccode>&lt;link rel=\"stylesheet\" href=\"styles.css\"&gt;\u003C\u002Fcode>. Style the \u003Ccode>form\u003C\u002Fcode>, \u003Ccode>label\u003C\u002Fcode>, \u003Ccode>input\u003C\u002Fcode>, \u003Ccode>textarea\u003C\u002Fcode>, and \u003Ccode>button\u003C\u002Fcode> selectors directly. Step 3 above ships a complete starter stylesheet you can paste, including focus rings and inline error styles.\u003C\u002Fdiv>\n\u003C\u002Fdetails>\n\n\u003Cdetails class=\"fmstr-cmp-ffh-faq__item\">\n\u003Csummary>How do I add JavaScript validation without breaking accessibility?\u003C\u002Fsummary>\n\u003Cdiv class=\"fmstr-cmp-ffh-faq__answer\">Use \u003Ccode>aria-invalid=\"true\"\u003C\u002Fcode> on invalid fields, \u003Ccode>aria-describedby\u003C\u002Fcode> to point at the inline error message, and move focus to the first invalid field on submit failure. Avoid \u003Ccode>alert()\u003C\u002Fcode> boxes, they break screen-reader flow. The Step 4 JavaScript and the complete example above are accessibility-tested versions you can paste directly. Always re-validate on the server too, since a user with DevTools open can bypass client-side checks.\u003C\u002Fdiv>\n\u003C\u002Fdetails>\n\n\u003C\u002Fdiv>\n\u003C\u002Fdiv>\n\u003C\u002Fsection>\n\n\u003Cstyle>\n\u002F* host-link-override *\u002F\n.fmstr-cmp-ffh-vid a { text-decoration: none !important; }\n.fmstr-cmp-ffh-vid {\n--c-bg-card: #ffffff;\n--c-fg-1: #101828; --c-fg-2: #475467; --c-fg-3: #697586;\n--c-violet-500: #7f56d9; --c-violet-600: #6941c6;\n--c-tint: #f7f3ff; --c-edge: #e4d7ff; --c-border: #eaecf0;\n--c-shadow: 0 4px 20px rgba(16,24,40,.06), 0 2px 6px rgba(16,24,40,.04);\n\nbackground: transparent; padding: 56px 24px;\nfont-family: inherit;\ncolor: var(--c-fg-1);\n}\n.fmstr-cmp-ffh-vid *, .fmstr-cmp-ffh-vid *::before, .fmstr-cmp-ffh-vid *::after { box-sizing: border-box; }\n.fmstr-cmp-ffh-vid__container { max-width: 820px; margin: 0 auto; }\n.fmstr-cmp-ffh-vid__head { margin: 0 0 24px; }\n.fmstr-cmp-ffh-vid__eyebrow {\ndisplay: inline-block; padding: 5px 12px; border-radius: 9999px;\nbackground: var(--c-tint); color: var(--c-violet-600);\nfont-size: 12px; font-weight: 600; letter-spacing: .04em;\ntext-transform: uppercase; border: 1px solid var(--c-edge); margin: 0 0 14px;\n}\n.fmstr-cmp-ffh-vid__h2 { font-size: clamp(24px, 2.8vw, 32px); font-weight: 700; line-height: 1.15; letter-spacing: -.02em; margin: 0; color: var(--c-fg-1); }\n.fmstr-cmp-ffh-vid__sub { color: var(--c-fg-3); font-size: 16px; line-height: 1.6; margin: 12px 0 0; }\n.fmstr-cmp-ffh-vid__frame {\nposition: relative; aspect-ratio: 16 \u002F 9; border-radius: 20px; overflow: hidden;\nbackground: var(--c-tint); border: 1px solid var(--c-border); box-shadow: var(--c-shadow);\n}\n.fmstr-cmp-ffh-vid__frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }\n.fmstr-cmp-ffh-vid__caption { color: var(--c-fg-3); font-size: 14px; line-height: 1.6; text-align: center; margin: 16px 0 0; }\n.fmstr-cmp-ffh-vid__caption a { color: var(--c-violet-600) !important; text-decoration: none !important; }\n.fmstr-cmp-ffh-vid__caption a:hover { text-decoration: underline !important; }\n.fmstr-cmp-ffh-vid__caption code {\nbackground: var(--c-tint); padding: 1px 6px; border-radius: 4px;\nfont-family: ui-monospace, Menlo, Monaco, monospace; font-size: 13px;\ncolor: var(--c-violet-600);\n}\n\n@media (max-width: 760px) {\n.fmstr-cmp-ffh-vid { padding: 40px 16px; }\n.fmstr-cmp-ffh-vid__sub { font-size: 15px; }\n.fmstr-cmp-ffh-vid__frame { border-radius: 16px; }\n.fmstr-cmp-ffh-vid__caption { font-size: 13.5px; }\n}\n\u003C\u002Fstyle>\n\n\u003Csection class=\"fmstr-cmp-ffh-vid\" aria-labelledby=\"fmstr-cmp-ffh-vid-h2\">\n\u003Cdiv class=\"fmstr-cmp-ffh-vid__container\">\n\u003Cdiv class=\"fmstr-cmp-ffh-vid__head\">\n\u003Cspan class=\"fmstr-cmp-ffh-vid__eyebrow\">Three-minute walkthrough\u003C\u002Fspan>\n\u003Ch2 class=\"fmstr-cmp-ffh-vid__h2\" id=\"fmstr-cmp-ffh-vid-h2\">Watch the full HTML feedback form built from scratch\u003C\u002Fh2>\n\u003Cp class=\"fmstr-cmp-ffh-vid__sub\">Structure, CSS, accessible validation, backend swap. All six steps in one short video.\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003Cdiv class=\"fmstr-cmp-ffh-vid__frame\">\n\u003Ciframe src=\"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002F8FC3c5Cv5ew\" title=\"How to make a feedback form in HTML\" loading=\"lazy\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen>\u003C\u002Fiframe>\n\u003C\u002Fdiv>\n\u003Cp class=\"fmstr-cmp-ffh-vid__caption\">Prefer reading? The full tutorial is below with copy-paste blocks. To skip the backend setup entirely, point the form&rsquo;s \u003Ccode>action\u003C\u002Fcode> at \u003Ca href=\"https:\u002F\u002Fformester.com\u002Ffeatures\u002Fhtml-form-backend\u002F\">Formester&rsquo;s HTML form backend\u003C\u002Fa>.\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003C\u002Fsection>\n\n\u003Cstyle>\n\u002F* host-link-override *\u002F\n.fmstr-cmp-ffh-rel a { text-decoration: none !important; }\n.fmstr-cmp-ffh-rel {\n--c-bg: #f4f4f7; --c-card: #ffffff;\n--c-fg-1: #101828; --c-fg-2: #475467; --c-fg-3: #697586;\n--c-violet-500: #7f56d9; --c-violet-600: #6941c6;\n--c-tint: #f7f3ff; --c-edge: #e4d7ff; --c-border: #eaecf0;\n--c-shadow: 0 4px 20px rgba(16,24,40,.06);\n\nbackground: transparent; padding: 56px 24px;\nfont-family: inherit;\ncolor: var(--c-fg-1);\n}\n.fmstr-cmp-ffh-rel *, .fmstr-cmp-ffh-rel *::before, .fmstr-cmp-ffh-rel *::after { box-sizing: border-box; }\n.fmstr-cmp-ffh-rel__container { max-width: 820px; margin: 0 auto; }\n.fmstr-cmp-ffh-rel__head { margin: 0 0 28px; }\n.fmstr-cmp-ffh-rel__h2 { font-size: clamp(26px, 3vw, 36px); font-weight: 700; line-height: 1.15; letter-spacing: -.02em; margin: 0; }\n.fmstr-cmp-ffh-rel__intro { color: var(--c-fg-3); font-size: 17px; line-height: 1.6; margin: 14px 0 0; }\n.fmstr-cmp-ffh-rel__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }\n.fmstr-cmp-ffh-rel__card {\nbackground: var(--c-card); border: 1px solid var(--c-border);\nborder-radius: 14px; padding: 18px 20px; display: flex; align-items: center; gap: 14px;\ntext-decoration: none !important; color: inherit !important; transition: all .15s ease;\n}\n.fmstr-cmp-ffh-rel__card:hover { border-color: var(--c-edge); box-shadow: var(--c-shadow); transform: translateY(-1px); }\n.fmstr-cmp-ffh-rel__icon { width: 40px; height: 40px; border-radius: 10px; background: var(--c-tint); display: grid; place-items: center; flex-shrink: 0; font-size: 18px; border: 1px solid var(--c-edge); }\n.fmstr-cmp-ffh-rel__text { flex-grow: 1; }\n.fmstr-cmp-ffh-rel__text h4 { font-size: 14.5px; font-weight: 600; color: var(--c-fg-1); margin: 0; }\n.fmstr-cmp-ffh-rel__text small { font-size: 12.5px; color: var(--c-fg-3); display: block; margin-top: 2px; }\n.fmstr-cmp-ffh-rel__arrow { color: var(--c-violet-500); font-size: 18px; }\n\n@media (max-width: 880px) { .fmstr-cmp-ffh-rel__grid { grid-template-columns: 1fr 1fr; gap: 12px; } }\n@media (max-width: 760px) {\n.fmstr-cmp-ffh-rel { padding: 40px 16px; }\n.fmstr-cmp-ffh-rel__intro { font-size: 15.5px; }\n.fmstr-cmp-ffh-rel__card { padding: 16px; gap: 12px; }\n}\n@media (max-width: 540px) { .fmstr-cmp-ffh-rel__grid { grid-template-columns: 1fr; gap: 12px; } }\n\u003C\u002Fstyle>\n\n\u003Csection class=\"fmstr-cmp-ffh-rel\" aria-labelledby=\"fmstr-cmp-ffh-rel-h2\">\n\u003Cdiv class=\"fmstr-cmp-ffh-rel__container\">\n\u003Cdiv class=\"fmstr-cmp-ffh-rel__head\">\n\u003Ch2 class=\"fmstr-cmp-ffh-rel__h2\" id=\"fmstr-cmp-ffh-rel-h2\">More from Formester on HTML forms and feedback\u003C\u002Fh2>\n\u003Cp class=\"fmstr-cmp-ffh-rel__intro\">Pair this tutorial with the backend features, ready-made templates, and adjacent how-tos.\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003Cdiv class=\"fmstr-cmp-ffh-rel__grid\">\n\n\u003Ca class=\"fmstr-cmp-ffh-rel__card\" href=\"https:\u002F\u002Fformester.com\u002Ffeatures\u002Fhtml-form-backend\u002F\">\n\u003Cdiv class=\"fmstr-cmp-ffh-rel__icon\" aria-hidden=\"true\">&#128229;\u003C\u002Fdiv>\n\u003Cdiv class=\"fmstr-cmp-ffh-rel__text\">\u003Ch4>HTML Form Backend\u003C\u002Fh4>\u003Csmall>One \u003Ccode>action\u003C\u002Fcode> swap, no server\u003C\u002Fsmall>\u003C\u002Fdiv>\n\u003Cspan class=\"fmstr-cmp-ffh-rel__arrow\" aria-hidden=\"true\">&rarr;\u003C\u002Fspan>\n\u003C\u002Fa>\n\n\u003Ca class=\"fmstr-cmp-ffh-rel__card\" href=\"https:\u002F\u002Fformester.com\u002Ffeatures\u002Fembed-forms\u002F\">\n\u003Cdiv class=\"fmstr-cmp-ffh-rel__icon\" aria-hidden=\"true\">&#128279;\u003C\u002Fdiv>\n\u003Cdiv class=\"fmstr-cmp-ffh-rel__text\">\u003Ch4>Embed Forms\u003C\u002Fh4>\u003Csmall>Drop a form into any HTML page\u003C\u002Fsmall>\u003C\u002Fdiv>\n\u003Cspan class=\"fmstr-cmp-ffh-rel__arrow\" aria-hidden=\"true\">&rarr;\u003C\u002Fspan>\n\u003C\u002Fa>\n\n\u003Ca class=\"fmstr-cmp-ffh-rel__card\" href=\"https:\u002F\u002Fformester.com\u002Ffeatures\u002Fspam-protection\u002F\">\n\u003Cdiv class=\"fmstr-cmp-ffh-rel__icon\" aria-hidden=\"true\">&#128737;\u003C\u002Fdiv>\n\u003Cdiv class=\"fmstr-cmp-ffh-rel__text\">\u003Ch4>Spam Protection\u003C\u002Fh4>\u003Csmall>Honeypot + reCAPTCHA built in\u003C\u002Fsmall>\u003C\u002Fdiv>\n\u003Cspan class=\"fmstr-cmp-ffh-rel__arrow\" aria-hidden=\"true\">&rarr;\u003C\u002Fspan>\n\u003C\u002Fa>\n\n\u003Ca class=\"fmstr-cmp-ffh-rel__card\" href=\"https:\u002F\u002Fformester.com\u002Ftemplates\u002Fcustomer-feedback-form-31840\u002F\">\n\u003Cdiv class=\"fmstr-cmp-ffh-rel__icon\" aria-hidden=\"true\">&#11088;\u003C\u002Fdiv>\n\u003Cdiv class=\"fmstr-cmp-ffh-rel__text\">\u003Ch4>Customer Feedback Form\u003C\u002Fh4>\u003Csmall>Pre-built template\u003C\u002Fsmall>\u003C\u002Fdiv>\n\u003Cspan class=\"fmstr-cmp-ffh-rel__arrow\" aria-hidden=\"true\">&rarr;\u003C\u002Fspan>\n\u003C\u002Fa>\n\n\u003Ca class=\"fmstr-cmp-ffh-rel__card\" href=\"https:\u002F\u002Fformester.com\u002Ftemplates\u002Fcategories\u002Ffeedback-forms\u002F\">\n\u003Cdiv class=\"fmstr-cmp-ffh-rel__icon\" aria-hidden=\"true\">&#128196;\u003C\u002Fdiv>\n\u003Cdiv class=\"fmstr-cmp-ffh-rel__text\">\u003Ch4>All Feedback Templates\u003C\u002Fh4>\u003Csmall>Customer, product, employee\u003C\u002Fsmall>\u003C\u002Fdiv>\n\u003Cspan class=\"fmstr-cmp-ffh-rel__arrow\" aria-hidden=\"true\">&rarr;\u003C\u002Fspan>\n\u003C\u002Fa>\n\n\u003Ca class=\"fmstr-cmp-ffh-rel__card\" href=\"https:\u002F\u002Fformester.com\u002Fai-form-generator\u002F\">\n\u003Cdiv class=\"fmstr-cmp-ffh-rel__icon\" aria-hidden=\"true\">&#10024;\u003C\u002Fdiv>\n\u003Cdiv class=\"fmstr-cmp-ffh-rel__text\">\u003Ch4>AI Form Generator\u003C\u002Fh4>\u003Csmall>The no-code alternative\u003C\u002Fsmall>\u003C\u002Fdiv>\n\u003Cspan class=\"fmstr-cmp-ffh-rel__arrow\" aria-hidden=\"true\">&rarr;\u003C\u002Fspan>\n\u003C\u002Fa>\n\n\u003Ca class=\"fmstr-cmp-ffh-rel__card\" href=\"https:\u002F\u002Fformester.com\u002Fblog\u002Fhow-to-send-contact-form-data-to-google-sheets-free\u002F\">\n\u003Cdiv class=\"fmstr-cmp-ffh-rel__icon\" aria-hidden=\"true\">&#128203;\u003C\u002Fdiv>\n\u003Cdiv class=\"fmstr-cmp-ffh-rel__text\">\u003Ch4>Send form data to Google Sheets\u003C\u002Fh4>\u003Csmall>Free, step-by-step\u003C\u002Fsmall>\u003C\u002Fdiv>\n\u003Cspan class=\"fmstr-cmp-ffh-rel__arrow\" aria-hidden=\"true\">&rarr;\u003C\u002Fspan>\n\u003C\u002Fa>\n\n\u003Ca class=\"fmstr-cmp-ffh-rel__card\" href=\"https:\u002F\u002Fformester.com\u002Fblog\u002Fcontact-form-design-tips-best-practices-and-examples\u002F\">\n\u003Cdiv class=\"fmstr-cmp-ffh-rel__icon\" aria-hidden=\"true\">&#127912;\u003C\u002Fdiv>\n\u003Cdiv class=\"fmstr-cmp-ffh-rel__text\">\u003Ch4>Contact form design tips\u003C\u002Fh4>\u003Csmall>Best practices and examples\u003C\u002Fsmall>\u003C\u002Fdiv>\n\u003Cspan class=\"fmstr-cmp-ffh-rel__arrow\" aria-hidden=\"true\">&rarr;\u003C\u002Fspan>\n\u003C\u002Fa>\n\n\u003Ca class=\"fmstr-cmp-ffh-rel__card\" href=\"https:\u002F\u002Fformester.com\u002Fblog\u002Fhow-to-build-spam-free-contact-forms-for-your-website\u002F\">\n\u003Cdiv class=\"fmstr-cmp-ffh-rel__icon\" aria-hidden=\"true\">&#129302;\u003C\u002Fdiv>\n\u003Cdiv class=\"fmstr-cmp-ffh-rel__text\">\u003Ch4>Build spam-free contact forms\u003C\u002Fh4>\u003Csmall>Stop bots before they hit your inbox\u003C\u002Fsmall>\u003C\u002Fdiv>\n\u003Cspan class=\"fmstr-cmp-ffh-rel__arrow\" aria-hidden=\"true\">&rarr;\u003C\u002Fspan>\n\u003C\u002Fa>\n\n\u003C\u002Fdiv>\n\u003C\u002Fdiv>\n\u003C\u002Fsection>\n","blog\u002Fblog\u002Fhow-to-make-feedback-form-in-html.md",1214,{"text":54},"16 min read",{"title":56,"author":35,"authorImage":8,"authorProfile":36,"coverImg":57,"coverImgAlt":58,"createdAt":59,"description":60,"featured":13,"jsonld":61,"keywords":104,"metaDescription":106,"metaImage":179,"metaTitle":182,"publishedAt":183,"slug":184,"updatedAt":185,"__hash__":186,"body":187,"id":188,"coverImgWidth":189,"coverImgHeight":190,"readingStats":191},"13 Best SurveySparrow Alternatives in 2026","https:\u002F\u002Fformester-strapi.s3.ap-south-1.amazonaws.com\u002Fcover_ae15f926cf.png","13 Best SurveySparrow Alternatives in 2026 cover","2026-07-23T11:46:27.063Z","Compare 13 SurveySparrow alternatives across pricing, features, and use cases. Free plans, AI generation, offline capture, and honest picks by role.",[62,72,82,97,110,164],{"@id":63,"url":64,"logo":65,"name":66,"@type":67,"sameAs":68,"@context":71},"https:\u002F\u002Fformester.com\u002F#organization","https:\u002F\u002Fformester.com","https:\u002F\u002Fformester.com\u002Flogo.png","Formester","Organization",[69,70],"https:\u002F\u002Ftwitter.com\u002Fformester","https:\u002F\u002Fwww.linkedin.com\u002Fcompany\u002Fformester\u002F","https:\u002F\u002Fschema.org",{"@id":73,"url":74,"name":56,"@type":75,"@context":71,"isPartOf":76,"breadcrumb":77,"inLanguage":79,"primaryImageOfPage":80},"https:\u002F\u002Fformester.com\u002Fblog\u002Fsurveysparrow-alternatives\u002F#webpage","https:\u002F\u002Fformester.com\u002Fblog\u002Fsurveysparrow-alternatives\u002F","WebPage",{"@id":63},{"@id":78},"https:\u002F\u002Fformester.com\u002Fblog\u002Fsurveysparrow-alternatives\u002F#breadcrumb","en-US",{"@id":81},"https:\u002F\u002Fformester.com\u002Fblog\u002Fsurveysparrow-alternatives\u002F#primaryimage",{"@id":78,"@type":83,"@context":71,"itemListElement":84},"BreadcrumbList",[85,90,94],{"item":86,"name":87,"@type":88,"position":89},"https:\u002F\u002Fformester.com\u002F","Home","ListItem",1,{"item":91,"name":92,"@type":88,"position":93},"https:\u002F\u002Fformester.com\u002Fblog\u002F","Blog",2,{"item":74,"name":95,"@type":88,"position":96},"SurveySparrow Alternatives",3,{"@id":98,"@type":99,"image":100,"author":102,"@context":71,"headline":56,"keywords":104,"publisher":105,"description":106,"dateModified":107,"datePublished":107,"articleSection":108,"mainEntityOfPage":109},"https:\u002F\u002Fformester.com\u002Fblog\u002Fsurveysparrow-alternatives\u002F#article","Article",{"@id":81,"url":57,"@type":101},"ImageObject",{"url":36,"name":35,"@type":103},"Person","surveysparrow alternatives, surveysparrow vs, surveysparrow competitors, alternatives to surveysparrow, best survey tools 2026",{"@id":63},"Compare 13 SurveySparrow alternatives across pricing, features, and use cases. Free plans, AI form generation, offline capture, and honest picks per team.","2026-07-23","Comparisons",{"@id":73},{"@id":111,"@type":112,"@context":71,"mainEntity":113},"https:\u002F\u002Fformester.com\u002Fblog\u002Fsurveysparrow-alternatives\u002F#faq","FAQPage",[114,120,124,128,132,136,140,144,148,152,156,160],{"name":115,"@type":116,"acceptedAnswer":117},"Is SurveySparrow free?","Question",{"text":118,"@type":119},"SurveySparrow has a Forever Free plan capped at 75 responses per quarter. Paid tiers start at Basic $19 per month yearly with 2,500 responses per year (about 208 per month). For most real workloads, Basic is the entry point, and Business at $79 per month yearly is where teams that need collaboration land.","Answer",{"name":121,"@type":116,"acceptedAnswer":122},"What is the cheapest SurveySparrow alternative?",{"text":123,"@type":119},"For free unlimited responses, Formester Free and Google Forms both start at $0. For a paid tier under $10 per month, Zoho Survey Basic at $7.42 per month yearly is the lowest published price on this list. For a single user needing $12 per month with branding removed and a custom domain, Formester Personal fits.",{"name":125,"@type":116,"acceptedAnswer":126},"Which SurveySparrow alternative has HIPAA compliance?",{"text":127,"@type":119},"Alchemer and Sogolytics ship HIPAA on their standard tiers with proper contract terms. SurveyMonkey Enterprise, Jotform Gold and Enterprise, and Qualtrics Enterprise all cover HIPAA on custom contracts with a signed BAA. Formester does not offer HIPAA on any tier.",{"name":129,"@type":116,"acceptedAnswer":130},"What is the best free SurveySparrow alternative?",{"text":131,"@type":119},"For unlimited forms and unlimited responses on a actually usable free tier, Formester Free is the strongest option. Google Forms is also free with unlimited responses if you already use Google Workspace. Microsoft Forms is bundled free with any M365 subscription.",{"name":133,"@type":116,"acceptedAnswer":134},"Which SurveySparrow alternative is best for NPS and CSAT programs?",{"text":135,"@type":119},"For high-completion NPS and CSAT surveys sent by email or link, Typeform's conversational format lifts completion rate meaningfully. For in-product NPS or CSAT loops running inside a SaaS product, Refiner is the specialist. For enterprise CX programs, SurveyMonkey Team Advantage or Qualtrics XM for CX both fit.",{"name":137,"@type":116,"acceptedAnswer":138},"Does Typeform work as a SurveySparrow alternative?",{"text":139,"@type":119},"Yes, if your primary use case is customer-facing surveys where completion rate matters. Typeform Basic at $28 per month yearly is cheaper than SurveySparrow Business at $79 per month yearly, and Plus at $56 per month yearly removes branding. Response caps are tight on Basic (100 per month) versus SurveySparrow Basic (2,500 per year).",{"name":141,"@type":116,"acceptedAnswer":142},"Which alternative supports offline data collection?",{"text":143,"@type":119},"Formester's offline forms ship as PWAs that queue responses on the device and sync when connectivity returns. Personal at $12 per month and Business at $45 per month both include offline. SurveySparrow does not offer native offline capture.",{"name":145,"@type":116,"acceptedAnswer":146},"Is there a SurveySparrow alternative built specifically for market research?",{"text":147,"@type":119},"QuestionPro Advanced at $99 per user per month yearly and Research Suite (custom) offer conjoint, MaxDiff, A\u002FB testing, and access to a 22 million respondent panel. Qualtrics Strategy & Research is the enterprise incumbent. Alchemer covers research methodology with full compliance.",{"name":149,"@type":116,"acceptedAnswer":150},"What happened to Delighted?",{"text":151,"@type":119},"Delighted was discontinued by Qualtrics. The Delighted pricing page now redirects to Qualtrics Voice of Customer software. If you were using Delighted for NPS or CSAT, current alternatives include Refiner (in-product), SurveyMonkey Team Premier, or Qualtrics XM for Customer Experience.",{"name":153,"@type":116,"acceptedAnswer":154},"Which alternative has the best integrations for Salesforce or HubSpot?",{"text":155,"@type":119},"Qualtrics has the deepest native Salesforce and HubSpot integrations at the enterprise level. SurveyMonkey Team Premier ships Salesforce integration. Formester and Jotform both integrate via Zapier plus native connectors. For pure form workflows into Salesforce, Formstack Salesforce Solutions is purpose-built.",{"name":157,"@type":116,"acceptedAnswer":158},"How do I migrate from SurveySparrow to another tool?",{"text":159,"@type":119},"Export your SurveySparrow response data via CSV or XLSX. Rebuild active surveys in your new tool (most modern builders take under an hour per survey with templates as a shortcut). Point any embedded links, email campaigns, and integrations at the new tool's endpoints. Budget an evening for a small team, a few days for a mid-market program with automation and CRM integration.",{"name":161,"@type":116,"acceptedAnswer":162},"What is the best all-around SurveySparrow alternative in 2026?",{"text":163,"@type":119},"For most teams evaluating fresh, Formester fits: unlimited free responses, AI form generation from prompt or PDF, offline capture, native Stripe \u002F PayPal, custom domain on Personal at $12 per month, 25 users on Business at $45 per month. For enterprise CX with methodology templates, SurveyMonkey. For conversational surveys, Typeform. Pick based on the constraint that made you look.",{"@id":165,"url":64,"name":66,"@type":166,"offers":167,"@context":71,"aggregateRating":173,"operatingSystem":177,"applicationCategory":178},"https:\u002F\u002Fformester.com\u002F#softwareapplication","SoftwareApplication",{"url":168,"@type":169,"price":170,"availability":171,"priceCurrency":172},"https:\u002F\u002Fformester.com\u002Fpricing\u002F","Offer","0","https:\u002F\u002Fschema.org\u002FInStock","USD",{"@type":174,"ratingValue":175,"reviewCount":176},"AggregateRating","4.7","13","Web","BusinessApplication",[180],{"id":181,"imageURL":57},176,"13 Best SurveySparrow Alternatives in 2026 | Formester","2026-08-20T05:15:21.723Z","surveysparrow-alternatives","2026-08-20T05:15:21.728Z","80nZsvEg_ldoAUd41G35dmT-AR_VqgB08aJtX4twXDQ","\u003Cp>\u003Cimg src=\"https:\u002F\u002Fformester-strapi.s3.ap-south-1.amazonaws.com\u002Fcover_ae15f926cf.png\" alt=\"13 Best SurveySparrow Alternatives in 2026 cover\" style=\"width:100%;max-width:1200px;height:auto;border-radius:8px;border:1px solid #e5e7eb;margin:16px 0;\" loading=\"eager\" \u002F>\u003C\u002Fp>\n\n\u003Cdiv style=\"background:#F9FAFB;border-left:4px solid #7f56d9;padding:14px 18px;margin:0 0 24px 0;border-radius:6px;font-family:inherit;\">\n\u003Cp style=\"margin:0;font-size:14px;color:#475467;font-family:inherit;\">\u003Cstrong>How we verified this:\u003C\u002Fstrong> every figure on this page comes from the vendor's own pricing page or its public G2 profile. \u003Ca href=\"https:\u002F\u002Fdocs.google.com\u002Fdocument\u002Fd\u002F1S8YXYjv1N2ZENjrnAuMOSOPGo11OjpDrtvn38M738Ag\u002Fedit?usp=sharing\" target=\"_blank\" rel=\"noopener\">You can check every source here\u003C\u002Fa>.\u003C\u002Fp>\n\u003C\u002Fdiv>\n\n\u003Ch2>Which SurveySparrow alternative should you choose?\u003C\u002Fh2>\n\n\u003Cp>SurveySparrow prices by response, and that is what sends most people looking. The other common reason is needing something it does not do at all, such as forms with payments or in-product surveys fired at a user segment.\u003C\u002Fp>\n\n\u003Cp>Those two reasons point at very different tools. Knowing which one applies to you removes most of this list before you compare a single feature.\u003C\u002Fp>\n\n\u003Cdiv class=\"tldr\">\n\u003Cp>\u003Cstrong>The 60-second TL;DR\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Best all-around alternative:\u003C\u002Fstrong> Formester, unlimited responses on the free plan\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Best for enterprise CX:\u003C\u002Fstrong> SurveyMonkey, from $30\u002Fuser\u002Fmo\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Best for completion rates:\u003C\u002Fstrong> Typeform, from $39\u002Fmo\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Best for research at scale:\u003C\u002Fstrong> Qualtrics, from $420\u002Fmo\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Best for forms and payments:\u003C\u002Fstrong> Jotform, from $39\u002Fmo\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Best for research methodology:\u003C\u002Fstrong> Alchemer, from $55\u002Fuser\u002Fmo\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Best free option:\u003C\u002Fstrong> Google Forms\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Best for in-product surveys:\u003C\u002Fstrong> Refiner, from $99\u002Fmo\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fdiv>\n\n\u003Ch2>At a glance: 13 SurveySparrow alternatives compared\u003C\u002Fh2>\n\n\u003Cp>The table shows what each free tier allows and what the first paid plan costs on monthly billing, so you can see which tools remove the response ceiling and which just move it.\u003C\u002Fp>\n\n\u003Cdiv class=\"table-wrap\">\n\u003Ctable>\n\u003Cthead>\u003Ctr>\u003Cth>Tool\u003C\u002Fth>\u003Cth>Free plan\u003C\u002Fth>\u003Cth>First paid plan (monthly)\u003C\u002Fth>\u003Cth>Best suited to\u003C\u002Fth>\u003Cth>G2 rating\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\u003Ctd>Formester\u003C\u002Ftd>\u003Ctd>Unlimited forms and responses\u003C\u002Ftd>\u003Ctd>$13\u002Fmo\u003C\u002Ftd>\u003Ctd>Forms and surveys without caps\u003C\u002Ftd>\u003Ctd>4.7\u002F5 (14)\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>SurveyMonkey\u003C\u002Ftd>\u003Ctd>25 responses per survey\u003C\u002Ftd>\u003Ctd>$30\u002Fuser\u002Fmo, 3-seat minimum\u003C\u002Ftd>\u003Ctd>Enterprise CX programmes\u003C\u002Ftd>\u003Ctd>4.4\u002F5 (23,901)\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Typeform\u003C\u002Ftd>\u003Ctd>10 responses\u002Fmo\u003C\u002Ftd>\u003Ctd>$39\u002Fmo\u003C\u002Ftd>\u003Ctd>Completion on long surveys\u003C\u002Ftd>\u003Ctd>4.5\u002F5 (1,017)\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Qualtrics\u003C\u002Ftd>\u003Ctd>3 surveys, 500 responses\u003C\u002Ftd>\u003Ctd>$420\u002Fmo (Strategic Research)\u003C\u002Ftd>\u003Ctd>Global research at scale\u003C\u002Ftd>\u003Ctd>4.4\u002F5 (3,017)\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Jotform\u003C\u002Ftd>\u003Ctd>5 forms, 100 submissions\u002Fmo\u003C\u002Ftd>\u003Ctd>$39\u002Fmo\u003C\u002Ftd>\u003Ctd>Surveys that take payment\u003C\u002Ftd>\u003Ctd>4.7\u002F5 (5,426)\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Alchemer\u003C\u002Ftd>\u003Ctd>No free plan\u003C\u002Ftd>\u003Ctd>$55\u002Fuser\u002Fmo\u003C\u002Ftd>\u003Ctd>Research methodology\u003C\u002Ftd>\u003Ctd>4.4\u002F5 (956)\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Formstack\u003C\u002Ftd>\u003Ctd>No free plan\u003C\u002Ftd>\u003Ctd>$99\u002Fmo\u003C\u002Ftd>\u003Ctd>Regulated form workflows\u003C\u002Ftd>\u003Ctd>4.3\u002F5 (471)\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Google Forms\u003C\u002Ftd>\u003Ctd>No practical cap\u003C\u002Ftd>\u003Ctd>Bundled with Workspace\u003C\u002Ftd>\u003Ctd>Free internal surveys\u003C\u002Ftd>\u003Ctd>No standalone profile\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Microsoft Forms\u003C\u002Ftd>\u003Ctd>200 responses per form\u003C\u002Ftd>\u003Ctd>Bundled with M365\u003C\u002Ftd>\u003Ctd>Microsoft 365 teams\u003C\u002Ftd>\u003Ctd>4.4\u002F5 (476)\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Zoho Survey\u003C\u002Ftd>\u003Ctd>Free tier available\u003C\u002Ftd>\u003Ctd>$7.42\u002Fmo billed annually\u003C\u002Ftd>\u003Ctd>Zoho ecosystem teams\u003C\u002Ftd>\u003Ctd>4.4\u002F5 (1,040)\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>QuestionPro\u003C\u002Ftd>\u003Ctd>Free Essentials tier\u003C\u002Ftd>\u003Ctd>$99\u002Fuser\u002Fmo billed annually\u003C\u002Ftd>\u003Ctd>Mid-market market research\u003C\u002Ftd>\u003Ctd>4.5\u002F5 (1,147)\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Refiner\u003C\u002Ftd>\u003Ctd>Trial only\u003C\u002Ftd>\u003Ctd>$99\u002Fmo at 5,000 MAU\u003C\u002Ftd>\u003Ctd>In-product SaaS surveys\u003C\u002Ftd>\u003Ctd>4.6\u002F5 (25)\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Sogolytics\u003C\u002Ftd>\u003Ctd>Free Pro tier\u003C\u002Ftd>\u003Ctd>Not published\u003C\u002Ftd>\u003Ctd>Enterprise research\u003C\u002Ftd>\u003Ctd>4.6\u002F5 (88)\u003C\u002Ftd>\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003C\u002Fdiv>\n\n\u003Ch2>What sends teams looking past SurveySparrow\u003C\u002Fh2>\n\n\u003Cp>Every figure here comes from the vendor's own pricing page and plan limits, read in full. The question each tool had to answer was what it does that SurveySparrow does not, rather than whether it is a good product on its own.\u003C\u002Fp>\n\n\u003Cp>Tools that remove the response ceiling rank highest, then those that add a capability SurveySparrow lacks. Several vendors advertise annual rates, so the monthly figures below run higher than the ones on their pricing pages.\u003C\u002Fp>\n\n\u003Ch2>1. Formester, best all-around SurveySparrow alternative\u003C\u002Fh2>\n\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fformester-strapi.s3.ap-south-1.amazonaws.com\u002Fformester_9a10e6ed26.png\" alt=\"Formester homepage hero screenshot\" style=\"width:100%;max-width:900px;height:auto;border-radius:8px;border:1px solid #e5e7eb;margin:16px 0;\" loading=\"lazy\" \u002F>\u003C\u002Fp>\n\n\u003Cp>Formester removes the constraint that pushes most people off SurveySparrow. No plan caps forms, responses or fields, so a survey that gets shared widely costs the same as one that does not.\u003C\u002Fp>\n\n\u003Cp>It also covers ground SurveySparrow does not: AI form generation from a prompt or a PDF, offline capture for field research, and Stripe and PayPal payments on the free plan.\u003C\u002Fp>\n\n\u003Cp>Conditional logic sits on Personal at $13 a month, and Business at $49 adds a custom domain and 25 seats.\u003C\u002Fp>\n\n\u003Cdiv class=\"table-wrap\">\n\u003Ctable>\n\u003Cthead>\u003Ctr>\u003Cth>Strengths\u003C\u002Fth>\u003Cth>Weaknesses\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\u003Ctd>No response cap on any plan\u003C\u002Ftd>\u003Ctd>Not built for CX programmes or NPS tracking\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>AI generation from a prompt or a PDF\u003C\u002Ftd>\u003Ctd>Conditional logic starts on Personal at $13\u002Fmo\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Payments and e-signature on the free plan\u003C\u002Ftd>\u003Ctd>No HIPAA, SOC 2 or ISO 27001 certification\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Offline capture for field research\u003C\u002Ftd>\u003Ctd>14 G2 reviews, a small sample\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Business covers 25 seats at $49\u002Fmo\u003C\u002Ftd>\u003Ctd>\u003C\u002Ftd>\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003C\u002Fdiv>\n\n\u003Cdiv class=\"table-wrap\">\n\u003Ctable>\n\u003Cthead>\u003Ctr>\u003Cth>Plan\u003C\u002Fth>\u003Cth>What you get\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\u003Ctd>Free\u003C\u002Ftd>\u003Ctd>$0. Unlimited forms and responses, AI generation, payments\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Personal\u003C\u002Ftd>\u003Ctd>$13\u002Fmo ($12\u002Fmo billed yearly). Adds conditional logic\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Business\u003C\u002Ftd>\u003Ctd>$49\u002Fmo ($45\u002Fmo billed yearly). Adds custom domain and 25 seats\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Enterprise\u003C\u002Ftd>\u003Ctd>Custom pricing with SSO and dedicated support\u003C\u002Ftd>\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003C\u002Fdiv>\n\n\u003Cp>\u003Cstrong>Best for:\u003C\u002Fstrong> teams that want surveys and forms without a response ceiling.\u003C\u002Fp>\n\n\u003Cp>\u003Cstrong>The catch:\u003C\u002Fstrong> this is a form builder that runs surveys, not a CX platform. Recurring NPS programmes and journey tracking are not what it is for.\u003C\u002Fp>\n\n\u003Cp>\u003Cstrong>G2 rating:\u003C\u002Fstrong> 4.7\u002F5, from 14 reviews. High score, small sample; read it as an early signal.\u003C\u002Fp>\n\n\u003Ch2>2. SurveyMonkey, best for enterprise CX and methodology templates\u003C\u002Fh2>\n\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fformester-strapi.s3.ap-south-1.amazonaws.com\u002Fsurveymonkey_b44c682561.png\" alt=\"SurveyMonkey homepage hero screenshot\" style=\"width:100%;max-width:900px;height:auto;border-radius:8px;border:1px solid #e5e7eb;margin:16px 0;\" loading=\"lazy\" \u002F>\u003C\u002Fp>\n\n\u003Cp>SurveyMonkey is the recognised name, and that matters more than it sounds: respondents open its surveys because they have seen the brand before.\u003C\u002Fp>\n\n\u003Cp>Its methodology templates are written by researchers rather than marketers, and the analysis tools cover cross-tabulation, sentiment and weighting.\u003C\u002Fp>\n\n\u003Cp>Pricing is per user with a three-seat minimum, so Team Advantage at $30 per user works out at $90 a month and Team Premier at $92 works out at $276.\u003C\u002Fp>\n\n\u003Cdiv class=\"table-wrap\">\n\u003Ctable>\n\u003Cthead>\u003Ctr>\u003Cth>Strengths\u003C\u002Fth>\u003Cth>Weaknesses\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\u003Ctd>Strongest brand recognition with respondents\u003C\u002Ftd>\u003Ctd>Three-seat minimum inflates the real entry price\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Research-written methodology templates\u003C\u002Ftd>\u003Ctd>Free plan shows only 25 responses per survey\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Cross-tab, sentiment and weighting analysis\u003C\u002Ftd>\u003Ctd>$0.15 charged per response over the allowance\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Very large G2 review base\u003C\u002Ftd>\u003Ctd>Advertised prices are the annual rates\u003C\u002Ftd>\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003C\u002Fdiv>\n\n\u003Cdiv class=\"table-wrap\">\n\u003Ctable>\n\u003Cthead>\u003Ctr>\u003Cth>Plan\u003C\u002Fth>\u003Cth>What you get\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\u003Ctd>Free\u003C\u002Ftd>\u003Ctd>$0. 25 visible responses per survey, 10 questions, 1 user\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Team Advantage\u003C\u002Ftd>\u003Ctd>$30\u002Fuser\u002Fmo, three-seat minimum, so $90\u002Fmo\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Team Premier\u003C\u002Ftd>\u003Ctd>$92\u002Fuser\u002Fmo, three-seat minimum, so $276\u002Fmo\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Enterprise\u003C\u002Ftd>\u003Ctd>Custom with SSO, HIPAA BAA and dedicated support\u003C\u002Ftd>\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003C\u002Fdiv>\n\n\u003Cp>\u003Cstrong>Best for:\u003C\u002Fstrong> enterprise CX teams that need recognised methodology.\u003C\u002Fp>\n\n\u003Cp>\u003Cstrong>The catch:\u003C\u002Fstrong> the three-seat minimum means the real starting price is $90 a month, not $30, which is easy to miss on the pricing page.\u003C\u002Fp>\n\n\u003Cp>\u003Cstrong>G2 rating:\u003C\u002Fstrong> 4.4\u002F5, from 23,901 reviews. A very large base reflecting long familiarity.\u003C\u002Fp>\n\n\u003Ch2>3. Typeform, best for conversational surveys with high completion\u003C\u002Fh2>\n\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fformester-strapi.s3.ap-south-1.amazonaws.com\u002Ftypeform_507b36a6f5.png\" alt=\"Typeform homepage hero screenshot\" style=\"width:100%;max-width:900px;height:auto;border-radius:8px;border:1px solid #e5e7eb;margin:16px 0;\" loading=\"lazy\" \u002F>\u003C\u002Fp>\n\n\u003Cp>Typeform asks one question at a time, and on a long survey that measurably reduces the number of people who abandon halfway.\u003C\u002Fp>\n\n\u003Cp>For qualitative research where each completed response carries real weight, that difference often justifies the price on its own.\u003C\u002Fp>\n\n\u003Cp>It is the most expensive per response here. Free covers 10 a month, Basic is $39 with 100, Plus $79 with 1,000, and Business $129 with 10,000.\u003C\u002Fp>\n\n\u003Cdiv class=\"table-wrap\">\n\u003Ctable>\n\u003Cthead>\u003Ctr>\u003Cth>Strengths\u003C\u002Fth>\u003Cth>Weaknesses\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\u003Ctd>Highest completion rates on long surveys\u003C\u002Ftd>\u003Ctd>Free plan covers only 10 responses a month\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Logic jumps skip irrelevant sections cleanly\u003C\u002Ftd>\u003Ctd>Highest cost per response in this list\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>AI drafts a full survey from a prompt\u003C\u002Ftd>\u003Ctd>Response caps on every tier\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Strong drop-off analytics\u003C\u002Ftd>\u003Ctd>Advertised prices are the annual rates\u003C\u002Ftd>\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003C\u002Fdiv>\n\n\u003Cdiv class=\"table-wrap\">\n\u003Ctable>\n\u003Cthead>\u003Ctr>\u003Cth>Plan\u003C\u002Fth>\u003Cth>What you get\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\u003Ctd>Free\u003C\u002Ftd>\u003Ctd>$0. 10 responses\u002Fmo, 1 user\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Basic\u003C\u002Ftd>\u003Ctd>$39\u002Fmo ($28\u002Fmo billed yearly). 100 responses\u002Fmo\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Plus\u003C\u002Ftd>\u003Ctd>$79\u002Fmo ($56\u002Fmo billed yearly). 1,000 responses\u002Fmo, 3 seats\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Business\u003C\u002Ftd>\u003Ctd>$129\u002Fmo ($91\u002Fmo billed yearly). 10,000 responses\u002Fmo, 5 seats\u003C\u002Ftd>\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003C\u002Fdiv>\n\n\u003Cp>\u003Cstrong>Best for:\u003C\u002Fstrong> qualitative research where completion rate is the metric.\u003C\u002Fp>\n\n\u003Cp>\u003Cstrong>The catch:\u003C\u002Fstrong> at 10,000 responses a month you are on Business at $129, so volume research gets expensive faster here than anywhere else.\u003C\u002Fp>\n\n\u003Cp>\u003Cstrong>G2 rating:\u003C\u002Fstrong> 4.5\u002F5, from 1,017 reviews. A large base, with cost the common complaint.\u003C\u002Fp>\n\n\u003Ch2>4. Qualtrics, best for global enterprise research at scale\u003C\u002Fh2>\n\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fformester-strapi.s3.ap-south-1.amazonaws.com\u002Fqualtrics_2bbc03b7de.png\" alt=\"Qualtrics homepage hero screenshot\" style=\"width:100%;max-width:900px;height:auto;border-radius:8px;border:1px solid #e5e7eb;margin:16px 0;\" loading=\"lazy\" \u002F>\u003C\u002Fp>\n\n\u003Cp>Qualtrics sits at the top of this category. It is what large organisations buy when survey research is a function rather than a task, with statistical tooling and panels behind it.\u003C\u002Fp>\n\n\u003Cp>Its free account is more generous than most enterprise vendors bother with: 3 active surveys, 30 questions each, 500 responses and 8 question types.\u003C\u002Fp>\n\n\u003Cp>Strategic Research is published at $420 a month, or $5,040 a year. Full CX, EX and Research suite contracts are quoted rather than listed.\u003C\u002Fp>\n\n\u003Cdiv class=\"table-wrap\">\n\u003Ctable>\n\u003Cthead>\u003Ctr>\u003Cth>Strengths\u003C\u002Fth>\u003Cth>Weaknesses\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\u003Ctd>Deepest statistical and research tooling here\u003C\u002Ftd>\u003Ctd>Suite contracts are quoted, not published\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Free account with 500 responses\u003C\u002Ftd>\u003Ctd>Free account limited to 8 question types\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Strategic Research published at $420\u002Fmo\u003C\u002Ftd>\u003Ctd>Considerable overhead for a simple survey\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Panels, dashboards and 70+ survey languages\u003C\u002Ftd>\u003Ctd>Implementation usually needs support\u003C\u002Ftd>\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003C\u002Fdiv>\n\n\u003Cdiv class=\"table-wrap\">\n\u003Ctable>\n\u003Cthead>\u003Ctr>\u003Cth>Plan\u003C\u002Fth>\u003Cth>What you get\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\u003Ctd>Qualtrics Surveys (free)\u003C\u002Ftd>\u003Ctd>$0. 3 active surveys, 30 questions each, 500 responses, 8 question types\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Strategic Research\u003C\u002Ftd>\u003Ctd>$420\u002Fmo ($5,040\u002Fyear). 23 question types, advanced logic\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>CX, EX and Research suites\u003C\u002Ftd>\u003Ctd>Custom contract pricing\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Enterprise\u003C\u002Ftd>\u003Ctd>Full multi-suite contract with SSO, HIPAA and regional data centres\u003C\u002Ftd>\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003C\u002Fdiv>\n\n\u003Cp>\u003Cstrong>Best for:\u003C\u002Fstrong> organisations running research as an ongoing function.\u003C\u002Fp>\n\n\u003Cp>\u003Cstrong>The catch:\u003C\u002Fstrong> beyond Strategic Research nothing is published, so a suite comparison means a sales conversation before you know the number.\u003C\u002Fp>\n\n\u003Cp>\u003Cstrong>G2 rating:\u003C\u002Fstrong> 4.4\u002F5, from 3,017 reviews. A large base for an enterprise platform.\u003C\u002Fp>\n\n\u003Ch2>5. Jotform, best for surveys that also collect payment\u003C\u002Fh2>\n\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fformester-strapi.s3.ap-south-1.amazonaws.com\u002Fjotform_3b13975901.png\" alt=\"Jotform homepage hero screenshot\" style=\"width:100%;max-width:900px;height:auto;border-radius:8px;border:1px solid #e5e7eb;margin:16px 0;\" loading=\"lazy\" \u002F>\u003C\u002Fp>\n\n\u003Cp>Jotform is the pick when a survey needs to do something SurveySparrow cannot, most often taking a payment or collecting a file alongside the answers.\u003C\u002Fp>\n\n\u003Cp>It brings 20,000+ templates and 40+ payment gateways, and every field type is available on the free plan.\u003C\u002Fp>\n\n\u003Cp>Submissions are metered on every tier: 100 a month free, 1,000 on Bronze at $39, and 10,000 on Gold at $129 where HIPAA features arrive.\u003C\u002Fp>\n\n\u003Cdiv class=\"table-wrap\">\n\u003Ctable>\n\u003Cthead>\u003Ctr>\u003Cth>Strengths\u003C\u002Fth>\u003Cth>Weaknesses\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\u003Ctd>20,000+ templates, the largest library here\u003C\u002Ftd>\u003Ctd>Submissions metered on every tier\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>40+ payment gateways\u003C\u002Ftd>\u003Ctd>Free plan covers only 5 forms\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>HIPAA features on the Gold plan\u003C\u002Ftd>\u003Ctd>Weaker survey analysis than the research tools\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>All field types available on the free plan\u003C\u002Ftd>\u003Ctd>Advertised prices are the annual rates\u003C\u002Ftd>\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003C\u002Fdiv>\n\n\u003Cdiv class=\"table-wrap\">\n\u003Ctable>\n\u003Cthead>\u003Ctr>\u003Cth>Plan\u003C\u002Fth>\u003Cth>What you get\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\u003Ctd>Starter (free)\u003C\u002Ftd>\u003Ctd>$0. 5 forms, 100 submissions\u002Fmo, 100 MB storage\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Bronze\u003C\u002Ftd>\u003Ctd>$39\u002Fmo ($34\u002Fmo billed yearly). 1,000 submissions\u002Fmo\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Silver\u003C\u002Ftd>\u003Ctd>$49\u002Fmo ($39\u002Fmo billed yearly). 2,500 submissions\u002Fmo\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Gold\u003C\u002Ftd>\u003Ctd>$129\u002Fmo ($99\u002Fmo billed yearly). 10,000 submissions\u002Fmo, HIPAA features\u003C\u002Ftd>\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003C\u002Fdiv>\n\n\u003Cp>\u003Cstrong>Best for:\u003C\u002Fstrong> surveys that need payments, uploads or unusual field types.\u003C\u002Fp>\n\n\u003Cp>\u003Cstrong>The catch:\u003C\u002Fstrong> the analysis tools are thin next to SurveyMonkey or Alchemer, so this suits collection more than interpretation.\u003C\u002Fp>\n\n\u003Cp>\u003Cstrong>G2 rating:\u003C\u002Fstrong> 4.7\u002F5, from 5,426 reviews, the largest base of any tool here.\u003C\u002Fp>\n\n\u003Ch2>6. Alchemer, best for research methodology with a compliance stack\u003C\u002Fh2>\n\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fformester-strapi.s3.ap-south-1.amazonaws.com\u002Falchemer_8dbd4449fd.png\" alt=\"Alchemer homepage hero screenshot\" style=\"width:100%;max-width:900px;height:auto;border-radius:8px;border:1px solid #e5e7eb;margin:16px 0;\" loading=\"lazy\" \u002F>\u003C\u002Fp>\n\n\u003Cp>Alchemer targets research teams that need piping, quotas and longitudinal studies, with reporting that goes considerably further than a survey builder's.\u003C\u002Fp>\n\n\u003Cp>It also carries the compliance stack larger buyers ask for, which is a common reason teams move off lighter tools.\u003C\u002Fp>\n\n\u003Cp>Pricing is per user per month: Collaborator at $55, Professional at $165 and Full Access at $275, with the upper two capped at three users.\u003C\u002Fp>\n\n\u003Cdiv class=\"table-wrap\">\n\u003Ctable>\n\u003Cthead>\u003Ctr>\u003Cth>Strengths\u003C\u002Fth>\u003Cth>Weaknesses\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\u003Ctd>Research-grade logic, piping and quotas\u003C\u002Ftd>\u003Ctd>Per-user pricing gets expensive quickly\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Cross-tabulation built into reporting\u003C\u002Ftd>\u003Ctd>Professional and Full Access cap at 3 users\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Longitudinal study support\u003C\u002Ftd>\u003Ctd>No free plan, only a 7-day trial\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Established in academic and market research\u003C\u002Ftd>\u003Ctd>Overkill for ordinary feedback collection\u003C\u002Ftd>\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003C\u002Fdiv>\n\n\u003Cdiv class=\"table-wrap\">\n\u003Ctable>\n\u003Cthead>\u003Ctr>\u003Cth>Plan\u003C\u002Fth>\u003Cth>What you get\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\u003Ctd>Free\u003C\u002Ftd>\u003Ctd>No free plan; a 7-day trial is offered\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Collaborator\u003C\u002Ftd>\u003Ctd>$55\u002Fuser\u002Fmo ($315\u002Fuser\u002Fyear)\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Professional\u003C\u002Ftd>\u003Ctd>$165\u002Fuser\u002Fmo, capped at 3 users\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Full Access\u003C\u002Ftd>\u003Ctd>$275\u002Fuser\u002Fmo, capped at 3 users\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Business Platform\u003C\u002Ftd>\u003Ctd>Custom pricing\u003C\u002Ftd>\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003C\u002Fdiv>\n\n\u003Cp>\u003Cstrong>Best for:\u003C\u002Fstrong> research teams that outgrew what a survey builder reports on.\u003C\u002Fp>\n\n\u003Cp>\u003Cstrong>The catch:\u003C\u002Fstrong> the three-user cap on the upper tiers is unusual and bites quickly, pushing larger teams into a custom contract.\u003C\u002Fp>\n\n\u003Cp>\u003Cstrong>G2 rating:\u003C\u002Fstrong> 4.4\u002F5, from 956 reviews. A large base, with cost the recurring theme.\u003C\u002Fp>\n\n\u003Ch2>7. Formstack, best for regulated document and form workflows\u003C\u002Fh2>\n\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fformester-strapi.s3.ap-south-1.amazonaws.com\u002Fformstack_a5079de506.png\" alt=\"Formstack homepage hero screenshot\" style=\"width:100%;max-width:900px;height:auto;border-radius:8px;border:1px solid #e5e7eb;margin:16px 0;\" loading=\"lazy\" \u002F>\u003C\u002Fp>\n\n\u003Cp>Formstack is not really a survey tool. It is what teams choose when the responses feed a document workflow subject to audit and permissions.\u003C\u002Fp>\n\n\u003Cp>HIPAA comes with a BAA, and its Salesforce integration maps fields to Salesforce records natively rather than through a connector.\u003C\u002Fp>\n\n\u003Cp>It is the highest entry price among the self-serve tools here at $99 a month, with the Suite adding Documents and Sign at $299.\u003C\u002Fp>\n\n\u003Cdiv class=\"table-wrap\">\n\u003Ctable>\n\u003Cthead>\u003Ctr>\u003Cth>Strengths\u003C\u002Fth>\u003Cth>Weaknesses\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\u003Ctd>HIPAA with a BAA and full audit trails\u003C\u002Ftd>\u003Ctd>$99\u002Fmo entry point, no free plan\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Native Salesforce field mapping\u003C\u002Ftd>\u003Ctd>Survey analysis is basic\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Documents and e-signature in the Suite\u003C\u002Ftd>\u003Ctd>Interface feels dated in places\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Granular permissions for large teams\u003C\u002Ftd>\u003Ctd>Advertised prices are the annual rates\u003C\u002Ftd>\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003C\u002Fdiv>\n\n\u003Cdiv class=\"table-wrap\">\n\u003Ctable>\n\u003Cthead>\u003Ctr>\u003Cth>Plan\u003C\u002Fth>\u003Cth>What you get\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\u003Ctd>Free\u003C\u002Ftd>\u003Ctd>No free plan; a 14-day trial is offered\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Forms\u003C\u002Ftd>\u003Ctd>$99\u002Fmo ($83\u002Fmo billed yearly)\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Suite (Forms, Documents, Sign)\u003C\u002Ftd>\u003Ctd>$299\u002Fmo ($250\u002Fmo billed yearly)\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Enterprise\u003C\u002Ftd>\u003Ctd>Custom pricing with HIPAA scoping\u003C\u002Ftd>\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003C\u002Fdiv>\n\n\u003Cp>\u003Cstrong>Best for:\u003C\u002Fstrong> regulated teams whose responses feed a document process.\u003C\u002Fp>\n\n\u003Cp>\u003Cstrong>The catch:\u003C\u002Fstrong> if you came for survey analysis you will be disappointed. This is a compliance and workflow purchase.\u003C\u002Fp>\n\n\u003Cp>\u003Cstrong>G2 rating:\u003C\u002Fstrong> 4.3\u002F5, from 471 reviews. A large base, with cost the recurring theme.\u003C\u002Fp>\n\n\u003Ch2>8. Google Forms, best free option for Google Workspace users\u003C\u002Fh2>\n\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fformester-strapi.s3.ap-south-1.amazonaws.com\u002Fgoogleforms_c6ab8866f3.png\" alt=\"Google Forms hero screenshot\" style=\"width:100%;max-width:900px;height:auto;border-radius:8px;border:1px solid #e5e7eb;margin:16px 0;\" loading=\"lazy\" \u002F>\u003C\u002Fp>\n\n\u003Cp>Google Forms removes the response cap for nothing. It is free with any Google account and has no limit worth planning around.\u003C\u002Fp>\n\n\u003Cp>Responses populate a Sheet in real time, which several people can analyse at once, and quiz scoring is built in.\u003C\u002Fp>\n\n\u003Cp>There is no paid Forms tier. It arrives with Google Workspace, where Business Starter is $7 per user a month on an annual basis.\u003C\u002Fp>\n\n\u003Cdiv class=\"table-wrap\">\n\u003Ctable>\n\u003Cthead>\u003Ctr>\u003Cth>Strengths\u003C\u002Fth>\u003Cth>Weaknesses\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\u003Ctd>Free with any Google account\u003C\u002Ftd>\u003Ctd>Very limited design control\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>No practical response cap\u003C\u002Ftd>\u003Ctd>Skip-to-section logic only\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Responses sync straight into Sheets\u003C\u002Ftd>\u003Ctd>No survey analysis beyond basic charts\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Real-time collaborative editing\u003C\u002Ftd>\u003Ctd>Google branding stays on every survey\u003C\u002Ftd>\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003C\u002Fdiv>\n\n\u003Cdiv class=\"table-wrap\">\n\u003Ctable>\n\u003Cthead>\u003Ctr>\u003Cth>Plan\u003C\u002Fth>\u003Cth>What you get\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\u003Ctd>Free\u003C\u002Ftd>\u003Ctd>$0 with any Google account. Effectively unlimited responses\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Workspace Business Starter\u003C\u002Ftd>\u003Ctd>$7\u002Fuser\u002Fmo, annual basis\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Workspace Business Standard\u003C\u002Ftd>\u003Ctd>$14\u002Fuser\u002Fmo, annual basis\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Workspace Business Plus\u003C\u002Ftd>\u003Ctd>$22\u002Fuser\u002Fmo, annual basis\u003C\u002Ftd>\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003C\u002Fdiv>\n\n\u003Cp>\u003Cstrong>Best for:\u003C\u002Fstrong> internal surveys where cost matters more than presentation.\u003C\u002Fp>\n\n\u003Cp>\u003Cstrong>The catch:\u003C\u002Fstrong> the analysis stops at bar charts, so anything requiring cross-tabulation means exporting to Sheets and doing it yourself.\u003C\u002Fp>\n\n\u003Cp>\u003Cstrong>G2 rating:\u003C\u002Fstrong> Google Forms has no standalone G2 profile. The 4.6\u002F5 from 48,175 reviews quoted elsewhere covers Google Workspace as a whole.\u003C\u002Fp>\n\n\u003Ch2>9. Microsoft Forms, best for Microsoft 365 teams\u003C\u002Fh2>\n\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fformester-strapi.s3.ap-south-1.amazonaws.com\u002Fmsforms_93eebecf01.png\" alt=\"Microsoft Forms hero screenshot\" style=\"width:100%;max-width:900px;height:auto;border-radius:8px;border:1px solid #e5e7eb;margin:16px 0;\" loading=\"lazy\" \u002F>\u003C\u002Fp>\n\n\u003Cp>Microsoft Forms is included with any Microsoft 365 subscription, already provisioned and needing no purchase order.\u003C\u002Fp>\n\n\u003Cp>Responses land in Excel and surveys can be posted straight into a Teams channel, which covers most internal feedback collection.\u003C\u002Fp>\n\n\u003Cp>A personal Microsoft account caps at 200 responses per form. Inside a tenant those limits lift considerably.\u003C\u002Fp>\n\n\u003Cdiv class=\"table-wrap\">\n\u003Ctable>\n\u003Cthead>\u003Ctr>\u003Cth>Strengths\u003C\u002Fth>\u003Cth>Weaknesses\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\u003Ctd>No extra cost inside Microsoft 365\u003C\u002Ftd>\u003Ctd>Free accounts cap at 200 responses per form\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Responses flow into Excel\u003C\u002Ftd>\u003Ctd>Very limited design control\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Posts directly into Teams channels\u003C\u002Ftd>\u003Ctd>Basic branching only\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Inherits tenant security and compliance\u003C\u002Ftd>\u003Ctd>No value outside Microsoft\u003C\u002Ftd>\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003C\u002Fdiv>\n\n\u003Cdiv class=\"table-wrap\">\n\u003Ctable>\n\u003Cthead>\u003Ctr>\u003Cth>Plan\u003C\u002Fth>\u003Cth>What you get\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\u003Ctd>Free\u003C\u002Ftd>\u003Ctd>$0 with a personal Microsoft account. 200 responses per form\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>M365 Business Basic\u003C\u002Ftd>\u003Ctd>$7\u002Fuser\u002Fmo, annual basis\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>M365 Business Standard with Copilot\u003C\u002Ftd>\u003Ctd>$23.50\u002Fuser\u002Fmo, annual basis\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>M365 Business Premium with Copilot\u003C\u002Ftd>\u003Ctd>$32\u002Fuser\u002Fmo, annual basis\u003C\u002Ftd>\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003C\u002Fdiv>\n\n\u003Cp>\u003Cstrong>Best for:\u003C\u002Fstrong> internal feedback in organisations already on Microsoft 365.\u003C\u002Fp>\n\n\u003Cp>\u003Cstrong>The catch:\u003C\u002Fstrong> it is an internal tool. Anything customer-facing will look like a Microsoft form, because it is one.\u003C\u002Fp>\n\n\u003Cp>\u003Cstrong>G2 rating:\u003C\u002Fstrong> 4.4\u002F5, from 476 reviews, which fits its internal-tool scope.\u003C\u002Fp>\n\n\u003Ch2>10. Zoho Survey, best for teams inside the Zoho ecosystem\u003C\u002Fh2>\n\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fformester-strapi.s3.ap-south-1.amazonaws.com\u002Fzohosurvey_efa9e35aec.png\" alt=\"Zoho Survey homepage hero screenshot\" style=\"width:100%;max-width:900px;height:auto;border-radius:8px;border:1px solid #e5e7eb;margin:16px 0;\" loading=\"lazy\" \u002F>\u003C\u002Fp>\n\n\u003Cp>Zoho Survey is the cheapest paid option here by a wide margin, and it connects to Zoho CRM and Zoho One without a connector in between.\u003C\u002Fp>\n\n\u003Cp>For a team already running Zoho, that removes both the integration work and most of the cost argument.\u003C\u002Fp>\n\n\u003Cp>Basic is $7.42 a month billed annually, Pro is $35 and Enterprise is $75, all on annual billing.\u003C\u002Fp>\n\n\u003Cdiv class=\"table-wrap\">\n\u003Ctable>\n\u003Cthead>\u003Ctr>\u003Cth>Strengths\u003C\u002Fth>\u003Cth>Weaknesses\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\u003Ctd>Cheapest paid tier here at $7.42\u002Fmo billed annually\u003C\u002Ftd>\u003Ctd>Little value outside the Zoho suite\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Connects natively to Zoho CRM and Zoho One\u003C\u002Ftd>\u003Ctd>Interface feels dated\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Free tier available for evaluation\u003C\u002Ftd>\u003Ctd>Analysis is basic next to research tools\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Large G2 review base for its size\u003C\u002Ftd>\u003Ctd>Prices are the annual-billed rates\u003C\u002Ftd>\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003C\u002Fdiv>\n\n\u003Cdiv class=\"table-wrap\">\n\u003Ctable>\n\u003Cthead>\u003Ctr>\u003Cth>Plan\u003C\u002Fth>\u003Cth>What you get\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\u003Ctd>Free\u003C\u002Ftd>\u003Ctd>$0. Free tier with basic features\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Basic\u003C\u002Ftd>\u003Ctd>$7.42\u002Fmo billed annually\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Pro\u003C\u002Ftd>\u003Ctd>$35\u002Fmo billed annually\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Enterprise\u003C\u002Ftd>\u003Ctd>$75\u002Fmo billed annually\u003C\u002Ftd>\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003C\u002Fdiv>\n\n\u003Cp>\u003Cstrong>Best for:\u003C\u002Fstrong> teams whose stack is already Zoho.\u003C\u002Fp>\n\n\u003Cp>\u003Cstrong>The catch:\u003C\u002Fstrong> outside Zoho this is a budget survey tool with dated design, and the integration advantage disappears entirely.\u003C\u002Fp>\n\n\u003Cp>\u003Cstrong>G2 rating:\u003C\u002Fstrong> 4.4\u002F5, from 1,040 reviews. A solid base for a suite product.\u003C\u002Fp>\n\n\u003Ch2>11. QuestionPro, best for market research on a mid-market budget\u003C\u002Fh2>\n\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fformester-strapi.s3.ap-south-1.amazonaws.com\u002Fquestionpro_14c2f64e0a.png\" alt=\"QuestionPro homepage hero screenshot\" style=\"width:100%;max-width:900px;height:auto;border-radius:8px;border:1px solid #e5e7eb;margin:16px 0;\" loading=\"lazy\" \u002F>\u003C\u002Fp>\n\n\u003Cp>QuestionPro offers research features that usually sit in enterprise contracts, including conjoint analysis, MaxDiff and panel access, at published prices.\u003C\u002Fp>\n\n\u003Cp>For a team that needs real research methodology without a Qualtrics contract, that combination is unusual.\u003C\u002Fp>\n\n\u003Cp>Advanced is $99 per user a month billed annually, and Team Edition is $83 per user a month billed annually for five or more users.\u003C\u002Fp>\n\n\u003Cdiv class=\"table-wrap\">\n\u003Ctable>\n\u003Cthead>\u003Ctr>\u003Cth>Strengths\u003C\u002Fth>\u003Cth>Weaknesses\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\u003Ctd>Conjoint, MaxDiff and panels at published prices\u003C\u002Ftd>\u003Ctd>Priced per user, so small teams pay per seat\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Free Essentials tier for evaluation\u003C\u002Ftd>\u003Ctd>Research Suite pricing is not published\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Team pricing drops per seat at 5+ users\u003C\u002Ftd>\u003Ctd>Interface is dense\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Large G2 review base\u003C\u002Ftd>\u003Ctd>Prices are the annual-billed rates\u003C\u002Ftd>\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003C\u002Fdiv>\n\n\u003Cdiv class=\"table-wrap\">\n\u003Ctable>\n\u003Cthead>\u003Ctr>\u003Cth>Plan\u003C\u002Fth>\u003Cth>What you get\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\u003Ctd>Free\u003C\u002Ftd>\u003Ctd>$0. Basic Essentials tier with limited features\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Advanced\u003C\u002Ftd>\u003Ctd>$99\u002Fuser\u002Fmo billed annually. 25,000 responses per year\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Team Edition\u003C\u002Ftd>\u003Ctd>$83\u002Fuser\u002Fmo billed annually, 5+ users. 100,000 responses per year\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Research Suite\u003C\u002Ftd>\u003Ctd>Custom pricing with conjoint, MaxDiff and panels\u003C\u002Ftd>\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003C\u002Fdiv>\n\n\u003Cp>\u003Cstrong>Best for:\u003C\u002Fstrong> mid-market research teams that need real methodology.\u003C\u002Fp>\n\n\u003Cp>\u003Cstrong>The catch:\u003C\u002Fstrong> the research features that distinguish it sit in the unpublished Research Suite, so the headline price does not buy the headline capability.\u003C\u002Fp>\n\n\u003Cp>\u003Cstrong>G2 rating:\u003C\u002Fstrong> 4.5\u002F5, from 1,147 reviews. A large base for a research platform.\u003C\u002Fp>\n\n\u003Ch2>12. Refiner, best for in-product SaaS surveys\u003C\u002Fh2>\n\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fformester-strapi.s3.ap-south-1.amazonaws.com\u002Frefiner_fe8debfef3.png\" alt=\"Refiner homepage hero screenshot\" style=\"width:100%;max-width:900px;height:auto;border-radius:8px;border:1px solid #e5e7eb;margin:16px 0;\" loading=\"lazy\" \u002F>\u003C\u002Fp>\n\n\u003Cp>Refiner does something no other tool here does: it fires surveys inside your product, to a chosen user segment, at a chosen moment.\u003C\u002Fp>\n\n\u003Cp>That makes it the right answer for NPS, product-market fit and feature feedback tied to what a user just did, rather than an email asking them to remember.\u003C\u002Fp>\n\n\u003Cp>Pricing runs on monthly active users rather than responses. Essentials is $99 a month at 5,000 MAU, with higher tiers around $239.\u003C\u002Fp>\n\n\u003Cdiv class=\"table-wrap\">\n\u003Ctable>\n\u003Cthead>\u003Ctr>\u003Cth>Strengths\u003C\u002Fth>\u003Cth>Weaknesses\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\u003Ctd>Fires surveys inside your product\u003C\u002Ftd>\u003Ctd>No forever-free tier, only a 14-day trial\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Targets by user segment and behaviour\u003C\u002Ftd>\u003Ctd>Requires engineering to install\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Priced on MAU rather than responses\u003C\u002Ftd>\u003Ctd>Not usable for standalone email surveys\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Unlimited responses on every plan\u003C\u002Ftd>\u003Ctd>25 G2 reviews, a small sample\u003C\u002Ftd>\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003C\u002Fdiv>\n\n\u003Cdiv class=\"table-wrap\">\n\u003Ctable>\n\u003Cthead>\u003Ctr>\u003Cth>Plan\u003C\u002Fth>\u003Cth>What you get\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\u003Ctd>Free\u003C\u002Ftd>\u003Ctd>No free tier; a 14-day trial is offered\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Essentials\u003C\u002Ftd>\u003Ctd>$99\u002Fmo at 5,000 monthly active users\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Higher MAU tiers\u003C\u002Ftd>\u003Ctd>Around $239\u002Fmo\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Enterprise\u003C\u002Ftd>\u003Ctd>Custom pricing via a discovery call\u003C\u002Ftd>\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003C\u002Fdiv>\n\n\u003Cp>\u003Cstrong>Best for:\u003C\u002Fstrong> SaaS teams surveying users inside the product.\u003C\u002Fp>\n\n\u003Cp>\u003Cstrong>The catch:\u003C\u002Fstrong> it needs a code install and only works in-product, so it complements a survey tool rather than replacing one.\u003C\u002Fp>\n\n\u003Cp>\u003Cstrong>G2 rating:\u003C\u002Fstrong> 4.6\u002F5, from 25 reviews. Too small a base to lean on heavily.\u003C\u002Fp>\n\n\u003Ch2>13. Sogolytics, best for enterprise research with a compliance stack\u003C\u002Fh2>\n\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fformester-strapi.s3.ap-south-1.amazonaws.com\u002Fsogolytics_3619b69b57.png\" alt=\"Sogolytics homepage hero screenshot\" style=\"width:100%;max-width:900px;height:auto;border-radius:8px;border:1px solid #e5e7eb;margin:16px 0;\" loading=\"lazy\" \u002F>\u003C\u002Fp>\n\n\u003Cp>Sogolytics runs enterprise survey and CX programmes with the compliance credentials larger buyers ask for, alongside employee and customer experience modules.\u003C\u002Fp>\n\n\u003Cp>Its free Pro tier is unusually usable for evaluation, which makes it easier to assess than most enterprise vendors.\u003C\u002Fp>\n\n\u003Cp>Sogolytics does not publish prices. Its pricing page quotes based on response volume and admin user count, so no figures are listed here.\u003C\u002Fp>\n\n\u003Cdiv class=\"table-wrap\">\n\u003Ctable>\n\u003Cthead>\u003Ctr>\u003Cth>Strengths\u003C\u002Fth>\u003Cth>Weaknesses\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\u003Ctd>Free Pro tier for genuine evaluation\u003C\u002Ftd>\u003Ctd>No published pricing at any paid tier\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>CX and EX modules alongside surveys\u003C\u002Ftd>\u003Ctd>Quoted on responses and admin users\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Compliance credentials for enterprise buyers\u003C\u002Ftd>\u003Ctd>Evaluation of cost requires a sales conversation\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Strong G2 score for its category\u003C\u002Ftd>\u003Ctd>Smaller review base than the major platforms\u003C\u002Ftd>\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003C\u002Fdiv>\n\n\u003Cdiv class=\"table-wrap\">\n\u003Ctable>\n\u003Cthead>\u003Ctr>\u003Cth>Plan\u003C\u002Fth>\u003Cth>What you get\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\u003Ctd>Free Pro\u003C\u002Ftd>\u003Ctd>A free tier is offered for evaluation\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Paid plans\u003C\u002Ftd>\u003Ctd>Not published. Sogolytics quotes on response volume and admin user count\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Enterprise\u003C\u002Ftd>\u003Ctd>Custom pricing with CX and EX modules\u003C\u002Ftd>\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003C\u002Fdiv>\n\n\u003Cp>\u003Cstrong>Best for:\u003C\u002Fstrong> enterprise teams that need compliance and a real free trial.\u003C\u002Fp>\n\n\u003Cp>\u003Cstrong>The catch:\u003C\u002Fstrong> you cannot compare its cost against anything on this page, because no paid prices are published.\u003C\u002Fp>\n\n\u003Cp>\u003Cstrong>G2 rating:\u003C\u002Fstrong> 4.6\u002F5, from 88 reviews. A reasonable base for its category.\u003C\u002Fp>\n\n\u003Cdiv style=\"background: #F5F3FF; border: 1px solid #E9D5FF; border-radius: 24px; padding: clamp(28px, 5vw, 56px) clamp(20px, 4vw, 48px); margin: 40px 0; text-align: center; font-family: inherit;\">\n\u003Cdiv style=\"display: inline-block; background: #FFFFFF; border: 1px solid #E9D5FF; border-radius: 9999px; padding: 6px 16px; font-size: 12px; font-weight: 700; color: #6941C6; letter-spacing: 0.06em; text-transform: uppercase; margin-bottom: 22px;\">Formester\u003C\u002Fdiv>\n\u003Ch3 style=\"color: #0F172A !important; font-size: clamp(24px, 3.4vw, 36px); line-height: 1.2; font-weight: 700; margin: 0 auto 14px; max-width: 720px; font-family: inherit;\">Skip the response caps. Free forever, unlimited surveys\u003C\u002Fh3>\n\u003Cp style=\"color: #475467; font-size: clamp(15px, 1.5vw, 17px); line-height: 1.55; margin: 0 auto 28px; max-width: 620px; font-family: inherit;\">Formester's free plan ships unlimited forms and unlimited responses, with AI form generation, offline capture and native Stripe and PayPal payments. All the caps SurveySparrow puts on you disappear.\u003C\u002Fp>\n\u003Cp style=\"margin: 0;\">\u003Ca href=\"https:\u002F\u002Fapp.formester.com\u002Fusers\u002Fsign_up\" style=\"display: inline-block; background: #7f56d9 !important; color: #ffffff !important; text-decoration: none !important; padding: 14px 28px; border-radius: 9999px; font-weight: 600; font-size: 16px; font-family: inherit;\">Try Formester free \u003Cspan aria-hidden=\"true\" style=\"margin-left: 4px;\">&rarr;\u003C\u002Fspan>\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp style=\"margin: 22px 0 0; font-size: 13px; color: #697586; font-family: inherit;\">Free forever plan \u003Cspan style=\"color: #C4B5FD;\">&bull;\u003C\u002Fspan> No credit card \u003Cspan style=\"color: #C4B5FD;\">&bull;\u003C\u002Fspan> Setup in 2 minutes\u003C\u002Fp>\n\u003C\u002Fdiv>\n\n\u003Ch2>How to pick the right SurveySparrow alternative\u003C\u002Fh2>\n\n\u003Cp>Start with why you are leaving. If it is the response cap, Formester and Google Forms remove it entirely, and Jotform and Typeform simply move it further out.\u003C\u002Fp>\n\n\u003Cp>If you need something SurveySparrow does not do, the answer depends on which thing. Payments point to Jotform, in-product targeting to Refiner, and statistical research to Qualtrics, Alchemer or QuestionPro.\u003C\u002Fp>\n\n\u003Cp>If the requirement is compliance, Formstack publishes prices and offers a BAA, while Sogolytics and Qualtrics quote instead. Budget for a sales conversation with the latter two.\u003C\u002Fp>\n\n\u003Ch2>Frequently asked questions\u003C\u002Fh2>\n\n\u003Cdetails>\u003Csummary>What is the best SurveySparrow alternative?\u003C\u002Fsummary>\u003Cdiv>The best SurveySparrow alternative for most teams is Formester, because it places no cap on responses on any plan and adds AI generation and payments on the free tier. SurveyMonkey is the better answer for enterprise CX programmes that need recognised methodology.\u003C\u002Fdiv>\u003C\u002Fdetails>\n\n\u003Cdetails>\u003Csummary>Why do teams leave SurveySparrow?\u003C\u002Fsummary>\u003Cdiv>Teams leave SurveySparrow mainly because it prices by response, so a widely shared survey raises the bill. The second reason is needing something outside its scope, such as collecting payment with a survey or firing one inside a product.\u003C\u002Fdiv>\u003C\u002Fdetails>\n\n\u003Cdetails>\u003Csummary>Is there a SurveySparrow alternative with unlimited responses?\u003C\u002Fsummary>\u003Cdiv>Yes. Formester places no cap on forms or responses on any plan including the free one, and Google Forms has no practical limit with any Google account. Refiner also allows unlimited responses, though it prices on monthly active users instead.\u003C\u002Fdiv>\u003C\u002Fdetails>\n\n\u003Cdetails>\u003Csummary>Which SurveySparrow alternative is cheapest?\u003C\u002Fsummary>\u003Cdiv>Zoho Survey is the cheapest paid alternative at $7.42 a month billed annually, followed by Formester at $13 a month. For a free plan, Formester and Google Forms both remove the response cap at no cost.\u003C\u002Fdiv>\u003C\u002Fdetails>\n\n\u003Cdetails>\u003Csummary>Which alternative is best for enterprise research?\u003C\u002Fsummary>\u003Cdiv>Qualtrics is the strongest for enterprise research, with Strategic Research published at $420 a month and full suites quoted. Alchemer at $55 per user and QuestionPro at $99 per user cover similar ground at lower cost with fewer panels behind them.\u003C\u002Fdiv>\u003C\u002Fdetails>\n\n\u003Cdetails>\u003Csummary>Can I run surveys inside my product instead of by email?\u003C\u002Fsummary>\u003Cdiv>Refiner is the only tool here that does this, firing surveys inside your application to a chosen user segment at a chosen moment. It needs an engineering install and starts at $99 a month for 5,000 monthly active users.\u003C\u002Fdiv>\u003C\u002Fdetails>\n\n\u003Cdetails>\u003Csummary>Which SurveySparrow alternatives offer HIPAA compliance?\u003C\u002Fsummary>\u003Cdiv>Jotform offers HIPAA features on its Gold plan at $129 a month, Formstack provides a BAA from $99 a month, and SurveyMonkey and Qualtrics both offer HIPAA on enterprise contracts. Formester does not offer HIPAA at any tier.\u003C\u002Fdiv>\u003C\u002Fdetails>\n\n\u003Cdetails>\u003Csummary>Do any alternatives charge per user rather than per response?\u003C\u002Fsummary>\u003Cdiv>Yes, several. SurveyMonkey charges $30 to $92 per user with a three-seat minimum, Alchemer charges $55 to $275 per user, and QuestionPro charges $83 to $99 per user. Formester, Jotform and Typeform charge a flat rate instead.\u003C\u002Fdiv>\u003C\u002Fdetails>\n\n\u003Ch2>The final take\u003C\u002Fh2>\n\n\u003Cp>SurveySparrow is a capable product with a pricing model that punishes success. A survey that gets shared more widely than expected is a good outcome everywhere except on the invoice.\u003C\u002Fp>\n\n\u003Cp>If that is the problem, Formester removes it completely and adds payments and offline capture on the free plan.\u003C\u002Fp>\n\n\u003Cp>If the problem is capability rather than cost, the answer splits: Qualtrics and Alchemer for research depth, Jotform for surveys that transact, and Refiner for feedback captured inside the product itself.\u003C\u002Fp>\n\n\u003Cstyle>\n\n.fmstr-cmp-ssa-exit {\n--p-bg-card: #ffffff;\n--p-bg-violet-25: #f7f3ff;\n--p-bg-pill: #f4ebff;\n--p-fg-1: #101828;\n--p-fg-2: #475467;\n--p-fg-3: #697586;\n--p-violet-500: #7f56d9;\n--p-violet-600: #6941c6;\n--p-violet-700: #5925dc;\n--p-border-light: #eaecf0;\n--p-border-violet: #9777e0;\n\nposition: fixed;\ninset: 0;\nz-index: 2147483000;\ndisplay: none;\nalign-items: center;\njustify-content: center;\npadding: 24px;\nfont-family: inherit;\ncolor: var(--p-fg-1);\n}\n.fmstr-cmp-ssa-exit *, .fmstr-cmp-ssa-exit *::before, .fmstr-cmp-ssa-exit *::after { box-sizing: border-box; }\n.fmstr-cmp-ssa-exit.is-open { display: flex; }\n\n.fmstr-cmp-ssa-exit__backdrop {\nposition: absolute; inset: 0;\nbackground: rgba(16, 10, 40, 0.55);\nbackdrop-filter: blur(3px);\nopacity: 0;\ntransition: opacity 220ms ease;\n}\n.fmstr-cmp-ssa-exit.is-open .fmstr-cmp-ssa-exit__backdrop { opacity: 1; }\n\n.fmstr-cmp-ssa-exit__card {\nposition: relative;\nwidth: 100%;\nmax-width: 520px;\nbackground: var(--p-bg-card);\nborder: 1px solid var(--p-border-light);\nborder-radius: 20px;\npadding: 36px 36px 30px;\nbox-shadow: 0 32px 80px rgba(16, 10, 40, 0.32);\nopacity: 0;\ntransform: translateY(14px) scale(0.985);\ntransition: opacity 260ms ease, transform 260ms cubic-bezier(0.22, 1, 0.36, 1);\n}\n.fmstr-cmp-ssa-exit.is-open .fmstr-cmp-ssa-exit__card { opacity: 1; transform: none; }\n\n.fmstr-cmp-ssa-exit__close {\nposition: absolute;\ntop: 12px; right: 12px;\nwidth: 40px; height: 40px;\ndisplay: inline-flex; align-items: center; justify-content: center;\nbackground: transparent;\nborder: 0;\nborder-radius: 50%;\ncolor: var(--p-fg-3);\ncursor: pointer;\ntransition: background-color 150ms ease, color 150ms ease;\n}\n.fmstr-cmp-ssa-exit__close:hover { background: #f2f4f7; color: var(--p-fg-1); }\n.fmstr-cmp-ssa-exit__close:focus { outline: none; }\n.fmstr-cmp-ssa-exit__close:focus-visible { outline: 2px solid var(--p-border-violet); outline-offset: 2px; }\n.fmstr-cmp-ssa-exit__cta:focus-visible,\n.fmstr-cmp-ssa-exit__dismiss:focus-visible { outline: 2px solid var(--p-border-violet); outline-offset: 2px; border-radius: 9999px; }\n\n.fmstr-cmp-ssa-exit__eyebrow {\ndisplay: inline-block;\npadding: 5px 13px 7px;\nbackground: var(--p-bg-pill);\ncolor: var(--p-violet-600);\nborder-radius: 9999px;\nfont-size: 12px;\nfont-weight: 700;\nline-height: 1;\nletter-spacing: 0.08em;\ntext-transform: uppercase;\nmargin-bottom: 16px;\nmax-width: calc(100% - 46px);\n}\n\n.fmstr-cmp-ssa-exit__heading {\nmargin: 0 0 12px;\nfont-size: 27px;\nline-height: 1.22;\nfont-weight: 800;\nletter-spacing: -0.02em;\n}\n.fmstr-cmp-ssa-exit__heading em { font-style: normal; color: var(--p-violet-600); }\n\n.fmstr-cmp-ssa-exit__sub {\nmargin: 0 0 24px;\nfont-size: 15px;\nline-height: 1.55;\ncolor: var(--p-fg-2);\n}\n\n.fmstr-cmp-ssa-exit__list { list-style: none; margin: 0 0 28px; padding: 0; display: flex; flex-direction: column; gap: 16px; }\n.fmstr-cmp-ssa-exit__item { display: flex; align-items: flex-start; gap: 14px; }\n.fmstr-cmp-ssa-exit__ic {\nwidth: 38px; height: 38px; flex-shrink: 0;\nborder-radius: 10px;\nbackground: var(--p-bg-violet-25);\ncolor: var(--p-violet-600);\ndisplay: inline-flex; align-items: center; justify-content: center;\n}\n.fmstr-cmp-ssa-exit__ic svg { display: block; }\n.fmstr-cmp-ssa-exit__item-title { margin: 0; font-size: 15px; line-height: 1.4; font-weight: 700; }\n.fmstr-cmp-ssa-exit__item-body { margin: 3px 0 0; font-size: 14px; line-height: 1.45; color: var(--p-fg-3); }\n\n.fmstr-cmp-ssa-exit__cta {\ndisplay: block;\nwidth: 100%;\npadding: 15px 24px 16px;\nbackground: var(--p-violet-600) !important;\ncolor: #ffffff !important;\nborder-radius: 9999px;\nfont-size: 16px;\nfont-weight: 700;\nline-height: 1;\ntext-align: center;\ntext-decoration: none;\nbox-shadow: 0 8px 24px rgba(105, 65, 198, 0.26);\ntransition: background-color 150ms ease, transform 150ms ease;\n}\n.fmstr-cmp-ssa-exit__cta:hover { background: var(--p-violet-700) !important; color: #ffffff !important; transform: translateY(-1px); }\n\n.fmstr-cmp-ssa-exit__dismiss {\ndisplay: block;\nwidth: 100%;\nmargin-top: 10px;\npadding: 12px;\nbackground: transparent;\nborder: 0;\ncolor: var(--p-fg-3);\nfont-family: inherit;\nfont-size: 14px;\nfont-weight: 600;\ncursor: pointer;\n}\n.fmstr-cmp-ssa-exit__dismiss:hover { color: var(--p-fg-1); }\n\n.fmstr-cmp-ssa-exit__meta {\nmargin: 6px 0 0;\ntext-align: center;\nfont-size: 12px;\nfont-weight: 500;\ncolor: var(--p-fg-3);\n}\n\n@media (max-width: 560px) {\n.fmstr-cmp-ssa-exit { padding: 16px; align-items: flex-end; }\n.fmstr-cmp-ssa-exit__card { padding: 28px 22px 22px; border-radius: 18px; }\n.fmstr-cmp-ssa-exit__heading { font-size: 23px; }\n.fmstr-cmp-ssa-exit__list { gap: 14px; margin-bottom: 24px; }\n}\n\n@media (prefers-reduced-motion: reduce) {\n.fmstr-cmp-ssa-exit__backdrop,\n.fmstr-cmp-ssa-exit__card { transition: none; }\n.fmstr-cmp-ssa-exit__card { transform: none; }\n}\n\u003C\u002Fstyle>\n\n\u003Cdiv class=\"fmstr-cmp-ssa-exit\" id=\"fmstr-ssa-exit\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"fmstr-ssa-exit-heading\" aria-hidden=\"true\">\n\u003Cdiv class=\"fmstr-cmp-ssa-exit__backdrop\" data-fmstr-exit-close>\u003C\u002Fdiv>\n\u003Cdiv class=\"fmstr-cmp-ssa-exit__card\">\n\u003Cbutton type=\"button\" class=\"fmstr-cmp-ssa-exit__close\" data-fmstr-exit-close aria-label=\"Close\">\n\u003Csvg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\">\u003Cline x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"\u002F>\u003Cline x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"\u002F>\u003C\u002Fsvg>\n\u003C\u002Fbutton>\n\u003Cspan class=\"fmstr-cmp-ssa-exit__eyebrow\">Still counting responses\u003C\u002Fspan>\n\u003Ch2 id=\"fmstr-ssa-exit-heading\" class=\"fmstr-cmp-ssa-exit__heading\">SurveySparrow Basic caps you at \u003Cem>2,500 responses a year\u003C\u002Fem>\u003C\u002Fh2>\n\u003Cp class=\"fmstr-cmp-ssa-exit__sub\">That is roughly 208 a month. Most alternatives on this list meter responses too, just at different thresholds.\u003C\u002Fp>\n\u003Cul class=\"fmstr-cmp-ssa-exit__list\">\n\u003Cli class=\"fmstr-cmp-ssa-exit__item\">\n\u003Cspan class=\"fmstr-cmp-ssa-exit__ic\" aria-hidden=\"true\">\u003Csvg width=\"19\" height=\"19\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\">\u003Cpath d=\"m12 14 4-4\"\u002F>\u003Cpath d=\"M3.34 19a10 10 0 1 1 17.32 0\"\u002F>\u003C\u002Fsvg>\u003C\u002Fspan>\n\u003Cspan>\n\u003Ch3 class=\"fmstr-cmp-ssa-exit__item-title\">No annual or monthly response cap\u003C\u002Fh3>\n\u003Cp class=\"fmstr-cmp-ssa-exit__item-body\">Unlimited on every plan, free included\u003C\u002Fp>\n\u003C\u002Fspan>\n\u003C\u002Fli>\n\u003Cli class=\"fmstr-cmp-ssa-exit__item\">\n\u003Cspan class=\"fmstr-cmp-ssa-exit__ic\" aria-hidden=\"true\">\u003Csvg width=\"19\" height=\"19\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\">\u003Crect x=\"2\" y=\"5\" width=\"20\" height=\"14\" rx=\"2\"\u002F>\u003Cline x1=\"2\" y1=\"10\" x2=\"22\" y2=\"10\"\u002F>\u003C\u002Fsvg>\u003C\u002Fspan>\n\u003Cspan>\n\u003Ch3 class=\"fmstr-cmp-ssa-exit__item-title\">Native Stripe and PayPal\u003C\u002Fh3>\n\u003Cp class=\"fmstr-cmp-ssa-exit__item-body\">Collect payment inside the survey or form\u003C\u002Fp>\n\u003C\u002Fspan>\n\u003C\u002Fli>\n\u003Cli class=\"fmstr-cmp-ssa-exit__item\">\n\u003Cspan class=\"fmstr-cmp-ssa-exit__ic\" aria-hidden=\"true\">\u003Csvg width=\"19\" height=\"19\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\">\u003Cpath d=\"M17.5 19a4.5 4.5 0 1 0 0-9h-1.8A7 7 0 1 0 4 14.9\"\u002F>\u003Cpath d=\"M12 12v9\"\u002F>\u003Cpath d=\"m8 17 4 4 4-4\"\u002F>\u003C\u002Fsvg>\u003C\u002Fspan>\n\u003Cspan>\n\u003Ch3 class=\"fmstr-cmp-ssa-exit__item-title\">Offline capture that syncs later\u003C\u002Fh3>\n\u003Cp class=\"fmstr-cmp-ssa-exit__item-body\">Collect at events and venues with no signal\u003C\u002Fp>\n\u003C\u002Fspan>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ca href=\"https:\u002F\u002Fapp.formester.com\u002Fusers\u002Fsign_up\" class=\"fmstr-cmp-ssa-exit__cta\">Try the option with no cap\u003C\u002Fa>\n\u003Cbutton type=\"button\" class=\"fmstr-cmp-ssa-exit__dismiss\" data-fmstr-exit-close>Keep reading the comparison\u003C\u002Fbutton>\n\u003Cp class=\"fmstr-cmp-ssa-exit__meta\">Free forever plan &middot; No credit card\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003C\u002Fdiv>\n\u003Cscript>\n(function () {\nif (window.__fmstrExitInit_ssa) { return; }\nwindow.__fmstrExitInit_ssa = true;\n\nvar KEY = 'fmstr_ssa_exit_seen_v1';\nvar SCROLL_TRIGGER = 0.6;\nvar MIN_DWELL_MS = 12000;\nvar started = Date.now();\nvar root = document.getElementById('fmstr-ssa-exit');\nif (!root) { return; }\n\nfunction alreadySeen() {\ntry { return window.sessionStorage.getItem(KEY) === '1'; } catch (e) { return false; }\n}\nfunction markSeen() {\ntry { window.sessionStorage.setItem(KEY, '1'); } catch (e) {}\n}\nif (alreadySeen()) { return; }\n\nvar opened = false;\nvar prevOverflow = '';\n\nfunction open() {\nif (opened || alreadySeen()) { return; }\nif (!root.isConnected) { return; }\nif (Date.now() - started \u003C MIN_DWELL_MS) { return; }\nopened = true;\nmarkSeen();\nroot.classList.add('is-open');\nroot.setAttribute('aria-hidden', 'false');\nprevOverflow = document.documentElement.style.overflow;\ndocument.documentElement.style.overflow = 'hidden';\nvar closeBtn = root.querySelector('.fmstr-cmp-ssa-exit__close');\nif (closeBtn) { closeBtn.focus(); }\ndetach();\n}\n\nfunction close() {\nroot.classList.remove('is-open');\nroot.setAttribute('aria-hidden', 'true');\ndocument.documentElement.style.overflow = prevOverflow;\ndocument.removeEventListener('keydown', onKey);\n}\n\nfunction onScroll() {\nvar doc = document.documentElement;\nvar height = Math.max(doc.scrollHeight, document.body ? document.body.scrollHeight : 0);\nif (height \u003C= window.innerHeight) { return; }\nvar seen = (window.pageYOffset + window.innerHeight) \u002F height;\nif (seen >= SCROLL_TRIGGER) { open(); }\n}\n\nfunction onMouseOut(e) {\nif (e.relatedTarget || e.toElement) { return; }\nif (e.clientY > 4) { return; }\nopen();\n}\n\nfunction onKey(e) {\nif (e.key === 'Escape' || e.keyCode === 27) { close(); }\n}\n\nfunction detach() {\nwindow.removeEventListener('scroll', onScroll);\ndocument.removeEventListener('mouseout', onMouseOut);\n}\n\nwindow.addEventListener('scroll', onScroll, { passive: true });\nvar finePointer = true;\ntry { finePointer = window.matchMedia('(pointer: fine)').matches; } catch (e) {}\nif (finePointer) { document.addEventListener('mouseout', onMouseOut); }\ndocument.addEventListener('keydown', onKey);\n\nroot.addEventListener('click', function (e) {\nvar t = e.target;\nwhile (t && t !== root) {\nif (t.hasAttribute && t.hasAttribute('data-fmstr-exit-close')) { close(); return; }\nt = t.parentNode;\n}\n});\n})();\n\u003C\u002Fscript>\n\n\n","blog\u002Fblog\u002Fsurveysparrow-alternatives.md",2400,1350,{"text":192},"20 min read",{"title":194,"author":35,"authorImage":8,"authorProfile":36,"coverImg":195,"coverImgAlt":196,"createdAt":197,"description":198,"featured":13,"jsonld":199,"keywords":200,"metaDescription":201,"metaImage":202,"metaTitle":203,"publishedAt":204,"slug":205,"updatedAt":206,"__hash__":207,"body":208,"id":209,"coverImgWidth":189,"coverImgHeight":190,"readingStats":210},"8 Best Quiz Funnel Software in 2026: Compared","https:\u002F\u002Fformester-strapi.s3.ap-south-1.amazonaws.com\u002Fbest_quiz_funnel_software_c28285a266.png","8 best quiz funnel software compared for 2026","2026-07-09T14:52:42.056Z","8 top quiz funnel tools ranked for lead-gen quizzes: Formester, Interact, Involve.me, ScoreApp, LeadQuizzes, Typeform, Jotform, Google Forms. Pricing, templates, and CRM integrations compared.",[],"best quiz funnel software, quiz funnel builder, lead gen quiz software, quiz maker for lead generation, best quiz software","The 8 best quiz funnel tools in 2026 for lead generation, product recommendations, and personality quizzes. Pricing, integrations, and how each fits your funnel.",[],"8 Best Quiz Funnel Software in 2026 | Formester","2026-08-20T05:14:58.494Z","best-quiz-funnel-software","2026-08-20T05:14:58.498Z","bHa0-qhM6cfxDiCb1BQDqMw9Y4vHCrvjg7JPpS8E8rQ","![8 best quiz funnel software compared for 2026](https:\u002F\u002Fformester-strapi.s3.ap-south-1.amazonaws.com\u002Fbest_quiz_funnel_software_c28285a266.png)\n\n\u003Cdiv style=\"background:#F9FAFB;border-left:4px solid #7f56d9;padding:14px 18px;margin:0 0 24px 0;border-radius:6px;font-family:inherit;\">\n\u003Cp style=\"margin:0;font-size:14px;color:#475467;font-family:inherit;\">\u003Cstrong>How we verified this:\u003C\u002Fstrong> every figure on this page comes from the vendor's own pricing page or its public G2 profile. \u003Ca href=\"https:\u002F\u002Fdocs.google.com\u002Fdocument\u002Fd\u002F1xZfhJbZ3nRgNiskwdi5zkruOMJIhUJveJba3y9y9gnk\u002Fedit?usp=sharing\" target=\"_blank\" rel=\"noopener\">You can check every source here\u003C\u002Fa>.\u003C\u002Fp>\n\u003C\u002Fdiv>\n\n\u003Ch2>Which quiz funnel software should you choose?\u003C\u002Fh2>\n\n\u003Cp>A quiz funnel is a lead magnet with a scoring engine behind it. Someone answers a few questions, gets a result that feels personal, and hands over an email address to see it. Done well, it converts better than an ebook download.\u003C\u002Fp>\n\n\u003Cp>The tools below all build that flow. Where they separate is what happens after it works: how many leads you can capture before the price moves, how deep the scoring logic goes, and whether the results page can carry your brand.\u003C\u002Fp>\n\n\u003Cdiv class=\"tldr\">\n\u003Cp>\u003Cstrong>The 60-second TL;DR\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Best all-around with no lead caps:\u003C\u002Fstrong> Formester, unlimited responses free\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Best for marketing quiz funnels:\u003C\u002Fstrong> Interact, from $39\u002Fmo\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Best for interactive content breadth:\u003C\u002Fstrong> Involve.me, from $49\u002Fmo\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Best for scorecard assessments:\u003C\u002Fstrong> ScoreApp, from $39\u002Fmo\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Best for lead-gen quizzes:\u003C\u002Fstrong> LeadQuizzes, from $49\u002Fmo\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Best for polished quiz UX:\u003C\u002Fstrong> Typeform, from $39\u002Fmo\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Best for template depth:\u003C\u002Fstrong> Jotform, from $39\u002Fmo\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Best free option:\u003C\u002Fstrong> Google Forms, free with any Google account\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fdiv>\n\n\u003Ch2>How the eight quiz funnel tools compare at a glance\u003C\u002Fh2>\n\n\u003Cp>Here is the comparison in one table: what each free plan allows, where paid pricing starts on monthly billing, and what each tool is built for. Use it to shortlist, then read the matching review.\u003C\u002Fp>\n\n\u003Cdiv class=\"table-wrap\">\n\u003Ctable>\n\u003Cthead>\u003Ctr>\u003Cth>Tool\u003C\u002Fth>\u003Cth>Free plan\u003C\u002Fth>\u003Cth>Paid from (monthly)\u003C\u002Fth>\u003Cth>Built for\u003C\u002Fth>\u003Cth>G2 rating\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\u003Ctd>Formester\u003C\u002Ftd>\u003Ctd>Unlimited forms and responses\u003C\u002Ftd>\u003Ctd>$13\u002Fmo\u003C\u002Ftd>\u003Ctd>Quizzes without lead caps\u003C\u002Ftd>\u003Ctd>4.7\u002F5 (14 reviews)\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Interact\u003C\u002Ftd>\u003Ctd>Free tier available\u003C\u002Ftd>\u003Ctd>$39\u002Fmo\u003C\u002Ftd>\u003Ctd>Marketing quiz funnels\u003C\u002Ftd>\u003Ctd>4.5\u002F5 (65 reviews)\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Involve.me\u003C\u002Ftd>\u003Ctd>Free tier available\u003C\u002Ftd>\u003Ctd>$49\u002Fmo\u003C\u002Ftd>\u003Ctd>Interactive content of all kinds\u003C\u002Ftd>\u003Ctd>4.7\u002F5 (104 reviews)\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>ScoreApp\u003C\u002Ftd>\u003Ctd>Free tier available\u003C\u002Ftd>\u003Ctd>$39\u002Fmo\u003C\u002Ftd>\u003Ctd>Scorecard assessments\u003C\u002Ftd>\u003Ctd>4.7\u002F5 (48 reviews)\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>LeadQuizzes\u003C\u002Ftd>\u003Ctd>Trial only\u003C\u002Ftd>\u003Ctd>$49\u002Fmo\u003C\u002Ftd>\u003Ctd>Lead-gen quizzes\u003C\u002Ftd>\u003Ctd>4.2\u002F5 (9 reviews)\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Typeform\u003C\u002Ftd>\u003Ctd>10 responses\u002Fmo\u003C\u002Ftd>\u003Ctd>$39\u002Fmo\u003C\u002Ftd>\u003Ctd>Polished quiz experiences\u003C\u002Ftd>\u003Ctd>4.5\u002F5 (1,017 reviews)\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Jotform\u003C\u002Ftd>\u003Ctd>5 forms, 100 submissions\u002Fmo\u003C\u002Ftd>\u003Ctd>$39\u002Fmo\u003C\u002Ftd>\u003Ctd>Template depth\u003C\u002Ftd>\u003Ctd>4.7\u002F5 (5,426 reviews)\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Google Forms\u003C\u002Ftd>\u003Ctd>Free with a Google account\u003C\u002Ftd>\u003Ctd>Bundled with Workspace\u003C\u002Ftd>\u003Ctd>Simple scored quizzes\u003C\u002Ftd>\u003Ctd>No standalone profile\u003C\u002Ftd>\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003C\u002Fdiv>\n\n\u003Ch2>How we picked and ranked these eight tools\u003C\u002Fh2>\n\n\u003Cp>Everything here comes from the vendors' own pricing pages and plan limits, read in full. For quiz funnels the lead cap matters most, because the plan that works during testing is rarely the plan that survives a campaign.\u003C\u002Fp>\n\n\u003Cp>The ranking weighs what each free tier allows and what the tool costs once leads arrive, plus how much of the funnel you can control. Most of these vendors advertise annual rates, so the monthly figures below run higher than the ones on their pricing pages.\u003C\u002Fp>\n\n\u003Ch2>1. Formester, best all-around with no lead caps\u003C\u002Fh2>\n\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fformester-strapi.s3.ap-south-1.amazonaws.com\u002Fformester_99e2a99609.png\" alt=\"Formester homepage hero screenshot\" style=\"width:100%;max-width:900px;height:auto;border-radius:8px;border:1px solid #e5e7eb;margin:16px 0;\" loading=\"lazy\" \u002F>\u003C\u002Fp>\n\n\u003Cp>Formester never counts responses, which is an unusual position in a category that mostly prices by leads captured.\u003C\u002Fp>\n\n\u003Cp>Quiz auto-scoring is included on the free plan, along with drop-off analytics that show which question loses people. Conditional logic, which is what branches a quiz toward different outcomes, arrives on the Personal plan at $13 a month.\u003C\u002Fp>\n\n\u003Cp>For a campaign whose response volume you cannot predict, that flat pricing changes the risk. A quiz that performs well does not create a billing problem.\u003C\u002Fp>\n\n\u003Cdiv class=\"table-wrap\">\n\u003Ctable>\n\u003Cthead>\u003Ctr>\u003Cth>Strengths\u003C\u002Fth>\u003Cth>Weaknesses\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\u003Ctd>No response or lead cap on any plan\u003C\u002Ftd>\u003Ctd>Conditional logic starts on the paid Personal plan\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Quiz auto-scoring on the free plan\u003C\u002Ftd>\u003Ctd>No purpose-built outcome-page designer\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Drop-off analytics show where people abandon\u003C\u002Ftd>\u003Ctd>Fewer marketing integrations than the specialists\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Payments on the free plan\u003C\u002Ftd>\u003Ctd>14 G2 reviews, a small sample\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>AI generates a quiz from a prompt\u003C\u002Ftd>\u003Ctd>\u003C\u002Ftd>\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003C\u002Fdiv>\n\n\u003Cdiv class=\"table-wrap\">\n\u003Ctable>\n\u003Cthead>\u003Ctr>\u003Cth>Plan\u003C\u002Fth>\u003Cth>What you get\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\u003Ctd>Free\u003C\u002Ftd>\u003Ctd>$0. Unlimited forms and responses, auto-scoring, analytics\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Personal\u003C\u002Ftd>\u003Ctd>$13\u002Fmo ($12\u002Fmo billed yearly). Adds conditional logic\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Business\u003C\u002Ftd>\u003Ctd>$49\u002Fmo ($45\u002Fmo billed yearly). Adds custom domain and 25 seats\u003C\u002Ftd>\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003C\u002Fdiv>\n\n\u003Cp>\u003Cstrong>Best for:\u003C\u002Fstrong> quiz funnels where lead volume is unpredictable and caps would hurt.\u003C\u002Fp>\n\n\u003Cp>\u003Cstrong>The catch:\u003C\u002Fstrong> the specialists below ship purpose-built outcome pages and marketing integrations that Formester leaves you to assemble.\u003C\u002Fp>\n\n\u003Cp>\u003Cstrong>G2 rating:\u003C\u002Fstrong> 4.7\u002F5, from 14 reviews. High score, small sample; read it as an early signal.\u003C\u002Fp>\n\n\u003Ch2>2. Interact, best for marketing quiz funnels\u003C\u002Fh2>\n\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fformester-strapi.s3.ap-south-1.amazonaws.com\u002Finteract_a43561069a.png\" alt=\"Interact homepage hero screenshot\" style=\"width:100%;max-width:900px;height:auto;border-radius:8px;border:1px solid #e5e7eb;margin:16px 0;\" loading=\"lazy\" \u002F>\u003C\u002Fp>\n\n\u003Cp>Interact is built for one job: quizzes that generate leads for marketing teams. Its templates are organised by industry and outcome, so a coach, a skincare brand or a SaaS company each start from something close to finished.\u003C\u002Fp>\n\n\u003Cp>The result pages are the strong part. Branching to different outcomes and tailored recommendations are handled without extra work, and there is a native path into your email tool.\u003C\u002Fp>\n\n\u003Cp>Monthly pricing runs $39 for Lite, $89 for Growth, and $209 for Pro, above the advertised annual rates of $27, $53, and $125.\u003C\u002Fp>\n\n\u003Cdiv class=\"table-wrap\">\n\u003Ctable>\n\u003Cthead>\u003Ctr>\u003Cth>Strengths\u003C\u002Fth>\u003Cth>Weaknesses\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\u003Ctd>Templates organised by industry and outcome\u003C\u002Ftd>\u003Ctd>Advertised prices are the annual rates\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Purpose-built outcome pages with recommendations\u003C\u002Ftd>\u003Ctd>Lead limits apply on lower tiers\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Native integrations with major email platforms\u003C\u002Ftd>\u003Ctd>Narrower than a general form builder\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Free tier available for testing\u003C\u002Ftd>\u003Ctd>65 G2 reviews, a modest base\u003C\u002Ftd>\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003C\u002Fdiv>\n\n\u003Cdiv class=\"table-wrap\">\n\u003Ctable>\n\u003Cthead>\u003Ctr>\u003Cth>Plan\u003C\u002Fth>\u003Cth>What you get\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\u003Ctd>Free\u003C\u002Ftd>\u003Ctd>$0. Limited quizzes and leads\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Lite\u003C\u002Ftd>\u003Ctd>$39\u002Fmo ($27\u002Fmo billed yearly)\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Growth\u003C\u002Ftd>\u003Ctd>$89\u002Fmo ($53\u002Fmo billed yearly)\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Pro\u003C\u002Ftd>\u003Ctd>$209\u002Fmo ($125\u002Fmo billed yearly)\u003C\u002Ftd>\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003C\u002Fdiv>\n\n\u003Cp>\u003Cstrong>Best for:\u003C\u002Fstrong> marketing teams running quizzes as a primary lead source.\u003C\u002Fp>\n\n\u003Cp>\u003Cstrong>The catch:\u003C\u002Fstrong> monthly billing costs roughly 45 percent more than the advertised annual rate, so check the toggle before budgeting.\u003C\u002Fp>\n\n\u003Cp>\u003Cstrong>G2 rating:\u003C\u002Fstrong> 4.5\u002F5, from 65 reviews. A modest base, consistent with a focused product.\u003C\u002Fp>\n\n\u003Ch2>3. Involve.me, best for interactive content breadth\u003C\u002Fh2>\n\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fformester-strapi.s3.ap-south-1.amazonaws.com\u002Finvolveme_4ca2da3fa3.png\" alt=\"Involve.me homepage hero screenshot\" style=\"width:100%;max-width:900px;height:auto;border-radius:8px;border:1px solid #e5e7eb;margin:16px 0;\" loading=\"lazy\" \u002F>\u003C\u002Fp>\n\n\u003Cp>Involve.me covers more ground than a quiz builder. Calculators, personality tests, product finders and ROI tools all come from the same editor, which suits teams running several kinds of interactive content.\u003C\u002Fp>\n\n\u003Cp>Breadth costs depth. Branching logic is shallower than a dedicated quiz-funnel tool, so complex scoring paths reach a ceiling sooner.\u003C\u002Fp>\n\n\u003Cp>Monthly pricing runs $49 for Start, $99 for Grow, and $199 for Scale, with Enterprise from $499. Annual billing brings the first three down to $29, $69, and $139, and extra seats cost $10 a month each.\u003C\u002Fp>\n\n\u003Cdiv class=\"table-wrap\">\n\u003Ctable>\n\u003Cthead>\u003Ctr>\u003Cth>Strengths\u003C\u002Fth>\u003Cth>Weaknesses\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\u003Ctd>One editor for quizzes, calculators and product finders\u003C\u002Ftd>\u003Ctd>Branching is shallower than dedicated quiz tools\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Solid template library across content types\u003C\u002Ftd>\u003Ctd>Advertised prices are the annual rates\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Zapier plus native connectors for most CRMs\u003C\u002Ftd>\u003Ctd>Extra seats cost $10 per user a month\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>SOC 2 Type II audited\u003C\u002Ftd>\u003Ctd>Free plan limits submissions tightly\u003C\u002Ftd>\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003C\u002Fdiv>\n\n\u003Cdiv class=\"table-wrap\">\n\u003Ctable>\n\u003Cthead>\u003Ctr>\u003Cth>Plan\u003C\u002Fth>\u003Cth>What you get\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\u003Ctd>Free\u003C\u002Ftd>\u003Ctd>$0. Limited submissions and visits, Involve.me branding\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Start\u003C\u002Ftd>\u003Ctd>$49\u002Fmo ($29\u002Fmo billed yearly)\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Grow\u003C\u002Ftd>\u003Ctd>$99\u002Fmo ($69\u002Fmo billed yearly). Adds white-label\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Scale\u003C\u002Ftd>\u003Ctd>$199\u002Fmo ($139\u002Fmo billed yearly)\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Enterprise\u003C\u002Ftd>\u003Ctd>From $499\u002Fmo\u003C\u002Ftd>\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003C\u002Fdiv>\n\n\u003Cp>\u003Cstrong>Best for:\u003C\u002Fstrong> teams running quizzes alongside calculators and other interactive content.\u003C\u002Fp>\n\n\u003Cp>\u003Cstrong>The catch:\u003C\u002Fstrong> if the quiz needs deep conditional scoring, the logic runs out before a dedicated tool would.\u003C\u002Fp>\n\n\u003Cp>\u003Cstrong>G2 rating:\u003C\u002Fstrong> 4.7\u002F5, from 104 reviews. A good score on a reasonable base.\u003C\u002Fp>\n\n\u003Ch2>4. ScoreApp, best for scorecard assessments\u003C\u002Fh2>\n\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fformester-strapi.s3.ap-south-1.amazonaws.com\u002Fscoreapp_bbb33a9124.png\" alt=\"ScoreApp homepage hero screenshot\" style=\"width:100%;max-width:900px;height:auto;border-radius:8px;border:1px solid #e5e7eb;margin:16px 0;\" loading=\"lazy\" \u002F>\u003C\u002Fp>\n\n\u003Cp>ScoreApp is built around the scorecard: a quiz that returns a score and a personalised report rather than a simple result category. Coaches, consultants and agencies use it to qualify leads before a sales call.\u003C\u002Fp>\n\n\u003Cp>The reports are the product. A prospect gets a document that feels tailored, and you get the scoring data behind it, which makes follow-up conversations more specific.\u003C\u002Fp>\n\n\u003Cp>Monthly pricing runs $39 for Starter, $99 for Pro, and $149 for Premium, above the advertised annual rates of $30, $75, and $112.\u003C\u002Fp>\n\n\u003Cdiv class=\"table-wrap\">\n\u003Ctable>\n\u003Cthead>\u003Ctr>\u003Cth>Strengths\u003C\u002Fth>\u003Cth>Weaknesses\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\u003Ctd>Scorecard format with personalised reports\u003C\u002Ftd>\u003Ctd>Narrow use case outside scorecards\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Built for qualifying leads before a call\u003C\u002Ftd>\u003Ctd>Advertised prices are the annual rates\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Strong fit for coaches and consultants\u003C\u002Ftd>\u003Ctd>Fewer general form features\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Free tier available for testing\u003C\u002Ftd>\u003Ctd>48 G2 reviews, a small base\u003C\u002Ftd>\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003C\u002Fdiv>\n\n\u003Cdiv class=\"table-wrap\">\n\u003Ctable>\n\u003Cthead>\u003Ctr>\u003Cth>Plan\u003C\u002Fth>\u003Cth>What you get\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\u003Ctd>Free\u003C\u002Ftd>\u003Ctd>$0. Limited scorecards and leads\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Starter\u003C\u002Ftd>\u003Ctd>$39\u002Fmo ($30\u002Fmo billed yearly)\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Pro\u003C\u002Ftd>\u003Ctd>$99\u002Fmo ($75\u002Fmo billed yearly)\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Premium\u003C\u002Ftd>\u003Ctd>$149\u002Fmo ($112\u002Fmo billed yearly)\u003C\u002Ftd>\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003C\u002Fdiv>\n\n\u003Cp>\u003Cstrong>Best for:\u003C\u002Fstrong> consultants and coaches who qualify leads with an assessment.\u003C\u002Fp>\n\n\u003Cp>\u003Cstrong>The catch:\u003C\u002Fstrong> it does one format well. If you need a general quiz or a standard form, this is the wrong shape of tool.\u003C\u002Fp>\n\n\u003Cp>\u003Cstrong>G2 rating:\u003C\u002Fstrong> 4.7\u002F5, from 48 reviews. A strong score on a small base.\u003C\u002Fp>\n\n\u003Ch2>5. LeadQuizzes, best for lead-gen quizzes\u003C\u002Fh2>\n\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fformester-strapi.s3.ap-south-1.amazonaws.com\u002Fleadquizzes_635c385ba1.png\" alt=\"LeadQuizzes homepage hero screenshot\" style=\"width:100%;max-width:900px;height:auto;border-radius:8px;border:1px solid #e5e7eb;margin:16px 0;\" loading=\"lazy\" \u002F>\u003C\u002Fp>\n\n\u003Cp>LeadQuizzes is the most straightforwardly transactional tool here. Build a quiz, gate the result behind an email field, push the lead into your marketing platform.\u003C\u002Fp>\n\n\u003Cp>It measures itself in page views rather than responses, which suits campaigns driving paid traffic to a quiz landing page.\u003C\u002Fp>\n\n\u003Cp>Monthly pricing runs $49 for Standard, $99 for Pro, and $249 for Premium, above the advertised annual rates of $37, $74, and $186. Promotional discounts were running when we checked.\u003C\u002Fp>\n\n\u003Cdiv class=\"table-wrap\">\n\u003Ctable>\n\u003Cthead>\u003Ctr>\u003Cth>Strengths\u003C\u002Fth>\u003Cth>Weaknesses\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\u003Ctd>Simple lead-capture flow\u003C\u002Ftd>\u003Ctd>No permanent free plan\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Priced around page views rather than responses\u003C\u002Ftd>\u003Ctd>Advertised prices are the annual rates\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Integrations with major email and CRM platforms\u003C\u002Ftd>\u003Ctd>9 G2 reviews, far too few to judge by\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>14-day trial on any plan\u003C\u002Ftd>\u003Ctd>Fewer design controls than Interact or Typeform\u003C\u002Ftd>\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003C\u002Fdiv>\n\n\u003Cdiv class=\"table-wrap\">\n\u003Ctable>\n\u003Cthead>\u003Ctr>\u003Cth>Plan\u003C\u002Fth>\u003Cth>What you get\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\u003Ctd>Free\u003C\u002Ftd>\u003Ctd>No permanent free plan; a 14-day trial is offered\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Standard\u003C\u002Ftd>\u003Ctd>$49\u002Fmo ($37\u002Fmo billed yearly). 50,000 page views\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Pro\u003C\u002Ftd>\u003Ctd>$99\u002Fmo ($74\u002Fmo billed yearly). 150,000 page views\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Premium\u003C\u002Ftd>\u003Ctd>$249\u002Fmo ($186\u002Fmo billed yearly). 500,000 page views\u003C\u002Ftd>\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003C\u002Fdiv>\n\n\u003Cp>\u003Cstrong>Best for:\u003C\u002Fstrong> paid-traffic campaigns where a quiz is the landing page.\u003C\u002Fp>\n\n\u003Cp>\u003Cstrong>The catch:\u003C\u002Fstrong> with only 9 G2 reviews there is very little independent feedback to check before committing.\u003C\u002Fp>\n\n\u003Cp>\u003Cstrong>G2 rating:\u003C\u002Fstrong> 4.2\u002F5, from 9 reviews. Too small a sample to carry meaning; judge it on a trial.\u003C\u002Fp>\n\n\u003Ch2>6. Typeform, best for polished quiz UX\u003C\u002Fh2>\n\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fformester-strapi.s3.ap-south-1.amazonaws.com\u002Ftypeform_7aad7a2e5b.png\" alt=\"Typeform homepage hero screenshot\" style=\"width:100%;max-width:900px;height:auto;border-radius:8px;border:1px solid #e5e7eb;margin:16px 0;\" loading=\"lazy\" \u002F>\u003C\u002Fp>\n\n\u003Cp>Typeform makes the best-looking quiz in this list. One question at a time, with smooth transitions and a respondent experience that raises completion on anything longer than a few questions.\u003C\u002Fp>\n\n\u003Cp>Logic jumps handle branching well, and the outcome can be tailored, though the marketing plumbing around it is thinner than the specialists offer.\u003C\u002Fp>\n\n\u003Cp>It is also priced for quality rather than volume. Free covers 10 responses a month, Basic is $39 with 100 responses, Plus $79 with 1,000, and Business $129 with 10,000.\u003C\u002Fp>\n\n\u003Cdiv class=\"table-wrap\">\n\u003Ctable>\n\u003Cthead>\u003Ctr>\u003Cth>Strengths\u003C\u002Fth>\u003Cth>Weaknesses\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\u003Ctd>Best-looking quiz experience here\u003C\u002Ftd>\u003Ctd>Free plan covers only 10 responses a month\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>High completion rates on longer quizzes\u003C\u002Ftd>\u003Ctd>Highest cost per lead in this list\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Logic jumps handle branching cleanly\u003C\u002Ftd>\u003Ctd>Weaker marketing automation than the specialists\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Strong drop-off analytics\u003C\u002Ftd>\u003Ctd>Advertised prices are the annual rates\u003C\u002Ftd>\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003C\u002Fdiv>\n\n\u003Cdiv class=\"table-wrap\">\n\u003Ctable>\n\u003Cthead>\u003Ctr>\u003Cth>Plan\u003C\u002Fth>\u003Cth>What you get\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\u003Ctd>Free\u003C\u002Ftd>\u003Ctd>$0. 10 responses\u002Fmo\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Basic\u003C\u002Ftd>\u003Ctd>$39\u002Fmo ($28\u002Fmo billed yearly). 100 responses\u002Fmo\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Plus\u003C\u002Ftd>\u003Ctd>$79\u002Fmo ($56\u002Fmo billed yearly). 1,000 responses\u002Fmo\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Business\u003C\u002Ftd>\u003Ctd>$129\u002Fmo ($91\u002Fmo billed yearly). 10,000 responses\u002Fmo\u003C\u002Ftd>\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003C\u002Fdiv>\n\n\u003Cp>\u003Cstrong>Best for:\u003C\u002Fstrong> brands where the quiz experience reflects on the company.\u003C\u002Fp>\n\n\u003Cp>\u003Cstrong>The catch:\u003C\u002Fstrong> cost per lead is the highest here, so a quiz that succeeds at volume gets expensive fast.\u003C\u002Fp>\n\n\u003Cp>\u003Cstrong>G2 rating:\u003C\u002Fstrong> 4.5\u002F5, from 1,017 reviews. A large base, with cost the most common complaint.\u003C\u002Fp>\n\n\u003Ch2>7. Jotform, best for template depth\u003C\u002Fh2>\n\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fformester-strapi.s3.ap-south-1.amazonaws.com\u002Fjotform_52dafaf96f.png\" alt=\"Jotform homepage hero screenshot\" style=\"width:100%;max-width:900px;height:auto;border-radius:8px;border:1px solid #e5e7eb;margin:16px 0;\" loading=\"lazy\" \u002F>\u003C\u002Fp>\n\n\u003Cp>Jotform is a general form builder that handles quizzes well rather than a quiz specialist. Its scoring and calculation fields support most quiz logic, and the 20,000+ template library includes many quiz formats.\u003C\u002Fp>\n\n\u003Cp>For teams that already run other forms on Jotform, adding a quiz avoids introducing another vendor, which is often the deciding factor.\u003C\u002Fp>\n\n\u003Cp>Monthly billing runs $39 for Bronze, $49 for Silver, and $129 for Gold, above the advertised annual rates of $34, $39, and $99.\u003C\u002Fp>\n\n\u003Cdiv class=\"table-wrap\">\n\u003Ctable>\n\u003Cthead>\u003Ctr>\u003Cth>Strengths\u003C\u002Fth>\u003Cth>Weaknesses\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\u003Ctd>20,000+ templates including quiz formats\u003C\u002Ftd>\u003Ctd>Not built specifically for quiz funnels\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Calculation and scoring fields built in\u003C\u002Ftd>\u003Ctd>Submissions metered on every tier\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>40+ payment gateways for paid quizzes\u003C\u002Ftd>\u003Ctd>Outcome pages need assembling manually\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>One vendor for quizzes and every other form\u003C\u002Ftd>\u003Ctd>Advertised prices are the annual rates\u003C\u002Ftd>\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003C\u002Fdiv>\n\n\u003Cdiv class=\"table-wrap\">\n\u003Ctable>\n\u003Cthead>\u003Ctr>\u003Cth>Plan\u003C\u002Fth>\u003Cth>What you get\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\u003Ctd>Starter (free)\u003C\u002Ftd>\u003Ctd>$0. 5 forms, 100 submissions\u002Fmo\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Bronze\u003C\u002Ftd>\u003Ctd>$39\u002Fmo ($34\u002Fmo billed yearly). 1,000 submissions\u002Fmo\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Silver\u003C\u002Ftd>\u003Ctd>$49\u002Fmo ($39\u002Fmo billed yearly). 2,500 submissions\u002Fmo\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Gold\u003C\u002Ftd>\u003Ctd>$129\u002Fmo ($99\u002Fmo billed yearly). 10,000 submissions\u002Fmo\u003C\u002Ftd>\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003C\u002Fdiv>\n\n\u003Cp>\u003Cstrong>Best for:\u003C\u002Fstrong> teams already using Jotform who want quizzes without adding a vendor.\u003C\u002Fp>\n\n\u003Cp>\u003Cstrong>The catch:\u003C\u002Fstrong> the funnel around the quiz is manual work. The specialists ship outcome pages and lead routing that Jotform expects you to build.\u003C\u002Fp>\n\n\u003Cp>\u003Cstrong>G2 rating:\u003C\u002Fstrong> 4.7\u002F5, from 5,426 reviews, the largest base of any tool in this list.\u003C\u002Fp>\n\n\u003Ch2>8. Google Forms, best free option\u003C\u002Fh2>\n\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fformester-strapi.s3.ap-south-1.amazonaws.com\u002Fgoogle_forms_1165c9a16e.png\" alt=\"Google Forms homepage hero screenshot\" style=\"width:100%;max-width:900px;height:auto;border-radius:8px;border:1px solid #e5e7eb;margin:16px 0;\" loading=\"lazy\" \u002F>\u003C\u002Fp>\n\n\u003Cp>Google Forms scores quizzes natively at no cost, and puts results in Sheets. For a knowledge check, a training assessment, or a simple internal quiz, that is often enough.\u003C\u002Fp>\n\n\u003Cp>As a funnel it falls short. There is no outcome page worth the name and no branded result, and nothing reaches a marketing platform without extra tooling.\u003C\u002Fp>\n\n\u003Cp>There is no quiz-specific paid plan. Forms comes with Google Workspace, where Business Starter is $7 per user a month on an annual basis, Standard is $14, and Plus is $22.\u003C\u002Fp>\n\n\u003Cdiv class=\"table-wrap\">\n\u003Ctable>\n\u003Cthead>\u003Ctr>\u003Cth>Strengths\u003C\u002Fth>\u003Cth>Weaknesses\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\u003Ctd>Free with any Google account\u003C\u002Ftd>\u003Ctd>No real outcome or results page\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Native quiz scoring built in\u003C\u002Ftd>\u003Ctd>No marketing automation integrations\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Results flow into Sheets\u003C\u002Ftd>\u003Ctd>Google branding stays on the quiz\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>No response cap worth planning around\u003C\u002Ftd>\u003Ctd>Skip-to-section logic only\u003C\u002Ftd>\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003C\u002Fdiv>\n\n\u003Cdiv class=\"table-wrap\">\n\u003Ctable>\n\u003Cthead>\u003Ctr>\u003Cth>Plan\u003C\u002Fth>\u003Cth>What you get\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\u003Ctd>Free\u003C\u002Ftd>\u003Ctd>$0 with any Google account. Effectively unlimited responses\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Workspace Business Starter\u003C\u002Ftd>\u003Ctd>$7\u002Fuser\u002Fmo, annual basis\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Workspace Business Standard\u003C\u002Ftd>\u003Ctd>$14\u002Fuser\u002Fmo, annual basis\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>Workspace Business Plus\u003C\u002Ftd>\u003Ctd>$22\u002Fuser\u002Fmo, annual basis\u003C\u002Ftd>\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003C\u002Fdiv>\n\n\u003Cp>\u003Cstrong>Best for:\u003C\u002Fstrong> internal quizzes and training assessments rather than lead generation.\u003C\u002Fp>\n\n\u003Cp>\u003Cstrong>The catch:\u003C\u002Fstrong> it is a quiz tool, not a funnel. Everything after the score, the branded result and the lead handoff, is missing.\u003C\u002Fp>\n\n\u003Cp>\u003Cstrong>G2 rating:\u003C\u002Fstrong> Google Forms has no standalone G2 profile. The 4.6\u002F5 from 48,175 reviews quoted elsewhere covers Google Workspace as a whole.\u003C\u002Fp>\n\n\u003Cdiv style=\"background: #F5F3FF; border: 1px solid #E9D5FF; border-radius: 24px; padding: clamp(28px, 5vw, 56px) clamp(20px, 4vw, 48px); margin: 40px 0; text-align: center; font-family: inherit;\">\n\u003Cdiv style=\"display: inline-block; background: #FFFFFF; border: 1px solid #E9D5FF; border-radius: 9999px; padding: 6px 16px; font-size: 12px; font-weight: 700; color: #6941C6; letter-spacing: 0.06em; text-transform: uppercase; margin-bottom: 22px;\">Formester\u003C\u002Fdiv>\n\u003Ch3 style=\"color: #0F172A !important; font-size: clamp(24px, 3.4vw, 36px); line-height: 1.2; font-weight: 700; margin: 0 auto 14px; max-width: 720px; font-family: inherit;\">Build a quiz funnel without per-response caps\u003C\u002Fh3>\n\u003Cp style=\"color: #475467; font-size: clamp(15px, 1.5vw, 17px); line-height: 1.55; margin: 0 auto 28px; max-width: 600px; font-family: inherit;\">Formester's free plan ships quiz auto-scoring, all field types, drop-off analysis and unlimited responses. Add conditional logic on Personal for full outcome branching.\u003C\u002Fp>\n\u003Cp style=\"margin: 0;\">\u003Ca href=\"https:\u002F\u002Fapp.formester.com\u002Fusers\u002Fsign_up\" style=\"display: inline-block; background: #7f56d9 !important; color: #ffffff !important; text-decoration: none !important; padding: 14px 28px; border-radius: 9999px; font-weight: 600; font-size: 16px; font-family: inherit;\">Try Formester free \u003Cspan aria-hidden=\"true\" style=\"margin-left: 4px;\">&rarr;\u003C\u002Fspan>\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp style=\"margin: 22px 0 0; font-size: 13px; color: #697586; font-family: inherit;\">Free forever plan \u003Cspan style=\"color: #C4B5FD;\">&bull;\u003C\u002Fspan> No credit card \u003Cspan style=\"color: #C4B5FD;\">&bull;\u003C\u002Fspan> Setup in 2 minutes\u003C\u002Fp>\n\u003C\u002Fdiv>\n\n\u003Ch2>How to pick the right quiz funnel software\u003C\u002Fh2>\n\n\u003Cp>Start with what happens after someone finishes the quiz, because that is where these tools genuinely differ. If the result needs to be a branded page with tailored recommendations feeding your email platform, you want a specialist.\u003C\u002Fp>\n\n\u003Cp>That means Interact for marketing quizzes, ScoreApp for assessments, or LeadQuizzes for paid-traffic campaigns.\u003C\u002Fp>\n\n\u003Cp>If the quiz itself is the point and you will handle the follow-up elsewhere, a general tool is cheaper and more flexible. Formester never caps leads, Jotform brings template depth, and Typeform brings the best respondent experience.\u003C\u002Fp>\n\n\u003Cp>Then check the volume you expect. Every specialist here meters leads or page views, so a campaign that performs moves you up a tier. Formester and Google Forms are the two that do not.\u003C\u002Fp>\n\n\u003Ch2>Common questions about quiz funnel software\u003C\u002Fh2>\n\n\u003Cdetails>\u003Csummary>What is quiz funnel software?\u003C\u002Fsummary>\u003Cdiv>Quiz funnel software builds an interactive quiz that scores answers, shows a personalised result, and captures the respondent's contact details in exchange for it. The quiz works as a lead magnet, and the scoring data helps qualify and segment the leads it produces.\u003C\u002Fdiv>\u003C\u002Fdetails>\n\n\u003Cdetails>\u003Csummary>What is the best free quiz funnel software?\u003C\u002Fsummary>\u003Cdiv>The best free quiz funnel software is Formester, whose free plan includes unlimited responses and quiz auto-scoring with no lead cap. Google Forms scores quizzes free as well, though it offers no branded results page or marketing integration.\u003C\u002Fdiv>\u003C\u002Fdetails>\n\n\u003Cdetails>\u003Csummary>How much does quiz funnel software cost?\u003C\u002Fsummary>\u003Cdiv>Quiz funnel software in this list runs from $13 a month for Formester to $249 for LeadQuizzes Premium. The specialists start higher: Interact and ScoreApp at $39 a month, Involve.me and LeadQuizzes at $49, all on monthly billing.\u003C\u002Fdiv>\u003C\u002Fdetails>\n\n\u003Cdetails>\u003Csummary>Do quiz funnels convert better than other lead magnets?\u003C\u002Fsummary>\u003Cdiv>Quiz funnels often outperform static lead magnets like ebooks because the respondent gets something personalised in return, and because the answers segment the lead for you. Results vary by audience and offer, so test against your current magnet rather than assuming a lift.\u003C\u002Fdiv>\u003C\u002Fdetails>\n\n\u003Cdetails>\u003Csummary>Which quiz tool has the best scoring logic?\u003C\u002Fsummary>\u003Cdiv>Interact and ScoreApp offer the deepest scoring for funnel use, with outcomes that branch on combined answers. Formester and Jotform both include auto-scoring and calculation fields, while Google Forms handles simple point-based scoring only.\u003C\u002Fdiv>\u003C\u002Fdetails>\n\n\u003Cdetails>\u003Csummary>Can I capture leads without a monthly cap?\u003C\u002Fsummary>\u003Cdiv>Yes, Formester places no cap on responses or leads on any plan including the free one. Every specialist tool here meters leads, submissions, or page views, which means a successful campaign moves you to a higher tier.\u003C\u002Fdiv>\u003C\u002Fdetails>\n\n\u003Cdetails>\u003Csummary>Do these tools integrate with email marketing platforms?\u003C\u002Fsummary>\u003Cdiv>Yes, most integrate directly. Interact, Involve.me, ScoreApp, and LeadQuizzes all offer native connections to major email and CRM platforms. Formester and Jotform connect through Zapier and webhooks, and Google Forms needs extra tooling.\u003C\u002Fdiv>\u003C\u002Fdetails>\n\n\u003Cdetails>\u003Csummary>Can I put a quiz funnel on my own domain?\u003C\u002Fsummary>\u003Cdiv>Yes, several tools support custom domains. Formester includes one on the Business plan at $49 a month, and Involve.me, ScoreApp, and Interact all offer custom domains on their paid tiers. Google Forms does not support custom domains at all.\u003C\u002Fdiv>\u003C\u002Fdetails>\n\n\u003Cstyle>\n\n.fmstr-cmp-qfs-exit {\n--p-bg-card: #ffffff;\n--p-bg-violet-25: #f7f3ff;\n--p-bg-pill: #f4ebff;\n--p-fg-1: #101828;\n--p-fg-2: #475467;\n--p-fg-3: #697586;\n--p-violet-500: #7f56d9;\n--p-violet-600: #6941c6;\n--p-violet-700: #5925dc;\n--p-border-light: #eaecf0;\n--p-border-violet: #9777e0;\n\nposition: fixed;\ninset: 0;\nz-index: 2147483000;\ndisplay: none;\nalign-items: center;\njustify-content: center;\npadding: 24px;\nfont-family: inherit;\ncolor: var(--p-fg-1);\n}\n.fmstr-cmp-qfs-exit *, .fmstr-cmp-qfs-exit *::before, .fmstr-cmp-qfs-exit *::after { box-sizing: border-box; }\n.fmstr-cmp-qfs-exit.is-open { display: flex; }\n\n.fmstr-cmp-qfs-exit__backdrop {\nposition: absolute; inset: 0;\nbackground: rgba(16, 10, 40, 0.55);\nbackdrop-filter: blur(3px);\nopacity: 0;\ntransition: opacity 220ms ease;\n}\n.fmstr-cmp-qfs-exit.is-open .fmstr-cmp-qfs-exit__backdrop { opacity: 1; }\n\n.fmstr-cmp-qfs-exit__card {\nposition: relative;\nwidth: 100%;\nmax-width: 520px;\nbackground: var(--p-bg-card);\nborder: 1px solid var(--p-border-light);\nborder-radius: 20px;\npadding: 36px 36px 30px;\nbox-shadow: 0 32px 80px rgba(16, 10, 40, 0.32);\nopacity: 0;\ntransform: translateY(14px) scale(0.985);\ntransition: opacity 260ms ease, transform 260ms cubic-bezier(0.22, 1, 0.36, 1);\n}\n.fmstr-cmp-qfs-exit.is-open .fmstr-cmp-qfs-exit__card { opacity: 1; transform: none; }\n\n.fmstr-cmp-qfs-exit__close {\nposition: absolute;\ntop: 12px; right: 12px;\nwidth: 40px; height: 40px;\ndisplay: inline-flex; align-items: center; justify-content: center;\nbackground: transparent;\nborder: 0;\nborder-radius: 50%;\ncolor: var(--p-fg-3);\ncursor: pointer;\ntransition: background-color 150ms ease, color 150ms ease;\n}\n.fmstr-cmp-qfs-exit__close:hover { background: #f2f4f7; color: var(--p-fg-1); }\n.fmstr-cmp-qfs-exit__close:focus { outline: none; }\n.fmstr-cmp-qfs-exit__close:focus-visible { outline: 2px solid var(--p-border-violet); outline-offset: 2px; }\n.fmstr-cmp-qfs-exit__cta:focus-visible,\n.fmstr-cmp-qfs-exit__dismiss:focus-visible { outline: 2px solid var(--p-border-violet); outline-offset: 2px; border-radius: 9999px; }\n\n.fmstr-cmp-qfs-exit__eyebrow {\ndisplay: inline-block;\npadding: 5px 13px 7px;\nbackground: var(--p-bg-pill);\ncolor: var(--p-violet-600);\nborder-radius: 9999px;\nfont-size: 12px;\nfont-weight: 700;\nline-height: 1;\nletter-spacing: 0.08em;\ntext-transform: uppercase;\nmargin-bottom: 16px;\nmax-width: calc(100% - 46px);\n}\n\n.fmstr-cmp-qfs-exit__heading {\nmargin: 0 0 12px;\nfont-size: 27px;\nline-height: 1.22;\nfont-weight: 800;\nletter-spacing: -0.02em;\n}\n.fmstr-cmp-qfs-exit__heading em { font-style: normal; color: var(--p-violet-600); }\n\n.fmstr-cmp-qfs-exit__sub {\nmargin: 0 0 24px;\nfont-size: 15px;\nline-height: 1.55;\ncolor: var(--p-fg-2);\n}\n\n.fmstr-cmp-qfs-exit__list { list-style: none; margin: 0 0 28px; padding: 0; display: flex; flex-direction: column; gap: 16px; }\n.fmstr-cmp-qfs-exit__item { display: flex; align-items: flex-start; gap: 14px; }\n.fmstr-cmp-qfs-exit__ic {\nwidth: 38px; height: 38px; flex-shrink: 0;\nborder-radius: 10px;\nbackground: var(--p-bg-violet-25);\ncolor: var(--p-violet-600);\ndisplay: inline-flex; align-items: center; justify-content: center;\n}\n.fmstr-cmp-qfs-exit__ic svg { display: block; }\n.fmstr-cmp-qfs-exit__item-title { margin: 0; font-size: 15px; line-height: 1.4; font-weight: 700; }\n.fmstr-cmp-qfs-exit__item-body { margin: 3px 0 0; font-size: 14px; line-height: 1.45; color: var(--p-fg-3); }\n\n.fmstr-cmp-qfs-exit__cta {\ndisplay: block;\nwidth: 100%;\npadding: 15px 24px 16px;\nbackground: var(--p-violet-600) !important;\ncolor: #ffffff !important;\nborder-radius: 9999px;\nfont-size: 16px;\nfont-weight: 700;\nline-height: 1;\ntext-align: center;\ntext-decoration: none;\nbox-shadow: 0 8px 24px rgba(105, 65, 198, 0.26);\ntransition: background-color 150ms ease, transform 150ms ease;\n}\n.fmstr-cmp-qfs-exit__cta:hover { background: var(--p-violet-700) !important; color: #ffffff !important; transform: translateY(-1px); }\n\n.fmstr-cmp-qfs-exit__dismiss {\ndisplay: block;\nwidth: 100%;\nmargin-top: 10px;\npadding: 12px;\nbackground: transparent;\nborder: 0;\ncolor: var(--p-fg-3);\nfont-family: inherit;\nfont-size: 14px;\nfont-weight: 600;\ncursor: pointer;\n}\n.fmstr-cmp-qfs-exit__dismiss:hover { color: var(--p-fg-1); }\n\n.fmstr-cmp-qfs-exit__meta {\nmargin: 6px 0 0;\ntext-align: center;\nfont-size: 12px;\nfont-weight: 500;\ncolor: var(--p-fg-3);\n}\n\n@media (max-width: 560px) {\n.fmstr-cmp-qfs-exit { padding: 16px; align-items: flex-end; }\n.fmstr-cmp-qfs-exit__card { padding: 28px 22px 22px; border-radius: 18px; }\n.fmstr-cmp-qfs-exit__heading { font-size: 23px; }\n.fmstr-cmp-qfs-exit__list { gap: 14px; margin-bottom: 24px; }\n}\n\n@media (prefers-reduced-motion: reduce) {\n.fmstr-cmp-qfs-exit__backdrop,\n.fmstr-cmp-qfs-exit__card { transition: none; }\n.fmstr-cmp-qfs-exit__card { transform: none; }\n}\n\u003C\u002Fstyle>\n\n\u003Cdiv class=\"fmstr-cmp-qfs-exit\" id=\"fmstr-qfs-exit\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"fmstr-qfs-exit-heading\" aria-hidden=\"true\">\n\u003Cdiv class=\"fmstr-cmp-qfs-exit__backdrop\" data-fmstr-exit-close>\u003C\u002Fdiv>\n\u003Cdiv class=\"fmstr-cmp-qfs-exit__card\">\n\u003Cbutton type=\"button\" class=\"fmstr-cmp-qfs-exit__close\" data-fmstr-exit-close aria-label=\"Close\">\n\u003Csvg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\">\u003Cline x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"\u002F>\u003Cline x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"\u002F>\u003C\u002Fsvg>\n\u003C\u002Fbutton>\n\u003Cspan class=\"fmstr-cmp-qfs-exit__eyebrow\">Before you gate the results\u003C\u002Fspan>\n\u003Ch2 id=\"fmstr-qfs-exit-heading\" class=\"fmstr-cmp-qfs-exit__heading\">Quiz funnels priced per lead \u003Cem>punish the funnel that works\u003C\u002Fem>\u003C\u002Fh2>\n\u003Cp class=\"fmstr-cmp-qfs-exit__sub\">Interact, ScoreApp and Involve.me all cap leads or submissions on the plans people actually buy.\u003C\u002Fp>\n\u003Cul class=\"fmstr-cmp-qfs-exit__list\">\n\u003Cli class=\"fmstr-cmp-qfs-exit__item\">\n\u003Cspan class=\"fmstr-cmp-qfs-exit__ic\" aria-hidden=\"true\">\u003Csvg width=\"19\" height=\"19\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\">\u003Cpath d=\"m12 14 4-4\"\u002F>\u003Cpath d=\"M3.34 19a10 10 0 1 1 17.32 0\"\u002F>\u003C\u002Fsvg>\u003C\u002Fspan>\n\u003Cspan>\n\u003Ch3 class=\"fmstr-cmp-qfs-exit__item-title\">No lead cap on any plan\u003C\u002Fh3>\n\u003Cp class=\"fmstr-cmp-qfs-exit__item-body\">Unlimited responses, free tier included\u003C\u002Fp>\n\u003C\u002Fspan>\n\u003C\u002Fli>\n\u003Cli class=\"fmstr-cmp-qfs-exit__item\">\n\u003Cspan class=\"fmstr-cmp-qfs-exit__ic\" aria-hidden=\"true\">\u003Csvg width=\"19\" height=\"19\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\">\u003Ccircle cx=\"6\" cy=\"6\" r=\"3\"\u002F>\u003Ccircle cx=\"6\" cy=\"18\" r=\"3\"\u002F>\u003Cpath d=\"M6 9v6\"\u002F>\u003Cpath d=\"M18 9a9 9 0 0 1-9 9\"\u002F>\u003Ccircle cx=\"18\" cy=\"6\" r=\"3\"\u002F>\u003C\u002Fsvg>\u003C\u002Fspan>\n\u003Cspan>\n\u003Ch3 class=\"fmstr-cmp-qfs-exit__item-title\">Scoring and branching from $12\u003C\u002Fh3>\n\u003Cp class=\"fmstr-cmp-qfs-exit__item-body\">Conditional logic starts on Personal, billed annually\u003C\u002Fp>\n\u003C\u002Fspan>\n\u003C\u002Fli>\n\u003Cli class=\"fmstr-cmp-qfs-exit__item\">\n\u003Cspan class=\"fmstr-cmp-qfs-exit__ic\" aria-hidden=\"true\">\u003Csvg width=\"19\" height=\"19\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\">\u003Crect x=\"2\" y=\"5\" width=\"20\" height=\"14\" rx=\"2\"\u002F>\u003Cline x1=\"2\" y1=\"10\" x2=\"22\" y2=\"10\"\u002F>\u003C\u002Fsvg>\u003C\u002Fspan>\n\u003Cspan>\n\u003Ch3 class=\"fmstr-cmp-qfs-exit__item-title\">Sell straight off the results page\u003C\u002Fh3>\n\u003Cp class=\"fmstr-cmp-qfs-exit__item-body\">Stripe and PayPal on the free plan\u003C\u002Fp>\n\u003C\u002Fspan>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ca href=\"https:\u002F\u002Fapp.formester.com\u002Fusers\u002Fsign_up\" class=\"fmstr-cmp-qfs-exit__cta\">Try Formester free\u003C\u002Fa>\n\u003Cbutton type=\"button\" class=\"fmstr-cmp-qfs-exit__dismiss\" data-fmstr-exit-close>Keep reading the comparison\u003C\u002Fbutton>\n\u003Cp class=\"fmstr-cmp-qfs-exit__meta\">Free forever plan &middot; No credit card &middot; 56,000+ teams\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003C\u002Fdiv>\n\u003Cscript>\n(function () {\nif (window.__fmstrExitInit_qfs) { return; }\nwindow.__fmstrExitInit_qfs = true;\n\nvar KEY = 'fmstr_qfs_exit_seen_v1';\nvar SCROLL_TRIGGER = 0.6;\nvar MIN_DWELL_MS = 12000;\nvar started = Date.now();\nvar root = document.getElementById('fmstr-qfs-exit');\nif (!root) { return; }\n\nfunction alreadySeen() {\ntry { return window.sessionStorage.getItem(KEY) === '1'; } catch (e) { return false; }\n}\nfunction markSeen() {\ntry { window.sessionStorage.setItem(KEY, '1'); } catch (e) {}\n}\nif (alreadySeen()) { return; }\n\nvar opened = false;\nvar prevOverflow = '';\n\nfunction open() {\nif (opened || alreadySeen()) { return; }\nif (!root.isConnected) { return; }\nif (Date.now() - started \u003C MIN_DWELL_MS) { return; }\nopened = true;\nmarkSeen();\nroot.classList.add('is-open');\nroot.setAttribute('aria-hidden', 'false');\nprevOverflow = document.documentElement.style.overflow;\ndocument.documentElement.style.overflow = 'hidden';\nvar closeBtn = root.querySelector('.fmstr-cmp-qfs-exit__close');\nif (closeBtn) { closeBtn.focus(); }\ndetach();\n}\n\nfunction close() {\nroot.classList.remove('is-open');\nroot.setAttribute('aria-hidden', 'true');\ndocument.documentElement.style.overflow = prevOverflow;\ndocument.removeEventListener('keydown', onKey);\n}\n\nfunction onScroll() {\nvar doc = document.documentElement;\nvar height = Math.max(doc.scrollHeight, document.body ? document.body.scrollHeight : 0);\nif (height \u003C= window.innerHeight) { return; }\nvar seen = (window.pageYOffset + window.innerHeight) \u002F height;\nif (seen >= SCROLL_TRIGGER) { open(); }\n}\n\nfunction onMouseOut(e) {\nif (e.relatedTarget || e.toElement) { return; }\nif (e.clientY > 4) { return; }\nopen();\n}\n\nfunction onKey(e) {\nif (e.key === 'Escape' || e.keyCode === 27) { close(); }\n}\n\nfunction detach() {\nwindow.removeEventListener('scroll', onScroll);\ndocument.removeEventListener('mouseout', onMouseOut);\n}\n\nwindow.addEventListener('scroll', onScroll, { passive: true });\nvar finePointer = true;\ntry { finePointer = window.matchMedia('(pointer: fine)').matches; } catch (e) {}\nif (finePointer) { document.addEventListener('mouseout', onMouseOut); }\ndocument.addEventListener('keydown', onKey);\n\nroot.addEventListener('click', function (e) {\nvar t = e.target;\nwhile (t && t !== root) {\nif (t.hasAttribute && t.hasAttribute('data-fmstr-exit-close')) { close(); return; }\nt = t.parentNode;\n}\n});\n})();\n\u003C\u002Fscript>\n\n\n","blog\u002Fblog\u002Fbest-quiz-funnel-software.md",{"text":211},"15 min read",{"title":213,"author":214,"authorImage":215,"authorProfile":216,"coverImg":217,"coverImgAlt":218,"createdAt":219,"description":220,"featured":13,"jsonld":221,"keywords":326,"metaDescription":233,"metaImage":327,"metaTitle":229,"publishedAt":328,"slug":329,"updatedAt":330,"__hash__":331,"body":332,"id":333,"coverImgWidth":189,"coverImgHeight":190,"readingStats":334},"How to Save a Google Form as PDF: All 5 Routes","Harsh Shah","https:\u002F\u002Fformester-strapi.s3.ap-south-1.amazonaws.com\u002F41fc6df7f8a7952a_harsh-shah.jpg","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fharshshahseo\u002F","https:\u002F\u002Fformester-strapi.s3.ap-south-1.amazonaws.com\u002Fe097b153c94af260_how-to-save-google-forms-as-pdf.jpg","Cover art for a guide to saving a Google Form as PDF","2025-10-26T17:22:36.632Z","Google Forms has no export-as-PDF button, but it has five print routes that end in a PDF. Which one to use for the blank form, the summary, or a single person's response, and what each one loses on the way.",[222],{"@context":71,"@graph":223},[224,226,236,241,263,298,322],{"@type":67,"@id":63,"url":86,"name":66,"logo":225},{"@type":101,"url":65},{"@type":75,"@id":227,"url":228,"name":229,"isPartOf":230,"breadcrumb":231,"inLanguage":79,"description":233,"datePublished":234,"dateModified":235},"https:\u002F\u002Fformester.com\u002Fblog\u002Fhow-to-save-google-forms-as-pdf\u002F#webpage","https:\u002F\u002Fformester.com\u002Fblog\u002Fhow-to-save-google-forms-as-pdf\u002F","How to Save Google Forms as PDF: All 5 Routes",{"@id":63},{"@id":232},"https:\u002F\u002Fformester.com\u002Fblog\u002Fhow-to-save-google-forms-as-pdf\u002F#breadcrumb","Save a Google Form as PDF five ways: the blank form, the response summary, one question, all responses, or one person's answers. Plus what each PDF loses.","2025-10-26","2026-08-27",{"@type":83,"@id":232,"itemListElement":237},[238,239,240],{"@type":88,"position":89,"name":87,"item":86},{"@type":88,"position":93,"name":92,"item":91},{"@type":88,"position":96,"name":213,"item":228},{"@type":242,"@id":243,"headline":213,"image":217,"author":244,"publisher":245,"inLanguage":79,"description":233,"datePublished":234,"dateModified":235,"mainEntityOfPage":246,"about":247,"mentions":251,"citation":257},"BlogPosting","https:\u002F\u002Fformester.com\u002Fblog\u002Fhow-to-save-google-forms-as-pdf\u002F#article",{"@type":103,"name":214,"url":216,"image":215},{"@id":63},{"@id":227},[248],{"@type":166,"name":249,"applicationCategory":178,"url":250,"operatingSystem":177},"Google Forms","https:\u002F\u002Fdocs.google.com\u002Fforms\u002F",[252,254],{"@id":253},"https:\u002F\u002Fformester.com\u002F#software",{"@type":166,"name":255,"applicationCategory":178,"url":256,"operatingSystem":177},"Google Sheets","https:\u002F\u002Fdocs.google.com\u002Fspreadsheets\u002F",[258],{"@type":75,"name":259,"url":260,"publisher":261},"View & manage form responses","https:\u002F\u002Fsupport.google.com\u002Fdocs\u002Fanswer\u002F139706",{"@type":67,"name":262},"Google",{"@type":112,"@id":264,"mainEntity":265},"https:\u002F\u002Fformester.com\u002Fblog\u002Fhow-to-save-google-forms-as-pdf\u002F#faq",[266,270,274,278,282,286,290,294],{"@type":116,"name":267,"acceptedAnswer":268},"Does Google Forms have an export to PDF option?",{"@type":119,"text":269},"No. There is no export-as-PDF button anywhere in Google Forms. Every route goes through your browser's print dialog with the destination set to Save as PDF.",{"@type":116,"name":271,"acceptedAnswer":272},"How do I copy a Google Form to a PDF?",{"@type":119,"text":273},"Open the form in the editor, click the three-dot menu, choose Print, then set the destination to Save as PDF. That gives you the questions with no answers in them.",{"@type":116,"name":275,"acceptedAnswer":276},"How do I download Google Forms responses as PDFs?",{"@type":119,"text":277},"Open the Responses tab. Print all responses in the three-dot menu gives you every submission as one document. For a single person, go to the Individual tab, page to their response and use the print icon above it.",{"@type":116,"name":279,"acceptedAnswer":280},"Can I get one PDF per response instead of one long document?",{"@type":119,"text":281},"Not from Google Forms. Print all responses produces a single file with a page per submission, and splitting it means printing each response individually from the Individual tab or cutting up the PDF afterwards.",{"@type":116,"name":283,"acceptedAnswer":284},"Why does my Google Forms PDF look different from the form?",{"@type":119,"text":285},"Because you are printing a web page rather than exporting a document. Print styles override your theme, images are laid out for a screen, and page breaks fall wherever they land. Turning on background graphics in your browser's print settings recovers some colour.",{"@type":116,"name":287,"acceptedAnswer":288},"Can respondents download a PDF of their own answers?",{"@type":119,"text":289},"No. The closest option is a response receipt, which emails them their answers as plain text. It requires the form to collect respondent emails and the owner to switch receipts on in Settings.",{"@type":116,"name":291,"acceptedAnswer":292},"Can I make a fillable PDF from a Google Form?",{"@type":119,"text":293},"No. Google Forms produces flat printed output with no form fields, so nothing in the PDF is fillable. Creating fillable PDFs needs a tool built for it.",{"@type":116,"name":295,"acceptedAnswer":296},"How do I save a Google Form as PDF on my phone?",{"@type":119,"text":297},"Open the form in your mobile browser and use the browser's share or print option, then choose Save as PDF. Layout control is poorer than on desktop, so use a computer when the formatting matters.",{"@type":299,"@id":300,"name":301,"description":302,"step":303},"HowTo","https:\u002F\u002Fformester.com\u002Fblog\u002Fhow-to-save-google-forms-as-pdf\u002F#howto","Save a Google Form as PDF","Print a Google Form or its responses to PDF.",[304,308,311,314,318],{"@type":305,"position":89,"name":306,"text":307},"HowToStep","Save the blank form as PDF","Open the form in the editor. Click the three-dot menu, top right. Choose Print. In the print dialog, set the destination to Save as PDF.",{"@type":305,"position":93,"name":309,"text":310},"Save the response summary as PDF","Open the Responses tab and stay on Summary. Print the page from your browser with Ctrl+P, or Cmd+P on a Mac. Set the destination to Save as PDF.",{"@type":305,"position":96,"name":312,"text":313},"Save one question as PDF","Open Responses, then the Question tab. Use the arrows to reach the question you want. Print the page from your browser and choose Save as PDF.",{"@type":305,"position":315,"name":316,"text":317},4,"Save every response as PDF","Open the Responses tab. Open the three-dot menu and choose Print all responses. Choose Save as PDF in the print dialog.",{"@type":305,"position":319,"name":320,"text":321},5,"Save one person's response as PDF","Open Responses, then Individual. Page to the submission you want. Click the print icon above the response, then Save as PDF.",{"@type":166,"@id":253,"url":86,"name":66,"applicationCategory":178,"operatingSystem":323,"offers":324},"Web, iOS, Android",{"@type":169,"price":170,"priceCurrency":172,"description":325},"Free forever plan, no credit card required","how to export google forms to pdf,\nhow to save google form as pdf,\nhow to export google form responses as pdf,",[],"2025-10-26T17:24:02.503Z","how-to-save-google-forms-as-pdf","2026-08-27T00:00:00.000Z","QEdY0ewFIhn6w9k1axlXuiLDYmhdjLF8KfQlFGWDpDw","\n![Cover art for a guide to saving a Google Form as PDF](https:\u002F\u002Fformester-strapi.s3.ap-south-1.amazonaws.com\u002Fe097b153c94af260_how-to-save-google-forms-as-pdf.jpg)\n\n\u003Cp style=\"font-size: inherit;\">Google Forms has no export-as-PDF button. What it has is a print dialog, and five different places to open it from. Which one you pick decides whether you end up with a blank questionnaire, a chart summary, or one person's answers.\u003C\u002Fp>\n\n\u003Cdiv class=\"tldr\">\n\u003Cp>\u003Cstrong>Key facts\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Google Forms has no Save as PDF button. Every route goes through your browser's print dialog, and which PDF you get depends entirely on which screen you print from: the blank form, the response summary, one question, or one person's answers.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Export buttons in Google Forms: none.\u003C\u002Fstrong> Printing is the only built-in route\u003C\u002Fli>\n\u003Cli>\u003Cstrong>5 different PDFs\u003C\u002Fstrong> are reachable, and printing from the wrong screen is the usual mistake\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Responses also export as CSV\u003C\u002Fstrong> from the Responses tab under More (\u003Ca href=\"https:\u002F\u002Fsupport.google.com\u002Fdocs\u002Fanswer\u002F139706\" target=\"_blank\" rel=\"noopener\">Google Docs Editors Help\u003C\u002Fa>)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Respondents cannot generate their own PDF.\u003C\u002Fstrong> Nothing on the confirmation screen offers one\u003C\u002Fli>\n\u003Cli>\u003Cstrong>The PDF ignores your theme.\u003C\u002Fstrong> Colours, header image and fonts do not survive the print view\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fdiv>\n\n\u003Cblockquote>\u003Cp>Every route ends the same way: open a print dialog, then set the destination to \u003Cstrong>Save as PDF\u003C\u002Fstrong>. The only decision is where you print \u003Cem>from\u003C\u002Fem>. The form editor gives you the blank form. The \u003Cstrong>Responses\u003C\u002Fstrong> tab gives you the summary, every response, or one person's.\u003C\u002Fp>\u003C\u002Fblockquote>\n\n\u003Ch2>Which PDF are you actually trying to make?\u003C\u002Fh2>\n\n\u003Cp>Find the row that matches what you are trying to produce, then jump to the steps.\u003C\u002Fp>\n\n\u003Cdiv class=\"table-wrap\">\n\u003Ctable>\n\u003Cthead>\u003Ctr>\u003Cth>Route\u003C\u002Fth>\u003Cth>What the PDF contains\u003C\u002Fth>\u003Cth>Use it for\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\u003Ctd>\u003Ca href=\"#blank-form\">The blank form\u003C\u002Fa>\u003C\u002Ftd>\u003Ctd>A copy of the questions with no answers\u003C\u002Ftd>\u003Ctd>Handing out a paper version, or filing the questions\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>\u003Ca href=\"#response-summary\">The response summary\u003C\u002Fa>\u003C\u002Ftd>\u003Ctd>The charts and aggregate counts from the Summary tab\u003C\u002Ftd>\u003Ctd>A one-page readout for a meeting\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>\u003Ca href=\"#one-question\">One question\u003C\u002Fa>\u003C\u002Ftd>\u003Ctd>Every answer given to a single question\u003C\u002Ftd>\u003Ctd>Circulating one question's results without the rest\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>\u003Ca href=\"#all-responses\">Every response\u003C\u002Fa>\u003C\u002Ftd>\u003Ctd>One page per submission in a single document\u003C\u002Ftd>\u003Ctd>An archive of the whole response set\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>\u003Ca href=\"#one-response\">One person's response\u003C\u002Fa>\u003C\u002Ftd>\u003Ctd>A single respondent's full submission\u003C\u002Ftd>\u003Ctd>Sending someone a copy of what they submitted\u003C\u002Ftd>\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\u003C\u002Fdiv>\n\n\u003Ch2 id=\"blank-form\">1. How do you save the blank form as a PDF?\u003C\u002Fh2>\n\n\u003Cp>Produces a copy of the questions with no answers. Use it for handing out a paper version, or filing the questions.\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fformester-strapi.s3.ap-south-1.amazonaws.com\u002F891d059807bc4e98_01-print-blank-form.jpg\" alt=\"The Google Forms editor three-dot menu open, showing the Print option alongside Make a copy and Get add-ons\" loading=\"lazy\" style=\"width:100%;max-width:722px;height:auto;border-radius:10px;border:1px solid #d8dce3;box-shadow:0 1px 3px rgba(16,24,40,0.08);margin:18px 0;\" \u002F>\u003C\u002Fp>\n\u003Col>\n\u003Cli>Open the form in the editor.\u003C\u002Fli>\n\u003Cli>Click the three-dot menu, top right.\u003C\u002Fli>\n\u003Cli>Choose \u003Cstrong>Print\u003C\u002Fstrong>.\u003C\u002Fli>\n\u003Cli>In the print dialog, set the destination to \u003Cstrong>Save as PDF\u003C\u002Fstrong>.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>\u003Cstrong>Where it stops.\u003C\u002Fstrong> Header images and theme colours often render differently from the live form, and long multiple-choice lists can break across pages awkwardly.\u003C\u002Fp>\n\n\u003Ch2 id=\"response-summary\">2. How do you save the response summary as a PDF?\u003C\u002Fh2>\n\n\u003Cp>Produces the charts and aggregate counts from the summary tab. Use it for a one-page readout for a meeting.\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fformester-strapi.s3.ap-south-1.amazonaws.com\u002Fe20c3a1159318b8e_04-summary-tab.jpg\" alt=\"The Google Forms Summary tab showing response charts, the view to print from for a summary PDF\" loading=\"lazy\" style=\"width:100%;max-width:791px;height:auto;border-radius:10px;border:1px solid #d8dce3;box-shadow:0 1px 3px rgba(16,24,40,0.08);margin:18px 0;\" \u002F>\u003C\u002Fp>\n\u003Col>\n\u003Cli>Open the \u003Cstrong>Responses\u003C\u002Fstrong> tab and stay on \u003Cstrong>Summary\u003C\u002Fstrong>.\u003C\u002Fli>\n\u003Cli>Print the page from your browser with Ctrl+P, or Cmd+P on a Mac.\u003C\u002Fli>\n\u003Cli>Set the destination to \u003Cstrong>Save as PDF\u003C\u002Fstrong>.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>\u003Cstrong>Where it stops.\u003C\u002Fstrong> You get Google's charts as drawn, with no control over which questions appear or how they are ordered, and browser page furniture can come along with them.\u003C\u002Fp>\n\n\u003Ch2 id=\"one-question\">3. How do you save one question as a PDF?\u003C\u002Fh2>\n\n\u003Cp>Produces every answer given to a single question. Use it for circulating one question's results without the rest.\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fformester-strapi.s3.ap-south-1.amazonaws.com\u002F92f31da476ca95e6_05-question-tab.jpg\" alt=\"The Google Forms Question tab showing every answer to a single question, the view to print from for one question\" loading=\"lazy\" style=\"width:100%;max-width:791px;height:auto;border-radius:10px;border:1px solid #d8dce3;box-shadow:0 1px 3px rgba(16,24,40,0.08);margin:18px 0;\" \u002F>\u003C\u002Fp>\n\u003Col>\n\u003Cli>Open \u003Cstrong>Responses\u003C\u002Fstrong>, then the \u003Cstrong>Question\u003C\u002Fstrong> tab.\u003C\u002Fli>\n\u003Cli>Use the arrows to reach the question you want.\u003C\u002Fli>\n\u003Cli>Print the page from your browser and choose \u003Cstrong>Save as PDF\u003C\u002Fstrong>.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>\u003Cstrong>Where it stops.\u003C\u002Fstrong> The browser prints what is on screen, so you may capture surrounding page furniture along with the question.\u003C\u002Fp>\n\n\u003Ch2 id=\"all-responses\">4. How do you save every response as a PDF?\u003C\u002Fh2>\n\n\u003Cp>Produces one page per submission in a single document. Use it for an archive of the whole response set.\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fformester-strapi.s3.ap-south-1.amazonaws.com\u002F5ae83f09b41875dc_02-print-all-responses.jpg\" alt=\"The Google Forms Responses three-dot menu open, showing Print all responses\" loading=\"lazy\" style=\"width:100%;max-width:791px;height:auto;border-radius:10px;border:1px solid #d8dce3;box-shadow:0 1px 3px rgba(16,24,40,0.08);margin:18px 0;\" \u002F>\u003C\u002Fp>\n\u003Col>\n\u003Cli>Open the \u003Cstrong>Responses\u003C\u002Fstrong> tab.\u003C\u002Fli>\n\u003Cli>Open the three-dot menu and choose \u003Cstrong>Print all responses\u003C\u002Fstrong>.\u003C\u002Fli>\n\u003Cli>Choose \u003Cstrong>Save as PDF\u003C\u002Fstrong> in the print dialog.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>\u003Cstrong>Where it stops.\u003C\u002Fstrong> With a few hundred submissions this becomes a very large document, and there is no way to filter which responses go in.\u003C\u002Fp>\n\n\u003Ch2 id=\"one-response\">5. How do you save one person's response as a PDF?\u003C\u002Fh2>\n\n\u003Cp>Produces a single respondent's full submission. Use it for sending someone a copy of what they submitted.\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fformester-strapi.s3.ap-south-1.amazonaws.com\u002F65c44ea4b8cdae50_03-print-one-response.jpg\" alt=\"The Google Forms Individual tab pager showing response 1 of 3 with the print icon on the right\" loading=\"lazy\" style=\"width:100%;max-width:791px;height:auto;border-radius:10px;border:1px solid #d8dce3;box-shadow:0 1px 3px rgba(16,24,40,0.08);margin:18px 0;\" \u002F>\u003C\u002Fp>\n\u003Col>\n\u003Cli>Open \u003Cstrong>Responses\u003C\u002Fstrong>, then \u003Cstrong>Individual\u003C\u002Fstrong>.\u003C\u002Fli>\n\u003Cli>Page to the submission you want.\u003C\u002Fli>\n\u003Cli>Click the print icon above the response, then \u003Cstrong>Save as PDF\u003C\u002Fstrong>.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>\u003Cstrong>Where it stops.\u003C\u002Fstrong> You reach it by paging, so pulling one response out of hundreds means clicking through or finding the row in the linked Sheet first.\u003C\u002Fp>\n\n\u003Cdiv class=\"fmstr-blog-cta\">\n\u003Cp>\u003Cstrong>Want a real PDF per response?\u003C\u002Fstrong> Formester generates a formatted PDF for every submission and can email it to the respondent automatically.\u003C\u002Fp>\n\u003Cp>\u003Ca class=\"fmstr-blog-cta__btn\" href=\"https:\u002F\u002Fapp.formester.com\u002Fusers\u002Fsign_up\">Try Formester free\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp class=\"fmstr-blog-cta__meta\">Free forever plan &middot; No credit card &middot; Setup in 2 minutes\u003C\u002Fp>\n\u003C\u002Fdiv>\n\n\u003Ch2 id=\"why-it-looks-plain\">Why does the Google Forms PDF look nothing like the form?\u003C\u002Fh2>\n\n\u003Cp>This is the complaint behind most searches that end up here. You are not exporting a document, you are printing a web page, so the PDF is whatever your browser makes of the page at print width.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Images shift or drop.\u003C\u002Fstrong> Header images and in-question images are laid out for a screen, not a page.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Theme styling flattens.\u003C\u002Fstrong> Your colour and font choices largely disappear, because print styles override them.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Page breaks land mid-question.\u003C\u002Fstrong> Nothing keeps a question and its options together.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>No branding of your own.\u003C\u002Fstrong> There is no logo, header or footer to add, so the output never looks like a company document.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Printing to PDF from a desktop browser rather than a phone gives you the most control, and Chrome's \u003Cstrong>More settings\u003C\u002Fstrong> panel lets you turn background graphics on, which recovers some of the colour.\u003C\u002Fp>\n\n\u003Ch2 id=\"respondent-copy\">Can respondents get their own PDF?\u003C\u002Fh2>\n\n\u003Cp>Not from Google Forms. A respondent can never generate a PDF of what they submitted, and the closest Google offers is a response receipt, which is a plain email of their answers rather than a document.\u003C\u002Fp>\n\u003Cp>To switch receipts on, the form has to collect respondent emails first: open \u003Cstrong>Settings\u003C\u002Fstrong>, turn on email collection, then enable the response receipt option. Everyone who submits after that gets their answers by email. It is text in an inbox, not a file they can file or forward as a record.\u003C\u002Fp>\n\u003Cp>If a downloadable copy per submission is the actual requirement, that is the point where the print dialog stops being the answer.\u003C\u002Fp>\n\n\u003Cdiv class=\"better\">\n\u003Ch5>Why Formester's PDF export is the better choice\u003C\u002Fh5>\n\u003Cp>A real document per submission instead of a printed web page.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Each response exports as a \u003Ca href=\"https:\u002F\u002Fformester.com\u002Ffeatures\u002Fexport-form-submission-pdf\u002F\">formatted PDF\u003C\u002Fa>, one at a time or in bulk from the Submissions tab (Business plan)\u003C\u002Fli>\n\u003Cli>Turn on the Autoresponder and the PDF attaches itself to the respondent's confirmation email, so they keep their own copy without asking\u003C\u002Fli>\n\u003Cli>Go the other direction too and \u003Ca href=\"https:\u002F\u002Fformester.com\u002Ffeatures\u002Fconvert-pdf-to-fillable-form\u002F\">turn an existing PDF into a fillable form\u003C\u002Fa>, rather than rebuilding it question by question\u003C\u002Fli>\n\u003Cli>Start from a document-shaped template, like the \u003Ca href=\"https:\u002F\u002Fformester.com\u002Ftemplates\u002Fcategories\u002Fagreement\">agreement templates\u003C\u002Fa>, when the output matters as much as the answers\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fformester-strapi.s3.ap-south-1.amazonaws.com\u002F4ab7073dccaa4a96_autoresponder-send-copy.jpg\" alt=\"Formester's autoresponder settings with the option to send the submitter a copy of their submission\" loading=\"lazy\" style=\"width:100%;max-width:900px;height:auto;border-radius:10px;border:1px solid #d8dce3;box-shadow:0 1px 3px rgba(16,24,40,0.08);margin:18px 0;\" \u002F>\u003C\u002Fp>\n\u003Cp>\u003Ca class=\"btn\" href=\"https:\u002F\u002Fapp.formester.com\u002Fusers\u002Fsign_up\">Try Formester free\u003C\u002Fa>\u003C\u002Fp>\n\u003C\u002Fdiv>\n\n\u003Csection class=\"faq\">\n\u003Ch2>Google Forms to PDF FAQ\u003C\u002Fh2>\n\u003Cdetails>\u003Csummary>Does Google Forms have an export to PDF option?\u003C\u002Fsummary>\u003Cp>No. There is no export-as-PDF button anywhere in Google Forms. Every route goes through your browser's print dialog with the destination set to Save as PDF.\u003C\u002Fp>\u003C\u002Fdetails>\n\u003Cdetails>\u003Csummary>How do I copy a Google Form to a PDF?\u003C\u002Fsummary>\u003Cp>Open the form in the editor, click the three-dot menu, choose Print, then set the destination to Save as PDF. That gives you the questions with no answers in them.\u003C\u002Fp>\u003C\u002Fdetails>\n\u003Cdetails>\u003Csummary>How do I download Google Forms responses as PDFs?\u003C\u002Fsummary>\u003Cp>Open the Responses tab. Print all responses in the three-dot menu gives you every submission as one document. For a single person, go to the Individual tab, page to their response and use the print icon above it.\u003C\u002Fp>\u003C\u002Fdetails>\n\u003Cdetails>\u003Csummary>Can I get one PDF per response instead of one long document?\u003C\u002Fsummary>\u003Cp>Not from Google Forms. Print all responses produces a single file with a page per submission, and splitting it means printing each response individually from the Individual tab or cutting up the PDF afterwards.\u003C\u002Fp>\u003C\u002Fdetails>\n\u003Cdetails>\u003Csummary>Why does my Google Forms PDF look different from the form?\u003C\u002Fsummary>\u003Cp>Because you are printing a web page rather than exporting a document. Print styles override your theme, images are laid out for a screen, and page breaks fall wherever they land. Turning on background graphics in your browser's print settings recovers some colour.\u003C\u002Fp>\u003C\u002Fdetails>\n\u003Cdetails>\u003Csummary>Can respondents download a PDF of their own answers?\u003C\u002Fsummary>\u003Cp>No. The closest option is a response receipt, which emails them their answers as plain text. It requires the form to collect respondent emails and the owner to switch receipts on in Settings.\u003C\u002Fp>\u003C\u002Fdetails>\n\u003Cdetails>\u003Csummary>Can I make a fillable PDF from a Google Form?\u003C\u002Fsummary>\u003Cp>No. Google Forms produces flat printed output with no form fields, so nothing in the PDF is fillable. Creating fillable PDFs needs a tool built for it.\u003C\u002Fp>\u003C\u002Fdetails>\n\u003Cdetails>\u003Csummary>How do I save a Google Form as PDF on my phone?\u003C\u002Fsummary>\u003Cp>Open the form in your mobile browser and use the browser's share or print option, then choose Save as PDF. Layout control is poorer than on desktop, so use a computer when the formatting matters.\u003C\u002Fp>\u003C\u002Fdetails>\n\u003C\u002Fsection>\n\n\u003Ch2>Related reading\u003C\u002Fh2>\n\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fformester.com\u002Fblog\u002F5-ways-to-view-responses-in-google-forms\u002F\">\u003Cstrong>View responses in Google Forms\u003C\u002Fstrong>\u003C\u002Fa> - the five places responses live, and which tab to print from.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fformester.com\u002Ffeatures\u002Fsummary-analytics\u002F\">\u003Cstrong>Summary analytics\u003C\u002Fstrong>\u003C\u002Fa> - charts per question without printing anything.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fformester.com\u002Fblog\u002Ftop-google-forms-alternatives\u002F\">\u003Cstrong>Google Forms alternatives\u003C\u002Fstrong>\u003C\u002Fa> - for when document output is the requirement, not an afterthought.\u003C\u002Fli>\n\u003C\u002Ful>\n","blog\u002Fblog\u002Fhow-to-save-google-forms-as-pdf.md",{"text":335},"8 min read",1788363430107]