contact-form-7/update-form is the broad edit: title, locale, form template, either mail template, validation messages or additional settings, in any combination. Properties you omit are left exactly as they are.
The trap is inside the properties you do send. This replaces a whole property rather than merging into it — so a mail object carrying only a new subject drops the recipient, the body and everything else that was there.
At a glance
| Ability | contact-form-7/update-form |
| Toolset | Contact Form 7 — toolset/contact-form-7 |
| Group | Contact Form 7 › Forms |
| Requires | Contact Form 7, active on the site |
| Capability | manage_options, plus edit_contact_forms |
| Safety | Writes data |
| Repeatable | Idempotent — running it twice leaves the same result |
| Ships in | AcrossAI Abilities Manager 0.0.34 and later |
Read before you write
Run contact-form-7/get-form first and build each property from what comes back. That is not a style preference; it is the difference between changing a subject line and emptying a mail template.
For narrower edits there are better tools. contact-form-7/update-mail merges into a mail template instead of replacing it, and the field abilities change one tag without touching the rest of the markup.
The response names which properties actually changed, and re-runs Contact Form 7’s validator so a newly broken form is visible in the same call.
Input
| Name | Type | Required | What it is |
|---|---|---|---|
form_id | integer | Yes | Form post ID, as returned by contact-form-7/list-forms. |
title | string | No | New form title. |
locale | string | No | New locale. |
form | string | No | Replacement form template markup. |
mail | object | No | Replacement notification mail template — the whole object. |
mail_2 | object | No | Replacement autoresponder template — the whole object. |
messages | object | No | Replacement validation messages. |
additional_settings | string | No | Replacement additional-settings block. |
What comes back
| Name | Type | What it is |
|---|---|---|
form | object | The form after the write. |
updated | array | Which properties actually changed. |
config_errors | array | What the validator says about the form now. |
success | boolean | Whether the call completed. |
message | string | A one-line summary of what happened, suitable for showing a human. |
error_code | string | Present only on failure — a stable machine-readable reason, such as a missing field, a wrong field type or an unmet confirmation. |
Example
Ask your assistant:
Rename form 42 to “Partnership enquiries” and leave everything else alone.
It resolves to one call:
{
"ability": "contact-form-7/update-form",
"parameters": {
"form_id": 42,
"title": "Partnership enquiries"
}
}Worth knowing
- Idempotent — sending the same properties twice leaves the same form.
- Whole-property replacement, not merge. This is the single most common way to lose a mail template.
- For a field-shaped change use
contact-form-7/add-form-field,update-form-fieldorremove-form-fieldinstead. - Check
config_errorsin the response rather than assuming a successful save means a working form.
Related abilities
- Get Contact Form — read the current properties first
- Update Contact Form Mail Template — merges instead of replacing
- Validate Contact Form Configuration — confirm it still works
Get the plugins:
AcrossAI Abilities Manager · AcrossAI MCP Manager
Browse the rest: Every ability, by category