mailerpress/bulk-update-contacts applies the same status, tag or list mutation to multiple contacts in one call.
It always requires confirm_count matching the ID array length, and is capped at five hundred contacts per invocation.
Before you run it
One mutation applied to up to five hundred people at once. confirm_count must match the length of the ids array exactly, which is the guard against a list built from a query that matched more than intended. Setting a status in bulk is the sharpest version: marking five hundred contacts unsubscribed is one call, and re-subscribing them afterwards reverses a decision they did not make.
At a glance
| Ability | mailerpress/bulk-update-contacts |
| Toolset | MailerPress — toolset/mailerpress |
| Group | MailerPress › Contacts |
| Requires | AcrossAI Pro, plus MailerPress active on the site |
| Capability | manage_options |
| Safety | Destructive — applies one mutation to many contacts. Requires confirm_count matching the ID array length. Capped at 500. |
| Repeatable | Idempotent — running it twice leaves the same result |
| Ships in | AcrossAI Pro 0.9.16 and later |
How it works
The count match is the standard bulk guard: it catches a list that is longer than the caller pictured, which is the failure mode of anything assembled from a query.
The cap is the other control. Five hundred is enough for real work and small enough that a mistake is recoverable by hand; larger operations page from the caller side, which forces the caller to see the scale.
Status changes are the most consequential mutation here. Bulk-unsubscribing is usually fine — it removes people from sending, which errs safe. Bulk-subscribing is not: it asserts consent on behalf of five hundred people at once.
Tag and list changes are additive or subtractive rather than replacing, so a bulk tag application does not disturb the tags a contact already has.
Idempotent — applying the same mutation twice leaves the same state.
Input
| Name | Type | Required | What it is |
|---|---|---|---|
ids | array | Yes | The contacts to update. Maximum five hundred. |
confirm_count | integer | Yes | Must equal the length of ids. |
status | string | No | A new subscription status for all of them. |
add_tags | array | No | Tags to apply. |
remove_tags | array | No | Tags to remove. |
add_lists | array | No | Lists to join. |
remove_lists | array | No | Lists to leave. |
confirm | boolean | Yes — must be true | The irreversibility gate. Without it the call is refused before anything is touched. |
What comes back
| Name | Type | What it is |
|---|---|---|
updated | integer | How many contacts changed. |
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:
Tag these contacts as customers.
It resolves to one call:
{
"ability": "mailerpress/bulk-update-contacts",
"parameters": {
"ids": [118, 119, 120],
"confirm_count": 3,
"add_tags": [7]
}
}Worth knowing
- The count guard catches an over-long list from a query.
- Bulk-subscribing asserts consent for everybody in the list at once.
- Tag and list changes are additive, not replacing.
- Capped at five hundred; page larger operations yourself.
Related abilities
- MailerPress Update Contact — one contact
- MailerPress Bulk Delete Contacts — the removal equivalent
Get the plugins:
AcrossAI Abilities Manager · AcrossAI MCP Manager
Browse the rest: Every ability, by category