MCP

campaign/patch_by_id

Tool: update

Partially update a campaign (PATCH semantics — only supplied fields applied).

Supply only the fields you want to change; omitted fields are left as-is. Returns the full updated campaign object. To clear a field — and to know why null fails — see call-contract.

Template fields (subject, body) take personalization variables from a closed list — see personalization-variables. Nothing is checked here, only at campaign/start_by_id, which makes this the operation to fix a start-time 422: patch the corrected subject/body, then start again.

If the campaign is Running and this patch touches a send-affecting field (scheduleSending, a schedule/day-window field, dailyLimit, or fromEmails), it requires confirm_send: true in arguments — same fresh, send-specific consent contract as campaign/start_by_id.

Conditional — shown while this account's documentation includes the Outreach Playbook

If disappointing results are why you are editing, Diagnosing underperformance gives the order to check the layers in — delivery, list, offer, then copy — and why you change one layer at a time; fixing copy when the problem is delivery is the most common wasted week in outbound. Before touching dailyLimit or the schedule on a running campaign, Campaign scheduling and pausing has the operating thresholds: pause and clean above roughly 2% bounces, reduce volume above roughly 0.05% complaints, and keep daily volume steady rather than jumping it.

Arguments

name type req notes
id integer ✓ Campaign ID — the object's campaignId
confirm_send boolean – Required (true) only if the campaign is Running and the patch touches a send-affecting field (see above)

Body

field type req constraints description
name string – Campaign display name
description string – Description
folderId integer – Folder ID
fromEmails string – Comma-separated sender email addresses, e.g. "a@x.com,b@x.com" (a literal string, not a JSON array — an array here 422s)
fromName string – From display name
replyToEmail string – Reply-to address
subject string – Initial email subject line
body string – HTML email body
textOnlyEmails boolean – Controls outbound MIME type at send time only — body must always be HTML (e.g. wrapped in <p> tags) regardless of this setting
ccEmails string – CC addresses
bccEmails string – BCC addresses
replyBccEmails string – BCC on prospect replies
replyCcEmails string – CC on prospect replies
sendUnsubscribeListHeader boolean – Include List-Unsubscribe header
deactivateIfMissingPlaceholder boolean – If true, a prospect with no value for a variable the copy uses is deactivated (status MissingPlaceholder) instead of mailed
stopCoworkersOnReply boolean – Stop coworker sends on reply
trackOpens boolean – Open tracking
trackClicks boolean – Click tracking
prospectValue integer – Value per conversion
dailyLimit integer – Max emails per day
dailyLimitPer string – one of: Sender, Campaign Daily limit scope
dailyLimitIncrease boolean – Progressive limit increase
dailyLimitIncreaseToMax integer – Target max for increase
dailyLimitIncreasePercent integer – Daily % increase step
dailyLimitOnDate string – date-time Limit on specific date
dailyLimitPrioritize string – one of: Initial, Followup Priority when at limit
dailyLimitInitial integer – Separate initial email limit
dailyLimitInitialEnabled boolean – Enable separate initial limit
dailyLimitWhichEmailsCount string – one of: All, Initial What counts toward limit
scheduleSending boolean – Enable schedule
scheduleTimeZone string – Timezone
useProspectsTimeZone boolean – Use prospect timezone
scheduleSendOnDate string – date-time Start date
scheduleSendOnDateEnabled boolean – Enable start-on-date
scheduleSendOnDateHours integer – 0–23 Hour on scheduled date
scheduleSendOnDateMinutes integer – 0–1439 Minute offset on scheduled date
delayMinSeconds integer – Min gap between consecutive sends, in seconds — not minutes; see schemas/campaign
espMatchEnabled boolean – ESP matching
espMatchType string – one of: None, MatchSender, MatchDomain ESP match strategy
espLimitEnabled boolean – ESP limiting
espLimitToMicrosoft boolean – Include Microsoft
espLimitToGoogle boolean – Include Google
espLimitToOther boolean – Include other providers
sendMon boolean – Send on Monday
sendMonAfter integer – 0–1439 Monday start
sendMonBefore integer – 0–1439 Monday end
sendTue boolean – Send on Tuesday
sendTueAfter integer – 0–1439 Tuesday start
sendTueBefore integer – 0–1439 Tuesday end
sendWed boolean – Send on Wednesday
sendWedAfter integer – 0–1439 Wednesday start
sendWedBefore integer – 0–1439 Wednesday end
sendThu boolean – Send on Thursday
sendThuAfter integer – 0–1439 Thursday start
sendThuBefore integer – 0–1439 Thursday end
sendFri boolean – Send on Friday
sendFriAfter integer – 0–1439 Friday start
sendFriBefore integer – 0–1439 Friday end
sendSat boolean – Send on Saturday
sendSatAfter integer – 0–1439 Saturday start
sendSatBefore integer – 0–1439 Saturday end
sendSun boolean – Send on Sunday
sendSunAfter integer – 0–1439 Sunday start
sendSunBefore integer – 0–1439 Sunday end

Response

200 — Updated campaign; object: see schemas/campaign. Deltas: none.

Errors: 400, 401, 404, 406, 415, 422, 429, 500 — shared schema: schemas/errors.

Invoke

Call update with name: "campaign/patch_by_id".