Update Form Fields is a WordPress ability from Fluent Forms — usable via Easy MCP AI, which connects Claude, ChatGPT, and any AI assistant to your site.

Install Free Plugin →

Update Form Fields

Destructive
Fluent Forms Forms fluentform/update-form-fields

Replace a form's entire field set from a spec, reusing the same field shape as create-form.

Needs the Fluent Forms MCP server switched on in FluentForm → Settings → MCP, and WordPress 6.9+ so wp_register_ability() exists (abilities are only registered when the function is present). Reaching the server also requires a logged-in WordPress user holding at least one FluentForm capability. Each ability additionally checks a specific FluentForm capability (e.g. fluentform_dashboard_access, fluentform_forms_manager, fluentform_entries_viewer, fluentform_manage_entries, fluentform_view_payments, fluentform_settings_manager) via the plugin's own Acl system, and every write ability requires a two-step dry_run → confirm_token round-trip through WriteGuard before anything is persisted. Note (from source comments): a WordPress role granted FluentForm access via the Role Manager passes every per-ability capability check, including delete-submission and bulk delete_permanently — the real boundary for such a user is 'has FluentForm access, restricted to their form scope', not per-tool separation; only individually-assigned 'specific forms' managers are gated the way each ability's declared capability implies.

What it does

Overwrites a form's whole field set from a spec (the same {type, label} shape create-form accepts) — every field to keep must be included, not just new ones. Because entries are keyed by a field's attributes.name, dropping or renaming a field orphans its stored answers; the dry-run preview lists exactly which stored field keys would be removed, kept, or added, and executing a change that removes any existing field key is refused unless allow_field_removal:true is also passed. Multi-step forms (with a stepsWrapper) are refused outright since a blind full-replace is unsafe for them — those must be edited in the form builder. The write runs in a row-locked transaction that re-validates the form's field state against the exact state the dry-run previewed, refusing with STATE_CHANGED if a concurrent edit landed in between. Requires dry_run:true first to preview the impact and obtain a confirm_token, then a repeat call with the same fields plus confirm_token (and allow_field_removal:true if fields are being dropped) to execute.

See it in action

You ask your AI assistant

"Replace the fields on form 12 with name, email, phone, and a message textarea."

Inputs

Name Type Required Description
form_id integer Yes Required. The form to edit.
fields array Yes Required. The full replacement field list (create-form spec shape: objects with element, attributes, settings).
allow_field_removal boolean No Required true to execute if the new list drops any existing field key (which orphans that field's stored entries).
dry_run boolean No Preview the change without writing; returns a confirm_token.
confirm_token string No The token from the dry_run preview, required to execute.
idempotency_key string No Optional; a retry with the same key will not act twice.

Returns

On dry_run: the removed_field_keys, kept_field_keys, new_field_keys, a warning, and a confirm_token. On execute: the form_id and the list of removed_field_keys.

Permission

Requires the fluentform_forms_manager capability.

Newsletter

The AI + WordPress space moves fast. Keep up.

New tools, workflow ideas, and product updates — be the first to know what's next.

No spam, unsubscribe anytime.