Features
Forms — Lead Capture Engine
Build data collection forms, publish them publicly, and have every submission automatically create a CRM lead. The direct pipeline from marketing into the CRM — no manual data entry, no spreadsheet handoffs.
- Free: 3 forms, 100 submissions
- Pro: 25 forms, 5,000 submissions + form duplication
- Enterprise: Unlimited
Forms management
Forms list (/forms): Table with name, status (Draft/Published/Closed), submission count, last updated, actions. Row actions: Edit, View (preview + share link), View submissions, Publish/Unpublish, Duplicate (Pro), Delete.
Duplicate (Pro): Creates a full copy of the form as a Draft. Requires forms:duplicate feature flag.
Form builder
The full-page form builder (/forms/new or /forms/[formId]) has two panels: the field editor on the left and a live preview on the right.
Field types
| Type | Input | When to use |
|---|---|---|
| Text | Single-line input | Name, company, short answers |
| Email input | Contact email (required for lead capture) | |
| Number | Number input | Budget, team size |
| Long Text | Textarea | Project description, questions |
| Dropdown | Select | Industry, product interest |
| Checkbox | Checkbox | Multi-select options, consent |
| Radio | Radio group | Single-select from options |
| Date | Date picker | Preferred meeting date |
| File Upload | File input | Attachments, briefs |
Lead capture configuration
When “Create lead on submit” is enabled:
- A CRM Lead is created for each submission
- Field mapping: connect form fields to lead attributes (name, email, phone, company)
- Both a Name field and Email field must be mapped
- The created lead has
lead_source = 'form'and is linked to the submission
Public forms
Published forms are accessible at /public/forms/[formId] — no authentication required. Copy the embeddable <iframe> snippet from the “View form” dialog to embed on any external website.
Submission processing:
- Validates submission against form field definitions
- Creates a
form_submissionsrow - If lead capture is enabled, creates a
leadsrow with sourceform - Returns success or validation error
Technical reference
| Item | Detail |
|---|---|
| Action files | actions/forms.ts (authenticated), actions/public-forms.ts (public) |
| Feature flags | forms:builder (capped), forms:submissions (capped), forms:public, forms:lead-capture, forms:duplicate (Pro) |
| Migration | 00003_domain_tables.sql (forms, form_submissions) |
| Audit actions | form.created, form.updated, form.deleted, form.submission |