Skip to content

Launch Campaign

POST
/campaigns/{campaign_id}/launch

Launch a campaign through the canonical Sequencer V2 workflow.

This does two things end-to-end:

  1. Push the campaign to the sequencer. The bridge loads the campaign’s generated documents (email/LinkedIn/phone/SMS copy), transforms them into sequencer steps, and creates a new SeqSequence row with the campaign content attached. A CampaignSequenceLink row links the two.
  2. Run the sequence through the same V2 workflow used by Sequencer. The response reports live only after synchronous initialization has completed, or scheduling with job details for background work.

Idempotency: re-launching a campaign that already has an active sequence returns 409 unless force is implied via a future query-param. This is consistent with the UI’s bridge/push behaviour.

Pre-flight is mandatory. The deprecated validate parameter is accepted only as true; false is rejected before any sequence is created.

WARNING: this begins sending real outreach to real contacts.

Authorizations

Parameters

Path Parameters

campaign_id
required

Campaign ID

string

Campaign ID

Query Parameters

validate
deprecated

Deprecated compatibility parameter. Readiness validation is always enforced; false is rejected before any sequence is created.

boolean
default: true

Deprecated compatibility parameter. Readiness validation is always enforced; false is rejected before any sequence is created.

Header Parameters

X-Target-Org-Id
Any of:
string

Request Body

Any of:

Optional body for POST /campaigns/{id}/launch — all fields optional.

Callers that POST with no body (or an empty {}) use the first active email mailbox for the organization. Callers that want explicit control pass sender_mailbox_ids. Launch fails before sequence creation when no supported active sender is available.

The MCP g8_gtm_launch_campaign wrapper passes sender_mailbox_ids when Daniel’s agent already picked a sender; otherwise the auto-pick fallback keeps the one-shot launch flow working with no extra round-trip.

object
appointment_id
Any of:
integer
disable_auto_pick

Deprecated safety escape hatch. Launch now rejects True because a consequential action cannot proceed without an active sender.

boolean
schedule_id
Any of:
string
sender_mailbox_ids
Any of:
Array<integer>
textual_agent_name
Any of:
string
voice_agent_name
Any of:
string

Responses

200

Successful Response

object
data
required
object
key
additional properties
any
pagination
Any of:
object
has_next
required

Whether there are more pages

boolean
limit
required

Items per page

integer
next_cursor
Any of:
string
page
required

Current page number (1-indexed)

integer
total
required

Total number of items

integer

422

Validation Error

object
detail
Array<object>
object
loc
required
Array
msg
required
string
type
required
string