All Products
Search
Document Center

CloudFlow:CreateFlow

Last Updated:Mar 30, 2026

Creates a flow.

Operation description

Description

  • The number of flows that each user can create is subject to resource limits. For more information, see Limits. If you have special requirements, submit a ticket to request a limit adjustment.

  • Flows are uniquely identified by name within an account. Therefore, you cannot create multiple flows with the same name under a single account.

Try it now

Try this API in OpenAPI Explorer, no manual signing needed. Successful calls auto-generate SDK code matching your parameters. Download it with built-in credential security for local usage.

Test

RAM authorization

The table below describes the authorization required to call this API. You can define it in a Resource Access Management (RAM) policy. The table's columns are detailed below:

  • Action: The actions can be used in the Action element of RAM permission policy statements to grant permissions to perform the operation.

  • API: The API that you can call to perform the action.

  • Access level: The predefined level of access granted for each API. Valid values: create, list, get, update, and delete.

  • Resource type: The type of the resource that supports authorization to perform the action. It indicates if the action supports resource-level permission. The specified resource must be compatible with the action. Otherwise, the policy will be ineffective.

    • For APIs with resource-level permissions, required resource types are marked with an asterisk (*). Specify the corresponding Alibaba Cloud Resource Name (ARN) in the Resource element of the policy.

    • For APIs without resource-level permissions, it is shown as All Resources. Use an asterisk (*) in the Resource element of the policy.

  • Condition key: The condition keys defined by the service. The key allows for granular control, applying to either actions alone or actions associated with specific resources. In addition to service-specific condition keys, Alibaba Cloud provides a set of common condition keys applicable across all RAM-supported services.

  • Dependent action: The dependent actions required to run the action. To complete the action, the RAM user or the RAM role must have the permissions to perform all dependent actions.

Action

Access level

Resource type

Condition key

Dependent action

fnf:CreateFlow

create

*Flow

