Skip to main content
Auto Form Builder
Download FREE

Changelog

Auto Form Builder ships new features every month. Here's what's changed.

Version 1.6.6

  • Security: Password answers are no longer stored. Entries, emails, the entry page, Quick view, print, CSV, webhooks, Slack, Google Sheets and the AI summary show "••••••••" instead, and Conversation AI uses the normal form when a form has a password field. Imported entries are masked too. Important: after updating, passwords already saved in earlier entries, and in webhook and Google Sheets deliveries still waiting to be sent, are replaced with "••••••••" for good and cannot be recovered. Accounts created by User Registration are not affected.
  • Fix: The form builder no longer slides up to show an empty grey band at the bottom when you scroll. The page stays put, each column scrolls on its own and a long admin menu scrolls by itself. On phones and small tablets the builder has a one-row toolbar with a More menu, shows the field list or the form one at a time, keeps full field names with their actions in a menu, and opens Field Properties only when you tap a field, with the AI button out of the way.
  • Fix: On screens narrower than 1200px (including 1024px laptops and tablets) the form builder now uses the compact layout instead of three squeezed columns, and Save Form is always visible. Toolbar labels stay on one line, with the shortcode moving into the More menu and Edit with AI showing as an icon when space is short. File Upload fields in the form canvas now show their full note.
  • Fix: The review step no longer lists a field without a label by its number; it uses the same name as the entry page and emails (for example "Address").
  • Fix: The review step and live field values in the form show the address country by name ("United Kingdom") instead of its code.
  • Fix: Popups on phones are no longer cut off on the right, and the × button sits above the content so the scrollbar no longer covers it.
  • Fix: Entries from embedded forms now always show "Embedded form on" with the site name, including when the embed page was opened directly or the browser sent no referrer.

Version 1.6.5

  • New: Review step before submitting (Form Settings → Submission Behavior, off by default). Forms with the option off work exactly as before:
  • The submit button (on multi-step forms, the one on the last step) becomes "Review your answers" (your own text, field values allowed) and shows the visitor's answers as they will be sent: option labels, Products lines with their prices ("2 × Basic ($98.00)") and the total, file names, a small signature preview, masked passwords. Hidden and empty fields are left out. Optional text above the summary.
  • Multi-step forms show one group per step taken, each with its own Edit button, and the progress bar ends with a "Review" item. After an edit, "Back to review" checks every step again and first shows any step that branching added or that has an empty required field.
  • "Edit answers" keeps everything entered, and the final button, with your submit button text, sends the form. The answers are checked before the review opens and again on the server as before.
  • reCAPTCHA and Turnstile widgets show in the review and are drawn when it opens, so the token solved there is the one sent. Partial entries count the review as the last step.
  • Form Analytics shows a "Reviews" count per form, between views and submissions.
  • The Order, Job Application, Appointment and Event Registration templates come with the review step on, listed in the gallery's setup notes.
  • New: Field value tags such as {name} or {plan|default:your plan} in more places, each box with "Insert tag" and warnings:
  • The success message, conditional confirmation messages and the Stripe product name show that submission's answers (option labels for dropdowns, radios and checkboxes) as plain text, also in popups, embeds, the AI chat's thank-you message and the payment result page. A tag naming no field shows its default text or nothing, and so does every tag when the success page is reloaded later.
  • Notification and confirmation emails, including conditional email rules, take |default and the modifiers, such as {name|default:there} or {plan|upper}, and every email subject and message box has "Insert tag". Existing email templates send exactly as before: {submission_data}, field ID, name and label tags, {field:ID:total}, {field:ID:items}, {photo|link} and the system tags are unchanged, subjects stay plain text and HTML emails still escape the visitor's answers.
  • Conversational Forms: the completion message takes tags filled from the visitor's answers, with "Insert tag" on the form's Configure screen.
  • The review step texts get "Insert tag" too.
  • One-time update: brace text in existing success messages, confirmation messages, Stripe product names and AI completion messages that is not a field tag, such as "Use code {SAVE10}", is escaped so it keeps showing as typed. Imported forms exported from 1.6.4 or older get the same.
  • Fix: Popup Forms and the Conversational Forms floating chat no longer focus a text field when they open, so the on-screen keyboard no longer pops up on phones and covers the form. Focus moves to the popup or chat panel itself; Tab reaches the first field, and Esc, the focus trap and returning focus to the opening button work as before.
  • Fix: The {admin_email} tag now fills in the user confirmation email's HTML body too; before, it showed as typed there while the admin email and plain-text emails filled it.

Version 1.6.4

  • Fix: Address field: each part shows once, with its own label, placeholder and required mark, exactly as set in Address Components. With the United Kingdom preset, State/Province/Region shows as County (a text box) instead of a second "Country" dropdown, and Country shows when you turn it on. Labels come from the preset (Town/City, Postcode, Street Address…) or what you typed, and examples such as SW1A 1AA appear only as the placeholder. The builder's checkboxes and Style preview show the parts the form really shows, and parts marked Required are also checked on the server when left empty.
  • Fix: Webhooks: with "Custom JSON template" chosen, the help under the payload choice now describes the template instead of the default payload.
  • Fix: Webhooks: a saved signing secret now shows as "Secret set (ends …abcd)" with "Generate a new one" and "Remove", instead of an empty box that looked unset. The full secret is never shown.
  • Fix: Ad Tracking: {first_landing_url}, {last_landing_url} and the other landing page tags keep the page's path and query, such as ?page_id=31. Only the click IDs and utm_* parameters, which are stored separately, are left out.
  • Fix: Ad Tracking: the settings page explains how to use a tag in a form: a Text Input field with "Hidden Field" turned on.
  • Fix: In HTML emails, {file|link} shows each file as a link with the file name as its text. Plain-text emails and webhooks still get the URL.
  • Fix: Insert tag: "If empty, show" now comes before the field list, so you set it and then choose a field. Choosing a field whose tag is right next to the cursor updates that tag instead of adding it again, so {first_name}{first_name} no longer happens.
  • Fix: Password fields: the eye button's keyboard focus ring stays inside the field, also with rounded fields.
  • Fix: Cloudflare Turnstile and Google reCAPTCHA settings: the Status box shows "API Keys Configured" right after saving valid keys, without reloading the page.
  • Fix: User Registration & Login: since 1.6.2 the registration form refused every email with "Please enter a valid email address to create your account." and created no account. The mapped Email, Password, First Name, Last Name and Username fields are read again, by field ID with the field name as a fallback for older forms.
  • Fix: User Registration & Login: messages such as an invalid or already registered email, a taken username or a short password now show under the field they concern instead of starting with "Security:". "Security" is kept for the spam checks (Turnstile and reCAPTCHA).
  • Fix: Google Sheets: a field with a custom field name, such as a Number field, is now written to its mapped column.
  • Fix: Partial entries: answers to fields with numeric field IDs (the default for new fields) are now saved.
  • Fix: AI chat: the progress bar counts every field the chat asks, required and optional, and only real answers count as answered, so it no longer reads "1 of 1 answered" while a field is still being asked.
  • Fix: AI chat: the review card shows the option labels of choice answers ("Yes") instead of their stored values ("yes"), the same way the emails do.
  • Fix: AI chat: with the review step on, the default closing message asks the visitor to review and confirm their answers instead of saying they are being submitted.
  • Fix: AI summary: the quick summary of an entry gets the real submitted date and time, labelled as such, so a Date field of the form is no longer taken for the submission date.
  • Fix: AI chat Appearance: avatar Initials are taken from the chat name when the Initials box is empty ("Sara" gives "S", "Roy's team" gives "RT"); you can still type your own.
  • Fix: AI chat Custom CSS: when the CSS is refused (for example for @import), only the reason is shown, without "Could not save. Please try again."
  • Fix: Template gallery on phones: the header and the "Build with AI" row are compact (the AI row stays on one line until you tap it), so more templates fit on the screen.
  • Fix: Entry page: "Show technical details" stays open or closed after a reload, also when you reload right after clicking it.
  • Fix: Printing an entry no longer prints the file Download buttons, the "Show technical details" bar or the floating AI button, and the IP address in Details is printed.
  • Fix: An optional File field left empty shows as an empty answer on the entry page instead of "(0 B) (Download not available)".
  • Tweak: Entry Tags: when the name you type in the tag picker matches no tag, "Create tag ‘…’" creates that tag and adds it to the entry.
  • Fix: Opening a file download link from the admin while logged out shows a message with a "Log in" button instead of an empty page. After logging in, one click downloads the file.

