GTM Campaigns

Patch Campaign Full

Apply a deep-update to a campaign in one round trip.

Behavior: - Campaign fields (name/brief/hook/etc.) update the row when present. - audience_list_id attaches; detach_audience=true clears it. - documents[*] either updates an existing doc by id, or creates a new doc when id is omitted (file_type + display_name required). - sequence_steps replaces the sequence ordering verbatim (same semantics as PUT /sequence).

Returns the full kitchen-sink payload (same shape as GET /full). Backwards-compat: omitting any field is a no-op. Existing single-purpose endpoints (PATCH /campaigns/{id}, PUT /audience, PUT /sequence, etc.) keep working unchanged.

patch/campaigns/{campaign_id}/full

Request

  • Base URL: https://be.graph8.com/api/v1
  • URL: https://be.graph8.com/api/v1/campaigns/{campaign_id}/full
  • Auth: HTTP bearer

Path parameters

campaign_idstring required

Campaign ID

Headers

Authorizationstring nullable
X-Target-Org-Idstring nullable

Request body

namestring nullable
briefstring nullable
core_conceptstring nullable
primary_hookstring nullable
target_personastring nullable
categorystring nullable
goalstring nullable
audience_list_idstring nullable

If provided (including empty string treated as detach), updates audience_list_id. Use the dedicated PUT /audience endpoint when you only need to attach.

detach_audienceboolean

Set true to explicitly DETACH the audience (audience_list_id=NULL). Required because JSON null in audience_list_id is ambiguous (could mean 'no change').

linked_sequence_idsstring[] nullable

Existing sequence IDs to bind to this campaign. INSERTs rows with status='linked' into cb_campaign_sequence_links. Skips IDs that are already linked (any status). Use for pre-launch wiring of an existing sequence; launch writes its own 'pushed' audit rows.

unlink_sequence_idsstring[] nullable

Sequence IDs to UNLINK from this campaign. DELETEs ONLY rows where status='linked'. Launch-audit rows (status='pushed'/'superseded'/'failed') are never touched — those are an immutable historical record.

target_channelsstring[] nullable

Replace the campaign's channels (email, linkedin, phone, voice_ai, sms). Omit to leave them unchanged. Same as PATCH /campaigns/{id}.

Response

Successful Response

dataobject required

Changes

No recorded changes to this operation across all 2 revisions of this API.