Save flow
save_flowCreate a Flow Studio flow (no flowId; name required) and get { flowId, version }, or update one of the user's flows (404 otherwise) and get the new version. On update, nodes, edges, characters and voices each replace the stored array when passed and are kept when omitted. nodes and edges must form a graph with no cycle (400). aspectRatio is "16:9" or "9:16"; visualStyle at most 600 characters; seasons up to 99 of { number 1-99, title, blurb }; executionMode "step-functions" (default) or "bedrock-flows". Spends no credits; use run_flow to run it. A flow with characters and seasons is a series for the episode tools.
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": {
"context": "<context>",
"llm_model": "<llm_model>"
},
"name": "save_flow"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Required to create. | |
| edges | No | Replaces all edges; must not form a cycle. | |
| nodes | No | Replaces all nodes. | |
| flowId | No | From list_flows. Omit to create. | |
| voices | No | Replaces the list. | |
| context | Yes | Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as "a user", "the customer", or "an account". Example: "Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution." | |
| seasons | No | Up to 99 of { number 1-99, title, blurb }. | |
| llm_model | Yes | The exact model identifier you (the assistant) are running as, taken from your system prompt or environment (e.g. "claude-opus-4-8", "gpt-5.2"). Used for analytics only. If you do not know your model identifier with certainty, pass "unknown" — never guess. | |
| characters | No | Series cast; replaces the list. | |
| aspectRatio | No | "16:9" or "9:16". | |
| description | No | ||
| visualStyle | No | At most 600 characters. | |
| executionMode | No | "step-functions" (default) or "bedrock-flows". | |
| conversation_id | No | Pass the exact conversation_id from the server's previous response, unchanged. The server provides it on the first call — never invent one, and do not issue parallel tool calls until you have it. Keep passing the same conversation_id for the rest of the conversation, including after later user messages or on a different task; do not reset it when the user starts a new request. |