Version 1.6.3

  • New: "Create New Form" opens a template gallery with 28 ready-made forms:
  • Search, categories (your last one is remembered), compact cards with badges (Payments, Multi-step, File upload, AI chat, Calculator) and a preview of each template's fields and what comes set up before you use it. Works fully with the keyboard and screen readers, on phones (full screen, category menu, preview sheet) and in right-to-left languages.
  • 23 new templates: Quote Request, Ad Landing-Page Lead Form, Real Estate Inquiry, Appointment Request, Clinic Consultation, Restaurant Reservation, RSVP, Order Form, Donation, Price Calculator, Return / Refund Request, Course Enrollment, Membership Application, Volunteer Signup, Customer Feedback (NPS), Satisfaction Survey, Feature Request, Bug Report, Damage Report with Photos, Job Application, Multi-step Onboarding, GDPR / Data Request and Conversational Lead Form.
  • The Contact, Feedback, Support Request, Newsletter Signup and Event Registration templates are ready to use: a required privacy consent checkbox, an admin notification to the site admin email and a confirmation message written for the form. You can change all of it in the form's settings.
  • With Stripe Payments active, the Order Form, Donation and Course Enrollment templates come with payment settings filled in but switched off, so nothing is charged until you connect Stripe and turn payments on.
  • Conversational Lead Form: with AI Conversation active, the new form opens as an AI chat with the AI consent notice turned on; without it, it works as a normal form. Choosing it while AI Conversation is off asks whether to turn it on first; cancelling changes nothing.
  • Build with AI right from the gallery: describe your form in one line and press Enter. "More options" opens the full AI dialog with document upload and model choice. It needs the AI Assistant add-on connected to AIDA; until then the gallery links to where to set it up.
  • New: File links in notification emails. Each admin, confirmation and conditional notification has a "File links" setting: Off (file name only, the default), Login link (opens the file only for a logged-in user allowed to view submissions) or Secure link (opens one file without logging in and expires after 1 to 30 days, 7 by default). Each file is shown on its own line with its name, linked, and its size. Files are served by the plugin, never from the uploads URL, and a link stops working when the entry or file is deleted.
  • New: The |link modifier, for example {photo|link}, puts a secure link to an uploaded file in an email or webhook template. Each webhook has its own link expiry. The default webhook payload is unchanged.
  • Fix: Live field values: inserting a tag into a field's label no longer turns the field's name and tag into a long garbled one like {field_11field1792449…}, and a field labelled only with numbers, such as "22", is offered by its id. "Insert tag" no longer lists the field you are editing; a field's own tag in its label or help text shows its default text, and the builder warns about it. Tags already in your forms keep working.
  • Fix: Conversational Forms: in a long conversation, or a chat with a small height, the messages no longer shrink to fit the window with their text overlapping the next message; every message keeps its height and the messages scroll. The "Please review your answers" card is no longer cut off. The card, its buttons, the consent box and the progress label now use the chat's own colours, so they stay readable with the Dark and Transparent styles and with your own colours.
  • Tweak: Conversational Forms: the Forms list has a "Copy" button next to each form's shortcode, before "Copy embed code".

