> For the complete documentation index, see [llms.txt](https://kb.craftformswp.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kb.craftformswp.com/documentation/why-craftforms.md).

# Why CraftForms?

## Why CraftForms? <a href="#why-craftforms" id="why-craftforms"></a>

[**CraftForms**](https://craftformswp.com/) is a WordPress form builder built on the **block editor**. You build forms with the same editor you use for pages and posts, so there's no separate form editor to learn.

It covers everything around a form: the fields, the submissions, the emails and PDFs sent afterwards, payments, bookings, and what happens next. All of it runs inside WordPress, with no external service required.

CraftForms is used for three kinds of sites:

* **General forms**: contact, inquiry, quote, survey and lead forms. The free version covers these.
* **Product configurators**: made-to-measure, engraved, printed or framed products, with a live price and a live preview, on a WooCommerce product or as a standalone order form. These need PRO.
* **Booking and rental**: B\&Bs, holiday lets, equipment and room rental, appointments, with availability, payments and calendar sync. These need PRO.

***

#### What's new in 2.0 <a href="#whats-new-in-20" id="whats-new-in-20"></a>

* **Email marketing in the free version**: send new contacts to Mailchimp, Brevo, FluentCRM or MailPoet.
* **"Run only if"** on every submit action, e.g. subscribe to Mailchimp only when the newsletter box is ticked.
* **Flows (PRO)**: draw what happens after a submission, or after a WooCommerce order changes status, on a canvas with Yes / No branches. See [Flows](/documentation/form-building/flows.md).
* **User role smart variables (PRO, 2.0.2)**: give wholesale customers or other roles their own price. See [Smart Variables](/documentation/form-building/create-form/form-settings-post-context/smart-variables.md).
* **Contains / does not contain** conditions for text fields (2.0.2).
* **Search** on the Forms, Catalog and Email Logs screens (2.0.2).

The full list is in the [Changelog](/documentation/changelog.md).

***

#### Free or PRO? <a href="#free-or-pro" id="free-or-pro"></a>

|                                                                                                  |    Free   |      PRO     |
| ------------------------------------------------------------------------------------------------ | :-------: | :----------: |
| Block-editor form builder, Default and Modern styles                                             |     ✓     |       ✓      |
| Text, textarea, select, radio, checkboxes (with image and colour swatches), signature            |     ✓     |       ✓      |
| Info block, Product Image block, Notification block                                              |     ✓     |       ✓      |
| Invisible spam protection and submission rate limits                                             |     ✓     |       ✓      |
| Save submission, plain-text and HTML email, webhook                                              |     ✓     |       ✓      |
| Mailchimp, Brevo, FluentCRM, MailPoet + Activity log                                             |     ✓     |       ✓      |
| "Run only if" on submit actions                                                                  |     ✓     |       ✓      |
| URL prefill and abandoned-form capture                                                           |     ✓     |       ✓      |
| GA4 / Google Tag Manager tracking                                                                |     ✓     |       ✓      |
| Email and PDF template designers, QR and barcode block                                           |     ✓     |       ✓      |
| Email log, SMTP servers                                                                          |     ✓     |       ✓      |
| Shortcode, Elementor widget, Bricks element, CF7 importer                                        |     ✓     |       ✓      |
| Form and email starters                                                                          | Basic set | Full library |
| File upload, repeater, colour picker, range slider                                               |     —     |       ✓      |
| Smart Variables and price calculation                                                            |     —     |       ✓      |
| Field Conditions (show/hide, enable/disable, block submission)                                   |     —     |       ✓      |
| Visual configurator elements (layered image, cropper, picture frame, room scene, presets, chart) |     —     |       ✓      |
| Booking datepicker, availability periods, iCal sync                                              |     —     |       ✓      |
| Catalog, inventory, orders, refunds                                                              |     —     |       ✓      |
| Stripe, PayPal, Mollie, Square                                                                   |     —     |       ✓      |
| WooCommerce product forms, edit configuration from the cart                                      |     —     |       ✓      |
| Flows and WooCommerce order flows                                                                |     —     |       ✓      |
| Register user, Create post                                                                       |     —     |       ✓      |
| Embed on external sites, full REST API, headless backend mode                                    |     —     |       ✓      |
| Automatic integration retries                                                                    |     —     |       ✓      |
| PDF order documents (invoice numbering, status triggers)                                         |     —     |       ✓      |
| Uni CPO migration                                                                                |     —     |       ✓      |
| Free initial setup of your first configurators (fair use)                                        |     —     |       ✓      |

***

#### Free <a href="#free" id="free"></a>

**Fields**

* **Text input**: text, email, URL, password, number, date, time, phone and search in one field. Min/max, pattern, autocomplete and placeholder are set in the block panel.
* **Textarea**: multi-line text with a configurable height.
* **Select**, **Radio buttons** and **Checkboxes**: optional image and colour swatches, square or circle shapes. Checkboxes have a minimum and maximum number of choices.
* [**Signature**](/documentation/form-building/create-form/blocks/signature-field.md): the customer signs with a mouse or finger. The signature is saved as an image and can be placed in emails and PDFs.

**Blocks that react to the form**

* [**Info block**](/documentation/form-building/create-form/blocks/infoblock.md): shows field values and totals as the visitor fills in the form.
* **Product Image**: a gallery with lightbox that swaps the picture based on the visitor's choices, e.g. pick "oak" and the oak photo appears.
* [**Notification**](/documentation/form-building/create-form/blocks/notification.md): success and error messages as toasts or an inline box.

**After submit**

Add as many [submit actions](/documentation/form-building/create-form/form-settings-post-context/submit-actions.md) as you need:

* **Save submission**: stores every value. Browse, search and export submissions in the admin.
* **Send plain-text email** and **Send HTML email**: use `{{field_name}}` tags in the recipient, subject and body.
* **Webhook**: posts the submission as JSON to Zapier, Make, n8n or any URL.
* [**Mailchimp, Brevo, FluentCRM, MailPoet**](/documentation/form-building/create-form/form-settings-post-context/submit-actions.md#overview): add the visitor to a list. Lists, tags and fields load from your account, and the field mapping fills itself in. Someone who unsubscribed is never subscribed again.

Every action has **Run only if**, so it runs only when a choice field has a certain value.

**Emails and PDFs**

* [**Email Template designer**](/documentation/email-templates/create-email-template.md): build HTML emails with blocks. The **All Form Data** block prints every submitted field.
* [**PDF Template designer**](/documentation/pdf-templates/create-pdf-template.md): build invoices, quotes, tickets or a copy of the submission. Attach the PDF to an email or to the saved submission. The **QR & barcode** block prints QR codes, Code 128, EAN-13 and UPC-A.
* **Email log**: every email sent, with its status and full body. Search by recipient or subject, or show only failed emails.
* **SMTP servers**: add several, pick one per form and test the connection from the admin.

**Spam protection**

CraftForms scores how the visitor uses the form (mouse movement, typing, timing, pasting) and blocks bots before the submission is processed. There's no CAPTCHA. Submission rate limits stop anyone flooding a form. If your site is behind Cloudflare or a load balancer, see [Submission limits and spam protection](/documentation/for-developers/submission-limits-and-spam-protection.md).

**More free features**

* **URL prefill**: link to `?fieldname=value` and that field is filled in.
* [**Abandoned-form capture**](/documentation/form-building/abandoned-form-capture.md): keep partly filled forms so you can follow up. Password fields are never saved.
* [**Google Analytics 4**](/documentation/form-building/create-form/form-settings-post-context/analytics.md): send an event on every successful or failed submission.
* **Search** on the Forms screen.
* **7 languages**: German, Spanish, Finnish, Italian, Polish, Ukrainian and Bulgarian.

**Use your form anywhere**

* [**Shortcode**](/documentation/form-building/embedding-forms-with-shortcodes.md): `[craftforms form="123"]` works in posts, pages, the Classic Editor, widgets and third-party blocks.
* **Elementor widget** and **Bricks element**: add the form from the builder's panel.
* **Contact Form 7 importer**: turns CF7 forms into CraftForms blocks.

***

#### Free Version Complete Overview <a href="#free-version-complete-overview" id="free-version-complete-overview"></a>

{% embed url="<https://youtu.be/YfuFJeu4Msc>" %}

***

#### PRO <a href="#pro" id="pro"></a>

**Price calculators**

* [**Smart Variables**](/documentation/form-building/create-form/form-settings-post-context/smart-variables.md): values you calculate on the form. There are six types:
  * **Expression**: a formula, e.g. `width * height / 10000`.
  * **Table**: a price matrix looked up by two fields, e.g. width × height. Import and export as CSV.
  * **Linked**: turns an option's code into its label.
  * **Conditional**: IF / THEN rules.
  * **Dynamic**: reads a value from WordPress, e.g. a price stored on the product.
  * **User role**: a different value per user role, e.g. a wholesale price.
* [**Price formula**](/documentation/form-building/create-form/form-settings-post-context/price-formula.md): the visitor sees the price live. The server works it out again on submit, so the browser's price is never trusted.
* [**Field Conditions**](/documentation/form-building/create-form/form-settings-post-context/field-conditions.md): show, hide, enable or disable fields, or any element on the page. Compare a field with a value or with another field. Operators include *contains*, *one of*, *all of* and *greater than*. **Block submission** stops a form being sent while a combination isn't allowed.

**More fields**

* [**File upload**](/documentation/form-building/create-form/blocks/file-upload-field.md): the file type is checked on the server and dangerous files are refused. Uploads are kept out of public URLs and listed on the [Files](/documentation/form-building/files.md) screen.
* [**Repeater**](/documentation/form-building/create-form/blocks/repeater-field.md): "Add another" rows, e.g. guests or order lines.
* **Colour picker** and **Range slider**.

**Product configurators**

* **Layered image**: stack PNG layers that swap or change colour as the customer picks options.
* **Image cropper**: crop to the product's proportions, with filters, a print-quality (DPI) warning and wallpaper panel guides. Customers can crop their own photo.
* **Picture Frame**: shows the picture in a real frame and mount, to scale.
* **Ambient Scene**: changes the sofa, curtain or rug in a room photo.
* **Value Presets**: one click sets several fields, e.g. "Family table".
* **Chart**: a live pie or donut chart from the form's values.

The configured picture is saved with the submission or order and can be used in emails and PDFs.

**WooCommerce**

* [**Add a form to a product**](/documentation/woocommerce/add-form-to-wc-product.md): the chosen options, uploaded files and calculated price go to the cart and the order. The configurator preview replaces the product gallery.
* [**One-click product starters**](/documentation/woocommerce/add-form-to-wc-product/1-click-product-setup-from-starter.md): create a ready-to-sell configurable product.
* **Edit configuration** from the cart: the customer reopens the product with their choices filled in and updates the cart item.
* **Wholesale prices**: a User role smart variable gives trade customers their own price on the same product.
* **No unconfigured orders**: a CraftForms product can't be added to the cart without its options.
* [**Uni CPO migration**](/documentation/woocommerce/uni-cpo-greater-than-craftforms-migration.md): convert Uni CPO products to CraftForms.

**Booking and orders**

* [**Booking datepicker** ](/documentation/form-building/create-form/blocks/datepicker-field.md)with four modes:
  * **Hotel-style** check-in / check-out, with minimum and maximum nights, blocked days and same-day turnover.
  * **Fixed time slots**, each showing places left ("2 left", "Sold out").
  * **Continuous time range**, e.g. a meeting room from 10:00 to 13:30.
  * **Single date**.
* **Availability periods**: different opening hours or slots by season or date range.
* [**Catalog**](/documentation/ecommerce/catalog.md): the services, rentals and products you sell, with [capacity and stock](/documentation/form-building/create-form/setting-up-booking-capacity-and-stock-limits.md). Two visitors can't book the last slot at the same time.
* [**Orders**](/documentation/ecommerce/orders.md): status tracking, refunds and order analytics. The **Order Summary** block shows the order on your thank-you page.
* **iCal sync** with Airbnb, Booking.com and Google Calendar, in both directions. Timed events block only their slots.

**Payments**

* [**Stripe**](/documentation/ecommerce/online-payments/setup-stripe.md) (hosted or card form inside the form), [**PayPal**](/documentation/ecommerce/online-payments/setup-paypal.md), [**Mollie**](/documentation/ecommerce/online-payments/setup-mollie.md) (iDEAL, Bancontact and more) and [**Square**](/documentation/ecommerce/online-payments/setup-square.md). Offer several on one form with the [**Payment block**](/documentation/form-building/create-form/blocks/payment-block.md).
* Add each account as a named connection. Live and test accounts can sit side by side.
* The amount charged is always the price the server calculated.

**Automation**

* [**Flows**](/documentation/form-building/flows.md): build what happens after submit on a canvas: emails, PDFs, webhooks, Mailchimp and more, with Yes / No branches and an "If it fails" fallback for each step. The Runs log shows the path every run took.
* **WooCommerce order flows**: start a flow when an order is placed or changes status. Send your own branded order email instead of WooCommerce's, or generate an invoice PDF on *Completed*.
* [**Order Items block**](/documentation/email-templates/create-email-template/email-template-blocks/order-items.md) and `{{order.*}}` tags for order emails and PDFs.
* **PDF order documents**: invoice, proforma and credit-note numbering without gaps.
* **Register user** and **Create post**: turn a submission into a WordPress account or a post of any type.
* **Automatic retries** when Mailchimp or another service is down.

**For developers**

* **Embed** a form on any website, even outside WordPress, with a self-sizing snippet. See [Embed](/documentation/form-building/embed.md).
* **REST API**: a readable endpoint per form, submissions from other domains, required request headers and a custom action URL.
* [**Headless backend mode**](/documentation/for-developers/headless-backend-mode.md): one switch turns WordPress into a locked-down forms backend for Astro, Next.js or any static site.
* [**Hooks**](/documentation/for-developers/developer-hooks-reference.md) and the [**WordPress Abilities API**](/documentation/for-developers/wp-abilities-api.md).

**Starters and setup**

* The full starter library: quotes, bookings, rentals, tours, tickets, framed and canvas prints, wallpaper murals, a sofa configurator and more. Booking and order starters come with a matching catalog item.
* **Free initial setup**: with PRO, we set up your first product configurators for you (fair use). Request it from the **Free initial setup** panel in the form editor. See [Free initial setup](/documentation/free-initial-setup.md) for what to send us and what's included.

***

<a href="https://craftformswp.com/#buyCf" class="button primary">Buy PRO version</a>

***

#### Looking for our roadmap? [It is here](/documentation/roadmap.md)! <a href="#looking-for-our-roadmap-it-is-here" id="looking-for-our-roadmap-it-is-here"></a>

***

#### Getting Started <a href="#getting-started" id="getting-started"></a>

* [Installation](/documentation/installation.md): how to install and activate CraftForms
* [Creating your first form](/documentation/form-building/create-form.md): build and publish a form step by step
