Plugin v1.7.0

Features

Full product reference—or switch to marketing mode for the short pitch.

Forms & management

Feature Description
Multiple forms Run as many forms as you need from one plugin. Create, edit, duplicate, and delete forms without touching code. The forms list is sorted by last updated.
Form templates Start from Contact, Quote, Job, Event, or Support templates in the forms list—or begin with an empty canvas.
Admin title + fixed slug Give each form a clear admin name and a URL-safe slug. The slug is locked after creation so shortcodes and embeds never break when you rename the title.
List search Find forms quickly in the admin list by searching the title, slug, or notification recipient email.
Submit button label Customize the submit button text per form—"Send", "Request a quote", "Subscribe", and so on.
AJAX save Save builder changes instantly without a full page reload. Keyboard shortcut: ⌘/Ctrl+S.

Builder

Layout & editing

Feature Description
Document-first canvas Build forms in a focused canvas on the left while field and form settings stay in a sidebar on the right—similar to editing a document, not clicking through nested admin tabs.
Add field An always-visible control above the submit button opens the field picker so you can add fields without hunting through menus.
Reorder fields Drag and drop to reorder fields on the canvas. Powered by @dnd-kit for smooth, predictable sorting.
Multi-column layout Place up to 3 fields side by side (e.g. First name | Last name | Company). Drag a field beside another to create a row, drag column separators to resize, and double-click a separator to equalize widths. Title, paragraph, textarea, and file fields stay full width.
Field menu (⚙) Open a compact menu on any field to mark it required, show or hide the label, delete, or duplicate—without leaving the canvas.
Settings sections Sidebar settings are grouped into collapsible sections so you can focus on one area at a time.
Lucide icons Consistent Lucide iconography across the builder and submissions inbox for a cleaner, more modern admin UI.
Sidebar inputs All sidebar controls share unified styling. Discreet inline hints warn you when a setting needs attention.
Select fields Dropdown fields show a chevron indicator so visitors immediately recognise them as select inputs.
Embed overlay Copy the shortcode or follow Gutenberg block instructions from a built-in overlay—no hunting through docs while you build.

Field types

Feature Description
Short text, email, link Collect short text, email addresses, and URLs with dedicated field types and appropriate validation.
Long text Multi-line textarea for messages, descriptions, or longer free-form answers.
Phone Country prefix selector with E.164 formatting—all countries supported.
Number & date Numeric input with optional min/max limits, and a dedicated date field with min/max date constraints.
Dropdown Single-select dropdown with editable options.
Single choice Radio options rendered as visual tiles on the front-end.
Checkboxes Multi-option checkboxes or a simple consent checkbox.
File upload Let visitors attach one file per field. Ideal for CVs, briefs, or supporting documents.

Layout blocks

Feature Description
Title block Add section headings inside the form to structure longer flows. Display-only—not submitted with the entry.
Paragraph block Insert instructions, disclaimers, or helper text between fields. Display-only—not submitted.

Per-field options

Feature Description
Label visibility Show or hide the field label on the front-end—handy when the placeholder or surrounding copy is enough context.
Number limits Set minimum and maximum values on number fields to prevent out-of-range submissions.
Date limits Set minimum and maximum dates on date fields to constrain selectable ranges.
Text / email limits Enforce minimum and maximum character counts on text and email fields for cleaner, more predictable data.
Phone default country Set a default country prefix for phone fields. Visitors can change it on the front-end.
Textarea Allow visitors to resize the textarea and cap its length so long messages stay within your limits.
Choice options Edit select, radio, and checkbox options inline on the canvas or from the field settings menu.
File field Restrict allowed file extensions via a searchable multi-select and set a max file size (default 5 MB, capped by your server limits).
Inline links Insert, edit, and remove http(s) links in Paragraph text, consent checkbox labels, and multi-checkbox option labels. Select text in the canvas, then use the Link bubble—pick a published WordPress page or paste a URL.
Link behaviour Links open in a new tab (noopener noreferrer). Clicking a link inside a checkbox label does not toggle the checkbox—ideal for privacy policy / terms links.
Link storage Stored as sanitized HTML (<a> and <br> only). Inbox, exports, and emails use plain text for field values.

Prefill & hidden data

Feature Description
URL prefill Pre-populate scalar fields from URL query parameters on the client—useful for campaign links and still friendly to page caching.
Hidden fields Capture UTM tags, referral codes, or internal IDs invisibly on the front-end. Configure inbox label, URL param, and optional default in a sidebar table. Always submitted; visible in the inbox and notification emails.

