Skip to content

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.

  • 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.
  1. Go to Form Entries → Forms. Select Add New, or a form’s title to edit it.
  2. Fill in Form Title. It is shown in the admin; if you leave it empty, the title in the JSON is used.
  3. For a new form, check Form ID. It is generated from the title and becomes the shortcode ID.
  4. Write or paste the JSON into Configuration (JSON).
  5. Optionally, tick Enable webhook for this form (see Webhooks).
  6. 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.

  • 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.
KeyRequiredWhat it holds
fieldsYesThe list of fields, at least one. See Field types.
titleNoThe form’s name. Shown above the form only when show_title is on, and used as the heading of notification emails.
stepsNoSteps for a multi-step form. See Layout and steps.
settingsNoEverything 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.

These go inside "settings": { … }.

SettingWhat it doesDefault
submit_button_textText on the submit button.Submit
success_messageShown above the form after a successful submission. Plain text; HTML is shown as typed.Thank you for your submission.
redirect_urlSend the visitor to this address after a successful submission instead of staying on the page.none
show_titleShow the form’s title as a heading above the fields.false
theme_variantlight, 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_classAn extra CSS class on the form.none
store_entriesSave submissions as entries.true
notificationThe notification email. See Email notifications.on, to the admin email
hide_empty_fieldsLeave optional fields the visitor left blank out of the email.true
spam_protectionHoneypot, timing check and rate limit. See Spam protection.all on
multistepProgress indicator and step validation. See Layout and steps.—
webhook_resolve_option_labelsSend option labels instead of values in webhooks. See Webhooks.depends on preset
  • dark always uses dark field and text colours. Use it when the form sits on a dark background.
  • light and auto use 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.

  • store_entries: false also 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.