mailerpress/list-campaign-opened-contacts returns a paginated list of contacts who opened at least one email in a given batch.
Anonymous opens are counted in anonymous_count and excluded from the rows.
At a glance
| Ability | mailerpress/list-campaign-opened-contacts |
| Toolset | MailerPress — toolset/mailerpress |
| Group | MailerPress › Campaigns & Sending |
| Requires | AcrossAI Pro, plus MailerPress active on the site |
| Capability | manage_options |
| Safety | Read-only — changes nothing |
| Repeatable | Idempotent — running it twice leaves the same result |
| Ships in | AcrossAI Pro 0.9.16 and later |
How it works
An anonymous open is one where the contact could not be identified — a forwarded email, a stripped tracking parameter, a shared inbox. They are real opens and they cannot be attributed to anybody.
Listing them as rows with no contact would be noise; dropping them entirely would under-report engagement. So they are counted separately, which keeps both facts available.
This is per batch rather than per campaign, because a campaign sent to two audiences has two engagement profiles and merging them describes neither.
Open data is soft. Image-blocking clients do not register an open, and pre-fetching clients register opens nobody made — so a list of openers is a lower bound with noise in it rather than a roll call.
The wildcard search on email and name is for finding whether one specific person opened, which is the common support question.
Input
| Name | Type | Required | What it is |
|---|---|---|---|
batch_id | integer | Yes | The send batch. |
search | string | No | Wildcard search on email or name. |
per_page | integer | No | Rows per page. |
What comes back
| Name | Type | What it is |
|---|---|---|
contacts | array | Contacts who opened. |
anonymous_count | integer | Opens that could not be attributed. |
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:
Who opened that campaign?
It resolves to one call:
{
"ability": "mailerpress/list-campaign-opened-contacts",
"parameters": {
"batch_id": 91
}
}Worth knowing
- Anonymous opens are counted, not listed — both facts stay available.
- Per batch, because campaigns can have several audiences.
- Open data is a noisy lower bound, not a roll call.
- Read-only.
Related abilities
- MailerPress List Campaign Clicked Contacts — the reliable signal
- MailerPress Get Campaign Batches — find the batch ID
Get the plugins:
AcrossAI Abilities Manager · AcrossAI MCP Manager
Browse the rest: Every ability, by category