Title: LocalForm &#8211; Form Builder for Contact Forms, Surveys &amp; Event Registration
Author: thexerox
Published: <strong>آقوست 12, 2026</strong>
Last modified: سپتامبر 3, 2026

---

Search plugins

![](https://ps.w.org/localform/assets/banner-772x250.png?rev=3651152)

![](https://ps.w.org/localform/assets/icon-256x256.png?rev=3643496)

# LocalForm – Form Builder for Contact Forms, Surveys & Event Registration

 By [thexerox](https://profiles.wordpress.org/thexerox/)

[Download](https://downloads.wordpress.org/plugin/localform.2.9.0.zip)

 * [Details](https://azb.wordpress.org/plugins/localform/#description)
 * [Reviews](https://azb.wordpress.org/plugins/localform/#reviews)
 *  [Installation](https://azb.wordpress.org/plugins/localform/#installation)
 * [Development](https://azb.wordpress.org/plugins/localform/#developers)

 [Support](https://wordpress.org/support/plugin/localform/)

## Description

LocalForm is a form builder for WordPress. Add your questions, drag them into order,
pick your colors, and hit publish. Your form gets its own page and a link you can
share right away – no page building, no shortcode wrangling, no fighting your theme’s
CSS.

The name says what it does: every response stays local, on your own site, under 
your own domain and branding. Nothing is sent to a third-party form service, so 
you stay in control of your visitors’ data. And there is nothing to set up before
your first form is live – install, activate, and start building.

If you have been collecting answers with a cloud form service such as Google Forms
or Microsoft Forms, LocalForm covers the same ground – write your questions, share
a link, read the results back as a summary – except the form lives on your own domain
and the answers never leave your site.

#### What you can build

 * **Contact forms.** Name, email and a message, with an email in your inbox every
   time someone writes in. Start from the template and publish in a minute.
 * **Surveys and feedback forms.** Ask your questions and read the results back 
   as a summary with counts and charts, right in the admin.
 * **Sign-ups and intake forms.** Collect the details you need and get an email 
   every time someone submits.
 * **Quizzes and knowledge checks.** Give the questions an answer key, set a pass
   mark, and every response is marked for you – with the score, the right answers
   and your own explanation shown the moment someone submits.
 * **Event registrations.** Set the event date, time, location, organizer and price,
   cap the number of registrations, open and close the form on a schedule, and send
   every registrant a confirmation email.

#### Why LocalForm?

 * **Simple to use.** A distraction-free builder: add questions, drag to reorder,
   pick your colors, publish.
 * **Share a link.** Every form gets its own page with a URL you choose – or drop
   it into an existing page with a shortcode or block.
 * **Your data stays yours.** Responses are stored on your own site and can be downloaded
   as an Excel or CSV file whenever you like.
 * **No surprises.** No account, no license key, no trial period, and no limit on
   the number of forms or submissions.
 * **Nothing calls home.** No analytics, no telemetry, and fonts are served from
   your own domain – so building a form never sends your visitors anywhere else.
 * **Works with AI assistants.** Built-in MCP support lets an assistant like Claude
   build and edit your forms for you, on your own site – see below.

#### Features

**Building forms**

 * Drag-and-drop builder in the WordPress admin – no code, no page builder needed.
 * Starter templates for a contact form, a feedback survey, an event registration,
   an RSVP and a quiz – they open the builder with the questions already written,
   and nothing is saved until you hit Save.
 * Already built the form somewhere else? Forms > Import brings it across from Contact
   Form 7, WPForms or Google Forms – the questions, their options and which ones
   are required. Neither plugin has to still be active; a Google Form comes across
   from its share link. Every import arrives as a draft with a report of what could
   not be brought over.
 * Question types: text, long text, email, phone, number, dropdown, single choice,
   checkboxes, consent, date, date range, rating, Likert scale, choice and checkbox
   grids, ranking, points allocation and slider. Any of them can be marked as part
   of a quiz where marking makes sense – see Quizzes below.
 * A consent question renders as a single tick box with your own wording beside 
   it – put a link to your privacy policy in it and require it before the form can
   be sent.
 * Add section titles, text and images between questions to explain or break up 
   a long form.
 * Multi-step forms, with no extra setup: add a section title and everything after
   it becomes the next step, with a progress bar, a step counter and Back and Next
   buttons – so a long form asks a few questions at a time.
 * A Design tab beside your questions, with a live preview of the form next to the
   controls: colors, a background image, font and size, corner style, shadow, width,
   and whether the form brings its own card or sits plainly in the page. Start from
   one of four presets – Classic, Minimal, Bold or Dark – and change anything afterwards.
 * Pick the four colors and the rest follows: borders, hint text, button hover and
   focus rings are worked out from them, so a dark form stays readable.
 * Set the house style once under Settings – Appearance and every form follows it
   until it chooses otherwise.
 * Seven bundled font families, all served from your own domain.
 * Organize your forms with tags and filter the forms list by them.
 * Light mode hides the webhook URL, the redirect URL and the custom fields on a
   form’s Settings tab, for a builder that shows only the questions – per form, 
   or as the default for new forms.

**Sharing your form**

 * Every form gets its own page at a web address you choose.
 * Place a form inside an existing page or post with the `[localform id="123"]` 
   shortcode or the LocalForm block, which shows the real form while you edit.
 * A QR Code block puts a scannable link to a form on any page – for a flyer, a 
   poster or a slide.
 * Share dialog in the builder: copy the link, copy the embed code, or download 
   a QR code for print and posters.
 * Forms are shown full-screen by default, or in your theme’s normal page layout
   if you prefer.

**Collecting responses**

 * Visitors get instant validation and a thank-you message you can write yourself,
   without the page reloading.
 * Get an email whenever someone submits – to your whole team if you like, up to
   ten addresses on a form – and send the person who submitted a confirmation email
   you can customize with their answers.
 * Attach a calendar invitation to that confirmation email, so a registrant adds
   the event to Outlook, Google Calendar or Apple Calendar with one tap instead 
   of retyping the date. It carries the event’s date, time, location and organizer,
   and an event without a time is added as an all-day one.
 * Cap the number of registrations and set an opening and closing date and time,
   with your own message shown when the form is full or closed.
 * Stop taking responses whenever you like: an Accepting responses switch on the
   form, and a Stop accepting link on the forms list, close a form on the spot without
   touching a date or deleting anything.
 * See whether your notification emails are actually going out. Every message is
   recorded – who it went to, what it was about, whether the mailer took it – with
   a Send test email button beside it, and a warning the first time one fails.
 * Built-in spam protection: a hidden trap field that differs per site and rotates
   daily, a check that the submission came from a real browser, rate limiting, blocking
   for repeat bot attempts, and duplicate-submission checks. None of it asks a visitor
   to prove anything.
 * A content filter for the spam a real browser sends: a link limit, and blocklists
   for words, email domains and IP addresses – it reads what actually arrived, which
   catches the junk that passes every invisible check.
 * An optional challenge – Cloudflare Turnstile or hCaptcha – for a site under sustained
   attack. Off by default, and best set to appear only for a visitor whose device
   has already tripped the automated checks, so an ordinary visitor never meets 
   one.
 * A blocked-attempts log: what was turned away, from which form and why, with a
   seven-day summary. It is how you tune the settings above, and how you notice 
   protection catching a real person. No IP addresses are stored; each entry carries
   a one-way hash instead.
 * Per-form spam settings, for the internal form a whole office fills in from one
   shared address and the one public form being hammered. Every other form follows
   the site.
 * Decide who may fill a form in: anyone with the link, anyone signed in to your
   site, or only the roles you pick. Everyone else gets your own message instead
   of the form, with a sign-in link if that is all they are missing, and the refusal
   is enforced on the server. Every response then records which account left it –
   in the responses list, in your exports and on the printout.

**Quizzes**

 * Turn any form into a marked one: tick the correct options, or type the answers
   you accept, and LocalForm scores every response.
 * Works on single choice, dropdown, checkbox, short text and number questions. 
   Give the harder question more points; leave a question without an answer key 
   and it is asked but not marked.
 * Set a pass mark and every response reads Passed or Not passed. Leave it empty
   to report a score and let nobody fail.
 * The person answering can be shown their score, which questions they got right,
   the correct answer where they did not, and a sentence of explanation you wrote–
   so a test doubles as the lesson.
 * The score goes in the confirmation email, in the responses list, in every export,
   and on the printout – which is what makes a response usable as a training record.
 * The Responses summary tells you how the group did and, question by question, 
   how many got it right: the one everybody missed is highlighted.
 * Scores are worked out from the answer key each time they are read, never stored.
   Correct a key you got wrong and every response already collected is marked again–
   and switching grading on scores the answers a form collected before it was a 
   quiz.

**Reading and keeping your results**

 * A count in the admin menu of the responses that arrived since you last looked,
   per form on the forms list – the same badge WordPress puts on Comments.
 * Browse every submission per form in the admin, a page at a time, with a date 
   range and a search box to narrow the list down.
 * Summary view per question: counts and bar charts for choice questions, lowest/
   average/highest for numbers, per-day counts for dates, and the most recent answers
   for open questions.
 * Download responses as Excel (XLSX) or CSV – comma or semicolon separated, so 
   Excel in Dutch, Belgian or German settings opens it in columns. Whatever the 
   date range and search box are showing is what gets downloaded.
 * An Excel export with a Summary sheet alongside the responses: per-question counts,
   averages and percentages, ready to pivot or paste into a report.
 * Print any single response, or save it as a PDF, from the Print link beside it.
 * Export from the command line with `wp localform export`, or read responses over
   the REST API – both with the same date and search filters.
 * Data requests are handled by WordPress’s own Tools > Export Personal Data and
   Tools > Erase Personal Data, which include LocalForm responses.
 * Let a colleague read the responses without making them an administrator: two 
   permissions of LocalForm’s own, granted per role, so the coordinator sees the
   registrations and nothing else.
 * Back up every form, submission and setting to a single file, and restore it here
   or on another site.
 * A site report under Forms > Settings > Support: which question types and features
   your forms use, and how it is set up, copied in one click for a support request.
   Sent nowhere.

**Building forms with an AI assistant (MCP)**

LocalForm speaks MCP – the Model Context Protocol – so an AI assistant such as Claude
can build your forms for you. Ask for “a registration form for the summer school
on 12 and 13 August, with a student rate”, and the form is created on your site,
ready for you to review.

 * Three WordPress Abilities are registered – list forms, read a form, and create
   or update one – and become MCP tools as soon as the MCP Adapter plugin is installed.
 * It is your site doing the work. The assistant connects _to_ WordPress; LocalForm
   sends nothing out, and no form or response is uploaded anywhere.
 * Everything goes through the same validation as the builder, so an assistant cannot
   save something you could not have built by hand, and reconfiguring a form never
   touches the responses already collected.
 * Sign in with an Application Password and the usual WordPress permissions apply:
   only an administrator can read or change a form.

#### LocalForm Pro

Everything described above is in the free plugin and stays that way – none of it
is a trial, a teaser or a limited version. LocalForm Pro is a separate paid add-
on for the sites that need more, sold at [localform.dev](https://localform.dev/#pricing)
and installed alongside the free plugin. If none of the following applies to you,
you are not missing anything.

 * **Payments.** Charge for a registration and take the money at submit, through
   Stripe, Mollie or your own WooCommerce shop.
 * **Build with AI.** Describe the form you want and watch it built on your site,
   from inside the admin.
 * **Registering several people.** One person books for their whole party, and the
   maximum counts people rather than bookings.
 * **Waiting list.** A full form keeps taking registrations and tells people where
   they stand, so a late cancellation gets filled.
 * **Mailing lists.** Add the person who filled in your form to a list at Flexmail,
   Brevo, MailerLite or Mailchimp, gated on a consent question of your own.
 * **Conditional fields.** Show a question only when another answer matches a rule.
 * **More event detail.** Several dates per event, each with its own times and count,
   and a labelled price list.
 * **More question types.** File upload, a Yes/No switch, and a one-click block 
   of invoice questions.
 * **Webhook and field controls.** Global webhook fields, field name rules, reusable
   field templates, and prefill from URL parameters.
 * **Insights.** One screen counting every form together – what came in this period
   against the one before it, which forms are being answered, and when.
 * **Attendance sheets and scheduled exports.** A tick-off list per event date, 
   and a form’s responses emailed out daily, weekly or monthly.
 * **Elementor widgets.** A form on any Elementor page, or a list of upcoming events
   with a register link per date.

The Pro add-on is not hosted on WordPress.org; it is documented at [docs.localform.dev](https://docs.localform.dev/pro/licensing).

LocalForm is fully translatable, with translations contributed through translate.
wordpress.org.

### External services

This plugin does not …

## Screenshots

[⌊Form builder in the WordPress admin.⌉⌊Form builder in the WordPress admin.⌉[

Form builder in the WordPress admin.

[⌊Frontend fullscreen form page.⌉⌊Frontend fullscreen form page.⌉[

Frontend fullscreen form page.

[⌊Responses summary with per-question charts and XLSX export.⌉⌊Responses summary
with per-question charts and XLSX export.⌉[

Responses summary with per-question charts and XLSX export.

[⌊Webhook log viewer.⌉⌊Webhook log viewer.⌉[

Webhook log viewer.

[⌊Importing forms from Contact Form 7, WPForms or Google Forms.⌉⌊Importing forms
from Contact Form 7, WPForms or Google Forms.⌉[

Importing forms from Contact Form 7, WPForms or Google Forms.

## Blocks

This plugin provides 2 blocks.

 *   LocalForm Embed one of your LocalForm forms – a contact form, survey or event
   registration.
 *   LocalForm QR Code A scannable QR code linking to one of your forms – for a 
   printed flyer, a poster or a slide.

## Installation

 1. In your WordPress admin, go to Plugins > Add New, search for “LocalForm”, and click
    Install Now. Or upload the plugin files to `/wp-content/plugins/localform/`.
 2. Activate the plugin through the ‘Plugins’ screen in WordPress.
 3. Go to ‘Forms’ in the admin menu and click ‘Add form’ to build your first one.
 4. Publish the form and use the Share button to copy its link.

## FAQ

### Can I bring my forms over from another plugin?

Yes. Forms > Import reads the forms Contact Form 7 and WPForms have on your site–
neither plugin needs to still be active, since their forms stay in the database 
after they are switched off – and rebuilds a Google Form from its share link. The
questions come across; the responses the old form already collected stay where they
are, so export them from the old plugin if you need to keep them.

Every imported form arrives as a draft, with a report listing anything that could
not be brought across – a file upload question, a Google Forms grid – so you can
add it by hand before publishing.

### Do I need an account or a license key?

No. There is no sign-up, no license key and no trial. Install the plugin and everything
described here works straight away, with no limit on the number of forms or submissions.

### Is there a paid version, and what does it add?

Yes – LocalForm Pro, a separate add-on sold at [localform.dev](https://localform.dev/#pricing).
Nothing in the free plugin is limited, gated or timed to push you towards it: no
submission cap, no form cap, no trial and no license key, and that is not going 
to change. Pro is for sites that need things the free plugin deliberately does not
do – taking payment for a registration through Stripe, Mollie or a WooCommerce shop
the site already runs, adding whoever ticked your newsletter box to Flexmail, Brevo,
MailerLite or Mailchimp, showing a question only when another answer matches a rule,
several dates or several price tiers on one event, file uploads, a “Build with AI”
panel inside the admin, Elementor widgets, and a set of webhook and field-naming
controls for wiring forms into another system. The full list is under “LocalForm
Pro” in the description above, and the documentation is at [docs.localform.dev](https://docs.localform.dev/pro/licensing).

### Does the plugin nag me?

Once, and only if you want it to. After your site has collected 25 responses, LocalForm
asks on its own screens whether you would leave a review – with “Not now” and “Don’t
ask again” next to it, both remembered. Untick “Ask for a review on WordPress.org”
under Settings > General and it never asks. Nothing else in the plugin interrupts
you, and nothing is reported back to us either way.

### Does LocalForm put a link to itself on my site?

Not unless you ask it to. There is a “Credit LocalForm under my forms” tick box 
under Settings > General, off unless you switch it on, which adds a small “Powered
by LocalForm” line below your forms. Leave it alone and your visitors never see 
our name anywhere. If you do switch it on, the link carries nothing about your site
and nobody who follows it is reported back to you or to us.

### Can I use this instead of a cloud form service?

That is what it is built for. If you are used to Google Forms, Microsoft Forms or
a similar service, you will recognise the way LocalForm works: add your questions,
publish, share the link, and read the answers back as a summary. The differences
are that the form sits on your own domain and carries your own branding, the responses
are stored on your site rather than in someone else’s account, and your visitors
are not sent to a third-party page to answer. LocalForm is not affiliated with, 
or endorsed by, any of those services.

### Can it add people to my Mailchimp or Brevo list?

Yes, with LocalForm Pro – Flexmail, Brevo, MailerLite and Mailchimp are all supported.
You connect the service once, point a form at one of your lists, and name the tick
box on the form that has to be ticked first: consent is a question your visitor 
answers, not a setting you switch on for them. Somebody who did not tick it is not
subscribed, and somebody who unsubscribed from your list earlier is not quietly 
put back on it.

The free plugin sends nothing anywhere on its own. If you want to wire responses
into a mailing list yourself, the free plugin’s webhook will post every submission
to an automation tool such as Zapier, Make, n8n or Power Automate, and you can add
the subscriber from there.

### Can I split a long form over several steps?

Yes, and there is nothing to switch on. Add a section title where you want a break,
and every question after it becomes the next step: the form then shows one step 
at a time, with a progress bar, a “Step 2 of 4” counter and Back and Next buttons.
A form with no section titles stays a single page. Answers are only sent when the
last step is submitted.

### Can I send registrants a calendar invitation?

Yes. Give the form an event date under Settings > Event, then tick “Attach a calendar
invitation (.ics)” under Email Notifications. Every registrant’s confirmation email
arrives with a calendar file holding the date, time, location and organizer, which
Outlook, Google Calendar, Apple Calendar and the rest add with a tap. A form without
an event date sends the confirmation as before, with nothing attached.

### Can I build a poll or a quiz?

Both. For a poll, a single Single Choice or Checkbox question works well, and the
Responses summary gives you counts and a bar chart per option without any extra 
setup. For a quiz, switch on Quiz under the form’s Settings and give the questions
an answer key: tick the correct options, or type the answers you accept. Every response
is then scored, with your own points per question and an optional pass mark, and
the person answering can be shown their score, which questions they got right, the
correct answer where they did not, and a sentence of explanation you wrote. Single
choice, dropdown, checkbox, short text and number questions can all be marked; leave
a question without an answer key and it is asked but not scored.

### Where do my responses go?

They are saved on your own site, in your own WordPress database, and only you can
see them. LocalForm does not send them to any form service, and there is no dashboard
elsewhere holding a copy.

### Does LocalForm help with GDPR?

Keeping responses on your own server, under your own hosting agreement, is a real
advantage for data residency and minimisation compared with routing them through
a third-party form service. When someone asks for a copy of their data or asks you
to delete it, WordPress’s own Tools > Export Personal Data and Tools > Erase Personal
Data now cover LocalForm responses: enter the email address and every response they
left, across every form, is included. For the consent side there is a Consent question
type: one tick box, your own wording next to it, a link to your privacy policy if
you want one, and the answer stored with the response so you can show what was agreed
to and when. That said, LocalForm cannot certify your site as “GDPR compliant” by
itself – that still depends on things you configure yourself, such as what you ask
for, how long you keep it (see “Keep my data when the plugin is deleted” under Settings
> Data), your own privacy policy, and any consent you need before collecting personal
data. There is no telemetry or third-party call for a submission to leak through
in the first place.

### Do I have to start from a blank form?

No. The Forms screen has a “Start from a template” row with a contact form, a feedback
survey, an event registration and an RSVP. Picking one opens the builder with the
questions already written – rename them, reorder them, delete the ones you do not
want. Nothing is written to your site until you press Save, and a saved form keeps
no link to the template it started from.

### How do people find my form?

Every form gets its own page with a web address you choose – just share that link,
by email, on social media, or as the QR code you can download from the Share button.
You can also place the form inside a page or post you already have.

### Can I put a form in an existing page?

Yes. Add the LocalForm block in the block editor – it renders the real form on the
canvas, so you can see how it sits in the page before publishing – or paste the `[
localform id="123"]` shortcode. The form’s own page keeps working at the same time.

### Do I get an email when someone fills in my form?

Yes. Each form can email you on every submission, and can also send the person who
submitted a confirmation email. You can write that message yourself and drop their
answers into it – for example the form title, the event date, or any question you
asked.

### Can I stop taking registrations after a certain number, or on a certain date?

Yes. Set a maximum number of registrations and/or an opening and closing date and
time per form. Once the form is full or closed, visitors see a message you write
instead of the form. The maximum requires responses to be saved in WordPress.

### Can I limit a form to certain people?

Yes. Under the form’s Settings > Access, choose who can fill it in: anyone with 
the link (the default), anyone signed in to your site, or only the roles you tick.
Someone who is not allowed sees the form’s title and a message you can write yourself–
plus a sign-in button if being signed out is all that is wrong – and a submission
from them is refused by the server, not just hidden in the page. Every response 
then records which WordPress account left it, and a “Submitted by” column appears
in the responses list, in your exports and on the printout, which is what makes 
a staff form or a training quiz usable as a record.

Anyone who can manage forms is always let through, so you can preview a restricted
form without keeping a test account – with a notice above it reminding you that 
everybody else is being turned away.

Limiting a form to particular _people_ rather than roles is not built in; a membership
plugin can do it through the `localform_user_may_submit` filter.

### Will the form match my site’s design?

You choose the colors, font, corner style, shadow and width for each form, and forms
are shown on a clean full-screen page by default so nothing in your theme gets in
the way. If you would rather the form sit in your theme’s normal page layout, there
is a per-form setting for that – and a Plain layout that drops the form’s own card,
so an embedded form does not sit as a panel inside a panel. There is also a CSS 
class field if your theme wants to style one particular form itself.

### How do you stop spam submissions?

In layers, and without asking your visitors to prove anything. A hidden trap field
real visitors never see; a check that the submission came from a browser that actually
opened the form, and did not fill it in in milliseconds; a content filter that reads
what arrived and rejects a wall of links, a blocklisted word or a throwaway email
domain; a cap on how often one address may submit; and a block on accidental duplicates.
Everything is under Forms > Settings > Security, and the Blocked attempts tab there
shows what has been turned away and why, so you can tune it from what is actually
happening rather than by guessing.

If a site is being hit hard enough that none of that is enough, you can switch on
a challenge (Cloudflare Turnstile or hCaptcha) – and set it to appear only for a
visitor whose own device has already tripped the automated checks, so nobody else
ever sees one. It is off until you configure it.

A form can also have its own settings instead of the site’s, which is what you want
for an internal form a whole office fills in from one shared IP address.

### Can I get my responses into Excel?

Yes. The Responses screen for each form has an Export button, with a choice of Excel(
XLSX) or CSV. If your Excel is set to Dutch, Belgian, German or another language
where the decimal mark is a comma, pick the semicolon-separated CSV and it will 
open in proper columns straight away.

You can also export part of a form’s responses rather than all of them: set a date
range or type in the search box, check that the list on screen is what you want,
and the download matches it. There is no cap on how many responses an export can
hold.

### Can I move my forms to another site?

Yes. Under Forms > Settings > Data, “Download backup” gives you a single file with
every form, its submissions and your settings. Upload that file on any other site
running LocalForm to bring everything across. If a form already exists there, you
choose whether to keep it or replace it with the backed-up one – so restoring the
same file twice never duplicates your responses. Webhook logs are not included in
the backup.

### What happens to my forms if I delete the plugin?

Deactivating LocalForm never touches your data. Deleting it removes everything by
default – your forms, responses and settings. If you want them to survive, turn 
on “Keep my data when the plugin is deleted” under Forms > Settings > Data before
you delete, or download a backup first.

### Can I send submissions to another tool?

Yes. Enter a web address (a webhook) on the form, or as a site-wide default under
Forms > Settings > Webhooks, and each submission is sent there as it comes in – 
handy for connecting to a CRM, a spreadsheet, or an automation tool. Requests are
signed with a secret key so the receiving end can confirm they came from you, are
retried if the other side is temporarily down, and the last 30 days of deliveries
are logged so you can check what was sent. If you would rather not store responses
in WordPress at all, you can switch a form to send them onward only.

### Can I send submissions to Power Automate, Make or Zapier?

Yes. Any of them accepts an incoming webhook – paste the URL into the form (or set
it site-wide under Forms > Settings > Webhooks) and each submission is POSTed as
JSON as it arrives. With Power Automate, use the “When an HTTP request is received”
trigger and the submitted answers, form title, event details and custom fields arrive
as a structured payload you can map straight into SharePoint, Dataverse or an approval
flow.

### Can an AI assistant build my forms?

Yes, and it is built in. LocalForm registers three WordPress Abilities – list forms,
read a form, create or update a form – which become MCP tools once you install the
[MCP Adapter](https://github.com/WordPress/mcp-adapter) plugin. Point an assistant
such as Claude at your site with an Application Password and you can ask for a form
in plain language; it is built here, on your own domain, with its page created for
you. The assistant signs in with an administrator’s Application Password, and everything
it saves goes through the same validation as the builder – so it cannot create something
you could not have built by hand. Reconfiguring a form never deletes the responses
it has already collected.

The premium add-on, LocalForm Pro, adds the other half of this: a “Build with AI”
panel inside the WordPress admin that does the same thing without an outside assistant,
using whichever AI provider your site is already connected to.

### Does the AI support send my forms to an AI company?

Not by itself. The free plugin makes no outbound request of any kind – an MCP assistant
connects _to_ your site, the way your browser does, and the abilities only read 
and write your own database. Whatever you type into that assistant goes to whoever
you are using it with, exactly as it does when you chat with it about anything else;
that is between you and them, and LocalForm is not in the middle of it.

### Can I send submissions on to another system?

Yes. Every form can post each submission to a web address of your choice – a webhook–
which is how you plug LocalForm into your own system or into an automation tool 
like Zapier, Make or Power Automate. Requests are signed and retried automatically
if the receiving end is down, with a log of the last 30 days so you can see what
went out, and a form can skip saving submissions entirely and only send them onward.
There is also a REST API for a form’s field structure, for building a custom renderer
or syncing form definitions into another system, authenticated with WordPress Application
Passwords.

### Does LocalForm send any data to an external service?

Not unless you tell it to. The plugin makes no outbound requests of its own: no 
analytics, no license checks, no telemetry, and no remotely hosted fonts. It can
only ever reach a service you set up yourself – a webhook URL you entered, the Google
Form you asked it to import, or a spam-challenge provider whose keys you added. 
All three are described under External services below, and a site that configures
none of them makes no outbound request at all.

Because of that there is nothing reported back about how you use the plugin, and
no dashboard on our side showing it. If you want to tell us, Forms > Settings > 
Support builds a site report you can read first and paste into a support thread 
if you choose to – that is the whole of it, and it happens only when you press the
button.

### Where do the fonts come from?

The seven font families (Inter, Roboto, Open Sans, Lato, Montserrat, Poppins and
Nunito) are included with the plugin and served from your own site, not from Google
Fonts or any other network. Picking one never reveals a visitor’s IP address to 
a third party. All seven are licensed under the SIL Open Font License 1.1; the license
text is included at `assets/fonts/OFL.txt`.

## Reviews

![](https://secure.gravatar.com/avatar/714b207b72d68fc5d8894f13c53e2d3c13d8ffe847be1b0c057ae07296cfbad8?
s=60&d=retro&r=g)

### 󠀁[The Form Builder I searched for the last years!](https://wordpress.org/support/topic/the-form-builder-i-searched-for-the-last-years/)󠁿

 [emlebentommy](https://profiles.wordpress.org/emlebentommy/) سپتامبر 3, 2026

I’m very happy I found this plugin. For a free plugin, the range of features is 
outstanding. It looks great out of the box, is easy to use, and is ideal for my 
team, as not everyone has much experience with WordPress. Of course, there is also
a Pro version, which I find very reasonably priced. What I especially appreciate
is that it is not promoted too aggressively, and the free version is not unnecessarily
restricted in a way that gets in the way of normal form usage. The plugin has worked
flawlessly for us so far. Overall, I can highly recommend it in every respect.

![](https://secure.gravatar.com/avatar/ab187f9c347afc709047a74cc642eaf63b42dde7b03ae77c02709de3e0e7298d?
s=60&d=retro&r=g)

### 󠀁[Used with power automate](https://wordpress.org/support/topic/used-with-power-automate/)󠁿

 [timmerlijn](https://profiles.wordpress.org/timmerlijn/) آقوست 27, 2026

I used this plugin to connect form with Power Automate. Due to company policies 
we where unable to use Microsoft or Google forms, so this was a good alternative.
Love the support for webhooks. Deffinitly looking into the mcp support. Thx!

 [ Read all 2 reviews ](https://wordpress.org/support/plugin/localform/reviews/)

## Contributors & Developers

“LocalForm – Form Builder for Contact Forms, Surveys & Event Registration” is open
source software. The following people have contributed to this plugin.

Contributors

 *   [ thexerox ](https://profiles.wordpress.org/thexerox/)

[Translate “LocalForm – Form Builder for Contact Forms, Surveys & Event Registration” into your language.](https://translate.wordpress.org/projects/wp-plugins/localform)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/localform/), check 
out the [SVN repository](https://plugins.svn.wordpress.org/localform/), or subscribe
to the [development log](https://plugins.trac.wordpress.org/log/localform/) by [RSS](https://plugins.trac.wordpress.org/log/localform/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 2.9.0

 * New Support section under Forms > Settings, with a site report you can copy into
   a support request: how many forms and responses you have, which question types
   and features they use, how the plugin is set up and what the site runs on. Counts
   and settings only – no site name, no form titles, no webhook URLs, no email addresses
   and none of your responses – and nothing is sent anywhere; it is built on that
   screen and goes no further than your clipboard. The same figures appear under
   Tools > Site Health > Info.
 * Each form can now say what its own submit button says. **Submit button label**
   in a form’s General panel overrides the site-wide one under LocalForm > Settings.
   Leave it empty and the form keeps following the site-wide label.
 * Fixed: the Design tab’s Shape, Layout and CSS class cards are back in the column
   of controls, with the live preview beside them again.

#### 2.8.0

 * Grid, rating and slider questions are now set up as the question itself: a Likert
   scale, a choice grid and a checkbox grid are built in the grid, with the statements
   numbered down the side.
 * The form editor’s Settings tab now shows only the cards a form is actually using,
   instead of all fourteen.
 * Stored responses can be encrypted. Add a key to your wp-config.php, tick the 
   box under Forms > Settings > Data, and answers are encrypted before they are 
   written. The key never goes in the database.
 * Submissions posted from another website are now refused.
 * Admin notification email takes a list of up to ten addresses per form, separated
   by commas, semicolons or line breaks.
 * The CAPTCHA secret and the webhook signing secret are no longer printed back 
   into the settings page, and the signing secret is now a password field.
 * Backups no longer carry the CAPTCHA secret or the webhook signing secret; restoring
   one leaves those fields empty for you to paste back in.
 * Webhooks are delivered through WordPress’s checked HTTP helper, which refuses
   internal and loopback addresses.
 * The spam challenge no longer sends your visitors’ IP addresses to Cloudflare 
   or hCaptcha. Turn it back on with the `localform_captcha_send_ip` filter.
 * The suggested privacy policy text now names your challenge provider and says 
   when responses are forwarded, instead of claiming nothing ever leaves the site.
 * Fixed: webhooks delivering to a port other than 80, 443 or 8080 keep working –
   n8n on 5678, Node-RED on 1880 and anything else self-hosted.
 * Fixed: restoring a backup no longer clears your CAPTCHA secret. An omitted credential
   now leaves the stored one alone.
 * Fixed: the Submit button label under Forms > Settings now reaches the button 
   itself, on a plain form and on the last step of a multi-step one.
 * Fixed: the Event Details panel is laid out like the rest of the editor – dates
   and times are as wide as the value they hold, and the currency sits with the 
   price.

#### 2.7.0

 * A form can count down its remaining places: tick “Show how many places are left”
   under Registration Limits. Off unless you ask for it.
 * Events can say when they end and where they are joined – an **Ends** date and
   time and an **Online link** in Event Details. The attached calendar file now 
   runs to the end time.
 * A form with an event date describes that event to search engines in the head 
   of its own page: name, dates, location, organizer, price and whether it is still
   open or sold out.
 * A Preview button in the builder toolbar shows the real front end of the form,
   including the edits on screen at that moment.
 * New content filter for spam: reject a submission carrying more links than you
   allow, a word or phrase from your own blocklist, or an email domain you have 
   had enough of.
 * Forms > Settings > Security > Blocked attempts lists what was turned away, from
   which form and why, with a seven-day summary. No IP addresses are stored.
 * An optional Cloudflare Turnstile or hCaptcha challenge, off until you enter keys,
   and best set to appear only for a device that has already tripped the automated
   checks.
 * A form can have its own spam settings instead of the site’s, from the builder’s
   Spam Protection card.
 * Answers now have a maximum length: 5000 characters for long text, 1000 for short
   text, or a limit you set per question.
 * The minimum fill time is now a setting under Forms > Settings > Security rather
   than a developer filter.
 * New Forms > Import screen: bring forms across from Contact Form 7, WPForms or
   Google Forms, with a report of what could not be brought over.
 * Forms and their response counts are read through WordPress’s object cache.
 * Getting started is now a guided path: activating the plugin opens Forms, a site
   with no forms is greeted with the starter templates, and the Plugins screen gets
   a “Create a form” link.
 * Forms > Settings > General > Form Builder lists what the editor may show, so 
   features your site does not use can be taken out of every form editor.
 * LocalForm Pro can now be tried for 14 days without a card, and the launch discount
   is 70% off the first year. The Pro page says where the line between free and 
   paid falls, job by job.
 * The pointer to the paid add-on now follows what your site has actually done, 
   and can appear on Responses as well as the forms list. LocalForm’s screens end
   with one line in the WordPress footer.
 * An import that has to leave a question behind now says whether the add-on happens
   to have it.
 * Settings > General > Credit LocalForm under my forms adds an optional “Powered
   by LocalForm” line below every form. Off unless you switch it on, and the link
   carries nothing about your site.
 * Fixed: a question built from several inputs – tick boxes, radio buttons, a star
   rating, a date range – now names itself to screen readers instead of pointing
   at an element that did not exist.
 * Fixed: the Access card’s tick boxes and radio buttons are drawn at their own 
   size again instead of stretched like text boxes.

#### 2.6.1

 * Fixed: saving a form looked like it had done nothing. WordPress was moving the“
   Form saved.” notice below the only heading on the screen – the hidden diagram
   panel – so the confirmation went out of sight.

#### 2.6.0

 * Roles and permissions. Two LocalForm permissions of its own, granted per role,
   so the colleague who reads the registrations no longer has to be a site administrator.
 * Forms can be restricted to the people who should be filling them in. A new Access
   card offers three choices – anyone with the link, anyone signed in, or only the
   roles you tick – with your own message for whoever is turned away.
 * Responses record which account left them: a “Submitted by” column in the responses
   list, in the Excel and CSV exports and on the printout, on the forms that have
   one.
 * Quiz mode. Switch on Quiz under a form’s Settings, tick the correct option on
   each question – or type the answers you accept – and every response is scored.
 * Email now has a delivery log, the way webhooks always have: every notification
   and confirmation under Settings > Email with the recipient, the subject and whether
   the mailer took it.
 * The admin menu carries a count of the responses that arrived since you last looked,
   and the forms list marks which form they came in on.
 * An Accepting responses switch per form, and a Stop accepting link on the forms
   list, which closes a form on the spot.
 * The LocalForm block now shows the real form while you are editing, instead of
   a grey placeholder.
 * New QR Code block: a scannable code for any form, at the size you pick, for a
   poster, a slide or a flyer.
 * LocalForm’s blocks now sit together in a LocalForm category in the block inserter.
 * The developer reference – every hook and filter LocalForm offers an add-on – 
   is now published at docs.localform.dev under Developer.
 * The LocalForm menu now ends with a Documentation entry, which opens the manual
   at docs.localform.dev in a new tab. Anyone who can read responses gets it.
 * Settings now opens on General rather than Webhooks.
 * Fixed: on a site that had never saved its settings, the first save of Settings
   > General > Access recorded the roles you ticked but did not actually grant them
   until you saved a second time.
 * Fixed: the section menu on a form’s Settings tab highlighted the wrong entry 
   while Custom Fields was hidden in light mode.
 * Fixed: the Stop accepting link on the forms list read its parameter from the 
   URL without unslashing it first.
 * Fixed: the block’s own wording in the editor now follows the site’s language.
 * Fixed: the FAQ in this readme still said LocalForm could not do scored or graded
   quizzes.

## Meta

 *  Version **2.9.0**
 *  Last updated **1 گؤن ago**
 *  Active installations **200+**
 *  WordPress version ** 6.5 or higher **
 *  Tested up to **7.1**
 *  PHP version ** 7.4 or higher **
 *  Language
 * [English (US)](https://wordpress.org/plugins/localform/)
 * Tags
 * [contact form](https://azb.wordpress.org/plugins/tags/contact-form/)[event registration](https://azb.wordpress.org/plugins/tags/event-registration/)
   [form builder](https://azb.wordpress.org/plugins/tags/form-builder/)[quiz](https://azb.wordpress.org/plugins/tags/quiz/)
   [survey](https://azb.wordpress.org/plugins/tags/survey/)
 *  [Advanced View](https://azb.wordpress.org/plugins/localform/advanced/)

## Ratings

 5 out of 5 stars.

 *  [  2 5-star reviews     ](https://wordpress.org/support/plugin/localform/reviews/?filter=5)
 *  [  0 4-star reviews     ](https://wordpress.org/support/plugin/localform/reviews/?filter=4)
 *  [  0 3-star reviews     ](https://wordpress.org/support/plugin/localform/reviews/?filter=3)
 *  [  0 2-star reviews     ](https://wordpress.org/support/plugin/localform/reviews/?filter=2)
 *  [  0 1-star reviews     ](https://wordpress.org/support/plugin/localform/reviews/?filter=1)

[Your review](https://wordpress.org/support/plugin/localform/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/localform/reviews/)

## Contributors

 *   [ thexerox ](https://profiles.wordpress.org/thexerox/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/localform/)