instantiate_playbook
Run a playbook: create one content plan per playbook item, in order, as a batch. Plans land in the Accepted stage with source "playbook" and INHERIT the playbook's visibility (team playbook → team plans; private playbook → private plans). Optionally anchor due dates to a date (each item's offset_days is applied to anchor_date; defaults to the playbook's saved anchor_date if it has one) and/or scope the batch to a project.
The response groups the plans under a new CYCLE — use run.link_url to hand the user "here's your cycle" and each plan's link_url for the individual pieces.
When to use: when the user wants to actually deploy / kick off / run a saved playbook into real content plans (e.g. "run my launch playbook", "instantiate this template anchored to next Monday"). This is a distinct bulk action — it does NOT create or edit the playbook itself.
**Links:** present `link_url` to the user exactly as returned — copy it character for character. Never retype, shorten, or rebuild a link or the IDs inside it.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": {
"playbook_id": "<playbook_id>"
},
"name": "instantiate_playbook"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | No | Scope every created plan to this project (optional). | |
| anchor_date | No | The reference date every item's `offset_days` counts from: each plan's due_date = anchor_date + offset_days. Three distinct cases, so choose deliberately — OMIT the field to inherit the playbook's own saved anchor_date (due dates are only unset if the playbook has no saved anchor either); pass an explicit null (or empty string) to force NO anchor, which leaves every due date unset even when the playbook has a saved one; or pass a YYYY-MM-DD date to override with that date. Any other format is rejected. When the user names a date ("anchored to next Monday") send it explicitly; when they just say "run my playbook" omit the field so their saved anchor is honored. | |
| assigned_to | No | User id to assign the created plans to. Defaults to the caller. | |
| category_id | No | Override the content category for every created plan (optional). | |
| playbook_id | Yes | Numeric id of the saved playbook to run — the `id` from list_playbooks or the trailing number in its link_url, not a UUID. If you only have the playbook's name, call list_playbooks first to resolve the id. The playbook must contain at least one item; running an empty playbook fails. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| run | No | The created cycle: id, name (auto-named "<playbook> — <Mon YYYY>" unless you passed a name), anchor_date, and link_url (https://app.marcora.ai/runs/{run_id}) — share it to hand the user their new cycle. | |
| plans | No | ||
| run_id | No | ID of the cycle (run) this instantiation created — the group its plans belong to. | |
| playbook_id | No | ||
| created_count | No | Number of plans created (one per playbook item). |