Campaigns
Update Campaign
Update a draft campaign’s content, audience, labels, sending identity, or delivery pacing
PUT
Update Campaign
If you use an account key as a marketer, choose an existing sender and
Reply-To profile. A request that needs a new profile returns
400 before
creating profiles, labels, or campaign/sequence changes. This also applies to
email steps and inserted sequence branches. An owner or admin can add the
identity first; a step-level display-name override can still use an existing
profile.sendingWindow.
Request
string
required
Campaign ID.
string
Updated campaign name.
string
Updated email subject line.
string
Updated inbox preview text. Send
null to clear it.string
Alias for
previewText.string
Campaign tracking code available to UTM templates as
{{campaign.trackingCode}}. Send an empty string or null to clear it.string
Updated HTML body. Sequenzy converts this into email blocks.
array
Updated Sequenzy email blocks. Use this instead of
html when you need
editor-compatible content or conditional blocks. Do not send both html and
blocks in the same request. Put block styling under styles; top-level
style keys like backgroundColor, backgroundOpacity, textColor,
textAlign, borderColor, borderWidth, and borderRadius are normalized
into styles.string
Change Style > Format to
branded or minimal without rewriting the
campaign copy. Supported for native Sequenzy blocks, including supported
custom HTML blocks, but not a standalone raw HTML email; do not combine it
with html. Applying minimal removes standalone logo blocks. Switching back
to branded generates a new logo unless you send the authored logo block
again in blocks.object
Replacement campaign audience, using the same shapes as
create. Send
null to clear saved
targeting and pick the audience when you schedule. Omit it to leave the saved
audience unchanged. Mutually exclusive with segmentId and listIds.string
Shorthand for retargeting the draft at one saved segment, equivalent to
{"type": "segment", "segmentId": "seg_123"}. Mutually exclusive with
targetLists and listIds.array
Shorthand for retargeting the draft at one or more lists, equivalent to
{"type": "lists", "listIds": ["list_123"]}. Mutually exclusive with
targetLists and segmentId.boolean
Deliver each recipient at their predicted best open hour within
sendTimeWindowHours of scheduledAt. Campaign-only: there is no company or
sequence STO toggle. Sequences use sendingWindow instead. Persists on the
draft until schedule overrides it. spreadOverHours and
sendInRecipientTimezone each turn STO off.integer
STO delivery window in hours from
scheduledAt (1-24, default 12). Only used
when sendTimeOptimization is true.integer | null
Send to at most this many audience members (1-10,000,000). The first N
matching subscribers, ordered by subscriber id, receive the campaign after
every audience and suppression rule is applied. Persists on the draft until
Schedule Campaign overrides it. Send
null to remove the limit. Out-of-range values return 400.array
Replacement label names. Send an empty array to clear labels. Missing labels
are created automatically. The API also accepts
label as a compatibility
alias.string
Reply-To email address for this campaign. Use this or
replyProfileId, not
both.string
Display name for the Reply-To address. Requires
replyTo; omit it when you
send replyProfileId, which already carries its own display name. An address
carries one Reply-To name company-wide: if replyTo already has a saved
profile under a different name, that saved name is kept and the response
warnings array says so.string
Reply profile ID for this company. It already supplies both the Reply-To
address and the display name, so send it on its own and omit
replyTo and
replyToName.string
From address for this campaign. Its domain must be configured and verified.
Use this or
senderProfileId, not both.string
Display name recipients see, e.g.
Brennon at TradeTally. Selects the sender
identity of that name on fromEmail, creating it when the address has no
identity by that name; the mailbox’s other display names, and everything
pinned to them, are untouched. Requires fromEmail; omit it when you send
senderProfileId, which already carries its own display name.string
Existing sender profile ID. It already supplies both the From address and the
display name, so send it on its own and omit
fromEmail and fromName.array
Up to 10 addresses CC’d on every recipient’s email for this campaign. Send an
empty array or null to clear them. The recipient themselves is never copied.
array
Up to 10 addresses BCC’d on every recipient’s email for this campaign. Send an
empty array or null to clear them.
object | null
Campaign-scoped JSON data. For example, upload an
events array that this
campaign can use while rendering repeat blocks. Supports up to 500 items per
top-level array. Send null to clear it; omit it to keep the current data.array
Personalized list definitions that select items from
campaignData using
subscriber attributes. Templates can repeat over each list’s key; keys use
letters, numbers, underscores, and dots only. Use maxItems to cap how many
items each subscriber can receive in that list.Responses
targetLists.includedSubscriberIds override exclusions. To remove a contact from a frozen group, remove its ID from that array.