Building a webhook integration? Read the webhook guide for signatures, retries, event schemas, and troubleshooting.
apiDeterministic

Prepare campaign launch

POST /api/v1/strategy/prepare-campaign-launch

Run the canonical campaign readiness contract, then create or repair the complete draft campaign from one explicit active brief and its ICP-fit, written table. Missing GTM context, strategy, offer, persona, or providers returns the same missing and nextActions response used by Launchpad. A ready campaign returns an expiring approvalId plus production review URLs. This never activates live delivery.

Parameters

workspaceId
string
Optional with API-key auth. Inferred from the key.
briefIdrequired
string
Exact active campaign brief ID.
tableIdrequired
string
Exact agent-pipeline table ID bound to the brief.
rowIds
string[]
Optional exact enrichment row IDs to enroll. Every selected row must still have icp_fit set to true and have current approved copy.

Example

REST requestbash
curl -X POST "https://app.pipeline.help/api/v1/strategy/prepare-campaign-launch" \
-H "Authorization: Bearer $PIPELINE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"briefId":"00000000-0000-4000-8000-000000000000","tableId":"00000000-0000-4000-8000-000000000000"}'

Response

Success response schemajson schema
{
"type": "object",
"properties": {
"ready": {
"type": "boolean"
},
"campaignPackageId": {
"type": "string"
},
"missing": {
"type": "array",
"items": {
"type": "string"
}
},
"nextActions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"action": {
"type": "string"
},
"reason": {
"type": "string"
}
},
"required": [
"action",
"reason"
]
}
},
"reason": {
"type": "string"
},
"approvalId": {
"type": "string"
},
"approvalExpiresAt": {
"type": "string"
},
"campaignId": {
"type": "string"
},
"briefId": {
"type": "string"
},
"briefName": {
"type": "string"
},
"sourceTableIds": {
"type": "array",
"items": {
"type": "string"
}
},
"qualifiedWrittenRows": {
"type": "number"
},
"existingCampaignId": {
"type": [
"string",
"null"
]
},
"existingCampaignStatus": {
"type": [
"string",
"null"
]
},
"channels": {
"type": "object"
},
"workflow": {
"type": "object",
"properties": {
"icpScoringEnabled": {
"type": "boolean"
},
"nodeTypes": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"icpScoringEnabled",
"nodeTypes"
]
},
"reviewUrls": {
"type": "object",
"properties": {
"strategyBrief": {
"type": "string",
"format": "uri"
},
"table": {
"type": "string",
"format": "uri"
},
"campaign": {
"type": "string",
"format": "uri"
},
"campaignWorkflow": {
"type": "string",
"format": "uri"
}
},
"required": [
"strategyBrief",
"table"
]
}
},
"required": [
"ready",
"missing",
"nextActions"
]
}

HTTP errors

401
Missing or invalid API key.
403
Authenticated but not permitted for the workspace or resource.
404
The requested resource was not found.
Pipeline REST API reference | Pipeline