Usage & Cost
Separate ActionFlow estimates from settled credits, identify hard runtime limits, and label CMS plan settings by their actual enforcement.
Usage & cost
ActionFlows exposes two different cost concepts:
- an estimate calculated from the current graph and model configuration; and
- settled credits calculated from the nodes and provider usage that actually executed.
They can differ. An estimate is not a bill, a reservation is not a final charge, and a configured plan value is not automatically enforced by every write path.
Actionflow Studio estimate
The Actionflow Studio bottom panel shows an estimate only when the global CMS feature flag flows.costCalculation is enabled. This is a feature flag, not a per-organization credit balance or a promise that the estimate is exact.
The current estimator:
- walks nodes connected to a start node;
- includes configured catalog credit costs where present;
- estimates AI work with modality and token fallbacks based on the selected model and configured maximum output tokens; and
- adds a time and complexity summary for the editor.
It does not execute the graph, observe the actual branch, count every Loop iteration, or know the provider's final token usage. Treat it as a planning signal.
A model label, a configured max tokens value, and the Actionflow Studio estimate do not determine the final credit charge. Provider usage, the returned usage record, loop occurrences, failed work, BYOK selection, and runtime credit rules are separate inputs.
Settled ActionFlow credits
A Flow run follows this credit lifecycle:
- Admission reserves a one-credit organization hold.
- The runtime checks available organization credits while the run executes.
- The runtime calculates usage from executed node occurrences and returned AI usage.
- Completion, failure, cancellation, or HITL handling settles the hold with the calculated amount, or releases it when no billable usage remains.
- Run history and Flow Usage show the settled amount and any per-node credit lines.
The current non-AI path can charge a catalog node's configured creditCost. The AI path uses detailed provider usage when it is available and a modality minimum when it is not. An organization-owned BYOK AI service is handled differently from platform-backed AI and is not automatically charged as a platform AI call. External providers can still bill their own usage.
A failed run can retain billable usage from the prefix that ran before the failure. A run with no billable usage can release the hold. A successful admission response therefore does not mean that the final settled amount is zero or equal to the estimate.
Estimate versus settlement
Actionflow Studio estimate = configured graph estimates + fallback AI estimates
Settled credits = executed billable node occurrences
+ platform AI usage or runtime minimum
+ applicable runtime credit rulesThis is a conceptual equation, not a billing guarantee. Use run history and Flow Usage for the amount actually charged.
ActionFlow versus Action Agent usage
An ActionFlow run is one graph execution. An Action Agent session is a durable conversation that can contain multiple user messages and assistant turns. Do not use a session ID as a Flow run ID or assume that one session has one run-shaped cost record.
- A platform-backed Agent turn can require organization credits and records model usage on the Agent's Usage surface.
- An Agent configured with an organization-owned provider key uses BYOK and does not use ActionFlows platform chat credits; the provider or other tools may still have external costs.
- An ActionFlow containing an Action Agent node has both concepts: the outer graph produces a Flow run, while the node can start or continue an Agent session. Session persistence does not make the outer graph a session.
See ActionFlow usage, Action Agent usage, and Cloud Action Agents.
Hard runtime limits
These are code-level checks and are independent of CMS plan fields:
| Surface | Current hard limit or check |
|---|---|
| Non-Wait Flow node | Soft execution timeout of 120 seconds |
| Flow Wait node | Durable duration from 0 through 3,600 seconds |
| HTTP Request node | Remote response body capped at 5 MiB |
| Generated Flow or Agent artifact | Recognized generated file capped at 25 MiB |
| Loop-body result stored between iterations | 100,000 serialized characters, with a truncation marker when exceeded |
| Non-streaming Agent message | Trimmed, non-empty, at most 100,000 characters on the currently validated REST/hosted-MCP paths |
| Agent chat worker | 10-minute idle suspend, 10-minute turn timeout, and 1-hour maximum chat-run duration |
The non-streaming Agent message limit is surface-specific. The current SSE and SDK streaming paths do not use the same shared request schema, so do not treat it as a universal streaming limit.
CMS feature flags and plan values
The CMS contains both feature flags and plan-limit fields. Their enforcement paths differ:
| CMS source | Examples | Current behavior |
|---|---|---|
| Global feature flag | flows.costCalculation, pricing.displayCreditsAsDollars | Controls editor/display behavior; it is not a usage charge. |
| Plan activation limit | product.flowLimit | Checked when an ActionFlow changes to active. |
| Plan run concurrency | run.concurrentFlowRunLimit | Checked by the queue consumer before dispatch; the current direct-dispatch path does not dynamically enforce this limit. |
| Plan history count | run.flowRunLogLimit | Enforced by pruning older history rows when the count is exceeded; it does not reject the new run. |
| Plan Agent limits | product.agentLimit, run.concurrentAgentSessionLimit | Checked at Agent activation or session admission, with the exact behavior documented on Action Agent limits. |
| Storage and file settings | data.storageLimit, data.maxFileSizeLimit | Used for calculation or UI display in current generic upload/artifact paths; they are not universal write-time quota enforcement. |
| Other configured fields | run.flowRunLogStoreTime, product.nodeLimit | Do not assume enforcement merely because the field exists in the CMS record. |
Before documenting or relying on a plan number, identify the server path that reads it and the operation that enforces it. A CMS value can be configured, calculated, displayed, used for one path, or completely unenforced.
Cost controls
- Choose a model whose quality and cost fit the task.
- Set a deliberate output-token ceiling where the node supports it.
- Test the full graph before enabling a high-frequency trigger.
- Account for Loop iterations and provider minimums.
- Keep BYOK and platform-backed usage separate in dashboards.
- Treat external provider invoices as a separate cost surface.
Related
AI Model Selection Guide
Choose the right AI model for every ActionFlows node. Compare providers, models, capabilities, and cost trade-offs to balance quality, speed, and budget.
ActionFlow Requirements
The current ActionFlow validation surfaces, reachable-node checks, required inputs, and API versus webhook status codes.