update_campaign
Update a draft campaign. Only the fields you pass are changed. list_ids REPLACES the full current list set (and replaces a segment target): to add or remove a list, prefer add_lists_to_campaign / remove_lists_from_campaign. segment_id sends to one segment instead of lists. Exclusions (excluded lists, segments, tags) and frequency cap cannot be changed here: they can only be set at creation (create_campaign) or in the panel. Setting scheduled_at publishes the campaign for sending, so it takes two steps: call first without confirm to get a preview (nothing is changed), get an explicit yes from the user, then call again with confirm: true. Set dry_run: true to see the exact fields that would be sent without changing anything.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| html | No | HTML email content | |
| name | No | Campaign name | |
| rules | No | Send rules object: limit (number of contacts), contacts_order (first or last) | |
| tag_id | No | Campaign tag ID | |
| confirm | No | Must be true when scheduled_at is set, because that schedules the campaign to send. Leave false first to get a preview; nothing is changed | |
| dry_run | No | Validate inputs and show what would be sent without changing anything, even when confirm is true | |
| subject | No | Email subject line | |
| list_ids | No | List IDs to send to (max 150). REPLACES the campaign's full recipient list set, and replaces a segment if the campaign sends to one: to add a list, include the current lists as well (or use add_lists_to_campaign) | |
| reply_id | No | Pre-configured reply email ID | |
| plain_text | No | Plain text content | |
| segment_id | No | One segment ID to send to. Replaces the campaign's lists. Give list_ids or segment_id, not both | |
| campaign_id | Yes | Campaign ID | |
| pause_rules | No | pause rules object as in the panel: pause_target, pause_limit, pause_criteria, pause_condition | |
| reply_email | No | Reply-to email address | |
| report_spam | No | Add a report-abuse link | |
| sender_name | No | Sender display name (give together with sender_email) | |
| scheduled_at | No | Schedule datetime (YYYY-MM-DD HH:MM:SS, account timezone). Setting it PUBLISHES the campaign for sending at that time, so it requires confirm: true | |
| sender_email | No | Sender email address (give together with sender_name) | |
| viewin_browser | No | Add a view-in-browser link | |
| email_preheader | No | Email preheader text (max 150 chars) | |
| mailing_preference | No | Add a mailing-preference link | |
| permission_reminder | No | Permission reminder text (3-150 chars) |