GTM Campaigns

Launch Campaign

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.

post/campaigns/{campaign_id}/launch

Request

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

Path parameters

campaign_idstring required

Campaign ID

Query parameters

validateboolean

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

Headers

Authorizationstring nullable
X-Target-Org-Idstring nullable

Request body

sender_mailbox_idsinteger[] nullable

Explicit list of mailbox IDs (from GET /mailboxes) to attach as sequence channels before launch. Each ID must reference a connection_status='active', non-archived mailbox in this org. When omitted, the bridge auto-picks the first active email mailbox (ORDER BY id ASC). If no supported sender is available, launch fails before sequence creation.

disable_auto_pickboolean

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

textual_agent_namestring nullable

Voice-service agent identifier (from GET /agents) used for email / social steps. Stamped onto seqsequences.textual_agent_name. Pass the same value as voice_agent_name to use one agent across all channels (the common case — the unified Agent row already bundles persona + voice + phone + the attached appointment event).

voice_agent_namestring nullable

Voice-service agent identifier (from GET /agents) used for phone / SMS steps. Stamped onto seqsequences.voice_agent_name. When you want a single agent for all channels, set both this and textual_agent_name to the same value.

schedule_idstring nullable

Send-window schedule UUID (from GET /schedules). Stamped onto seqsequences.schedule_id. When omitted the sequencer falls back to its org-default send window.

appointment_idinteger nullable

Calendar event-type ID (from GET /event-types) to attach as the booking link on the sequence. Stamped onto seqsequences.appointment_id. When omitted no booking link is attached and any sequence step referencing {{booking_link}} will render the org-default link (or empty).

Response

Successful Response

dataobject required

Changes

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