FORMBUILDER
FORMBUILDER
What is this for?
With the FORMBUILDER plugin you can create custom forms and embed them on external websites:
- Forms with any fields (text, email, select, checkboxes, etc.)
- Embedding via IFrame on any domain
- Style customization (primary color, background, border radius, font, custom CSS)
- Submissions can be viewed, managed, and exported as CSV in the admin panel
- Spam protection through an invisible honeypot field
- Statistics (total/today/this week/this month) with a 30-day bar chart
- Public API for form submission without authentication
Common tasks (day-to-day)
- Create a new form
- Add fields (text, email, number, select, checkbox, radio, etc.)
- Embed the form as an IFrame on an external website
- Review incoming submissions
- Export submissions as CSV
- Customize appearance (colors, font, CSS)
Step by step
1) Create a new form
1. Admin → Form Builder (/settings/admin/formbuilder).
2. Click "New" (/settings/admin/formbuilder/create).
3. Enter a title – it will also be displayed as heading in the public form.
4. Click "Save" – the empty form is created.
2) Add fields
1. After creating the form, you are taken to the editor (/settings/admin/formbuilder/{id}/edit).
2. For each field, choose:
- Field name (e.g.,
first-name,email– used as the label) - Field type: Text, Textarea, Email, Number, Phone, URL, Date, Select, Checkbox, Radio, Color, Range, Hidden
- For Select/Checkbox/Radio: Options (e.g., "Option 1; Option 2; Option 3")
3. Click "Add Field" – it appears in the preview.
4. Fields can be deleted later.
3) Order & visibility
- Fields appear in the order they were created.
- Delete unwanted fields using the "×" button in the editor.
4) Embed the form (IFrame)
1. After saving, open "Embed" (/settings/admin/formbuilder/{id}/embed).
2. Copy the displayed IFrame code.
3. Paste it into the desired external website (HTML).
The IFrame loads the form from GET /formbuilder/{id}/render and submits data to POST /formbuilder/{id}/submit.
5) Customize the style
In the embed dialog (/settings/admin/formbuilder/{id}/embed) you can:
- Primary color – color of the submit button
- Background color – background of the form block
- Border radius – rounded corners (in pixels)
- Font family – e.g.,
Arial,'Open Sans',serif - Custom CSS – any additional CSS for individual adjustments
Changes are visible instantly in the live preview.
6) Manage submissions
1. In the form list (/settings/admin/formbuilder) click "Submissions".
2. You will see all submissions with date, optional name, and status.
3. Click on a submission to view all fields and values in detail (/settings/admin/formbuilder/{formId}/submissions/{subId}).
4. CSV Export – download all submissions as a comma-separated file.
7) Statistics
In the submissions section you will see:
- Cards: Total, Today, This Week, This Month
- Bar chart: Submissions over the last 30 days (using Chart.js)
Common questions / problems
"The form does not display on my website"
- Check whether the domain in the IFrame code is correct.
- The target website must not block
X-Frame-Options(for third-party servers, contact the site operator). - Check the browser console for errors.
"Checkbox values are not received"
- For multi-select (checkboxes with options), all selected values are stored comma-separated.
- The honeypot (
_tp) must remain empty – if filled, the submission is discarded as spam.
"I get a 403 error when submitting"
- The
POST /formbuilder/{id}/submitendpoint is public (CSRF excluded). If a 403 appears, check that the domain in the IFrame code is correct and the server serves the form correctly. - When embedding externally, the IFrame must use the server's domain, not
localhost.
"Submissions are not being saved"
- Check the tenant's database (the
formbuilderplugin schema must exist). - Look for errors in the admin log.
Technical URLs (quick reference)
Admin (/settings/admin/formbuilder):
GET /settings/admin/formbuilder– form listGET /settings/admin/formbuilder/create– new formGET /settings/admin/formbuilder/{id}/edit– edit formPOST /settings/admin/formbuilder/save– save formPOST /settings/admin/formbuilder/{id}/delete– delete formGET /settings/admin/formbuilder/{id}/embed– embed code + style
Submissions (/settings/admin/formbuilder/{formId}/submissions):
GET /settings/admin/formbuilder/{formId}/submissions– listGET /settings/admin/formbuilder/{formId}/submissions/{subId}– detailPOST /settings/admin/formbuilder/{formId}/submissions/{subId}/delete– deleteGET /settings/admin/formbuilder/{formId}/submissions/export/csv– CSV exportGET /settings/admin/formbuilder/{formId}/submissions/stats/timeline– statistics data (JSON)
Public (no authentication):
GET /formbuilder/{id}/render– display the formPOST /formbuilder/{id}/submit– submit the form
Permissions (quick reference)
formbuilder.forms.view– view form list and detailsformbuilder.forms.create– create formsformbuilder.forms.edit– edit and delete formsformbuilder.submissions.view– view submissions (list + detail)formbuilder.submissions.export– export submissions as CSVformbuilder.submissions.delete– delete submissions
Notes
- The IFrame embed code contains the full URL (including protocol and domain). When copying to the target website, make sure the domain is reachable.
- The honeypot (
_tp) is a hidden field filled by bots. Normal users will not see it. - The public endpoints (
/formbuilder//render,/formbuilder//submit) are accessible without login – make sure you do not request sensitive data through the form that should not be public. - Style settings (colors, CSS) only affect the embedded form, not the admin view.