Forms
Build smart forms with AI, capture leads, and integrate with webhooks for powerful automations
Forms
Forms in Fly Super let you capture leads, collect feedback, gather registrations, and more. Create forms with AI in seconds, customize field types and validation, and integrate with your favorite tools via webhooks.
What Are Forms?
Forms are customizable data collection tools that can be:
- Embedded in landing pages (Hero Form, Content Form components)
- Standalone pages (dedicated form URLs)
- Integrated with webhooks (send data to your tools)
- Spam-protected (automatic bot detection)
- Rate-limited (prevent abuse)
Key Features
AI-Powered Generation
Describe the form you need, and AI creates it:
Create a webinar registration form with name, email, company,
job title, and phone numberAI generates:
- Appropriate field types
- Smart validation rules
- Helpful placeholder text
- Clear field labels
- Submit button copy
Field Types
Support for all standard and custom field types:
- Text, email, URL, phone, number
- Textarea (multi-line text)
- Select (dropdown), radio buttons, checkboxes
- Date picker
- File upload
- Multi-select
Each with configurable validation rules!
Webhook Integration
Send form submissions to external services:
- CRM systems (Salesforce, HubSpot, Pipedrive)
- Marketing tools (Mailchimp, ConvertKit, ActiveCampaign)
- Databases (Airtable, Notion, Google Sheets)
- Custom endpoints (your own API)
- Zapier/Make webhooks (connect to 1000+ apps)
Reliability: Automatic retries with exponential backoff ensure delivery even if your endpoint is temporarily down!
Spam Protection
Built-in protection against bot submissions:
- Vercel BotID: Advanced bot detection
- Rate limiting: Maximum submissions per IP
- Honeypot fields: Invisible to humans, visible to bots
- CAPTCHA-ready: Integration coming soon
Submission Management
View and manage all form submissions:
- Organization-wide submission dashboard
- Filter by form
- Export data (coming soon)
- Track submission metadata (IP, user agent, timestamp)
- See which landing page generated each submission
Use Cases
Lead Generation
Capture prospects with qualification forms:
- Contact information (name, email, phone)
- Company details (company name, size, industry)
- Qualification questions (budget, timeline, needs)
- UTM tracking (campaign source)
Webhook: Send leads directly to your CRM
Event Registration
Collect event attendee information:
- Personal details (name, email, title)
- Company information
- Dietary restrictions
- T-shirt size
- Session preferences
Webhook: Sync with event management platform
Newsletter Signup
Simple email capture forms:
- Email address
- First name (optional)
- Interests/preferences (checkboxes)
Webhook: Add to email marketing tool automatically
Contact Forms
General inquiry forms:
- Name and email
- Subject/reason for contact
- Message (textarea)
- Department (dropdown)
Webhook: Send to support ticket system or Slack
Product Feedback
Gather user feedback:
- Email (optional)
- Feature request or bug report (radio)
- Description (textarea)
- Priority level (select)
- Affected area (checkboxes)
Webhook: Create issue in project management tool
Waitlist / Early Access
Build pre-launch lists:
- Email address
- Interest level (select)
- How did you hear about us? (text)
- Feature priorities (checkboxes)
Webhook: Add to spreadsheet and send welcome email
How Forms Work
1. Create Form
- Generate with AI from prompt, or
- Build manually field-by-field
2. Configure Fields
- Set field types (text, email, select, etc.)
- Add validation rules (required, min/max length, patterns)
- Customize labels and placeholders
- Set default values
3. Set Up Integration
- Configure webhook URL (optional)
- Set rate limiting (default: 10 per hour per IP)
- Enable bot protection (enabled by default)
- Add success message
4. Embed or Share
Option A: Embed in Landing Page
- Use Hero Form or Content Form components
- Select your form from dropdown
- Form appears inline in page
Option B: Standalone URL
- Each form has a unique submission URL
- Share directly with users
- Can embed in iframe
5. Receive Submissions
- View in Submissions dashboard
- Receive webhook calls (if configured)
- Export data (coming soon)
Form Settings
General Settings
- Form Name: Internal name for organization
- Success Message: Shown after submission
- Redirect URL: Optional redirect after submission
- Submit Button Text: Customize button label
Validation Settings
- Required Fields: Mark fields as mandatory
- Min/Max Length: Character limits for text fields
- Pattern Validation: Regex patterns (e.g., phone formats)
- Custom Error Messages: User-friendly validation errors
Security Settings
- Rate Limiting: Maximum submissions per IP per hour (default: 10)
- Bot Protection: Enable/disable BotID (default: enabled)
- Allowed Domains: Restrict form submissions to specific domains
- CAPTCHA: Coming soon
Integration Settings
- Webhook URL: Your endpoint URL (must be HTTPS)
- Webhook Secret: Optional shared secret for validation
- Retry Settings: Automatic (5 retries: 30s, 1m, 5m, 15m, 1h)
- Email Notifications: Send form submissions to email addresses automatically (see below)
Quick Start
1. Create Your First Form
Navigate to Forms in sidebar → Click "Create Form" → Enter AI prompt or build manually
2. Add Fields
For manual building:
- Click "Add Field"
- Choose field type
- Configure label, placeholder, validation
- Repeat for each field
3. Configure Webhook (Optional)
- Click "Webhooks" tab
- Enter webhook URL
- Test webhook
- Save
4. Embed in Landing Page
- Open a landing page in editor
- Add Hero Form or Content Form component
- Select your form from dropdown
- Save and publish
5. Test Submission
- Submit test data through the form
- Check Submissions dashboard
- Verify webhook received data (if configured)
Form Lifecycle
Create Form → Add Fields → Configure Validation
↓
Set Up Webhooks (optional) → Test Webhooks
↓
Embed in Landing Page or Share URL
↓
Receive Submissions → View in Dashboard
↓
Data Sent to Webhook → Process in Your SystemBest Practices
For Higher Completion Rates
- Keep it short: Only ask for essential information
- Clear labels: Use descriptive field labels
- Helpful placeholders: Show examples in placeholder text
- Progressive disclosure: Split long forms into steps (coming soon)
- Mobile-friendly: Test on mobile devices
- Fast loading: Minimize fields for speed
For Better Data Quality
- Validation: Use appropriate field types and validation
- Required fields: Only mark truly essential fields as required
- Clear instructions: Add help text for complex fields
- Error messages: Provide specific, actionable error messages
- Confirmation: Show success message after submission
For Security
- Enable bot protection: Keep BotID enabled
- Set rate limits: Prevent spam submissions
- HTTPS only: Ensure landing pages use HTTPS
- Webhook secrets: Use shared secrets to verify requests
- Sanitize data: Clean data in your webhook handler
Bot Detection & Spam Protection
Fly Super uses multiple layers of protection to prevent spam and malicious form submissions.
Vercel BotID
What It Is: Vercel BotID is an advanced bot detection system that analyzes visitor behavior to identify automated submissions.
How It Works:
- JavaScript challenges sent to browser
- Browser behavior analyzed (mouse movements, timing, etc.)
- Risk score calculated (0-100)
- High-risk submissions automatically rejected
Enabled by Default:
- Bot protection is ON for all forms
- No configuration needed
- Works transparently for real users
- Blocks most automated spam
Detection Accuracy:
- 99%+ spam detection rate
- < 0.1% false positives (real users blocked)
- Updated continuously by Vercel
Multi-Layer Protection
1. BotID (Primary)
- Behavioral analysis
- Device fingerprinting
- Challenge-response tests
- Machine learning-based detection
2. Rate Limiting (Secondary)
- IP-based throttling
- 10 submissions per hour per IP (default)
- Configurable per form
- Prevents brute force attacks
3. Honeypot Fields (Tertiary)
- Hidden fields invisible to humans
- Bots fill them out automatically
- Submissions with honeypot data rejected
- Zero false positives
4. Validation (Always-On)
- Field-level validation
- Type checking (email format, etc.)
- Required field enforcement
- Pattern matching (regex)
Configuration
Enable/Disable Bot Protection:
- Navigate to form settings
- Go to "Security" tab
- Toggle "Bot Protection" (BotID)
- Save settings
When to Disable:
- Testing in development
- API-based submissions (not from browser)
- Debugging submission issues
- Internal tools/forms
⚠️ Warning: Disabling bot protection significantly increases spam risk. Only disable if absolutely necessary.
Adjusting Rate Limits
Default Settings:
- 10 submissions per hour per IP
- Applies to all users from same IP
Custom Limits:
- Navigate to form settings
- Go to "Security" tab
- Adjust "Rate Limit" slider
- Choose: 5, 10, 20, 50, or 100 per hour
- Save settings
Recommendations:
- Contact forms: 10 per hour (default)
- High-traffic forms: 20-50 per hour
- Event registration: 5 per hour
- Newsletter signup: 20 per hour
- Internal forms: 100+ per hour (or disable)
Spam Statistics
View spam detection metrics:
- Navigate to Submissions dashboard
- Filter by "Blocked" status
- See rejected submission count
- Review rejection reasons
Rejection Reasons:
- Bot detected: BotID flagged as automated
- Rate limit exceeded: Too many submissions from IP
- Honeypot triggered: Hidden field was filled
- Validation failed: Invalid data format
Handling False Positives
If legitimate users are blocked:
Short-term Fix:
- Lower BotID sensitivity (contact support)
- Whitelist specific IPs (enterprise feature)
- Temporarily disable bot protection
Long-term Fix:
- Review form for accessibility issues
- Ensure JavaScript is not blocked
- Test on multiple browsers/devices
- Check for VPN/proxy users
User Communication:
- Show helpful error message
- Provide alternative contact method (email)
- Include support link in error message
Best Practices
Balancing Security & UX:
- Start with defaults: 10 per hour + BotID enabled
- Monitor submissions: Check for spam patterns
- Adjust as needed: Increase limits for high-traffic
- Review blocked submissions: Look for false positives
- Test regularly: Submit test data to verify protection
For High-Security Needs:
- Enable all protection layers
- Lower rate limits (5 per hour)
- Add manual review workflow
- Require email verification (custom implementation)
- Use webhook to validate submissions in real-time
For High-Volume Needs:
- Increase rate limits (50-100 per hour)
- Keep BotID enabled
- Monitor spam rates
- Add post-submission filtering in webhook
Advanced: Custom Bot Detection
Via Webhooks: You can add additional spam filtering in your webhook handler:
// Example webhook handler with custom spam detection
async function handleFormSubmission(data) {
// Check for spam keywords
const spamKeywords = ['viagra', 'casino', 'crypto'];
const hasSpam = spamKeywords.some(keyword =>
JSON.stringify(data).toLowerCase().includes(keyword)
);
if (hasSpam) {
return { status: 'rejected', reason: 'spam content' };
}
// Check email domain
const suspiciousDomains = ['tempmail.com', 'guerrillamail.com'];
const email = data.fields.find(f => f.type === 'email')?.value;
const isSuspicious = suspiciousDomains.some(domain =>
email?.endsWith(domain)
);
if (isSuspicious) {
return { status: 'flagged', reason: 'suspicious email' };
}
// Process legitimate submission
return { status: 'accepted' };
}Via Allowed Domains: Restrict form submissions to specific domains:
- Navigate to form settings → Security
- Add allowed domains (e.g.,
yourdomain.com) - Forms embedded on other domains won't work
- Good for internal tools or partner sites
Integration Examples
Airtable
Send submissions to Airtable base:
Webhook URL: https://api.airtable.com/v0/YOUR_BASE/YOUR_TABLE
Headers: Authorization: Bearer YOUR_API_KEY
Method: POSTSlack
Post submissions to Slack channel:
Webhook URL: https://hooks.slack.com/services/YOUR/WEBHOOK/URL
Method: POST
Body: JSON with submission dataZapier
Use Zapier webhook to connect to 1000+ apps:
Webhook URL: https://hooks.zapier.com/hooks/catch/YOUR_HOOK_ID/
Method: POSTCustom API
Send to your own API endpoint:
Webhook URL: https://yourdomain.com/api/form-submissions
Headers: X-API-Key: your-secret-key
Method: POSTEmail Notifications
Fly Super can automatically send email notifications when forms are submitted. This is perfect for getting instant alerts without setting up webhooks.
How It Works
When a form is submitted:
- Data is validated and stored
- Email notification workflow is triggered
- Notification email sent to configured addresses
- Automatic retries on failure (3 retries: 30s, 5m, 30m)
- Delivery status tracked
Setting Up Email Notifications
Step 1: Configure Recipients
- Navigate to your form settings
- Go to "Notifications" tab
- Add recipient email addresses (comma-separated)
- Save settings
Step 2: Customize Email (Optional)
- Email subject line
- Custom message to prepend
- Choose which fields to include
- Format as HTML or plain text
Step 3: Test
- Submit a test form
- Check recipient inboxes
- Verify all fields are included
- Check spam folder if not received
Email Notification Content
Emails include:
- Form name: Which form was submitted
- Submission time: When it was submitted
- All field values: Labeled field name and submitted value
- Submission ID: For tracking purposes
Example Email:
Subject: New Form Submission: Contact Form
Form Name: Contact Form
Submitted: 2024-11-18 at 3:45 PM EST
Submission ID: sub_abc123xyz
Name: John Doe
Email: john@example.com
Company: Acme Inc
Message: I'm interested in learning more about your product.
---
View this submission in your dashboard:
https://flysuper.com/workspace/submissions/sub_abc123xyzRetry Logic
If email delivery fails, automatic retries occur:
Retry Schedule:
- First retry: 30 seconds after failure
- Second retry: 5 minutes after first retry
- Third retry: 30 minutes after second retry
Total attempts: 4 (initial + 3 retries)
Fatal Errors (no retries):
- Invalid email addresses
- Malformed data
- Authentication failures
Temporary Errors (retries triggered):
- Network timeouts
- Email service downtime
- Rate limiting from email provider
Delivery Status
Check email delivery status:
- Navigate to Submissions dashboard
- Click on a submission
- View "Email Notifications" section
- See delivery status:
- ✅ Delivered: Successfully sent
- 🔄 Retrying: Delivery failed, retrying
- ❌ Failed: All retries exhausted
- ⏱️ Pending: Queued for delivery
Limitations
- Maximum recipients: 10 email addresses per form
- Email size: Limited to 1MB (large submissions may be truncated)
- Attachments: File uploads not included in emails (link to submission provided)
- Rate limits: Maximum 100 emails per form per hour
Email vs Webhooks
Use Email Notifications when:
- You want instant alerts in your inbox
- No technical setup required
- Simple notification needs
- Small team (< 10 people need alerts)
Use Webhooks when:
- Integrating with CRM or database
- Processing submissions automatically
- Complex workflows or automation
- Need full control over data handling
Use Both when:
- You want instant email alerts AND automated processing
- Team notifications + CRM integration
- Backup notification method
Troubleshooting Email Notifications
Emails not arriving:
- Check spam folder
- Verify email addresses are correct
- Check delivery status in submissions dashboard
- Ensure email service (Resend) API key is configured
Emails delayed:
- Check if retries are being triggered (delivery status)
- Email provider may have rate limits
- Network issues can cause delays
Missing fields in emails:
- Verify field is not hidden or conditional
- Check form configuration includes all fields
- File uploads are linked, not embedded
What's Next?
- Creating Forms - Generate forms with AI or build manually
- Field Types - Complete reference of all field types
- Webhooks - Set up integrations with external services
- Submissions - View and manage form submissions
Quick Reference
| Feature | Description | Example |
|---|---|---|
| AI Generation | Create forms from prompts | "Contact form with name, email, message" |
| Field Types | 10+ field types | text, email, select, textarea, date, file, etc. |
| Validation | Configurable rules | required, minLength, maxLength, pattern |
| Webhooks | Send data to external services | CRM, email tools, databases, Zapier |
| Bot Protection | Vercel BotID integration | Automatic spam filtering |
| Rate Limiting | Prevent abuse | 10 submissions per hour per IP (default) |
| Submissions | View all form data | Organization-wide dashboard |
| Embedding | Add to landing pages | Hero Form, Content Form components |
Pro Tip: Start with a simple 3-field form (name, email, message) to test the flow. You can always add more fields later or create more complex forms for specific use cases!