Per-form settings

Availability

Feature Description
Pause Stop accepting submissions immediately—useful for sold-out offers, maintenance, or manual review periods.
Auto-close Schedule an automatic close date and time using your WordPress site timezone. The form stops accepting entries when the deadline hits.
Submission limit Cap total submissions (e.g. 100 spots). Shows progress as N / max with no automatic reset—ideal for limited registrations.
Unavailable message Show visitors a custom message when the form is paused, closed, or full instead of a generic error.

After submit

Feature Description
What the visitor sees Choose an inline success message on the same page, or redirect to any published WordPress page. These options are mutually exclusive.
Save to inbox Store submissions in the built-in inbox. Includes auto-purge / retention when enabled on the form.
Send admin notification Email up to 10 recipients when a new submission arrives.
Send user confirmation Send a simple thank-you email to the visitor using a designated email field on the form.
Trigger webhook POST a versioned JSON payload to a configured URL. Includes a test button in the builder.
Action picker Add or remove delivery actions via a picker. Actions run in a fixed order. At least one delivery action (inbox, admin email, or webhook) must be enabled—confirmation alone does not count. Inline warnings on save if misconfigured.

Advanced

Feature Description
Custom error message Replace the default submission error text with your own copy—useful for brand voice or clearer next steps.

Embed & integration

Feature Description
Shortcode Embed any form with `[sobiforms id="3"]` or `[sobiforms slug="contact"]`. Use id or slug—whichever fits your workflow.
Gutenberg block Drop in the Sobi Forms Contact block and pick a form visually—no shortcode memorisation required.
Page builders Works anywhere shortcodes work: Elementor, Divi, classic widgets, and other builder plugins.

Visitor experience

Feature Description
AJAX submit Visitors submit without a full page reload—faster, smoother, and less disruptive to the browsing experience.
Validation Instant HTML5 checks in the browser, then strict server-side JSON schema validation so bad data never reaches your inbox.
Nonce loading Security tokens load on hover or focus so cached pages stay fast while submissions remain protected.
Closed form When a form is paused or past its deadline, visitors see your custom unavailable message instead of the form.
Choice UI Radio options render as visual tiles; checkboxes support multi-select lists or a single consent checkbox.
Responsive columns Multi-column rows use CSS grid on the front-end and stack vertically below 600px so forms stay readable on mobile.
Front-end CSS Ships with minimal, neutral styles. Developers can disable plugin CSS entirely via the `sobiforms_enqueue_front_assets` filter.
JavaScript Vanilla JS on the public site—no React, no jQuery. Keeps the front-end footprint small and predictable.
Asset loading CSS and JS load only on pages that actually render a form. Every other page on your site stays untouched.

Inbox & submissions

Layout & navigation

Feature Description
Split view Browse submissions in a list on the left and read the full entry on the right—like Gmail or Linear. Columns are resizable.
React app List and detail mutations happen without a full page reload. Toast feedback confirms actions.
Views Tabs for All, Unread, and Starred. Spam and Trashed are top-level views for quick triage.
Per-form filter Narrow the inbox to a single form with a compact dropdown—handy on sites running many forms.
Search Full-text search across submission content so you can find a lead without scrolling.
Pagination Loads 50 submissions per page to keep the admin fast even with large volumes.
Admin badge An unread count on the Sobi Forms admin menu so new submissions are hard to miss.

Submission detail

Feature Description
Field data See every submitted field plus metadata such as date received and which form it came from.
Source page Records the page title and pathname at the moment of submission (query strings excluded—use hidden fields for UTM tracking).
Legacy submissions Older entries submitted before source-page tracking show "Not recorded" instead of leaving a blank.
Admin note Add private team notes on any submission. Never shown on the front-end or in notification emails.
File attachments View the uploaded filename and download the file from the inbox—admin-only, capability-checked.

Workflow

Feature Description
Read / unread & star Mark submissions read or unread and star important leads for quick filtering.
Spam queue Move suspected spam into a dedicated view. Webhooks do not fire on spam ingest.
Soft delete Delete moves submissions to Trashed (recoverable). Permanent delete is only available from the Trashed view.
Auto-read Opening a submission automatically marks it as read—except when browsing the Trashed view.
Row checkbox The row checkbox auto-selects when you open a submission, making bulk actions faster.
Checkboxes UI Custom Lucide checkboxes replace native browser checkmarks for a consistent admin look.
Mark all as read Clear your entire unread queue in one click when you have caught up.
Bulk actions Select multiple submissions and mark read, spam, trash, restore, or delete permanently.
Move all matching to trash Bulk purge all submissions matching the current filters in one action.
Dashboard widget A WordPress dashboard widget surfaces recent unread submissions as soon as you log in.

