MailerResumeCampaign¶
POST mailer/campaign/resume
Continues a campaign that stopped halfway — the CRM did not answer, or the module was restarted mid-rollout.
The rollout continues from the saved cursor (cursorStage, cursorOffset). Re-sending is
prevented by the dedupe key campaign:{id}:{recipientId}, so even a restart from the very
beginning (fromStart) will not email anyone twice. Without that pair the only way to finish
a failed campaign would be a full re-run, and the first pages of recipients would get a
second copy.
Access Control¶
Allowed roles: admin, leader, within the brand of the caller.
Request¶
POST https://{broker_domain}/mailer/campaign/resume
{
"id": 3
}
{
"command": "MailerResumeCampaign",
"extID": "1",
"data": {
"id": 3
}
}
const res = await platform.MailerResumeCampaign({
id: 3
});
Request Data¶
| Field | Type | Required | Description |
|---|---|---|---|
id |
int | Yes | Campaign id |
fromStart |
bool | No | Ignore the saved cursor and walk the recipients again; duplicates are still filtered by the dedupe key |
Response Data¶
{
"id": 3,
"status": "PENDING",
"resumedFrom": { "stage": "FILTERS", "offset": 2000 },
"totalRecipients": 5400,
"queued": 2000
}
Errors¶
| Code | Error | Description |
|---|---|---|
403 |
PERMISSION_DENIED |
The campaign belongs to another manager |
404 |
NOT_FOUND |
Campaign not found in the brand |
409 |
CAMPAIGN_NOT_RESUMABLE |
The campaign is completed or cancelled and does not need resuming |