Version 1.6.2

  • Fix: Forms with Cloudflare Turnstile or Google reCAPTCHA could not be submitted since 1.5.2: every submission failed with "Please complete the verification" even after the check was completed. The verification answer is checked again, and it is still never saved with the entry.
  • Fix: File fields now accept the extensions you list in the field, even those WordPress does not know, such as STL, 3MF, OBJ, STEP, IGES, glTF, DXF, DWG or G-code. A file is accepted only when its content is plain data. Scripts, web pages and programs (for example PHP, JS, HTML, SVG or EXE) are always refused, and uploads stay in the protected folder with random names.
  • New: Live field values. Show a visitor's answers elsewhere in the form while they fill it in, before they submit:
  • Type a field tag such as {first_name} or {plan|default:a plan} into a label, help text, HTML block, step title or the submit button text. It updates as the visitor types or picks, including in popups, multi-step forms and embeds. Answers always show as plain text, never as HTML.
  • Add |default:text to show that text while the answer is empty. A tag for a field that no longer exists shows its default text or nothing, so a raw {tag} never appears. Write \{ to show a brace as plain text.
  • Optional modifiers: |trim, |lower, |upper, |title and |nospace.
  • The builder's new "Insert tag" button lists the form's fields and inserts a tag at the cursor, with optional "If empty, show" text. Warnings point out tags that name no field, unsupported modifiers, fields whose answer is never shown (file uploads, signatures, passwords) and tags inside HTML attributes. The builder previews each tag as its default text.
  • Emails, the entry page, Quick view and print fill tags in field labels with that entry's answers. CSV headers, entry lists, survey results, partial entries, webhooks, Google Sheets, Slack, AI prompts and Conversational Forms show each tag's default text.
  • Webhook JSON templates accept |default:text too, for example "{city|default:unknown}". Existing templates send exactly what they did before.
  • One-time update: saved forms with brace text that is not a field tag, for example "Use code {SAVE10}", are rewritten to "Use code \{SAVE10}" so they look the same as before. Real field tags are left as they are. Forms imported from exports made before 1.6.2 get the same treatment.
  • New: Password fields have an eye button inside the field to show or hide what was typed. It works with the keyboard and screen readers, in right-to-left languages and on phones, and never changes what is sent. It is on by default; turn it off with "Show/Hide Password Button" in the field's settings.
  • Fix: On the submissions list, the entry page and Quick view, icons in buttons now line up with the button text, in right-to-left languages and on phones too. "Keyboard shortcuts" is now a quiet text button that matches the toolbar.

Version 1.6.1

  • New: Conversational Forms: an Appearance tab on each form's Configure screen, with a live preview that uses no AI credits:
  • Style: Light, Dark, Transparent or "Match my form" (takes the colors, corner radius and font from the form's Customize settings), plus your own colors for the window, header, bubbles, accent and border. A warning shows when a text color is too close to its background to read. A transparent chat embedded on another site lets that site's background show through.
  • Text: the system font, your page's font or one of about 100 Google fonts, and the text size. A Google font loads only on pages that show that chat.
  • Shape and size: corner radius, bubble style, shadow, border, height, maximum width, and full height on phones.
  • Header: show or hide it, an avatar (dot, initials or a Media Library image), a name and subtitle, and the "Start over" button and progress bar.
  • Input and motion: placeholder, label, a text send button, the typing indicator and the fade-in of new messages. Visitors who prefer reduced motion see no animation.
  • Layout: show the chat in the page or as a floating button in a bottom corner, with its own color, icon and an optional teaser message. The floating chat starts only when opened. One floating chat shows per page; others, and chats embedded on other sites, show in the page.
  • Custom CSS for one chat, limited to that chat. Only users who may post unfiltered HTML (usually administrators) can change it; imports, scripts and other unsafe code are refused.
  • Fix: Conversational Forms: the chat no longer picks up common theme styles, such as a theme's serif font or the hidden "Your message" label showing next to the input.
  • New: Webhooks and ad tracking:
  • Several webhooks: send each submission to more than one place, for example your CRM and Zapier. Each webhook has its own name, address, on/off switch, signing secret, forms and last delivery result, and can be tested, duplicated or deleted on its own. Your existing webhook becomes the first one and keeps sending exactly the same data.
  • Your own JSON: instead of the standard data, a webhook can send JSON you write, for example for the Meta Conversions API (a ready-made example is included). Use tags for the answers (the same ones as in emails) and for the submission: event ID, time, page, referrer, visitor IP and browser, form. Change values with |trim, |lower, |nospace, |e164 (phone number with country code), |sha256 (hashed, as ad platforms require) and |number. "Validate & preview" shows the result with sample values. A template with mistakes cannot be saved, and a visitor's answer can never break the JSON.
  • Background sending: webhooks are sent after the visitor's page has loaded, so a slow service never delays a submission. A delivery that fails for a temporary reason is retried 5 times over about 8 hours, and the Webhooks screen warns you when deliveries failed. Each request has an X-AFB-Delivery-ID header that stays the same on retries, so the receiving service can skip duplicates. The copy of a submission kept for delivery is removed as soon as the delivery succeeds, fails for good or is cancelled.
  • "Never send to webhooks": a setting on each field in the form builder. That answer, its label and its options are never sent by any webhook. Emails and other integrations are unchanged.
  • Ad Tracking add-on (free, off by default): remembers ad click IDs (fbclid, gclid, gbraid, wbraid, msclkid) and UTM parameters of a visitor's first visit, last visit and last ad click in a cookie set by your own site, and gives webhooks tags such as {gclid}, {utm_source}, {fbp} and {fbc}. Hidden fields set to one of these tags are filled in too, and checked again on your server. The values are never cached by a page cache or CDN, only your own site's pages can read or change them, and the cookie cannot be read by scripts.
  • One lead, counted once: each submission gets an event ID in the browser. When the success message shows, the page fires an afb:lead event and an afb_lead dataLayer push with that ID, once per submission, so a tracking pixel and a webhook report the same lead and ad platforms count it once. For example: document.addEventListener( 'afb:lead', function ( e ) { fbq( 'track', 'Lead', {}, { eventID: e.detail.event_id } ); } ). On forms embedded on other sites, the host page gets the event too. Forms that redirect to another page can pass the ID in the address with the new {event_id} tag.
  • Settings → Webhooks: "Visitor IP source" for sites behind Cloudflare or a proxy (the default cannot be faked by visitors), and "Default phone country" for numbers typed without a country code.
  • New: Submissions: a redesigned entry page and Quick view:
  • Answers first: an entry shows its answers as a clean list. Layout fields (page breaks, HTML blocks, headings and similar) are no longer listed, empty answers are hidden behind "Show empty fields", and the counter reads "N of M answered".
  • Sidebar: on wide screens, the submission details and add-on panels (tags, payment) sit beside the answers. Technical details are closed behind "Show technical details", and each user's choice is remembered.
  • Header and toolbar: "Entry #N · Form name" with the date, time and source page on one line, and Previous / Next beside it. All entry actions sit in one toolbar of same-size buttons, with More at the end. On phones the buttons show icons only.
  • Quick view: the eye icon on each row, or Shift+V on a focused row, opens the entry's answers in a dialog over the list. Previous / Next (or J / K) follow the list's order, and "Open full entry" opens the page. Opening an unread entry marks it read and updates the counts, but the entry stays in the Unread view until the page reloads. The full View link now has an "open" icon.
  • Entry Tags: tags show as compact chips with "+ Add" in the Tags panel, in place of the "Manage Tags" button. The tag picker opens as a dialog over the page.
  • AI Assistant: one "AI" menu with Summarize (quick), Summarize (detailed) and Draft reply…. The summary shows in the sidebar, and Draft reply opens in a dialog.
  • Printing: a printed entry shows the heading, date, source, answers and Details, without buttons or navigation. Long entries continue across pages without splitting an answer. With Stripe Payments, a short payment summary is included, without Stripe IDs.
  • Keyboard: the entry shortcuts pause while a dialog, picker or menu is open, so Escape closes the dialog instead of leaving the entry. The shortcuts dialog lines up correctly in right-to-left languages.
  • Products orders, file attachments, signatures, ratings and matrix answers look the same on the entry page and in Quick view, and products order tables now have proper column alignment and borders.
  • Security: Webhook signing secrets are stored encrypted and must be 32 to 256 characters ("Generate" makes one). If a secret can no longer be read, for example after the site's security keys change, that webhook is held back instead of being sent unsigned, and a notice asks for a new secret.
  • Fix: An uploaded file whose original name was not stored showed as "Uploaded file" in emails; it now shows the file's name.
  • Fix: Conversational Forms: the thank-you message after a chat uses the chat's font and text size.
  • Tweak: Conversational Forms: the default chat blue is slightly darker, so white text on it meets WCAG AA contrast.
  • Developer: New filters auto_form_builder_merge_tags and auto_form_builder_merge_tag_values add webhook template tags, and auto_form_builder_hidden_field_submit_value lets add-ons resolve a hidden field's value on the server. The auto_form_builder_webhook_payload filter receives the webhook as a fourth argument.
  • Developer: The auto_form_builder_webhook_request_args filter now runs when the webhook is sent (after the page has loaded, or in WP-Cron), not during the submission, and receives the webhook as a third argument.

Version 1.6.0

  • New: Products field, free. List the products or services visitors can buy, with a name, price, optional description and image. Show them as checkboxes, a single choice, quantity steppers or cards, and limit how many can be chosen.
  • New: Products field: visitors can pick a quantity for each product, within the minimum and maximum you set.
  • New: Products field: a live order summary lists each product, its quantity and line total, and the order total as visitors choose. It can cover one field or the whole order.
  • New: Products field: with the free Stripe Payments add-on, visitors pay the order total through Stripe Checkout, which shows each product as its own line with its quantity. Prices are always taken from your form, never from the visitor's browser.
  • New: Products field: with URL prefill turned on for the field, a link can preselect products and quantities, for example ?plan=basic:2,banner:1. This only fills in the form; prices are always checked again on your server when it is sent.
  • New: Products field: each product can be shown or hidden with conditional logic, and other fields can show or hide depending on what was chosen.
  • New: Products field: calculations can use the order total and the quantity of each product.
  • New: Products field: orders are shown itemized, with quantities, unit prices, line totals and the total, on the submission page, in the list preview, CSV exports, emails, Slack, Google Sheets, webhooks and saved partial entries. Webhooks also receive the order as structured data. Emails and redirect links can use {field:ID:total} and {field:ID:items}.
  • New: Products field: when an order spans several Products fields, the submission page shows the total of the whole order under them.
  • New: Submissions: Previous and Next buttons on a submission page open the next entry of the list you came from, with the same tab, filters, search and sort. Without one, they follow All submissions, newest first.
  • New: Submissions: "Next unread (3 left)" jumps to the next unread entry in that list. When none are left, "All caught up" links back to the list.
  • New: Submissions: a submission page shows where the entry is in its list, for example "12 of 48 in Unread".
  • New: Submissions: after Move to Trash, Mark as spam, Not spam, Restore or Delete permanently on a submission page, the next entry in the list opens (or the previous one at the end). You go back to the list only when it is empty.
  • New: Submissions: keyboard shortcuts on a submission page: J next, K previous, U next unread, S star, R read or unread, # move to trash, Esc back to the list. Press ? to see them.
  • New: Submissions: on phones, Previous, Next unread and Next stay at the bottom of the screen.
  • New: Submissions: "Reply by email" opens your email app with the submitter's address and the subject "Re: form name", when the entry has an email answer.
  • New: Conversational Forms: embed the chat on any website. Each form's settings have an Embed section with the code and a Copy button, in the same format as the regular form's embed code, and a height option (600 px by default). The chat keeps that height and scrolls inside, uses the full width, and is never taller than the screen on phones. While conversational mode is on, the form's embed shows the chat; add &afb_view=form to the address to embed the regular form instead.
  • New: Conversational Forms: the Forms list has a "Copy embed code" button next to each shortcode, like the main All Forms list. It copies the same code as the form's Embed section, 600 px high.
  • New: Conversational Forms: the embedded chat works for logged-out and logged-in visitors, also when the browser blocks cookies in frames from other websites. Rate limits, credits and the Health tab work as on your own pages.
  • New: Conversational Forms: in an embed, "Open the regular form" opens it in the same frame with the answers already given filled in. When the form redirects after completion, the whole page goes there; otherwise the completion message shows in the embed.
  • Fixed: Stripe Payments: a payment could fail to start, with "The payment could not be started", when Stripe had already seen an earlier request for the same entry number with different details, for example from a copy of the site connected to the same Stripe account. Each payment attempt now has its own request key, and a retry of the same attempt still can never open a second Checkout page.
  • Fixed: when the combined frontend files are not available, forms now also load the Month & Year picker, label and inside-the-field icons, Signature and Calculation files.
  • Fixed: popups and other site-wide extras from your site, such as footer notices and scripts added by the theme or other plugins, no longer appear inside an embedded form.
  • Fixed: Conversational Forms: a form set to redirect after completion now redirects on your own pages too, exactly like the regular form: straight away for "Redirect", after the message for "Message then redirect", with field tags in the address filled in.
  • Fixed: Conversational Forms: a form that takes a Stripe payment now sends the visitor to the Stripe payment page when the chat finishes, also when embedded, instead of leaving an unpaid entry behind. Return, cancel and "Resume payment" work as on the regular form, and the cancel notice shows above the chat. When a submission is refused, for example because a payment can't be made (amount too low, total of 0, Stripe not connected), the chat shows the same message as the regular form and lets the visitor correct their answer, instead of thanking them. A payment form with a Products field hands the visitor to the regular form, with their answers filled in, to choose products and pay.
  • Fixed: Conversational Forms: the chat can't fill in Products fields, so any form with a Products field, not only payment forms, now hands the visitor to the regular form when the chat finishes, with their answers filled in. The form's settings list its Products fields as chosen in the regular form.
  • Fixed: Submissions: on phones, the bottom bar's labels are no longer cut off. Each button shows its icon above a short label, and the AI Assistant button sits above the bar instead of covering Next.
  • Fixed: Products field: order lines read the same everywhere, for example "2 × Basic ($98.00)", in emails, Slack, Google Sheets and CSV exports.
  • Fixed: Products field: a Products field left empty is shown like any other empty field on the submission page and in emails, instead of "No products selected", and no longer counts as answered.
  • Fixed: emails list the submitted fields in the form's order, in the default admin and confirmation emails and in {submission_data}. A Products field could appear after fields that come later in the form.
  • Fixed: CSV export: column headers use the field labels exactly as written in the form, for example "Add-ons" instead of "Add Ons".
  • Tweak: Stripe Payments: if Stripe ever returns a Checkout page for a different amount than the entry owes, that page is closed at once so it cannot be paid.
  • Tweak: Submissions: the next entry is loaded ahead of time so Next opens faster. Loading it ahead never marks it read.
  • Tweak: Conversational Forms: the License section is gone from the settings. The add-on is free and never asks for or checks a license; a key saved earlier is deleted on update, and everything else keeps working.
  • Tweak: Google Sheets: messages with numbers or names in them now explain each placeholder to translators, and messages with two of them number each one so translations can change the order.

Version 1.5.3

  • Fixed: Conversational Forms: the chat no longer stops with "The AI response could not be parsed". A reply the chat cannot read is retried once; if that also fails, the visitor is asked the current question again in the form's own wording. Visitors never see technical text.
  • Fixed: Conversational Forms: when a visitor answers with something that is not a value, such as "skip this", "I'd rather not" or "call me instead", a required question is asked again politely with the reason it is needed, an optional question is skipped, and a question from the visitor is answered before the chat carries on.
  • New: Conversational Forms: after three replies in a row without an answer to a required question, the visitor is offered the regular form. When they open it from the chat, every answer they already gave is filled in, so nothing has to be typed twice. The answers are kept on the server for 5 minutes and never put in the link.
  • Changed: Conversational Forms: the instructions sent to the AI on each turn are shorter, so a typical conversation costs about 20% less on every tier, with the same behaviour.
  • Changed: Conversational Forms: a reply that AIDA judges unusable is no longer charged, and a retried reply shares one charge with the reply it replaces.
  • New: Conversational Forms: the persona, AI instructions, intro and completion messages and the scoring guide have a character limit, with a live counter under each box: 200, 4,000, 400, 400 and 1,000 characters. A save with a longer text is refused with a message that names the text and its length. Texts saved before this update are never shortened for you: a warning on the form's settings and on the Health tab lists each one until it fits.
  • Fixed: Conversational Forms: when the AI instructions make the conversation too long for AIDA, the chat no longer fails. Visitors read "This chat isn't available right now." with a link to the regular form, which keeps any answers already given. Administrators and the live preview are told how long the instructions are and what the limit is. The case is listed on the Health tab, AIDA is not called again, and no credits are charged.
  • New: Conversational Forms: a Health tab lists replies the chat could not use, with the time, form, tier and error, and AIDA's reason and 0 credits when AIDA judged a reply unusable. The raw reply is shown with the visitor's words, the answers collected so far, and any email address, phone number or date removed. Entries are kept for up to 7 days, and this works with conversation logging turned off.
  • Fixed: Conversational Forms: the answer box matches the question being asked, with the right keyboard on phones for email, phone, number, date and time. A "Type a message instead" link is always available, and the small scroll arrows on the empty answer box are gone.
  • Fixed: Conversational Forms: an answer given while correcting an earlier one is no longer lost, the lead analysis email includes the visitor's name and email, and stored transcripts keep each answer under its own field. Answers were never saved under the wrong field.
  • Fixed: Conversational Forms: the button under the answer summary reads "Confirm & submit" again, without HTML code in its label.
  • Fixed: When the same form appears more than once on a page (shortcode, block, popup or embed), the success message, the error box and the refilled answers show only in the copy that was sent. A popup only counts a conversion when its own copy is sent.
  • Fixed: The Maximum File Size of a File field accepts decimals such as 0.3 MB in the builder, the browser and the server, and size messages read "0.3 MB" instead of "0 MB". A size of 0 or below is refused in the builder with a clear message and is not saved. The message for a file of the wrong type lists the types the field really allows, for example "PDF, DOC, DOCX".
  • Fixed: The Address field no longer shows two asterisks on Address Line 1 and City, and their "required" errors use the plugin's own message instead of the browser's tooltip.
  • Changed: Fields without a label use one name everywhere: the builder, the submission page, the list preview, emails, CSV exports, Google Sheets and webhooks. Webhook payloads also include a "field_labels" list.
  • New: Entry exports have a "Choice answers" option: Labels (default) or Values.
  • Fixed: Answers to fields inside a Row's columns, and to an Address field with a custom name, are filled back in when the server rejects a submission and when a visitor moves from the chat to the regular form.
  • Fixed: The "N fields submitted" count on a submission page only counts answered fields, and an empty File field is no longer listed as "(file missing)".
  • Fixed: A download link to a file that was deleted says "This file no longer exists." The security check on downloads is unchanged.
  • Changed: Entries of a deleted form are named "Deleted form #34" everywhere, including the Dashboard.
  • Changed: Bulk actions no longer offer "Mark as Unread" on the Unread tab or "Add to Starred" on the Starred tab.
  • Fixed: On phones, the Submissions tabs show their names without overlapping, the filter dropdowns are no longer cut off, and the bottom bulk actions and paging bar sit below the list.
  • Fixed: Field tiles in the builder show their full name, such as "Month & Year", in every language.
  • Fixed: The scripts and styles of the built-in add-ons now follow the plugin version, so browsers load the new files after an update instead of a cached copy.
  • Fixed: A form with an NPS or Opinion Scale field that has no field name can be sent again when that question is left unanswered, instead of failing with "Please select a valid rating". Fields without a name no longer pick up another field's answer during validation.
  • Changed: The documentation links on the Help & Support page open the online documentation at autoformbuilder.com in a new tab.
  • Removed: The "Plugin .htaccess" line on the System Status page. It reported a file the plugin never creates; the protection of the uploads folder is unchanged.
  • Changed: The plugin now ships the source code and build files needed to rebuild its compiled scripts (src/, scripts/, vite.config.js, package.json and package-lock.json), and SOURCE-CODE.txt describes them accurately.

Version 1.5.2

  • Fixed: Answers to fields inside Rows and columns are now saved with the submission. They show on the submission page and in exports, partial entries and the Google Sheets field mapping, and files uploaded inside a Row are kept and deleted with the submission. Submissions sent before 1.5.2 did not store these answers; the notification emails always contained them.
  • Fixed: Files sent through a field that accepts more than one file are now saved with the submission. They show on the submissions screens, in exports and in the AI Assistant, and are deleted with the submission. Submissions sent before 1.5.2 did not store these files; the emails, webhooks, Slack and Google Sheets always contained them, and the files themselves were kept.
  • Fixed: A signature drawn in a popup, or anywhere else that is hidden when the page loads, is now saved in full. Before 1.5.2 such a signature was saved, and emailed, as a tiny image that could not be read.
  • Security: Stripe Payments checks the payment amount more strictly on the server before anything is stored or charged.
  • Security: Stripe Payments: a payment form no longer completes without payment when Stripe is not connected in the current mode or the stored Stripe key can no longer be read. The visitor sees "Payments are temporarily unavailable" and keeps their answers; the admin sees a notice listing the affected forms.
  • Security: All server-side checks (required, email, number and slider ranges, length, pattern, file count, type, size and minimum files) now run for fields at any depth, including inside Rows and columns.
  • Security: The server now decides which fields are hidden exactly the way the browser does, so hidden fields are never checked, charged or saved, and visible ones always are.
  • Security: An embedded form that leaves its frame, such as a payment form, now carries a signed token tied to the form that expires after 24 hours. Signed-in visitors and the "Open" preview no longer see "Security check failed" on submit, upload or partial save. Normal forms still use the nonce.
  • Security: Internal form inputs (spam checks, security codes, upload references, partial entry tokens and popup details) no longer appear in emails, webhooks, Google Sheets, exports, the submission screens or the AI Assistant. Google Sheets file cells show the file name and a link to the submission instead of a server path.
  • New: Redesigned Submissions screen with five tabs: All, Unread, Starred, Spam and Trash. Existing submissions move over automatically, and a backup of any value the update changes is kept. The old Read tab is gone; old links to it open All.
  • Changed: "Processed" is now called "Read". Unread submissions are bold in every tab, each tab shows one count, and the Auto Form Builder menu shows the number of unread inbox submissions.
  • Changed: Opening a submission marks it as read, however it was opened. Submissions in Spam or Trash are marked read and stay where they are.
  • Changed: Every submission, in the list and on its own page, has the same controls: star, read or unread, and a "More" menu with the actions that fit the tab. They work with the keyboard and screen readers, and deleting always asks first.
  • Changed: The Status column is gone. The submission page shows "In Spam" or "In Trash" next to its title, and the entry number (for example #19) opens the entry.
  • New: Bulk actions fit each tab, and Spam and Trash can be emptied with one button. Both ask first and say how many entries are affected.
  • Changed: The submission preview lists only answered fields with their option labels. Long answers in non-Latin scripts and emoji are shortened cleanly, and a file that is no longer stored shows "(file missing)".
  • Fixed: The source page is shown by its title, linked to the page, instead of "Unknown Page". Submissions received in the same second keep a stable order.
  • Fixed: Tab links, search, sorting, paging, bulk actions and "Back to submissions" keep the current tab, filters and page. Counts update right after a move, and a failed action shows an error.
  • Fixed: Spam and Trash are no longer counted or listed in the other tabs, the dashboard, the dashboard widget or the AI Assistant. Starring or marking read in Spam or Trash leaves the submission there.
  • Fixed: On phones, the submission preview, the page numbers and the bulk actions menu now display correctly.
  • New: Stripe Payments: visitors from an embedded payment form return from Stripe Checkout to a payment result page on the form's site. It shows the same confirmation, "being processed", cancelled or expired message (with "Resume payment") as a normal page, and no popups. Unknown or old links show "Link expired or invalid".
  • Fixed: Stripe Payments: required fields are checked before the payment starts. If the payment cannot start, the visitor returns to the form with their answers kept, and no entry is saved for that attempt.
  • New: Stripe Payments: the minimum and maximum amount settings now work with calculated totals.
  • New: Stripe Payments: a "When the total is 0" setting for calculated totals. By default the form refuses the submission; it can also complete without payment.
  • New: Stripe Payments: the form builder warns when payments are on but the current mode is not connected, or the webhook is not set up.
  • Fixed: Emails and the submissions screens show choice labels consistently, also for fields inside Rows: a single ticked checkbox shows its label or "Yes", "None of the above" shows as written, and a radio "Other" shows the visitor's text.
  • Fixed: Matrix answers in emails show each question with its choice, and a matrix field tag shows "Question: Choice" instead of "Array".
  • Fixed: Show/hide rules ignore answers in hidden fields, compare dates, months and times correctly, ignore "Select all", and update after "Select all", "None of the above" or a selection limit changes the boxes. Fields on skipped steps stay disabled.
  • Fixed: A required field (file upload, signature, address or pattern-checked field) that is hidden by a rule, also inside a Row, or on a skipped step no longer stops the form. It is required again when shown.
  • Fixed: In a multi-step form, Next checks every field on the step, including uploads, signatures, address, checkbox minimums, matrix, time, dropdowns and email confirmation. Submit returns to the first step with an error.
  • Fixed: When a check stops the form, focus moves to the first field with a problem and screen readers read its message. File messages appear next to the field instead of in a pop-up alert.
  • Fixed: Clicking Clear on a signature empties it, and the server no longer accepts a blank or nearly blank signature for a required field.
  • Fixed: When "Other" is chosen on a checkbox or radio field, its text must be filled in: "Please specify your answer for Other."
  • Fixed: Two forms on one page, or the same form shown twice, now work separately, each with its own uploads, pickers and messages.
  • Fixed: The hidden spam-check field can no longer receive focus, and screen readers do not announce it.
  • Fixed: An invalid email address shows "Please enter a valid email address." and stays in the form. After the server rejects a submission, the email confirmation box is filled in again.
  • Improved: Upload errors say what went wrong (too large, wrong type, too many files, or not saved). A file field checks the number, type and size of files as soon as they are added, and "Minimum Files" is also checked on the server.
  • Fixed: A number field's lowest, highest and starting value, and the minimum length of text and phone fields, can now be set to 0 in the builder.
  • Fixed: A slider with no lowest or highest value runs from 0 to 100 on the server too, as it does in the browser.
  • Fixed: The dashboard's unread number opens the Unread tab.

Version 1.5.1

  • Fixed: A form turned away by the server (for example a failed spam check) now reloads with the visitor's answers filled in. File uploads and signatures must be added again.
  • Fixed: A dropdown with a default or restored answer now shows the chosen option instead of looking empty.
  • Security: Further hardening of form styling, stored spam-protection keys and uploaded files. Updating is recommended.
  • Fixed: A single checkbox no longer shows its text twice.
  • Fixed: A number slider's live value now keeps its formatting after it is moved.
  • Fixed: A number typed with an exponent (such as 1e3) now gives the same result in the live calculation and the saved entry.
  • Changed: reCAPTCHA and Turnstile secret keys are now stored encrypted; existing keys move over automatically. If the site's security keys (salts) change, a notice asks you to re-enter the key.
  • Changed: Permanently deleting a submission now also removes its files, signatures, address details, AI outputs and unsent Google Sheets rows. Trash keeps everything.
  • Fixed: A rejected submission no longer leaves uploaded files or signature images behind.
  • Changed: Files uploaded but never submitted are removed after seven days.
  • Changed: nginx sites see a notice with a recommended rule for the uploads folder.
  • Fixed: Entries now record the page and title the form was submitted from, including embedded forms.
  • Fixed: The Submissions "All" tab no longer includes Spam or Trash.
  • Fixed: The builder warns when the User Confirmation Email is on but no email field is selected.
  • Fixed: The form block uses block API version 3, removing the editor warning on WordPress 6.9+.
  • Fixed: The Customize preview now shows the Name field as configured and applies the focus colour and shadow.
  • Fixed: Popup Builder's redirect notice now considers conditional confirmations.
  • Changed: "Show Number Next to Slider" is on by default for new sliders.
  • Changed: Calculation fields no longer show the unused Required and Placeholder settings.
  • Fixed: Clearer help text for notification rule recipients and "Break out of iframe".
  • Fixed: Deleting the plugin with "remove all data" now removes all add-on data, popups, logs and temporary data. Scheduled tasks are always removed.
  • Fixed: Deleting the plugin while keeping data now also removes the saved AI connection. Forms and submissions are kept.

Version 1.5.0

  • New: Calculation field — show a live total worked out from other fields as the visitor fills in the form, for example a price multiplied by a quantity plus a fee. Formulas can add, subtract, multiply and divide, use brackets, and use min, max, round, abs, ceil and floor. Choose the number of decimal places, a prefix or suffix such as a currency symbol, and the thousands and decimal separators. The result is calculated again on the server when the form is submitted, so visitors cannot change it. It appears formatted in notification and confirmation emails, Slack notifications and entry details, and as a plain number in CSV exports. The builder will not save formulas that refer to each other in a loop.
  • New: Stripe Payments add-on (free, off by default; enable it under Forms → Add-Ons) — take payments through any form with Stripe Checkout, using your own Stripe account. The amount can be a fixed price, a number the visitor enters (with optional minimum and maximum), or the result of a Calculation field. Payment status is shown on the Submissions screen (a Payment column, a payment filter and a payment panel on each entry) and in CSV exports, and refunds are tracked automatically. Notification emails for a payment form are sent once Stripe confirms the payment, and can include {payment_amount}, {payment_currency}, {payment_status} and {payment_id}. The webhook is set up in your Stripe account for you, and test and live modes are supported. The plugin adds no fee or percentage: payments go straight to your Stripe account and you pay only Stripe's standard processing fees. See "External Services" for exactly what is sent to Stripe.
  • New: Field tags in redirect URLs — add answers to the redirect address with {field} tags, for example https://example.com/book?email={email}, to pass them on to a payment link, booking page or CRM. An "Insert field" picker next to the Redirect URL box adds the tags for you. Answers are encoded safely and can never change which website the visitor is sent to. Works for the default redirect and for conditional confirmation rules.
  • New: Saving a redirect URL now warns you when a tag does not match a field on the form, when it names a file upload or signature (these are never put in a URL), or when it uses a parameter name WordPress reserves on your own site, such as ?name= (use ?fullname= instead). A redirect URL that cannot be saved no longer erases the one saved before.
  • Changed: Clearer wording for conditional confirmation rules. The default action is now labelled as applying when no confirmation rule matches, and each rule explains that it replaces the default action entirely.
  • Changed: Deleting a form now opens a confirmation page that shows how many submissions the form has. Submissions are kept by default, or you can move them to Trash in the same step. Settings that add-ons stored for the deleted form (Form Analytics data, Google Sheets mapping, AI Conversation settings and the User Registration form choice) are removed with it.
  • Changed: The success message text is no longer added to the page address after a submission; the page always shows the message saved in the form settings.
  • Fixed: Uploaded file details, including the file's location on the server, no longer appear in notification and confirmation emails; files are listed by name. The duplicate File row in emails is gone, Checkbox, Radio and Drop-down answers show their option labels instead of their stored values, and signatures appear as a short note pointing to the submission details.
  • Fixed: Side-by-side fields (half, third and two-thirds width) now line up along their top edge instead of shifting when one of them has help text or a taller input such as File Upload.
  • Fixed: The Time field's help text no longer appears twice.
  • Fixed: Opening a submission whose form was deleted no longer causes an error. Such submissions are labelled "Deleted form #ID" on the Submissions screen and in exports, and can still be exported on their own.
  • Fixed: Form Analytics no longer counts views for a shortcode whose form was deleted.
  • Fixed: A form set to "Redirect" with no redirect URL now shows its success message instead of sending visitors to the site's home page.
  • Security: Several hardening improvements to file uploads, redirects after submission, outgoing webhooks and spam protection. Updating is recommended.

Version 1.4.9

  • Fixed: Admin notification emails set to go to more than one address could be silently dropped — a single invalid or rejected address could stop every recipient from receiving the email. Notifications are now sent as one email per recipient, so one bad or rejected address can no longer block the others. This applies to the main Notification Email and to the recipients of conditional email rules.
  • New: Notification recipients are now entered as a list — one address per row with an "Add New" button — instead of a single comma-separated box, both for the main Notification Email and for each conditional email rule. Existing recipients are converted to the new list automatically when you update; nothing needs to be re-entered.
  • New: Failed form emails are now recorded. The most recent failures (when, which form, admin notification or user confirmation, the recipient and the reason) are listed under Settings → System Status → Email Delivery Failures, with a button to clear the list.
  • New: Saving a form now warns you when a notification address is not a valid email address (it is removed) or contained hidden or unsupported characters (the cleaned address that was saved is shown), instead of the address being dropped without notice.
  • New: When a form has conditional email rules, a new per-form option controls the main Notification Email: "Only send it when no rule matches" (the default, and how earlier versions behaved) or "Always send it (unless a rule says skip)". When a rule and the main Notification Email go to the same addresses, only one email is sent.
  • New: "How to Display Values" option for the Date field — Plain (for example 2024-03-25), Friendly (Mar 25, 2024) or Both. The default is Plain, which fixes the selected date appearing twice on published forms. This replaces the former "Show date preview chip" checkbox; the stored value stays YYYY-MM-DD in every mode.
  • New: "Field icon (inside)" option for the Date field, matching the Text, Email, Number, Phone, URL and Drop-down fields.
  • Changed: The form builder's top-bar Preview button is replaced by an Open button that opens the real published form in a new tab. If you have unsaved changes, it offers to save them first.
  • Fixed: The file-upload stylesheet (modern-file-upload.css) failed to load on real installs because it was stored in a source-only folder, leaving the File Upload field unstyled. It now ships with the plugin's other form styles.
  • Fixed: The optional deactivation feedback and opt-in anonymous usage data now reach their new home at Auto Form CRM. Previously these requests failed silently, and on sites that opted in, the uninstall call could add a delay of a few seconds when deleting the plugin. The data sent is unchanged; see "External Services" for the updated endpoints. A feedback submission that fails to send no longer prevents a retry for five minutes.
  • Changed: Removed an unused license-check routine from the AI Conversation module. It was never called; no data was ever sent by it.

Version 1.4.8

  • New: Google Sheets is now a free built-in add-on (off by default; enable it under Forms → Add-Ons). Send form submissions straight to a Google Sheet, with per-form spreadsheet and worksheet selection and field-to-column mapping. Delivery is asynchronous and reliable — submissions are never delayed if Google is slow or unreachable, and are retried automatically — and the Google service-account credentials are encrypted at rest.
  • New: Conditional confirmation and email-notification rules can now use the "Other (please specify)" text of a Checkboxes or Multiple Choice field as a condition. Fields with the "Other" option enabled offer an extra "Other (specified)" entry in the rule's field list, so rules such as "Other (specified) is not empty" or "contains France" work without adding a separate text field.
  • Improved: The rule editors now warn when "Greater than" or "Less than" is used against a Checkboxes, Multiple Choice or Drop-down field whose option values are text (for example "Yes"/"No" or country codes). Such a condition can never match because the comparison is numeric; the warning explains this and suggests Equals or Contains. Nothing is blocked or changed automatically, and existing rules behave exactly as before.
  • Fixed: The Phone field's "Format As You Type" broke Backspace and Delete — deleting removed only part of the number and then stalled. Deletion now removes one character cleanly in every phone format, and editing in the middle of a number works. (The US format now displays as (123) 456-7890.)
  • Fixed: Required Radio, Time, and multiple-choice Tabular Survey (Matrix) fields were not caught in the browser before submitting, so the page reloaded before the error was shown. They now block submission with an inline message, like other required fields.
  • Fixed: A form rejected by server-side validation no longer loses the values the visitor already entered. Every field type is now preserved on reload — including Radio and Checkbox "Other" text, Address, Matrix, Time, Date and the survey fields — and the round-trip is now reliable for visitors behind proxies or CDNs.

Version 1.4.7

  • Fixed: The form builder's unsaved-changes warning is now reliable after adding or removing a field — the leave-page prompt fires on any navigation while you have unsaved edits, instead of being silently cleared when the field count changed.
  • Fixed: A Date field with no default value showed two calendar icons on the right on published forms. It now shows a single calendar icon on the left, and on the right for right-to-left sites, matching the Time and Month & Year fields.
  • Fixed: The Month & Year field's "How to Display Values" format now shows on the form in every browser, including those that fall back to a text input (such as Safari on desktop). The stored value stays YYYY-MM.

Version 1.4.6

  • New: Entry Tags is now a free built-in add-on. Create color-coded tags, assign them to submissions, and filter the submissions list by one or more tags — with tag templates, usage statistics, and unused-tag cleanup. Off by default; enable it under Forms → Add-Ons. Sites that used the separate Entry Tags plugin keep all their tags: the built-in add-on switches on automatically once that plugin is deactivated, and a notice on Auto Form Builder screens reminds you it can be removed.
  • New: When both Entry Tags and the AI Assistant are enabled and connected, AI summaries, drafted replies and "Ask across submissions" also see each submission's tags, and the admin chat can list your tags and answer questions like "how many submissions are tagged Urgent this week?". Nothing changes for the AI Assistant when Entry Tags is off.
  • Changed: Deleting a submission (individually, in bulk, or via the Privacy data-erasure tool) now also removes its tag assignments. Developers: a new auto_form_builder_submission_deleted action fires with the submission ID.
  • Fixed: A Checkboxes field with a "Minimum selections" limit could not be submitted when only "None of the above" was ticked — the browser reported "Please select at least 1 option(s)." even though an answer was given. "None of the above" now counts as a complete answer for the minimum-selections rule, in the browser and on the server.
  • Fixed: After a Checkboxes field failed its minimum/maximum-selections check, editing another field and submitting again could bypass that check. Selection limits are now re-checked on every submit.
  • Fixed: A Date field with "Minimum Days From Today" did not enforce the minimum in the browser on published forms, so picking an earlier date was only rejected after submit — and the form then reloaded with every other field cleared. The minimum is now applied in the browser with the same inline message as other date rules, and a form that fails server-side validation keeps all values the visitor entered (including Name subfields).
  • Fixed: Leaving the form builder with unsaved edits via the "Back to Forms" button now asks for confirmation in every browser instead of relying solely on the browser's own leave-page prompt, which some browsers suppress.
  • Fixed: The Month & Year field's calendar icon appeared on the right on published forms (left in the builder preview). It now sits on the left, and on the right for right-to-left sites, matching the Time field.
  • Fixed: Clicking the Month & Year field on a published form could open two pickers stacked — the browser's built-in month list underneath the plugin's month grid. Only the plugin's picker opens now.
  • Fixed: The Drop-down field's "Field Icon Inside" setting had no effect on published forms (the icon showed only in the builder preview). The icon now renders inside the drop-down.
  • Fixed: The Month & Year field's "How to Display Values" setting was ignored on the form itself, which always showed the browser's own format (for example "March 2024"). The field now displays the selected format; the stored value stays YYYY-MM.
  • Fixed: The Month & Year "03/2024" display option silently fell back to "2024-03" in emails and entry details.

Version 1.4.5

  • Fixed: Submitting a form that contains a Date field caused a fatal error ("Class Auto_Form_Builder_Date_Helper not found") on some sites. The date helper is now always loaded before submissions are processed.
  • Fixed: Submitting a form that contains a Star Rating, NPS, Opinion Scale, or Tabular Survey field could cause a fatal error ("Class Auto_Form_Builder_Survey_Helper not found"). The survey helper is now always loaded before submissions are processed, and submissions fall back safely instead of failing if a helper is ever unavailable.

Version 1.4.4

  • New: UK Mobile format for the Phone field — validates UK mobile numbers in domestic (07700 900123) and international (+44 7700 900123 or 0044 7700 900123) formats, with optional format-as-you-type. Existing phone fields and other formats are unchanged.
  • New: "Minimum Days From Today" option for the Date field — require the selected date to be at least a set number of days after today (e.g. 3), enforced in the browser and on the server. If a fixed First Allowed Date is also set, the later of the two applies. Existing date fields are unchanged.
  • Improved: The Month & Year (calendar) and Time (clock) field icons now sit on the left, matching the inside-the-field icons for a consistent look across all fields (with right-hand placement kept for RTL sites).
  • New: Inside-the-field icon support for the Drop-down field — show a built-in or uploaded icon at the start of the dropdown, matching the other fields. Dropdowns without an icon are unchanged.
  • New: Auto-fill field values with conditional logic — automatically set a Text, Textarea, Number, Email, Phone, or URL field to a fixed value or copy another field's value when your conditions are met. If the visitor edits the field their input is kept, and an auto-filled value is cleared again if the conditions stop matching. Works independently of the existing Show/Hide rules, so a field can use either or both.

Version 1.4.3

  • New: Month & Year field — collect month/year with an easy custom picker (year arrows and a single month grid), or year only with a year dropdown. Works with conditional logic, entry details, admin/user email notifications, URL prefill, AI form builder defaults, and AI Conversation forms. Existing Date fields are unchanged.
  • New: "Block Future Dates" option for the Month & Year field, so answers cannot be later than the current month or year — ideal for questions like "When was your business established?". Combine it with the Earliest Month/Year setting to bound both ends.
  • New: Save your Customize design as a reusable theme, then apply it to your other forms with one click. Saved themes live in the Customize → Theme panel; existing forms and themes are unchanged.
  • New: Label icons — add an icon next to any field label from a built-in library of 40+ icons, or upload your own PNG/JPG. Control the icon color, optional background chip, and size per field. Fields without an icon are completely unchanged.
  • New: Inside-the-field icons — show an icon at the start of Text, Email, Number, Phone and URL fields, separated from the value by a divider. Choose a built-in icon or a PNG/JPG and set its color, background and size. Fields without an icon are completely unchanged.
  • New: Popups — show any form in a popup without installing a second plugin. Create unlimited popups (modal, slide-in, sticky bar, full-screen, welcome mat, floating launcher), pick the pages they appear on, trigger them by time, scroll, exit intent, clicks and more, cap how often they show, and choose what happens after a successful submission. Fully keyboard accessible, loads nothing on pages without an eligible popup.
  • Improved: The Popups editor now warns you about unsaved changes before you close it or leave the page, so popup edits are no longer lost by accident.

Version 1.4.2

  • Fixed: Name field with separate parts now labels each part correctly (e.g. "First Name" and "Last Name") in the submission details, email notifications, and stored entries, instead of showing "Name" twice.
  • Fixed: When only First Name and/or Last Name are marked required, the required asterisk now appears next to those parts.
  • Fixed: The required asterisk no longer appears on every individual radio button or checkbox option — it now shows only on the field's own label.

Version 1.4.1

  • New: URL prefill for individual Name and Address components — First, Middle, Last and Suffix, plus Company/Organization, Address Line 1 and 2, City, State/Province/Region and ZIP/Postal Code can each read their own URL parameter, so composite fields can be pre-populated from a link without workarounds.
  • New: AI Assistant and AI Conversation are now active by default on fresh installs, and are enabled once on upgrade for existing sites. If you deactivate either, it stays off.
  • New: "Build with AI" now always appears in the "Create a new form" dialog. When the AI Assistant is inactive it guides you to activate it, and when it is active but not yet connected it guides you to connect AIDA.
  • New: Dismissible dashboard and Add-Ons prompts that walk you through activating the free AI features and then connecting AIDA, so the AI features are easy to discover.
  • New: Export / Import button on the Submissions and Partial Entries screens that links straight to the CSV export and import tools.
  • Fixed: URL-prefilled dropdowns (including searchable dropdowns) now fire the same change event as a manual selection, so conditional logic evaluates on page load and dependent fields show or hide correctly.

Version 1.4.0(2026-08-06)

  • New: AI Assistant (optional, off by default) — connect a free AIDA account to bring AI to your forms:
  • Build a form with AI from a plain-English description.
  • Document-to-form — upload a document and turn it into a ready-to-edit form.
  • Automatic conditional logic generation as part of AI form building.
  • One-click submission summaries and AI-drafted replies.
  • "Ask across your submissions" — answer questions spanning all entries of a form.
  • Admin AI chat assistant — a built-in assistant that answers questions about your forms and submissions and can create new forms for you.
  • New: AI Conversation (now built-in, optional, off by default) — turn any form into a friendly conversational form: an AI chat that collects answers naturally, with optional appointment booking via Auto Form CRM.
  • New: AIDA credits — a single shared credit balance that powers both AI features, always visible in the plugin. New accounts start with free trial credits; afterward, top up with one-time credit packs purchased on autoformcrm.com in a new tab (no payment ever happens inside the plugin).
  • Note: The core drag-and-drop form builder and all non-AI features remain completely free and never require an account. The AI features are opt-in and connect to AIDA only after you enable one.

Version 1.3.1

  • New: Per-component Required checkboxes on the Address field for Address Line 2, State/Province/Region, ZIP/Postal Code, Country, and Company/Organization — each appears under its component in Advanced Settings and can be toggled independently.
  • Improved: Marking the Address field itself Required now automatically requires the two always-rendered core components (Address Line 1 and City), so a required address can no longer be submitted empty.
  • Improved: Address country component — when the country is shown and Required, no default country is silently preselected (visitors must choose explicitly), and Hide Country never bypasses a shown, required country.
  • Improved: Address renderer skips the Required flag for any component that is hidden, so a "required" toggle on a disabled component never blocks submission.
  • Fixed: Conditional logic now works in every copy of a form on the page, including page-builder popups (Brizy, Elementor, WP Bakery, etc.) that clone or lazy-inject form markup.
  • Fixed: Multi-step forms now correctly hide inactive steps even when a site serves a stale cached stylesheet.
  • Fixed: Required Name field with separate parts now validates correctly.
  • Fixed: Required Address field now validates the submitted address components correctly.
  • Fixed: Required radio groups are enforced even when a page builder strips the native required attribute from the inputs.
  • Fixed: Address subfield validation preserves the camelCase keys addressLine1 / addressLine2 so per-component labels and Required rules resolve correctly on submit.
  • Improved: conditional-logic.js and multistep.js are now versioned by file modification time, so browser and CDN caches automatically pick up future frontend script fixes.

See all versions on WordPress.org →

Get the latest version — free

Install or update from WordPress.org — every core feature stays free.