Email & delivery

Feature Description
Admin notification Send formatted HTML emails to your team when a submission arrives. Uses wp_mail() by default, or SMTP when routing is enabled.
Recipients Route notifications to up to 10 email addresses per form—sales, support, and ops can all stay in the loop.
File fields in email Emails include the filename and a link back to the inbox rather than attaching files directly—safer for deliverability.
Visitor confirmation Send visitors a simple thank-you email confirming their message was received. Does not repeat submitted field contents.
Sender Emails are sent using your site name as the sender—not the generic "WordPress" label.
Reply-To When the form includes an email field, replies go straight to the visitor so you can continue the conversation in your inbox.
Delivery modes Email only, inbox only, webhook only, or any combination of delivery actions—configured per form via After submit actions.
Mail failures A mail transport failure after a valid submit does not show an error to the visitor. Admins troubleshoot via Settings → SMTP → Logs.

Settings & integrations

Sobi Forms → Settings

SMTP (Core Settings)

Feature Description
SMTP account Connect one SMTP provider per site so form emails are delivered through your own mail server.
Settings & Logs tabs Configure SMTP in a side drawer with Settings and Logs tabs.
Delivery logs Failed notification and confirmation deliveries are logged for 30 days with error code and message. Retry resends the stored email snapshot.
Activate SMTP routing Master toggle for mail delivery. When off, falls back to wp_mail() instantly—credentials stay saved.
Testing Run a connection test and send a test email from the admin before going live.
Credentials Passwords are stored encrypted. Optionally define SOBIFORMS_SMTP_PASSWORD in wp-config.php for extra control.

Webhooks (Integrations)

Feature Description
Overview & Logs Settings → Webhooks lists forms with a configured webhook (valid URL; link to builder). Logs tab shows failed deliveries with Retry.
Per-form setup Configure via After submit → Add action → Trigger webhook. Saved only when the URL is valid.
Payload Sends a fixed versioned JSON payload. Uploaded files are referenced as { id: null, name, url, mime_type }.
Spam handling Webhooks do not fire on spam ingest. They fire once when a submission is marked as not spam (webhook_dispatched_at). Flag cleared on delivery failure.
Delivery logs Failures only, 30-day retention. Manual Retry from stored URL and payload. Resolved rows stay visible until purge.
Async delivery Delivered via WP-Cron so form submissions stay fast for visitors. On low-traffic sites, may wait until the next WP request.
v1 limits No replay queue or custom payload editing in v1—planned for Webhooks Advanced later.

Exports (Core Settings)

Feature Description
CSV & JSON Background export jobs per form under Settings → Exports—no page timeout. CSV uses flat columns with UTF-8 BOM for Excel and JSON-encoded multi-values; JSON uses structured records with native types.
Filters & preview Filter by inbox view (all non-spam, unread, read, starred). See a row-count preview before starting a job.
Job status Track each export from Pending → Processing → Ready (or Failed / Expired). Jobs run via WP-Cron so large exports stay reliable.
Download & retention Secure admin-only download via signed nonces. Files retained 7 days with automatic cleanup; optional email when ready or failed (initiating admin only). Excludes trashed submissions by default.
File fields in exports Exported file fields include a signed admin download URL—not the file contents—so attachments stay private.

Anti-spam & security

Feature Description
Honeypot A hidden trap field catches bots without showing visitors an ugly CAPTCHA.
WordPress nonce Every submission is verified with a WordPress security token to block forged requests.
Rate limiting Default 10 submissions per hour per hashed IP. Configurable under Settings → Spam protection; set to 0 to disable.
Cloudflare Turnstile Optional invisible-mode Turnstile. Siteverify on submit. Failed bot checks get a discreet success message with no delivery.
Server validation All data is validated against a strict JSON schema on the server—client-side checks alone are not enough.
File uploads Server-side MIME checks, getimagesize() for images (SVG excluded), and a blocklist of dangerous extensions.
Private storage Uploads live in uploads/sobiforms/ with .htaccess deny-all on Apache so files are not publicly browsable.
File download Only logged-in admins with the right capability can download files, with path verification on every request.
Akismet (optional) When enabled under Settings → Spam protection, suspected spam is quarantined in the inbox with no admin email and a discreet success message for the visitor.
Admin actions Every admin action checks user capabilities and WordPress nonces before anything changes.
POST guard Checks post_max_size before nonce validation on empty POST bodies with a content-length header—clearer errors on large uploads.

