Save Strategy Item
save_strategy_itemCreates or updates one strategy item: kind = persona | pillar | angle | market | buyer_question | kpi_target. Personas, pillars and angles are the Messaging page (/messaging); an angle is one persona × pillar pair, so create it with fields.personaId and fields.pillarId from get_brand_context. Markets are the Markets page (/markets); to add one from a place name, set_up_market resolves the codes for you. Pass id to update an existing item. For a persona, pillar, angle or market, send only the fields that change; the rest, and the active flag, keep their saved values. Pillar and angle slugs cannot change after creation. A new market without priority goes after every existing one; a locationCode and languageCode pair must be one list_market_locations returns. Pass id and active only (no fields) to deactivate (false) or reactivate (true) a persona, pillar, angle, market, or buyer question without deleting it. KPI targets are the Targets page (/targets): one target per metric per month. Saving a metric and month that already has one is refused with that target's id; to change it, pass its id and fields.value only (metric and month cannot change). engagement_rate is a percent: send 4.5 for 4.5%. KPI targets have no active flag — passing active is refused. Delete a KPI with delete_strategy_item. Read targets with their actuals and progress from get_content_performance (kpis). Buyer question text cannot be edited in place — create a new one, retire it with active: false, or delete it with delete_strategy_item. A buyer question's topic (a short label, max 60 characters) can change any time: pass id with fields.topic, or empty to clear. It touches no past or future check. Creating a buyer question also returns item.firstCheck { questions, markets, engines, checks }: what the next AI answer check sends (active questions × active markets with a location × engines). suggest_buyer_questions lists questions to start with. Returns appUrl, the page where a person sees the item. Related: get_brand_context, suggest_buyer_questions, delete_strategy_item, set_up_market, list_market_locations, get_content_performance.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"kind": "<kind>"
},
"name": "save_strategy_item"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Existing item id. Omit to create. | |
| kind | Yes | Which kind of strategy item. | |
| active | No | false retires the item without deleting it. | |
| fields | No | Kind-specific fields. persona: name, slug, wants, convincedBy (list), objections (list; put the answer in the line as objection: answer), pains (list), jobs (list: jobs to be done), language (list: phrases the customer uses, in their words). pillar: name, slug, formats (list), notes. angle: name, slug, personaId, pillarId. Lists and notes are optional on create. market: name, country (ISO code such as US), timezone (IANA, such as America/New_York), priority (lower comes first; optional on create), locationCode and languageCode (from list_market_locations; null clears them). buyer_question: question, topic (optional; a short label, max 60 characters; empty clears it). kpi_target: metric (posts_per_week | impressions | engagement_rate | leads | qualified | rejection_rate | cost_per_lead), month (YYYY-MM), value (zero or more, up to 4 decimal places; engagement_rate in percent, so 4.5 means 4.5%). |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| item | Yes | ||
| kind | Yes | ||
| appUrl | Yes |