acs:fnf:{#regionId}:{#accountId}:flow/*

None None

Request parameters

Parameter

Type

Required

Description

Example

Name

string

Yes

The name of the flow. The name must be unique within the same region and cannot be changed after the flow is created. The name must meet the following requirements:

  • It can contain letters (a to z and A to Z), digits (0 to 9), underscores (_), and hyphens (-).

  • It must start with a letter or an underscore (_).

  • It is case-sensitive.

  • It must be 1 to 128 characters in length.

my_flow_name

Definition

string

Yes

The definition of the flow. It must comply with the Flow Definition Language (FDL) syntax. For forward compatibility, the system supports two versions of the flow definition specification.

Note

In the example flow definitions, Name: my_flow_name refers to the flow name and must be the same as the Name input parameter.

Legacy version: " type: flow version: v1 name: my_flow_name steps: - type: pass name: mypass " New version: " Type: StateMachine SpecVersion: v1 Name: my_flow_name StartAt: my_state States: - Type: Pass Name: my_state End: true "

Description

string

Yes

The description of the flow.

my test flow

Type

string

Yes

The type of the flow. The value must be FDL.

Valid values:

  • FDL :

    Flow Definition Language

FDL

RoleArn

string

No

The resource descriptor for the role that the flow relies on for execution. When the flow runs, Serverless Workflow assumes this role (AssumeRole) to operate on related flow resources.

acs:ram:${region}:${accountID}:${role}

ExternalStorageLocation

string

No

The external storage location.

/path

ExecutionMode

string

No

The execution mode. This is an enumeration type. Valid values are Express and Standard. For forward compatibility, an empty string is treated as the Standard execution mode.

Valid values:

  • Express :

    The express execution mode

  • Standard :

    The standard execution mode

Standard

Environment

object

No

The environment context that the flow can access during execution.

Variables

array<object>

No

A list of environment variables that the flow can access during execution.

object

No

A list of variables that the flow can access during execution.

Name

string

No

The variable name.

key

Value

string

No

The variable value.

value

Description

string

No

The variable description.

description

ResourceGroupId

string

No

Response elements

Element

Type

Description

Example

object

The returned data.

Type

string

The type of the flow.

Valid values:

  • FDL :

    Flow Definition Language

FDL

Definition

string

The definition of the flow. For forward compatibility, the system supports two versions of the flow definition specification.

Legacy version: "type: flow\nversion: v1\nname: my_flow_name\nsteps:\n - type: pass\n name: mypass" New version: "Type: StateMachine\nSpecVersion: v1\nName: my_flow_name\nStartAt: my_state\nStates:\n - Type: Pass\n Name: my_state\n End: true"

RoleArn

string

The resource descriptor for the role that the flow relies on for execution. When the flow runs, Serverless Workflow assumes this role (AssumeRole) to operate on related flow resources.

acs:ram:${region}:${accountID}:${role}

RequestId

string

The request ID. Serverless Workflow returns a request ID for every request that receives an http status code.

testRequestID

Description

string

The description of the flow.

my test flow

Name

string

The name of the flow.

my_flow_name

CreatedTime

string

The time when the flow was created.

2019-01-01T01:01:01.001Z

LastModifiedTime

string

The time when the flow was last modified.

2019-01-01T01:01:01.001Z

Id

string

The unique ID of the flow.

e589e092-e2c0-4dee-b306-3574ddfdddf5****

ExecutionMode

string

The execution mode. This is an enumeration type. Valid values are Express and Standard. For forward compatibility, this field can be an empty string, which is treated as the Standard mode.

Standard

Environment

object

A list of variables that the flow can access during execution.

Variables

array<object>

A list of variables that the flow can access during execution.

object

A list of variables that the flow can access during execution.

Name

string

The variable name.

key

Value

string

The variable value.

value

Description

string

The variable description.

description

ResourceGroupId

string

rg-xxx

Examples

Success response

JSON format

{
  "Type": "FDL",
  "Definition": "Legacy version:\n\"type: flow\\nversion: v1\\nname: my_flow_name\\nsteps:\\n  - type: pass\\n    name: mypass\"\n\nNew version:\n\"Type: StateMachine\\nSpecVersion: v1\\nName: my_flow_name\\nStartAt: my_state\\nStates:\\n  - Type: Pass\\n    Name: my_state\\n    End: true\"",
  "RoleArn": "acs:ram:${region}:${accountID}:${role}",
  "RequestId": "testRequestID",
  "Description": "my test flow",
  "Name": "my_flow_name",
  "CreatedTime": "2019-01-01T01:01:01.001Z",
  "LastModifiedTime": "2019-01-01T01:01:01.001Z",
  "Id": "e589e092-e2c0-4dee-b306-3574ddfdddf5****",
  "ExecutionMode": "Standard",
  "Environment": {
    "Variables": [
      {
        "Name": "key",
        "Value": "value",
        "Description": "description"
      }
    ]
  },
  "ResourceGroupId": "rg-xxx"
}

Error codes

HTTP status code

Error code

Error message

Description

400 ActionNotSupported The requested API operation '%s' is incorrect. Please check.
400 APIVersionNotSupported The requested API version '%s' is not supported yet. Please check.
400 EntityTooLarge The payload size exceeds maximum allowed size (%s bytes). The payload size exceeds maximum allowed size (%s bytes).
400 InvalidArgument Parameter error. Parameter error.
400 MissingRequiredHeader The HTTP header '%s' must be specified. The HTTP header '%s' must be specified.
400 MissingRequiredParams The HTTP query '%s' must be specified. The HTTP query '%s' must be specified.
500 InternalServerError An internal error has occurred. Please retry. An internal error has occurred. Please retry.
403 AccessDenied The resources doesn't belong to you.
403 InvalidAccessKeyID The AccessKey ID %s is invalid. The AccessKey ID %s is invalid.
403 RequestTimeTooSkewed The difference between the request time %s and the current time %s is too large. The difference between the request time %s and the current time %s is too large.
403 SignatureNotMatch The request signature we calculated does not match the signature you provided. Check your access key and signing method. The calculated signature of the request does not match the signature you provided. Check your AccessKey Secret and signing algorithm.
415 UnsupportedMediaType The content type must be "application/json". The content type must be "application/json".
429 ResourceThrottled The request is throttled. Please try again later. The request is throttled. Please try again later.
409 FlowAlreadyExists Flow %s already exists. Flow %s already exists.

See Error Codes for a complete list.

Release notes

See Release Notes for a complete list.