Data & privacy

Feature Description
Custom tables Form, submission, mail log, webhook log, and export job data live in dedicated tables—not scattered across wp_postmeta or wp_options.
Soft delete Submissions have a trashed_at column for recoverable soft-delete. Permanent delete only from the Trashed view.
IP storage Visitor IPs are stored as SHA-256 hashes only. Raw IP addresses are never saved.
Admin notes Internal team notes stay inside the inbox. They are never exposed on the front-end or included in emails.
Retention Automatically delete old submissions after a set period to support privacy frameworks like GDPR. Configured per form; manual purge also available.
Telemetry No usage data is sent back to the plugin author. Your submissions stay on your server.
Akismet Submission content is sent to Akismet only when you explicitly enable the integration under Settings → Spam protection.
Turnstile When enabled, the Cloudflare Turnstile script loads on form pages and tokens may be verified with Cloudflare.

Performance

Feature Description
Front-end weight About 5 KB of gzipped JS and CSS on pages that render a form (~21 KB unminified source)—light enough to protect Core Web Vitals.
Script loading Scripts load in the footer with defer on WordPress 6.3+ so they do not block page rendering.
Conditional enqueue Assets load only when the first form on a page is rendered—not site-wide. Zero assets on pages without a form.
Early enqueue On singular posts, assets can load earlier when a shortcode or block is detected—reducing flash of unstyled content.
Object cache Form definitions are cached to avoid repeated database reads on every page view.
Inbox queries Tab counts use aggregate queries; list rows skip the heavy data column until you open a submission.
Builder admin The React builder (~39 KB gzipped, ~138 KB minified) loads only on the form edit screen.

Admin & resources

Feature Description
Admin menu Submissions, Forms, Settings, and Resources are organised in a clear top-level menu.
Spam protection Settings → Spam protection — rate limit, Akismet, and Cloudflare Turnstile in one place.
Resources → Usage Shortcode and Gutenberg block documentation.
Requirements Requires WordPress 6.0 or newer and PHP 7.4 or newer.

Key messages

Angle Line
Performance Zero impact on pages without a form; ~5 KB gzipped when a form is shown.
Workflow Gmail-style inbox + dashboard widget — never miss a lead.
Simplicity Modern builder with templates and multi-column layout; shortcode or block everywhere.
Pro Native SMTP, webhooks, CSV/JSON exports, visitor confirmation, Akismet spam quarantine.
vs heavy plugins No React on the front, no forced reCAPTCHA.

Core Features & Form Builder

Feature Description
Blazing Fast React Builder Zero-reload canvas, drag-and-drop, ⌘/Ctrl+S, instant AJAX saving.
Multi-column layout Up to 3 fields per row; drag to resize; double-click to equalize; stacks on mobile.
Form templates Contact, Quote, Job, Event, and Support starters—or start blank.
Smart Form Scheduling Pause manually or auto close at a date/time with custom unavailable messages.
Flexible Embeds Gutenberg block, id/slug shortcodes, Elementor, Divi, and any shortcode-compatible builder.
Field types + layout blocks 10+ input types, title/paragraph blocks with inline links (page picker), file upload, hidden fields, URL prefill.

Submission Inbox

Feature Description
SaaS-grade split view React list + detail with resizable columns — like Gmail or Linear.
Instant triage All / Unread / Starred / Spam / Trashed, search, per-form filter, bulk actions.
Admin notes & source page Private annotations and frozen page context per submission.
CSV/JSON exports Background jobs under Settings → Exports; filter by view, 7-day retention, optional email when ready.
Dashboard widget Unread badge on admin menu + home screen widget for new leads.

Security & Privacy

Feature Description
Silent anti-spam Honeypot, nonces, rate limits (10/hour default), optional Akismet and Turnstile.
Privacy by design Hashed IPs, custom tables, soft-delete trash, no telemetry, configurable purge.
File uploads Validated, private storage, admin-only downloads.

SMTP, Webhooks & Delivery

Feature Description
Native SMTP SMTP routing with delivery logs and retry. Encrypted credentials.
Webhooks Versioned JSON payloads, per-form URLs, failure logs with retry.
Hybrid delivery Inbox, email, webhooks—or any combination per form via After submit actions.
Pro-grade emails Up to 10 recipients, Reply-To, visitor receipts, site-name sender.