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
DestructiveReplace 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.
More Fluent Forms abilities
Add Submission Note
Attach an internal staff note to one entry; not visible to the submitter.
Bulk Update Submissions
Apply one action — read, unread, trashed, favorite, unfavorite, or permanent delete — to up to 200 entries at once.
Create Form
Create a new form from a title and an ordered list of fields, or a basic contact form by default.
Create or Update Email Notification
Create a new email notification or update an existing one — including its recipient.
Delete Submission
Permanently delete one entry and its uploaded files.
Get Form
Load one form's full detail, including its field schema, so the agent knows the exact field keys used in submissions.