Chapter 9: Forms (3.C)
Exam topic 3.C: Build forms and configure and manage form submission behavior.
Exam topic 3.C: Build forms and configure and manage form submission behavior.
Key terms: Form block, success and error states, reCAPTCHA, redirect settings, custom actions, export data.
Weight: 4% of the exam (about 2 questions)
Forms are where a website turns visitors into leads, applicants and customers. A production form has to be accessible, protected from spam, send data to the right place, and give clear feedback. This chapter covers each part and the trade-offs between Webflow’s handling and external handling.
9.1 Anatomy of a Form Block
Adding a Form Block gives you three parts:
Form Block (wrapper)
├── Form ← fields + submit button
├── Success message ← shown after successful submission
└── Error message ← shown if submission fails
In the Designer you switch between Normal, Success and Error states in the form’s settings to design each one. Every form needs a designed success and error state. “Thank you! Your submission has been received!” in the default style isn’t production-ready.
Field elements
- Input with types: text, email, password, phone (
tel), number, etc. The type affects mobile keyboards and native validation. - Text area for long answers.
- Checkbox (single, e.g. consent) and Radio buttons (one choice from a group sharing the same name).
- Select (dropdown).
- File upload (on supporting plans): set allowed file types and size limits.
- Submit button, with a waiting text (e.g. “Sending…”) shown during submission.
- Label elements.
9.2 Field configuration that matters
| Setting | Why it matters |
|---|---|
| Name | The key in submission data and exports (email, company). Clear names make exports and integrations predictable |
| Type | email validates format and shows the @ keyboard on mobile |
| Required | Native validation stops empty submissions |
| Placeholder | A hint only. Not a substitute for a label |
| Autocomplete attribute | autocomplete="email", "given-name", "tel": faster filling, and meets WCAG 1.3.5 |
| Hidden fields | Capture context (page URL, CMS item, UTM source) |
9.3 Accessible forms
- Every field needs a programmatically associated label. Webflow’s Label element linked to its field (
for→id) does this. Placeholder-only fields fail WCAG 1.3.1 / 3.3.2, because the hint disappears as you type and is often low-contrast. - Visible focus on fields and buttons (WCAG 2.4.7).
- Group related controls: radio groups and checkbox groups should be wrapped with a group label (
fieldset/legendpattern via custom attributes or embeds where needed). - Error messages should explain what went wrong and how to fix it. Don’t rely on red colour alone (WCAG 1.4.1, 3.3.1).
- Contrast: input borders and placeholder text need enough contrast (3:1 for component boundaries, 4.5:1 for text).
- Don’t disable zoom or use tiny inputs. Use at least 16px font on inputs, so iOS doesn’t auto-zoom.
- Keyboard: the entire form must be completable with Tab, Space and Enter.
9.4 Submission behaviour
Default: Webflow handles it
- Visitor submits.
- Webflow stores the submission and runs spam filtering.
- Notification emails go to the addresses configured in site settings (Forms) / form settings.
- The success message replaces the form, or the visitor is redirected.
Redirect settings
Instead of the inline success message, you can set a Redirect URL in the form settings, e.g. /thank-you. Use a redirect when:
- you want a full thank-you page with next steps (book a call, download a resource),
- analytics/ad platforms track conversions by thank-you page URL.
Remember to set the thank-you page to noindex so it doesn’t show up in search (Chapter 7).
Custom actions
The form’s Action field (with Method GET/POST) sends the data directly to an external URL, e.g. a CRM or email marketing endpoint.
| Webflow handling | Custom action | |
|---|---|---|
| Stored in Webflow submissions | ✅ | ❌ |
| Webflow notification emails | ✅ | ❌ |
| Webflow spam filtering | ✅ | ❌ (the endpoint must handle it) |
| Success/error states | ✅ Webflow-controlled | Depends on the endpoint’s response/redirect |
| Data goes straight to external system | ❌ (needs integration) | ✅ |
Exam point: a custom action bypasses Webflow’s form processing. If the client still wants submissions in Webflow and email notifications, use an integration (app, automation platform or webhook) instead of a custom action.
9.5 Spam protection
- reCAPTCHA: add your reCAPTCHA keys in site settings (Forms), then add the reCAPTCHA element to the form. Submissions without a valid reCAPTCHA response are rejected.
- Webflow also applies built-in spam filtering to submissions it handles.
- Honeypot field: a hidden field that bots fill in and humans don’t, so submissions with a value can be discarded (useful with custom processing).
- Accessibility trade-off: visible CAPTCHA challenges can be hard for some users. Prefer low-friction options, and make sure there’s an accessible path.
9.6 Managing and exporting data
- Submissions appear in site settings → Forms (form submissions), grouped by form name. Give each form a meaningful name (“Contact – Footer”, “Demo request”).
- Export to CSV for reporting, migration or importing into other systems.
- Plan limits cap the number of submissions and file upload storage. High-volume forms should integrate directly with a CRM/database.
- Privacy: submissions contain personal data. Collect only what you need (data minimisation), add consent checkboxes where the law requires them, link the privacy policy, and set retention practices (export and delete when no longer needed).
9.7 Forms on CMS template pages
A form on a Collection template (e.g. a job application on each job page) can include a hidden field bound to the current item (job title or ID). One form then serves every job, and every submission records which job it came from. That’s more scalable than one form per job.
9.8 Forms QA checklist
- ☐ Labels for every field; placeholders only as hints.
- ☐ Correct input types and autocomplete attributes.
- ☐ Required fields marked visibly and in settings.
- ☐ Success and error states designed and helpful.
- ☐ Submit button waiting text set.
- ☐ Notification recipients configured and tested.
- ☐ Redirect/thank-you page noindexed (if used).
- ☐ Spam protection enabled.
- ☐ Integration tested end to end on the published site.
- ☐ Privacy notice/consent where required.
Practice questions: Forms
Q1 A designer used placeholders instead of labels to keep a contact form minimal. What’s the main problem?
Show answer
Answer: b. Labels give a persistent, programmatically associated name (WCAG 1.3.1, 3.3.2). (a), (c) and (d) are false.
Q2 A form uses a custom action that posts to an email marketing endpoint. The client now complains they no longer receive Webflow notification emails or see submissions in Webflow. Why?
Show answer
Answer: b. A custom action routes data straight to the external URL, so Webflow doesn’t store it or send notifications. (a), (c) and (d) aren’t the cause.
Q3 (Multi-select) Marketing wants to track conversions by URL and show next steps after a demo request. What should you configure? (Choose two.)
Show answer
Answer: a and b. A redirect to a dedicated page enables URL-based conversion tracking and next steps, and the page should be noindexed. (c) users need feedback. (d) a custom action changes where data goes; it isn’t how you redirect.
Q4 A form is getting hundreds of spam submissions. What’s the most direct native measure?
Show answer
Answer: b. reCAPTCHA is Webflow’s native spam measure for forms. (a) breaks the form. (c) and (d) don’t stop spam.
Q5 Which field configuration improves both mobile usability and validation for an email address?
Show answer
Answer: b. type="email" adds native validation and the right mobile keyboard, autocomplete speeds up filling, and a label makes it accessible. (a) no validation. (c) wrong control. (d) masks input.
Q6 (Multi-select) A job application form appears on each job’s CMS template page. How do you know which job each submission belongs to? (Choose two.)
Show answer
Answer: a and b. One template form with a hidden CMS-bound field scales to every job. (c) unreliable. (d) templates render one form for all items; manual per-job forms don’t scale.
Q7 Where do you find and export Webflow form submissions?
Show answer
Answer: b. Submissions live in the site’s Forms area, exportable as CSV. The others are unrelated.
Q8 Why should each form have a meaningful form name?
Show answer
Answer: b. The form name identifies data in submissions, exports and integrations. (a), (c) and (d) false.
Q9 A submit button shows “Submit” for several seconds during submission and users click repeatedly. What’s a simple improvement?
Show answer
Answer: a. Waiting text gives immediate feedback and discourages repeat clicks. The others don’t address feedback.
Q10 (Multi-select) Which practices reflect responsible handling of form data? (Choose three.)
Show answer
Answer: a, b and c. Data minimisation, transparency and retention are core privacy principles. (d) collecting unnecessary personal data increases risk and may break privacy law.
Q11 Error messages on a form are shown only as a red border on invalid fields. What’s the accessibility issue?
Show answer
Answer: b. WCAG 1.4.1 (Use of Color) and 3.3.1 (Error Identification) require more than colour. Add descriptive text, ideally linked to the field.
Q12 A client wants form submissions to land in the CRM and remain in Webflow with email notifications. Which approach fits?
Show answer
Answer: b. Keeping Webflow handling preserves submissions and notifications, and an integration forwards the data to the CRM. (a) bypasses Webflow. (c) loses Webflow handling and design control. (d) manual and slow.