Skip to content

MailerUpdateCampaign

PUT mailer/campaign

Updates a campaign. Only the fields present in the request are changed.

A campaign that has already started rolling out keeps the content its queued emails were rendered with — editing it changes only what the remaining batches will say.

Access Control

Allowed roles: admin, leader, within the brand of the caller. Only the author or an admin may edit it.

Request

PUT https://{broker_domain}/mailer/campaign
{
  "id": 3,
  "scheduledAt": "2026-08-25T08:00:00Z"
}
{
  "command": "MailerUpdateCampaign",
  "extID": "1",
  "data": {
    "id": 3,
    "scheduledAt": "2026-08-25T08:00:00Z"
  }
}
const res = await platform.MailerUpdateCampaign({
  id: 3,
  scheduledAt: "2026-08-25T08:00:00Z"
});

Request Data

Field Type Required Description
id int Yes Campaign id
name string No Campaign name
description string No Free-form note
recipientConfig object No New recipient description
templateId int No Template to render for every recipient
subject string No Subject, when the content is passed inline
html string No HTML body
text string No Plain-text part; generated from the HTML when omitted
structure array No Email builder tree
profileId int No Explicit provider profile for the whole campaign
kind enum No TRANSACTIONAL or MARKETING
scheduledAt string No ISO 8601 start time; empty starts the rollout immediately
status enum No DRAFT (default) or PENDING to hand it to the scheduler

Response Data

{
  "id": 3,
  "name": "Summer promo",
  "status": "PENDING",
  "scheduledAt": "2026-08-25 08:00:00",
  "updatedAt": "2026-08-24 14:31:07"
}

Errors

Code Error Description
403 PERMISSION_DENIED The campaign belongs to another manager
404 NOT_FOUND Campaign, template, or profile not found in the brand
409 CAMPAIGN_NOT_EDITABLE The campaign is already running or finished