Forms
Design forms once, embed them anywhere. Submissions land in your dashboard with file uploads, search, and CSV export.
Overview
The Forms service gives you:
- Drag-to-reorder form builder with text, email, file, select, checkbox, radio, date, number fields.
- Per-form widget design (colours, fonts, corners, buttons) set on the form's Developer page with a live preview - one look that applies everywhere the form is embedded.
- Browser-embed widget that drops on any HTML page with one
<script>tag. - Server-to-server JSON API for backend integrations.
- Submissions dashboard with unread badges, filters, files, exports.
- Webhooks fired on every submission.
Build a form
- Forms → New form. Name it (e.g. "Contact us") - the slug is auto-generated.
- Add fields. Pick the type, set the label, choose width (full or half for side-by-side).
- Set the heading, button label and success message. These live with the form's content.
- Save draft or Save & publish. Visual styling (colours, fonts, corners, buttons) is set separately on the Developer page - see "Style the widget" below.
Publish
Only published forms accept submissions. Draft and Paused statuses are not embeddable. You can republish at any time.
<script> tag on customer sites references the slug. Renaming breaks live embeds.Embed on your site
Open the form → Developer → Embed the widget.
- Style the widget. Use Widget design to set colours, theme, corners, button style and font. A live preview updates as you go; Save design stores it on the form so the same look applies on every site you embed it.
- Create a widget key. Add the domain(s) you'll embed on (e.g.
https://example.com). The key is locked to those origins. - Copy the snippet - drop it into any HTML page.
<script src="https://app.softsolz.uk/softsolz.js"
data-public-key="pk_live_…"
data-service-id="forms"
data-form-slug="contact-us"></script>
The script injects a sandboxed iframe that renders your themed form. Auto-resizes with content. No build step required.
View submissions
Forms → Submissions shows two views:
- By form - cards per form with count, unread badge, source breakdown, last activity.
- All entries - flat list across every form. Filter by form, date range, unread only.
Click any row to open the submission. File fields open in a preview modal (images, PDF, CSV, JSON, text, video, audio - Word and Excel preview where supported).
Files library
Forms → Files lists every uploaded file across all forms. Filter by form, file type, name. Click a card to preview, or hover for the download icon. Download all bundles the current view as a zip.
Dashboard
When Forms is installed, the main Dashboard adds tiles for total forms, submissions and unread count, plus a 7-day submissions trend chart and a "Recent submissions" card.
Use the API
Two integration paths:
| Path | Auth | When to use |
|---|---|---|
Widget - POST /api/services/forms/widget/<slug>/submit |
pk_… public key (browser) |
Visitors submit from your site via the embedded widget. |
Server - POST /api/services/forms/api/<slug>/submit |
sk_… secret key (server) |
Your backend creates submissions (CRM sync, automation, etc.). |
Full reference: developer.softsolz.uk/reference.
Common changes & risks
- Add a field - safe any time. Old submissions just have the field blank.
- Rename a field id - risky on published forms. Old data keeps the old key in storage; tables/exports won't show it for historical rows.
- Make a field newly required - visitors with the form open in a tab will fail submit until they refresh. Already-saved submissions unaffected.
- Change the slug - breaks every live embed. The dashboard locks the field and warns you.