Skip to content
Start here

Create/modify Workflow

workflows.update(strworkflow_name, WorkflowUpdateParams**kwargs) -> WorkflowUpdateResponse
PUT/accounts/{account_id}/workflows/{workflow_name}

Creates a new workflow or updates an existing workflow definition.

Security
API Token

The preferred authorization scheme for interacting with the Cloudflare API. Create a token.

Example:Authorization: Bearer Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY
API Email + API Key

The previous authorization scheme for interacting with the Cloudflare API, used in conjunction with a Global API key.

Example:X-Auth-Email: user@example.com

The previous authorization scheme for interacting with the Cloudflare API. When possible, use API tokens instead of Global API keys.

Example:X-Auth-Key: 144c9defac04969c7bfad8efaa8ea194
Accepted Permissions (at least one required)
Workers Scripts Write
ParametersExpand Collapse
account_id: str
workflow_name: str
maxLength64
minLength1
class_name: str
maxLength255
minLength1
script_name: str
maxLength255
minLength1
concurrency: Optional[Concurrency]
limit: Optional[int]

Maximum number of instances of this workflow that can run concurrently. Additional instances are queued and started as running instances complete. Must not exceed the account concurrency limit.

maximum9007199254740991
minimum1
default_retention: Optional[DefaultRetention]

Default retention applied to instances of this version when they do not set their own retention.

error_retention: Optional[Union[int, str]]

Specifies the duration in milliseconds or as a string like ‘5 minutes’.

One of the following:
int

Specifies the duration in milliseconds.

str
success_retention: Optional[Union[int, str]]

Specifies the duration in milliseconds or as a string like ‘5 minutes’.

One of the following:
int

Specifies the duration in milliseconds.

str
limits: Optional[Limits]
steps: Optional[int]
maximum9007199254740991
minimum1
schedules: Optional[Iterable[Schedule]]
cron: str
maxLength256
minLength1
ReturnsExpand Collapse
class WorkflowUpdateResponse:
id: str
formatuuid
class_name: str
created_on: datetime
formatdate-time
is_deleted: float
modified_on: datetime
formatdate-time
name: str
maxLength64
minLength1
script_name: str
terminator_running: float
triggered_on: Optional[datetime]
formatdate-time
version_id: str
formatuuid

Create/modify Workflow

import os
from cloudflare import Cloudflare

client = Cloudflare(
    api_token=os.environ.get("CLOUDFLARE_API_TOKEN"),  # This is the default and can be omitted
)
workflow = client.workflows.update(
    workflow_name="x",
    account_id="account_id",
    class_name="x",
    script_name="x",
)
print(workflow.id)
{
  "errors": [],
  "messages": [
    {
      "code": 0,
      "message": "message"
    }
  ],
  "result": {
    "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
    "class_name": "class_name",
    "created_on": "2019-12-27T18:11:19.117Z",
    "is_deleted": 0,
    "modified_on": "2019-12-27T18:11:19.117Z",
    "name": "x",
    "script_name": "script_name",
    "terminator_running": 0,
    "triggered_on": "2019-12-27T18:11:19.117Z",
    "version_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"
  },
  "success": true,
  "result_info": {
    "count": 0,
    "per_page": 0,
    "total_count": 0,
    "cursor": "cursor",
    "page": 0,
    "total_pages": 0
  }
}
Returns Examples
{
  "errors": [],
  "messages": [
    {
      "code": 0,
      "message": "message"
    }
  ],
  "result": {
    "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
    "class_name": "class_name",
    "created_on": "2019-12-27T18:11:19.117Z",
    "is_deleted": 0,
    "modified_on": "2019-12-27T18:11:19.117Z",
    "name": "x",
    "script_name": "script_name",
    "terminator_running": 0,
    "triggered_on": "2019-12-27T18:11:19.117Z",
    "version_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"
  },
  "success": true,
  "result_info": {
    "count": 0,
    "per_page": 0,
    "total_count": 0,
    "cursor": "cursor",
    "page": 0,
    "total_pages": 0
  }
}