Update Campaign
Campaigns
Update Campaign
Patch campaign fields and optionally upsert the full sequence. Field-level rules depend on campaign status.
PATCH
Update Campaign
CLI:
Overview
A partial update — only fields present in the body are applied. Most draft-only fields (type-specific settings, sequence, sender set) are silently ignored on active/paused/completed campaigns. A few fields work on any status:name, operating_hours, and (email) daily_limit.
Allowed fields by status
| Field | Draft | Active | Paused |
|---|---|---|---|
name | ✅ | ✅ | ✅ |
operating_hours | ✅ | ✅ (wakes sleeping leads) | ✅ |
daily_limit (email) | ✅ | ✅ | ✅ |
account_limits (email) | ✅ | ✅ | ✅ |
skip_other_campaigns (LinkedIn) | ✅ | ignored | ignored |
stop_on_reply / open_tracking / signature (email) | ✅ | ignored | ignored |
sender_account_ids | ✅ | ignored | ignored |
sequence_nodes | ✅ | ignored | ignored |
AI agent notes
Sequence upsert semantics. When
sequence_nodes is provided (draft only), the server replaces the entire sequence. Positions are normalized to match array order — don’t try to set your own position values. Include every node you want to keep, including end.Operating-hours tweak on active campaigns. Changing operating_hours while status === "active" triggers an immediate wake-up of any leads currently sleeping on old-schedule waitpoints. They re-check the fresh schedule and resume or re-sleep as appropriate. Safe to call, but expect a burst of send activity within ~30 s of the update.Delay validation. Delay nodes must total ≥ 1 minute and ≤ 30 days across delay_days + delay_hours + delay_minutes. The server validates before any writes, so invalid delays fail cleanly with 400 and no partial state.Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Campaign UUID
Body
application/json
Minimum string length:
1Required range:
1 <= x <= 500Maximum array length:
50