cliDeterministic

Create campaign

pipeline create-campaign

Create a draft campaign with a required explicit workflow_definition and assigned_accounts to select senders. UI Easy Mode generates a graph from its selected options; machine creation never selects that template implicitly. This never sends. Campaign delivery graphs are distinct from Agent Workflows. Supply the complete nodes and edges to create-campaign or update-campaign-workflow. Start -> optional icp_scoring -> outreach. If scoring is present, all outreach paths must pass qualified; not_qualified ends without sending. Scoring must precede all sends or email campaign pushes. connection_request has accepted and no_response outputs. accepted continues to optional messages or End. no_response fires after wait_for_response_days and can go to optional cancel_invitation -> End, or an explicitly requested InMail/email fallback. Never withdraw an accepted invitation. message, template_message, enhanced_message and inmail have replied and no_reply outputs. Every replied output goes directly to End. no_reply waits reply_wait_days, then goes to an optional follow-up or End. Do not add a second delay for that same waiting period. Withdrawal, scoring, InMail, follow-ups and email destinations are optional; never add them unless requested. A connection-only graph wires accepted and no_response to End. instantly, smartlead and emailbison require credential_id and campaign_id for the selected external campaign. InMail requires a Sales Navigator sender; open profiles can use free InMail subject to provider limits. No cycles, dangling outputs or unreachable nodes. Every branch terminates at End. Saving creates a draft only; inspect the saved graph and obtain launch authorization before starting.

Parameters

workspaceIdrequired
string
No description.
namerequired
string
No description.
description
string
No description.
assigned_accounts
string[]
No description.
senderAccountIds
string[]
Legacy alias for assigned_accounts.
workflow_definitionrequired
object
Campaign delivery graphs are distinct from Agent Workflows. Supply the complete nodes and edges to create-campaign or update-campaign-workflow. Start -> optional icp_scoring -> outreach. If scoring is present, all outreach paths must pass qualified; not_qualified ends without sending. Scoring must precede all sends or email campaign pushes. connection_request has accepted and no_response outputs. accepted continues to optional messages or End. no_response fires after wait_for_response_days and can go to optional cancel_invitation -> End, or an explicitly requested InMail/email fallback. Never withdraw an accepted invitation. message, template_message, enhanced_message and inmail have replied and no_reply outputs. Every replied output goes directly to End. no_reply waits reply_wait_days, then goes to an optional follow-up or End. Do not add a second delay for that same waiting period. Withdrawal, scoring, InMail, follow-ups and email destinations are optional; never add them unless requested. A connection-only graph wires accepted and no_response to End. instantly, smartlead and emailbison require credential_id and campaign_id for the selected external campaign. InMail requires a Sales Navigator sender; open profiles can use free InMail subject to provider limits. No cycles, dangling outputs or unreachable nodes. Every branch terminates at End. Saving creates a draft only; inspect the saved graph and obtain launch authorization before starting.

Example

CLI commandbash
pipeline create-campaign \
--name "example" \
--workspace-id "00000000-0000-4000-8000-000000000000" \
--workflow_definition-json '{"nodes":[{"id":"00000000-0000-4000-8000-000000000000","type":"start","position":{"x":1,"y":1},"data":{}}],"edges":[{"id":"00000000-0000-4000-8000-000000000000","source":"example","target":"example"}]}'

Response

Success response schemajson schema
{
"type": "object",
"properties": {
"campaign": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"workspace_id": {
"type": "string"
},
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"draft",
"active",
"paused",
"completed",
"scheduled",
"preparing",
"preparing_review"
]
},
"total_prospects": {
"type": "number"
},
"prospects_completed": {
"type": "number"
},
"prospects_active": {
"type": "number"
},
"auto_generated": {
"type": "boolean"
},
"source_tracker_id": {
"type": [
"string",
"null"
]
},
"brief_id": {
"type": [
"string",
"null"
]
},
"created_by": {
"type": "string"
},
"created_at": {
"type": "string"
},
"updated_at": {
"type": "string"
},
"workflow_definition": {
"type": "object",
"properties": {
"nodes": {
"type": "array",
"items": {
"type": "object"
}
},
"edges": {
"type": "array",
"items": {
"type": "object"
}
}
},
"required": [
"nodes",
"edges"
]
},
"assigned_accounts": {
"type": "array",
"items": {
"type": "string"
}
},
"started_at": {
"type": "string"
},
"completed_at": {
"type": "string"
},
"archived_at": {
"type": [
"string",
"null"
]
}
},
"required": [
"id",
"workspace_id",
"name",
"status"
]
}
},
"required": [
"campaign"
]
}

Exit codes

1
Invalid input or local configuration.
2
The API or tool returned an error.
3
Authentication failed.
4
A network request failed.
Pipeline CLI documentation | Pipeline