Update campaign
Update campaign settings through their owning sections.
Read Get campaign first. Send only the sections you want to change.
| Section | Settings |
|---|---|
| trigger | Outbound entry/exclusion tags; reminder appointment calendar; inbound call entry. |
| capabilities | Installed booking, transfer and tagging settings. |
| tools | Installed service-area and tag-check tools. |
| calling | Dialing rules and the campaign’s single cadence, including its ordered steps. |
| outcomes | Wording used to recognize call results. |
Capability/tool maps are partial: omitted entries stay unchanged; null removes one. Arrays replace only their field. Expand a section below for its rules.
Capability and outcome edits through unrelated shared agents return 409; explicit Master agent families share intentionally. A partial save returns 502 with actionResults. Use Idempotency-Key for retries: the same key replays the recorded result, including a partial failure, without repeating completed effects. Read the campaign before sending remaining changes with a new key. Required scope: campaigns:write.
Required API key scope: campaigns:write.
Authorizations
Send your API key as Authorization: Bearer YOUR_API_KEY.
Headers
Reuse a unique key for retries of the exact same change. A retry returns its saved result or partial-failure receipt without repeating effects. Pending or changed-payload reuse returns 409. After a partial failure, read the campaign before submitting only the remaining changes with a new key.
1 - 128Path Parameters
Agent id.
1Query Parameters
Pair with campaignId; omit both for primary campaign.
1Pair with locationId; omit both for primary campaign.
1Body
Partial update of the selected campaign. Trigger fields must match its stored campaignType. Omitted sections and named abilities stay unchanged. null removes one named capability/tool; arrays replace only that field. An absent ability requires enabled:true to install. Root config, calendarId, transferNumber, activeTags and inactiveTags are not accepted.
1Change the bound agent separately from capability, tool or outcome edits.
Optional assertion about the selected campaign; its type cannot be changed.
outbound, confirmation, inbound Must match the selected campaign type. Outbound accepts activeTags/inactiveTags. Confirmation/reminder accepts calendarId, which also supplies rescheduling. Inbound accepts neither tags nor an appointment calendar. Include type when changing a trigger; it cannot change the campaign type.
- Option 1
- Option 2
- Option 3
Named installed capabilities. Outbound/inbound booking calendarId/calendarRules/collectAddress belong inside appointment_booking. Confirmation uses trigger.calendarId and has no separate booking routing/address settings. Transfer destinations, messages and routing belong inside live_transfer. An absent entry requires enabled:true to install; null removes it, and omitted siblings survive. Zero capabilities is valid. Optionally send campaign.metadata.inventoryVersion from Get campaign as expectedVersion to reject a stale inventory edit. Agents shared outside one explicit Master agent family must be separated before editing installations.
Partial map of named platform tool installations. An absent entry requires enabled:true; null removes only that entry. Omitted tools, capabilities and instruction playbooks stay unchanged. Shares the inventory expectedVersion guard.
The campaign’s dialing rules and single cadence. Patch cadence.name or cadence.activeDays independently; cadence.steps replaces the complete step list. No cadenceId is accepted. Outbound and confirmation campaigns support independent speedToLead and powerDialer switches. For reminders, skipWhenAiBooked suppresses only the immediate booking-time call, preserving scheduled reminders. Inbound refuses this section.
Partial map of outcome prompts. Omitted outcomes are unchanged. Legacy storage uses the bound agent; campaign edits return 409 if that agent is shared outside one explicit Master agent family. Split variants continue sharing their campaign settings.
Optional stale-edit guard. Copy campaign.metadata.inventoryVersion from Get campaign. A mismatch returns 409 before capability/tool changes. This guards inventory edits, not the whole campaign.
0 <= x <= 9007199254740991