Skip to main content

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:

  1. Admission reserves a one-credit organization hold.
  2. The runtime checks available organization credits while the run executes.
  3. The runtime calculates usage from executed node occurrences and returned AI usage.
  4. Completion, failure, cancellation, or HITL handling settles the hold with the calculated amount, or releases it when no billable usage remains.
  5. 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 rules

This 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:

SurfaceCurrent hard limit or check
Non-Wait Flow nodeSoft execution timeout of 120 seconds
Flow Wait nodeDurable duration from 0 through 3,600 seconds
HTTP Request nodeRemote response body capped at 5 MiB
Generated Flow or Agent artifactRecognized generated file capped at 25 MiB
Loop-body result stored between iterations100,000 serialized characters, with a truncation marker when exceeded
Non-streaming Agent messageTrimmed, non-empty, at most 100,000 characters on the currently validated REST/hosted-MCP paths
Agent chat worker10-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 sourceExamplesCurrent behavior
Global feature flagflows.costCalculation, pricing.displayCreditsAsDollarsControls editor/display behavior; it is not a usage charge.
Plan activation limitproduct.flowLimitChecked when an ActionFlow changes to active.
Plan run concurrencyrun.concurrentFlowRunLimitChecked by the queue consumer before dispatch; the current direct-dispatch path does not dynamically enforce this limit.
Plan history countrun.flowRunLogLimitEnforced by pruning older history rows when the count is exceeded; it does not reject the new run.
Plan Agent limitsproduct.agentLimit, run.concurrentAgentSessionLimitChecked at Agent activation or session admission, with the exact behavior documented on Action Agent limits.
Storage and file settingsdata.storageLimit, data.maxFileSizeLimitUsed for calculation or UI display in current generic upload/artifact paths; they are not universal write-time quota enforcement.
Other configured fieldsrun.flowRunLogStoreTime, product.nodeLimitDo 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.

On this page