Skip to main content
PATCH
cURL

Authorizations

Authorization
string
header
required

Send your API key as Authorization: Bearer YOUR_API_KEY.

Headers

Idempotency-Key
string

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.

Required string length: 1 - 128

Path Parameters

id
string
required

Agent id.

Minimum string length: 1

Query Parameters

locationId
string

Pair with campaignId; omit both for primary campaign.

Minimum string length: 1
campaignId
string

Pair with locationId; omit both for primary campaign.

Minimum string length: 1

Body

application/json

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.

name
string
Minimum string length: 1
description
string
active
boolean
agentId
string | null

Change the bound agent separately from capability, tool or outcome edits.

campaignType
enum<string>

Optional assertion about the selected campaign; its type cannot be changed.

Available options:
outbound,
confirmation,
inbound
trigger
object

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.

capabilities
object

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.

tools
object

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.

calling
object

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.

fromNumbers
string[]
testing
object
masterCampaignEnabled
boolean
outcomes
object

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.

expectedVersion
integer

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.

Required range: 0 <= x <= 9007199254740991

Response

Campaign facet updated.

success
any
required
campaign
object
required
actionResults
object
required