Skip to main content
Cookbook Content Formidable Forms

Build a Form from a Description with Formidable Forms and AI

Describe the form; the AI builds it as a draft with an email to you, shows you the preview and publishes on your yes.

Difficulty Beginner
Time ~10 min

Prerequisites

A site connected to WPVibe running Formidable Forms 7.0 or newer (tested on the free 7.0) on WordPress 6.9 or newer, with an administrator account. Formidable's AI access must be on: Formidable > Global Settings > MCP > Enable the Formidable MCP server.

The prompt
My site runs Formidable Forms. Build a form for [what it is for, for example airport transfer requests] that asks for [the questions, for example name, email, mobile number, flight number, arrival time, passengers and which villa]. The button should say [button text] and the thank-you message should say [message]. Email each entry to [my email address]. Put it on a page called [page title].

1. Run get_ability_info for each Formidable ability this uses: formidable-forms/list-forms, formidable-forms/create-form, formidable-forms/list-fields, formidable-forms/create-field, formidable-forms/update-field, formidable-forms/create-form-action and formidable-forms/update-form. If one is not found, Formidable is keeping its abilities off: tell me to update Formidable Forms to 7.0 or newer if it is older, then switch on Enable the Formidable MCP server under Formidable > Global Settings > MCP and click Update (I can switch it off again afterwards), and stop. BUTTON_TEXT, THANK_YOU_MESSAGE, MY_EMAIL and PAGE_TITLE below mean the values from my request above. Square-bracket codes inside the JSON below, such as [form_name] and [default-message], are Formidable shortcodes: keep them as they are.
2. Run formidable-forms/list-forms with page_size 100 and check no form already has this name. If one does, show it and ask whether to build a new one anyway.
3. Plan the fields: for each, the type (create-form's input schema from step 1 lists them), the label, whether it is required, and the choices for a select, radio or checkbox field. If date is not in that list, the site runs Formidable's free version, which has no date or file upload field: use a text field with a placeholder such as e.g. 3 Nov, 22:40 for a date, and tell me. On the free version also don't use star_rating or section (they need Formidable Pro and show no input). With Formidable Pro, use date for dates. Use no payment fields (credit_card, product, quantity, total) unless I ask. Show me the plan as a table and wait for my yes.
4. On my yes, run formidable-forms/create-form with name, status draft, options {"submit_value": "BUTTON_TEXT", "success_msg": "THANK_YOU_MESSAGE", "antispam": 1} and the fields (antispam 1 switches on Formidable's JavaScript spam check, which its own form builder turns on for every new form). A form made this way sends no email yet.
5. Run formidable-forms/list-fields with the new form's id and note the email field's numeric id. Run formidable-forms/create-form-action with form_id, type email, post_title "New entry email" and post_content {"email_to": "MY_EMAIL", "reply_to": "EMAIL_FIELD_ID", "email_subject": "New entry: [form_name]", "email_message": "[default-message]", "event": ["create"]}, where EMAIL_FIELD_ID is the email field's id in square brackets, for example [23], so I can reply straight to the person (leave reply_to out if the form has no email field).
6. Give me Formidable's preview link: the link from step 4, with any HTML-encoded ampersands turned back into plain ones. While the form is a draft, the preview shows the fields but no submit button. Wait for my yes or my changes; make changes with formidable-forms/update-field and formidable-forms/create-field.
7. On my yes, run formidable-forms/update-form with the form id and status published. Then create a draft page with rest_api_write POST /wp/v2/pages: title PAGE_TITLE, status draft, and as content Formidable's block formidable/simple-form with the attribute formId set to the form id as a string. Don't publish the page.
8. Tell me the form id, where its email goes and the draft page's preview link. Ask me to publish the page, fill the form in once with my own email address and check my inbox and spam folder. To take the form down, set the page back to draft: a form placed on a published page still shows its fields to visitors when the form itself is a draft.
Already connected?

Skip pasting the full prompt. Drop this into your AI on a site that already has WPVibe:

Run the “Build a Form from a Description with Formidable Forms and AI” recipe from the WPVibe cookbook on my connected site.

You know what the form should ask. Building it still means dragging in fields one at a time, marking the required ones, writing the button and the thank-you message, and remembering the email that tells you someone filled it in. A form without that email collects entries nobody reads.

Describe the form and the AI builds it in Formidable as a draft: the fields, which ones are required, the button and the thank-you message, plus an email that sends each entry to you. You check it in Formidable’s preview. Only on your yes does it publish the form and place it on a draft page for you to publish.

Say who the form is for and what it must ask. Formidable’s free version has no date picker or file upload, so there dates go in a text field with an example, and the AI tells you when it does that; with Formidable Pro it uses a real date field. Fill the form in once yourself before you share the page.

Outcome

A published Formidable form that emails you each entry, on a draft page ready for you to publish.