mailerpress/save-campaign-content persists the campaign’s email body: the block-editor JSON tree, the compiled HTML, or both.
Writing one without the other is exactly how the two diverge.
At a glance
| Ability | mailerpress/save-campaign-content |
| Toolset | MailerPress — toolset/mailerpress |
| Group | MailerPress › Campaigns & Sending |
| Requires | AcrossAI Pro, plus MailerPress active on the site |
| Capability | manage_options |
| Safety | Writes data |
| Repeatable | Idempotent — running it twice leaves the same result |
| Ships in | AcrossAI Pro 0.9.16 and later |
How it works
A campaign holds its content twice: a block-editor JSON tree, which is what the editor shows, and a compiled HTML artifact, which is what recipients receive. They are stored separately and can disagree.
So this ability takes both, and the right usage is to write both. A content write updates what the editor shows; an html write updates what recipients receive.
Writing only the HTML produces a campaign that sends correctly and shows something else in the editor, which the next person to open it will “fix” by re-saving.
Writing only the content produces the opposite: an editor that looks right and a send that is stale.
Neither produces an error, which is why mailerpress/check-campaign-send-readiness exists.
Locks are validated by MailerPress, so a campaign somebody has open is protected.
Idempotent.
Input
| Name | Type | Required | What it is |
|---|---|---|---|
id | integer | Yes | The campaign ID. |
content | object | No | The block-editor JSON tree. |
html | string | No | The compiled HTML. |
What comes back
| Name | Type | What it is |
|---|---|---|
saved | array | Which artifacts were written. |
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:
Save the campaign content.
It resolves to one call:
{
"ability": "mailerpress/save-campaign-content",
"parameters": {
"id": 44,
"content": {},
"html": "<html>…</html>"
}
}Worth knowing
- Write both. Writing one leaves the campaign inconsistent, silently.
- HTML only sends right and edits wrong; content only edits right and sends wrong.
- Locks are validated, so open editors are protected.
- Idempotent.
Related abilities
- MailerPress Check Campaign Send Readiness — confirm they agree
- MailerPress Format Campaign HTML — lint the HTML first
Get the plugins:
AcrossAI Abilities Manager · AcrossAI MCP Manager
Browse the rest: Every ability, by category