Overview
The Form Member enables Conductor ensembles to generate and validate HTML forms with:- 14+ field types: text, email, password, number, select, checkbox, radio, textarea, date, file, and more
- Server-side validation: required, pattern, min/max, email, URL, custom validators
- Security features: CSRF protection, CAPTCHA integration, honeypot fields, rate limiting
- Multi-step forms: Wizard-style forms with conditional steps
- Customizable styling: Built-in styles, Tailwind, Bootstrap, or custom CSS
- Three operation modes: render, validate, submit
Quick Start
Field Types
Text Input Fields
Selection Fields
Text and Date Fields
File Upload
Hidden Fields
Validation Rules
Required Fields
String Length
Number Constraints
Pattern Matching (Regex)
Email and URL
Field Matching
Custom Validation
Security Features
CSRF Protection
Protects against Cross-Site Request Forgery attacks with signed tokens.- Automatically included as a hidden field in rendered forms
- Validated on form submission
- One-time use (deleted after validation)
- Time-limited (expires after configured duration)
CAPTCHA Integration
Prevent bot submissions with CAPTCHA verification.Cloudflare Turnstile (Recommended)
Google reCAPTCHA
hCaptcha
Honeypot Fields
Detect bots with invisible fields that humans won’t fill out.- Automatically added to the form
- Hidden via CSS (position: absolute; left: -9999px)
- Has tabindex=“-1” and aria-hidden=“true”
- If filled, submission is rejected (bot detected)
Rate Limiting
Prevent abuse with IP-based rate limiting.Multi-Step Forms
Create wizard-style forms with multiple steps.Working with Multi-Step Forms
Step 1: Render first stepOperation Modes
Render Mode
Generate HTML form for display.Validate Mode
Validate form data without rendering.Submit Mode
Validate and determine next step (for multi-step forms).Styling
Default Styles
Include built-in responsive styles:- Clean, modern design
- Responsive layout
- Focus states
- Error styling
- Mobile-friendly
Custom CSS Classes
CSS Frameworks
Tailwind CSS
Bootstrap
Complete Examples
Contact Form
User Registration (Multi-Step)
See full example: user-registration.yamlConfiguration Reference
FormMemberConfig
FormMemberInput
FormMemberOutput
Best Practices
Security
- Always use CSRF protection for forms that modify data
- Enable rate limiting to prevent abuse
- Use CAPTCHA for public-facing forms
- Add honeypot fields as an additional bot filter
- Validate on server-side (never trust client-side validation alone)
- Use strong secrets for CSRF tokens
Validation
- Provide clear error messages that guide users to fix issues
- Validate early but don’t block user progress unnecessarily
- Use appropriate field types (email, tel, url) for better UX
- Set reasonable constraints (min/max lengths, pattern matching)
- Test validation thoroughly with edge cases
User Experience
- Use placeholder text to show expected format
- Add help text for complex fields
- Mark required fields clearly with asterisks (*)
- Group related fields logically
- Keep forms short - only ask for necessary information
- Use multi-step forms for long forms to reduce cognitive load
Performance
- Pre-populate fields with known data to reduce user effort
- Use autocomplete attributes for better browser autofill
- Cache form HTML when possible (if not user-specific)
- Minimize validation complexity for faster response times
Troubleshooting
Form not rendering
- Check that either
fieldsorstepsis configured (not both) - Verify CSRF secret is set if CSRF is enabled
- Check CAPTCHA siteKey is provided if CAPTCHA is enabled
Validation not working
- Ensure
mode: validateormode: submitis set in input - Check validation rules are correctly formatted
- Verify field names match between config and input data
CSRF errors
- Ensure CSRF_TOKENS KV namespace is bound in wrangler.toml
- Check CSRF secret is set and consistent
- Verify token isn’t expired (default: 1 hour)
Rate limiting issues
- Ensure RATE_LIMIT KV namespace is bound
- Check rate limit configuration (max, window)
- Verify IP address is available in request context

