Workflow Intent Plan Gating
Workflow intent is a Production and Enterprise feature. Starter callers receive the standard plan-upgrade error envelope before a workflow declaration, amendment, completion, or read operation is processed.
Supported plans
| Plan | Workflow intent support |
|---|---|
| Starter | Blocked with plan.upgrade_required. |
| Production | Full support. |
| Enterprise | Full support. |
Error envelope
Starter callers receive:
{
"error": {
"code": "plan.upgrade_required",
"message": "Workflow intent requires the Production plan.",
"details": {
"required_plan": "production",
"current_plan": "starter",
"feature": "workflow_intent"
}
}
}| Field | Meaning |
|---|---|
error.code | Stable error code. Workflow intent uses the shared plan.upgrade_required code for plan gating. |
error.message | Human-readable summary. |
error.details.required_plan | Minimum required plan for the feature. |
error.details.current_plan | Caller project’s current plan. |
error.details.feature | Feature key being gated. For workflow intent this is workflow_intent. |
Notes
- Plan gating is separate from workflow reason codes. It uses
plan.upgrade_required, not aworkflow_intent.*reason code. - A blocked declaration does not create a workflow record.
- Production+ callers can still be rejected by policy, budget, rate limits, idempotency conflicts, or amendment version conflicts after entitlement passes.
Last updated on Edit this page on GitHub