campaign_plan_create
Write down what you intend to run — on which channels, for whom, for how much, over what period.
Creates a Campaign Plan: a statement of intent you can sum, execute, and later compare against what actually ran.
Input
| Field | Type | Required | Description |
|---|---|---|---|
name |
string |
yes | Display name, e.g. "Q4 Acquisition". |
description |
string |
yes | One-line summary used to pick this plan from a list. |
currency |
string |
yes | ISO 4217. Changeable until a Line Item carries a budget. |
slug |
string |
no | Explicit handle; normalized to kebab-case. Defaults to one derived from the name. |
brand_name |
string |
no | The brand this plan is for. A plan may precede its brand, or cover several. |
total_budget |
number |
no | The envelope, in whole units of the currency. Omit for “no declared constraint”. |
start_date / end_date |
YYYY-MM-DD |
no | Either may be omitted. No end date means always-on. |
rationale |
string |
no | The argument for the split — what a reviewer approves. |
measurement |
string |
no | How success will be judged. |
Example
campaign_plan_create({
name: 'Q4 Acquisition',
description: 'Prospecting across Meta and TikTok, Oct–Dec.',
currency: 'EUR',
total_budget: 100_000, // €100,000.00
start_date: '2026-10-01',
end_date: '2026-12-31',
rationale: 'Meta carries the proven CPA; TikTok is a 30% test we can cut.',
});
// → { campaignPlan: { slug: 'q4-acquisition', status: 'draft', revision: 1, … } }
Requires the campaign_plan:write scope.