BoldForm is a fast, lightweight drag-and-drop form builder for WordPress. Build any form you need in a visual editor — no code — then embed it anywhere with a shortcode, a Gutenberg block, or an Elementor widget. Every submission is stored safely in your WordPress database and managed right from your dashboard.
From a simple contact form to a form with conditional logic, spam protection, and email-marketing sync, BoldForm gives you the tools professional forms need — without the bloat that slows your site down.
https://www.youtube.com/watch?v=EWum_aGDAMc
Why BoldForm?
- Drag & drop — build and reorder fields visually, configure each one instantly, and watch your styling update live as you work.
- Lightweight by design — assets load only where a form appears, the analytics chart uses the browser's native canvas (no charting library), and each form is queried once per request.
- No lock-in — export and import your forms, entries, and settings as JSON at any time.
- Yours to control — submissions live in your own database, with built-in tools to export or erase personal data on request.
- Extend anywhere — a clean, documented action/filter API lets add-ons and developers hook into every stage of the form lifecycle.
Perfect for contact forms, quote requests, registrations, feedback forms, surveys, job applications, event sign-ups, and newsletter opt-ins.
Drag & Drop Form Builder, Contact Form, Survey & Multi-Step Forms
Build forms visually without writing a single line of code. Drag fields from the sidebar, drop them into multi-column rows, reorder with a handle, and configure every field in its own settings panel.
https://www.youtube.com/watch?v=wkY9uTVaYJ0
- Multi-column layouts — arrange fields in flexible rows and columns with adjustable widths.
- Live Style tab — field, label, and button styling updates instantly beside the controls, with Normal / Hover / Focus / Checked states, selectable design themes, gradient backgrounds, and per-device (desktop / tablet / mobile) responsive values.
- Custom submit button — set your own text, a Dashicon or custom SVG icon, and the icon colour.
- Form templates — start from one of 11 ready-made templates instead of a blank canvas, then customise from there (see below).
Form Template Library
Skip the blank canvas. BoldForm ships 11 ready-made forms, grouped into General, Business, Events & Booking, and HR & Surveys — import any of them into the builder with a single click, then make it yours.
https://www.youtube.com/watch?v=Iv9QXaEa2i0
- General — Contact Form, Newsletter Signup, Feedback Form, Registration Form.
- Business — Lead Capture Form, Support Ticket, Order / Quote Request.
- Events & Booking — Event RSVP, Booking / Appointment.
- HR & Surveys — Job Application, Customer Survey.
All the Fields You Need
Standard
-
Text, Email, URL, Phone, Number, Numeric, Textarea
Choice
-
Select (single or multi-select custom dropdown), Multi Select, Checkbox, Radio, Country
Date & Time
-
Date picker and Time picker (powered by the bundled Flatpickr)
Rating & Range
-
Star Rating (per-field colours and size), Slider / Range (with an optional dual-handle min–max mode)
Advanced input
-
Input Mask for formatted text entry
-
File Upload with a configurable size cap, stored in your WordPress uploads
Identity & address
-
Name (structured first / middle / last)
-
Address (structured multi-line address)
Layout & content
-
Section Break (heading + description divider), Paragraph / Static Text, HTML Editor, Terms & Conditions
Smart Form Features
- Conditional Logic — show or hide any field based on the visitor's previous answers, with AND / OR rules per field.
- AJAX Submission — forms submit without a full page reload for a smooth, fast experience.
- Duplicate Prevention — optionally block repeat submissions based on a chosen field, such as email address.
Entries Management
Every submission is saved to a custom database table — a permanent record, independent of email delivery.
- View, filter, and read submissions from BoldForm → Entries.
- Mark entries Read, Unread, Starred, or Spam, with a dedicated Spam tab.
- Trash & restore — move entries to a Trash tab instead of deleting them outright, then restore them (with their original status intact) or delete them permanently, so an accidental delete is recoverable.
- Bulk actions — mark many entries at once, move them to Trash, or — from the Trash tab — restore or permanently delete them.
- CSV export — export all entries, or just the ones you select.
- Reports & Analytics — a dashboard of total forms, total entries, and per-form stats, charted with the browser's native HTML5 Canvas (no external library loaded).
Spam Protection
- Honeypot — Invisible hidden field catches bots automatically, no setup required
- Google reCAPTCHA v2 — Checkbox challenge; requires a site key and secret key from Google
- hCaptcha — Privacy-friendly alternative to reCAPTCHA; requires keys from hCaptcha
- Cloudflare Turnstile — Modern, no-puzzle captcha from Cloudflare; requires keys from the Cloudflare dashboard
- Math Captcha — Simple arithmetic challenge, works out of the box with no API keys
Email Marketing Integrations
- Email Notifications — send an admin notification on every submission, with a custom "From" name, reply-to, subject, and message body. Test delivery straight from the settings panel.
- SMTP — route outgoing mail through your own SMTP server for reliable delivery.
- Mailchimp — add contacts to any audience list with email, first-name, and last-name mapping.
- Brevo (formerly Sendinblue) — add contacts to any Brevo list with field mapping.
Configure connections under
BoldForm → Settings → Integrations, then assign one to each form.
Embed Anywhere
- Shortcode —
[boldform id="123"]
- Gutenberg Block — insert the BoldForm block in any page or post (Block API v3, with a styled in-editor preview).
- Elementor Widget — a native widget with full styling controls for fields, labels, buttons, and more, editable right in the Elementor panel.
Import, Export & Tools
Move your work between sites with one click. From
BoldForm → Tools, export all forms, a single form together with its entries, or your global settings as a JSON file, and import them back on any other site.
Developer Friendly
BoldForm ships a documented action/filter API so add-ons and custom code can hook into validation, submission, entry storage, integrations, and rendering — without touching core. Register custom field types, resolve auto-populate keys, defer post-save actions, and render rich entry values in the admin.
Privacy & GDPR Ready
- Submissions stay in your database; nothing is sent anywhere unless you configure one of the external services listed below.
- A personal-data exporter and eraser are registered with WordPress's privacy tools, keyed on the submitter's email address.
- Optional "remove all data on uninstall" cleanup.
Translation & Multisite
- Every string uses the
boldform-lite text domain and is ready for translation.
- Network-activate on multisite and tables are created automatically for each new subsite.
Meet BoldForm Pro
Ready for more?
BoldForm Pro unlocks advanced tools for professionals and agencies — all inside the same drag-and-drop builder you already know.
Advanced form building
- Multi-page (step) forms with progress indicators
- Advanced fields — Rich Text, Signature, Repeater, Calculation, Geolocation, NPS and more
- Auto-populate & hidden data fields
- Form scheduling with open / close dates
- Advanced analytics — form views and conversion tracking
- Webhooks to send form data to any external URL
Payments
- Stripe and PayPal — accept one-time and recurring payments right inside your forms.
30+ integrations — connect a form to the apps you already use:
- Email marketing — ActiveCampaign, Kit (formerly ConvertKit), AWeber, GetResponse, MailerLite, Constant Contact, Drip, and Moosend (in addition to Mailchimp and Brevo from Lite).
- CRM — HubSpot, Salesforce, Zoho CRM, Pipedrive, Freshsales, FluentCRM, Help Scout, and monday.com.
- Automation — Zapier, Make, and Pabbly Connect.
- Productivity — Notion, Airtable, Trello, and Asana.
- Storage — Google Sheets, Google Drive, and Dropbox.
- Messaging & notifications — Slack, Discord, Telegram, and Microsoft Teams.
Plus
priority support and automatic updates.
See everything in BoldForm Pro →
1.1.6
New features:
- New: Form Migrator — Import your Contact Form 7 forms into BoldForm with a single click. Re-import anytime to sync changes without creating duplicates.
- New: The Page Break field now has settings of its own — a title per step, three progress-indicator styles with their colours, and the Next/Previous buttons' colour, size, corner radius and wording.
-
New: A checkbox can be shown as a Switch. Pick the style per field — the tick box stays the default, so nothing changes on forms you already built.
Improvements:
-
Improve: The "Choose a Template" library now also lists the ready-made forms available with an upgrade, marked with a padlock below the ones you already have; selecting one shows what the form is for. Four categories — Health & Medical, Education & Nonprofit, Payment & Calculation and Multi-Step — were previously empty and never appeared at all.
- Improve: The Forms list gains a search box, sortable columns and paging — search by title, sort by name, entry count or last-updated, and step through ten at a time, with your filter, search and sort kept as you move between pages. Long lists no longer load every form on a single screen.
-
Improve: The "Choose a Template" library is now organised into collapsible categories — General, Business, Events & Booking, HR & Surveys and more — and a template that relies on a premium module you have turned off says so before you import it, rather than loading half-configured.
Fixes:
-
Fix: A form exported from one site now imports with all its fields intact. A layout containing quoted markup or a typographic character — twelve of the ready-made templates did — came in with no fields at all and its settings reset, because the escaping was stripped while the file was read. A file that genuinely cannot be read is now skipped and counted in the notice rather than creating an empty form that looks imported.
- Fix: A required Terms & Conditions checkbox now shows the red asterisk that marks every other required field. It was already required and an unticked box was refused on submit, but with nothing on screen to say so it read as optional. Applies to any consent field, not only imported ones.
- Fix: Clearing the Slider Height, Star Size or Maximum File Size box now restores that setting's default instead of jamming it to the lowest allowed value — left untouched, a slider drew a 2px track rather than its intended 8px and a star rating rendered at 16px rather than 20px. Values you set yourself are untouched.
- Fix: On the Entries screen, choosing a bulk action and clicking Apply with no entries ticked did nothing at all and said nothing. Apply now stays greyed out until both a row and an action are chosen, and explains why when you hover it.
- Fix: A file dragged onto a File Upload field is no longer silently ignored — dropped files are accepted exactly like ones chosen through the file browser.
- Fix: Applying a Design Theme now really recolours the form. Colours set on individual controls quietly outranked it, so parts of the form kept their old look; applying a theme now asks first, then replaces only the colours. Several accents also stayed teal under five of the eight themes.
- Fix: The submit button's alignment is now honoured when the button sits as a field inside the form layout, not only as the fixed button at the bottom. The Elementor widget gains a matching alignment control.
- Fix: The Email Notification tab's User Confirmation section now reveals its options reliably, and "Customize this email" together with the add-on slots sit inside the toggle, appearing only when the email is enabled. Empty sections no longer leave a stray divider.
- Fix: A checkbox or radio option shown in the template preview no longer displays a doubled tick, and its label sits a proper distance from the box.
-
Fix: The BoldForm item in the WordPress sidebar now highlights the page you are actually on, instead of leaving every sub-item unmarked on some hosts.
Developer:
-
Developer: New
boldform_migration_sources filter — register an importer for another form plugin by appending an object that implements the BoldForm_Lite_Migration_Source interface (get_slug / get_label / is_available / get_forms / import_form). Every available source is listed as a tab, and each imported form runs through the builder's own save path, so a new source only has to describe how to read its forms.
1.1.5
Security:
- Fix: An email field now rejects an address that is not one, instead of quietly correcting it. Typing something like "you@example.com" followed by a line break and more text used to be accepted and saved as a different address than was typed — WordPress's email sanitizer strips the offending characters and hands back an address that still looks valid. The form now reports "must be a valid email address" and saves nothing. Every genuine address is unaffected, including plus-tags, subdomains, mixed case, stray spaces, and addresses pasted out of Word, Outlook or a web page (which often carry an invisible character along with them).
-
Fix: Cc and Bcc headers on the confirmation email sent to the visitor are now re-validated the same way the admin notification's already were, so the two are no longer protected differently.
Developer:
-
Developer: New
BoldForm_Lite::supports( $capability ) — asks whether this build provides a named extension point, so an add-on can check for a hook instead of comparing version numbers. Guard the call with method_exists( 'BoldForm_Lite', 'supports' ), which correctly reads as "no capabilities" on an older BoldForm. Capability names are permanent once published. This release declares admin_email_attachments and user_email_attachments.
- Developer: New
boldform_lite_admin_email_attachments filter — lets an add-on add files to the admin notification, such as a generated PDF of the submission. Receives the visitor's uploaded files and passes $form_record, $entry_data and $entry_id. Return absolute paths to files that already exist on disk. Whatever a filter returns is re-validated before it is used: each path must resolve (via realpath(), so symlinks and ../ are followed) to a readable file inside the uploads directory, and anything else is dropped without stopping the email. That boundary is deliberate — the return value becomes an outbound attachment, so an add-on that builds a path from submitted data could otherwise mail out wp-config.php. Used by BoldForm Pro's PDF Attachment.
- Developer: New
boldform_lite_user_email_attachments filter — the counterpart for the user confirmation, so an add-on can send the submitter their own copy of what they filed. Passes $user_email before $entry_id. send_user_email() now takes an $attachments argument and passes it to wp_mail(); before this the confirmation could not carry a file at all, not even the visitor's own upload. The list starts empty rather than inheriting those uploads — mailing someone their own file back is rarely wanted — so an add-on has to ask for anything explicitly. Same validation as the admin side. The builder renders a matching .boldform-email-attachment-slot with data-email-slot="user". Capability: user_email_attachments.
- Developer: The form builder's Email Notification tab now renders a
.boldform-email-attachment-slot container (data-email-slot="admin") inside the admin notification block, for add-ons that configure what rides along with the email. It is kept distinct from the existing .boldform-email-pro-slot so two add-ons can extend the same email block without one overwriting the other, and it renders empty — an add-on that is absent leaves no gap.
- Developer: New
boldform_lite_admin_email_to filter — lets an add-on choose the admin notification's recipient after the form's own settings have been applied, so a submission can be routed to different people based on what was answered. Return one address, several separated by commas, or an array of addresses. Whatever a filter returns is re-validated before it is used: each address must survive sanitize_email() unchanged and pass is_email(), and a value carrying CR/LF is discarded outright rather than cleaned up — otherwise a header-injection attempt could be silently "repaired" into a different, valid-looking address. If nothing usable comes back, the recipient the form already resolved is kept, so a notification is never lost. Used by BoldForm Pro's Conditional Email Routing.
- Developer: The form builder's Email Notification tab now renders a second, separate
.boldform-email-routing-slot container (data-email-slot="admin") inside the admin notification block, for add-ons that configure who an email goes to. It is kept distinct from the existing .boldform-email-pro-slot so two add-ons can extend the same email block without one overwriting the other, and it renders empty — an add-on that is absent leaves no gap.
1.1.4
New features:
-
New: Rich thank-you message — the message shown after a submission is now written in a full visual editor under Form Settings → Confirmation, with headings, bold, lists, links, alignment and colour, plus a Code view for hand-written HTML. Existing plain-text messages keep working exactly as before; nothing needs changing.
Security:
-
Fix: The confirmation message shown after a submission made without JavaScript is no longer passed through the page URL. Anyone could previously put arbitrary wording on the page with a crafted link (for example, a fake "your payment failed, call this number" notice under your own form). The message is now held server-side and fetched with a single-use token, so only a real submission can produce one.
Improvements:
-
Improve: BoldForm has a new logo — the BoldForm "B" monogram replaces the previous form-and-pencil mark. It updates everywhere at once: the admin menu icon, every screen's toolbar, the builder, the dashboard stat cards and the empty states.
- Improve: The plugin's name now spells out what it does — "BoldForm - Drag & Drop Form Builder, Contact Form, Survey & Multi-Step Forms". Nothing about the plugin itself changes; it is only easier to find.
- Improve: BoldForm now has a home of its own at wpboldform.com, and the upgrade and roadmap links point there.
- Improve: Padding, margin, radius and border-width controls now start with their four sides linked, everywhere in the Style tab — form container, input fields, labels, placeholders and every other group. Type one value and all four sides follow, instead of having to click the link icon first. A control that already has different values per side still opens unlinked.
- Improve: A Reply-To already set on a notification (for example, per form by BoldForm Pro) now takes precedence over the site-wide SMTP Reply-To in Settings > SMTP.
- Improve: The Form Settings tabs now keep a consistent order and use standard WordPress icons, so every tab — including any added by an add-on — matches the rest of the admin and highlights correctly when selected.
- Improve: The Add New form screen now uses the same BoldForm toolbar as every other screen, so the admin navigation no longer disappears when creating a form.
- Improve: The Entries screen and the Tools → Entries export panel now preview Excel and PDF export — locked "Export Excel" / "Export PDF" options that open a quick upgrade dialog when clicked. Shown only in the free version.
- Improve: The thank-you message editor now previews shortcodes — a locked "Add Shortcodes" button that opens a quick upgrade dialog explaining how submitted data can be written into the message. Shown only in the free version.
- Improve: The Email Notification panel now previews the custom email editor — a locked "Customize this email" button under each notification that opens a quick upgrade dialog. Shown only in the free version.
- Improve: In a form's Integrations tab, connections whose service the free plugin cannot send to (anything other than Mailchimp or Brevo) now appear as a locked row that opens a quick upgrade dialog, instead of a toggle that would never fire. Existing assignments are preserved. Shown only in the free version.
-
Improve: The builder's Field Library now previews premium fields — a "Pro Fields" section lists the paid field types (Payment Item, Page Break, Repeater, Signature and more) as locked chips behind an overlay that opens a quick upgrade dialog. Shown only in the free version.
Fixes:
-
Fix: The count badge on a form's Integrations tab now shows the number of connections actually assigned to that form.
Developer:
-
Developer: The form builder's Email Notification tab now renders a
.boldform-email-pro-slot container inside each email block (data-email-slot="admin" / "user") so an add-on can inject per-email controls on the boldform:form_settings_rendered event. Used by BoldForm Pro's Custom Email Editor.
- Developer: The notification email filters now pass the saved entry ID (
boldform_lite_admin_email_subject/_content gain a 4th $entry_id arg; boldform_lite_user_email_subject/_content a 5th), and two new filters — boldform_lite_admin_email_headers and boldform_lite_user_email_headers — let an add-on adjust the wp_mail headers (e.g. add a Reply-To). Backward-compatible (extra args are ignored by existing callbacks).
- Developer: New entries-list extension points so add-ons can extend the Entries screen —
boldform_entries_list_columns (add columns to each row's query), boldform_entries_where_clauses (scope the list and its counts by an add-on column), boldform_entries_filter_controls (add a filter control to the toolbar alongside the Form and Date filters), and boldform_entry_status_badge_after (append markup after a row's status badge).
- Developer: New bulk-action extension points for the Entries list —
boldform_entries_bulk_actions (add options to the bulk-actions dropdown) and boldform_bulk_entry_action (handle a custom bulk action, with the request nonce and capability already verified). Used by BoldForm Pro's Entry Approval workflow to add per-row approval badges, an Approval filter, and bulk approve/reject.
- Developer: Form Settings tabs added on
boldform:form_settings_rendered can declare their position with a numeric data-stab-order attribute on the nav item. Tabs are sorted by it after every listener has run; a tab without one defaults to 50 and ties keep insertion order.
- Developer: New
boldform_show_upgrade_cta filter — return false to suppress every upgrade prompt (promo notice, menu item, toolbar button, page-header link). Lets an add-on hide the free version's upgrade CTAs without Lite knowing which add-on is present.
1.1.3
New features:
-
New: Cloudflare Turnstile captcha — a modern, privacy-friendly, no-puzzle alternative to reCAPTCHA and hCaptcha. Choose it under Settings > Captcha, add your Turnstile keys, and the widget is verified server-side on every submission.
Improvements:
-
Improve: The BoldForm Pro promotion notice now announces that Pro has launched, with a shorter, cleaner layout and a single clear call to action. It no longer appears on the Upgrade to Pro page, where it would be redundant.
- Improve: Refreshed the Upgrade to Pro page header — it now leads with the current offer, clearer benefit copy, a stronger call to action, and at-a-glance reassurances (instant access, automatic updates, priority support).
- Improve: When BoldForm Pro is active, every "Upgrade to Pro" prompt is now hidden — the promo notice, the menu item, the toolbar button, and the page-header link — and the Upgrade page shows a short "You're on Pro" confirmation instead of the comparison, so paying users are never shown upgrade nags.
- Improve: The Entries "Export Selected" actions are now a single dropdown (CSV, and Excel/PDF with Pro) instead of a row of separate buttons, for a cleaner bulk-action bar.
- Improve: Tidied the SMTP settings screen — the "Send Test Mail" result message now aligns neatly beside the button, and the Save Changes button has clearer spacing.
-
Improve: Entries now use a Trash instead of deleting immediately — the "Delete permanently" bulk action is replaced by "Move to Trash", trashed entries collect under a new Trash tab (excluded from the other views and from exports), and from there they can be Restored or Deleted Permanently. This matches how WordPress and other form plugins handle deletion, so an accidental bulk delete is recoverable.
Fixes:
-
Fix: The Forms list row-actions ("...") menu is no longer clipped by the table card — it now opens fully and stays visible.
Developer:
-
Developer: New entry-detail extension points — the
boldform_entry_detail_sidebar action and boldform_entry_detail_enqueue_assets action let add-ons render cards (and load their assets) on the single-entry screen.
1.1.2
Improvements:
- Improve: Added an "Upgrade to Pro" page and CTAs comparing Free vs Pro features, so it's easy to see what BoldForm Pro adds.
- Improve: The Entries list now supports bulk actions — select multiple submissions and mark them Read, Unread, Starred, or Spam, or delete them in one step.
- Improve: Added an "Export Selected" button on the Entries list to export just the checked submissions to CSV.
- Improve: Reorganised the Tools screen into separate Forms and Entries tabs, and added a standalone Entries export so you can download submissions on their own.
- Improve: Added a Documentation menu to the admin toolbar with quick links to the User and Developer guides.
- Improve: Expanded the Elementor widget with a Range Slider styling section and typography controls for input text.
- Improve: Exporting a form now bundles the submit button's custom SVG icon inside the export file, so the icon is recreated on the destination site and keeps working after the form is imported on another website.
-
Improve: Importing an export that includes entries now reports how many entries were imported (not just forms), and the Tools export/import descriptions make clear that entries can travel with a full export.
Fixes:
-
Fix: Several form and settings values no longer reset to their defaults after saving and reopening — page-redirect type, duplicate-submission prevention, and field style are all preserved.
- Fix: Saving one Settings tab (General, Captcha, or SMTP) no longer clears the settings on the other tabs.
- Fix: Custom column widths in the form builder are now kept when a form is saved.
- Fix: Resolved a form scheduling issue so scheduled open/close windows behave correctly.
- Fix: The submit button's Icon Color now applies reliably to both Dashicon and custom SVG icons — in the builder preview and on the front end — and the colour swatch updates live as you pick.
- Fix: An icon-only submit button (an icon with no button text) is no longer reset to "Submit" after saving and reopening the form.
- Fix: Tidied spacing and sizing across the form builder's field settings panel, so controls align consistently — the Quantity field's Min/Max/Default inputs, the "Enable search" toggle, the option and repeater "Add" buttons, and the payment product option rows.
- Fix: The Documentation menu now also appears in the toolbar on the Integrations page, so the admin navigation is consistent across every screen.
-
Fix: Importing an export that includes entries no longer loses or alters submission data — values with structured or nested content are preserved intact and numbers keep their full precision.
Maintenance:
-
Update: Removed unused files and empty folders from the plugin package for a cleaner, lighter install.
1.1.1
Improvements:
- Improve: Redesigned the Integrations settings dialog, and a connection now switches on immediately after you save it — no second click needed.
- Improve: The Forms and Entries list tables stay usable on small screens — wide tables scroll within their card instead of stretching or breaking the page layout.
- Improve: The Entries admin menu now shows an unread-submissions count badge (like the Comments menu) so new entries are visible at a glance.
-
Improve: Expanded the User Guide and Developer Guide with step-by-step setup instructions and screenshots for every integration, plus smooth in-page navigation.
Fixes:
-
Fix: Conditional Logic rules now save reliably — multi-condition rules and the ALL/ANY match mode are preserved when a form is reopened in the builder.
Developer:
-
Developer: New extension hooks for add-ons — boldform_defer_post_save_actions (hold the entry-created action and notification emails until an entry is finalised), boldform_auto_populate_value (resolve any auto-populate key through a single filter), and boldform_entry_value_admin_html (return rich HTML for an entry value on the admin detail screen only). A boldform_form_reset event now fires on the document after a successful AJAX submit so custom field widgets can re-sync.
- Developer: The bundled Appsero SDK now lives under includes/appsero/, and tag source archives strip development-only files via .gitattributes.
1.1.0 and earlier
Entries for 1.1.0 and earlier have been trimmed to keep this changelog within the length
WordPress.org displays. See the release notes on the plugin page for the full history.