Creating and editing forms
Each form is a record with an ID, a title, a JSON configuration and optional webhook settings. You manage them on Form Entries → Forms. This page covers the screen and every setting that applies to the whole form.
When to use it
Section titled “When to use it”- Any form you want to create, change or remove by hand.
- To have an AI assistant do it, use the connector; forms it creates appear on the same screen.
How to create or edit a form
Section titled “How to create or edit a form”- Go to Form Entries → Forms. Select Add New, or a form’s title to edit it.
- Fill in Form Title. It is shown in the admin; if you leave it empty,
the
titlein the JSON is used. - For a new form, check Form ID. It is generated from the title and becomes the shortcode ID.
- Write or paste the JSON into Configuration (JSON).
- Optionally, tick Enable webhook for this form (see Webhooks).
- Select Save Form.
Saving replaces the whole configuration with what is in the box. Each form’s edit screen has a Settings tab and an Entries tab with its submission count.
To delete a form, hover over it in the list and select Delete. Its entries are kept and stay on Form Entries, marked (deleted) next to the form name.
Form ID rules
Section titled “Form ID rules”- Lowercase letters, numbers, dashes and underscores only (
quote-request,contact_2). - The ID cannot be changed after the form is saved. To rename, create a new form and move the shortcode.
What the JSON contains
Section titled “What the JSON contains”| Key | Required | What it holds |
|---|---|---|
fields | Yes | The list of fields, at least one. See Field types. |
title | No | The form’s name. Shown above the form only when show_title is on, and used as the heading of notification emails. |
steps | No | Steps for a multi-step form. See Layout and steps. |
settings | No | Everything below. Every setting has a default. |
When you save, the JSON is checked. These stop the save, with a message:
invalid JSON syntax, no fields array or an empty one, a field without key
or type, an unknown field type, two fields with the same key, a select or
radio without options, a step without a key or two steps with the same
key, and a {field:…} token in notification.from_email. Unknown property
names do not stop the save; they are ignored.
Options
Section titled “Options”These go inside "settings": { … }.
| Setting | What it does | Default |
|---|---|---|
submit_button_text | Text on the submit button. | Submit |
success_message | Shown above the form after a successful submission. Plain text; HTML is shown as typed. | Thank you for your submission. |
redirect_url | Send the visitor to this address after a successful submission instead of staying on the page. | none |
show_title | Show the form’s title as a heading above the fields. | false |
theme_variant | light, dark or auto. See below. | light |
appearance | {"surface": "card"} puts the form on a card with its own background, border, radius and padding. "none" leaves it flat on the page. | none |
css_class | An extra CSS class on the form. | none |
store_entries | Save submissions as entries. | true |
notification | The notification email. See Email notifications. | on, to the admin email |
hide_empty_fields | Leave optional fields the visitor left blank out of the email. | true |
spam_protection | Honeypot, timing check and rate limit. See Spam protection. | all on |
multistep | Progress indicator and step validation. See Layout and steps. | — |
webhook_resolve_option_labels | Send option labels instead of values in webhooks. See Webhooks. | depends on preset |
Light, dark and auto
Section titled “Light, dark and auto”darkalways uses dark field and text colours. Use it when the form sits on a dark background.lightandautouse light colours, except inside a Promptless WP section whose theme is dark, where the form switches to dark colours on its own.
When Promptless WP is active, the form also takes its brand colour, fonts, corner radius and neo-brutalist style from Global Settings.
Limits and common problems
Section titled “Limits and common problems”store_entries: falsealso stops webhooks and FlowMint workflows, which run only for stored entries. The email notification is still sent.- The form shows light fields on a dark background outside a Promptless
section. Set
"theme_variant": "dark". - Forms registered in PHP (with
pforms_register_form()) are not listed on this screen and cannot be edited here.