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
Example
{"jsonrpc": "2.0","id": 1,"method": "tools/call","params": {"name": "create-campaign","arguments": {"name": "example","workspaceId": "00000000-0000-4000-8000-000000000000","workflow_definition": {"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
{"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"]}
JSON-RPC errors
- -32602
- Invalid parameters. Field-level details are returned in the JSON-RPC error data.
- -32001
- Authentication or hosted AI consent is required.
- -32003
- Workspace access is denied.
- -32029
- The request was rate limited.