---
title: Create/modify Workflow
---

[Skip to content](#_top)

[API Reference](https://developers.cloudflare.com/api/go)

[Workflows](https://developers.cloudflare.com/api/go/resources/workflows)

Copy Markdown

Open in **Claude**Open in **ChatGPT**Open in **Cursor**

---

**Copy Markdown****View as Markdown**

# Create/modify Workflow

client.Workflows.Update(ctx, workflowName, params) (\*[WorkflowUpdateResponse](<https://developers.cloudflare.com/api/go/resources/workflows#(resource)%20workflows%20%3E%20(model)%20WorkflowUpdateResponse%20%3E%20(schema)>), error)

PUT/accounts/{account\_id}/workflows/{workflow\_name}

Creates a new workflow or updates an existing workflow definition.

##### Security

<details>

<summary>API Token</summary>



The preferred authorization scheme for interacting with the Cloudflare API. <a href="https://developers.cloudflare.com/fundamentals/api/get-started/create-token/">Create a token</a>.

**Example:**<code>Authorization: Bearer Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY</code>

</details>

<details>

<summary>API Email + API Key</summary>



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

**Example:**<code>X-Auth-Email: user@example.com</code>

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

**Example:**<code>X-Auth-Key: 144c9defac04969c7bfad8efaa8ea194</code>

</details>

##### Accepted Permissions (at least one required)

`Workers Scripts Write`

##### ParametersExpand Collapse

workflowName string

maxLength64

minLength1

[Link to this property](<#(resource)%20workflows%20%3E%20(method)%20update%20%3E%20(params)%20default%20%3E%20(param)%20workflow_name%20%3E%20(schema)>)

<details>

<summary>

params WorkflowUpdateParams

</summary>

AccountID param.Field\[string]

Path param

<a href="#(resource)%20workflows%20%3E%20(method)%20update%20%3E%20(params)%20default%20%3E%20(param)%20account_id">Link to this property</a>

ClassName param.Field\[string]

Body param

maxLength255

minLength1

<a href="#(resource)%20workflows%20%3E%20(method)%20update%20%3E%20(params)%20default%20%3E%20(param)%20class_name">Link to this property</a>

ScriptName param.Field\[string]

Body param

maxLength255

minLength1

<a href="#(resource)%20workflows%20%3E%20(method)%20update%20%3E%20(params)%20default%20%3E%20(param)%20script_name">Link to this property</a>

<details>

<summary>

Concurrency param.Field\[<a href="https://developers.cloudflare.com/api/go/resources/workflows/methods/update#(resource)%20workflows%20%3E%20(method)%20update%20%3E%20(params)%20default%20%3E%20(param)%20concurrency%20%3E%20(schema)">WorkflowUpdateParamsConcurrency</a>]Optional

Body param

</summary>

Limit int64Optional

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

<a href="#(resource)%20workflows%20%3E%20(method)%20update%20%3E%20(params)%20default%20%3E%20(param)%20concurrency%20%3E%20(schema)%20%3E%20(property)%20limit">Link to this property</a>

</details>

<a href="#(resource)%20workflows%20%3E%20(method)%20update%20%3E%20(params)%20default%20%3E%20(param)%20concurrency">Link to this property</a>

<details>

<summary>

DefaultRetention param.Field\[<a href="https://developers.cloudflare.com/api/go/resources/workflows/methods/update#(resource)%20workflows%20%3E%20(method)%20update%20%3E%20(params)%20default%20%3E%20(param)%20default_retention%20%3E%20(schema)">WorkflowUpdateParamsDefaultRetention</a>]Optional

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

</summary>

<details>

<summary>

ErrorRetention WorkflowUpdateParamsDefaultRetentionErrorRetentionUnionOptional

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

</summary>

One of the following:

UnionInt

<a href="#(resource)%20workflows%20%3E%20(method)%20update%20%3E%20(params)%20default%20%3E%20(param)%20default_retention%20%3E%20(schema)%20%3E%20(property)%20error_retention%20%3E%20(variant)%200">Link to this property</a>

UnionString

<a href="#(resource)%20workflows%20%3E%20(method)%20update%20%3E%20(params)%20default%20%3E%20(param)%20default_retention%20%3E%20(schema)%20%3E%20(property)%20error_retention%20%3E%20(variant)%201">Link to this property</a>

</details>

<a href="#(resource)%20workflows%20%3E%20(method)%20update%20%3E%20(params)%20default%20%3E%20(param)%20default_retention%20%3E%20(schema)%20%3E%20(property)%20error_retention">Link to this property</a>

<details>

<summary>

SuccessRetention WorkflowUpdateParamsDefaultRetentionSuccessRetentionUnionOptional

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

</summary>

One of the following:

UnionInt

<a href="#(resource)%20workflows%20%3E%20(method)%20update%20%3E%20(params)%20default%20%3E%20(param)%20default_retention%20%3E%20(schema)%20%3E%20(property)%20success_retention%20%3E%20(variant)%200">Link to this property</a>

UnionString

<a href="#(resource)%20workflows%20%3E%20(method)%20update%20%3E%20(params)%20default%20%3E%20(param)%20default_retention%20%3E%20(schema)%20%3E%20(property)%20success_retention%20%3E%20(variant)%201">Link to this property</a>

</details>

<a href="#(resource)%20workflows%20%3E%20(method)%20update%20%3E%20(params)%20default%20%3E%20(param)%20default_retention%20%3E%20(schema)%20%3E%20(property)%20success_retention">Link to this property</a>

</details>

<a href="#(resource)%20workflows%20%3E%20(method)%20update%20%3E%20(params)%20default%20%3E%20(param)%20default_retention">Link to this property</a>

<details>

<summary>

Limits param.Field\[<a href="https://developers.cloudflare.com/api/go/resources/workflows/methods/update#(resource)%20workflows%20%3E%20(method)%20update%20%3E%20(params)%20default%20%3E%20(param)%20limits%20%3E%20(schema)">WorkflowUpdateParamsLimits</a>]Optional

Body param

</summary>

Steps int64Optional

maximum9007199254740991

minimum1

<a href="#(resource)%20workflows%20%3E%20(method)%20update%20%3E%20(params)%20default%20%3E%20(param)%20limits%20%3E%20(schema)%20%3E%20(property)%20steps">Link to this property</a>

</details>

<a href="#(resource)%20workflows%20%3E%20(method)%20update%20%3E%20(params)%20default%20%3E%20(param)%20limits">Link to this property</a>

<details>

<summary>

Schedules param.Field\[\[]WorkflowUpdateParamsSchedule]Optional

Body param

</summary>

Cron string

maxLength256

minLength1

<a href="#(resource)%20workflows%20%3E%20(method)%20update%20%3E%20(params)%20default%20%3E%20(param)%20schedules%20%3E%20(schema)%20%3E%20(items)%20%3E%20(property)%20cron">Link to this property</a>

</details>

<a href="#(resource)%20workflows%20%3E%20(method)%20update%20%3E%20(params)%20default%20%3E%20(param)%20schedules">Link to this property</a>

</details>

[Link to this property](<#(resource)%20workflows%20%3E%20(method)%20update%20%3E%20(params)%20default>)

##### ReturnsExpand Collapse

<details>

<summary>

type WorkflowUpdateResponse struct{…}

</summary>

ID string

formatuuid

<a href="#(resource)%20workflows%20%3E%20(model)%20WorkflowUpdateResponse%20%3E%20(schema)%20%3E%20(property)%20id">Link to this property</a>

ClassName string

<a href="#(resource)%20workflows%20%3E%20(model)%20WorkflowUpdateResponse%20%3E%20(schema)%20%3E%20(property)%20class_name">Link to this property</a>

CreatedOn Time

formatdate-time

<a href="#(resource)%20workflows%20%3E%20(model)%20WorkflowUpdateResponse%20%3E%20(schema)%20%3E%20(property)%20created_on">Link to this property</a>

IsDeleted float64

<a href="#(resource)%20workflows%20%3E%20(model)%20WorkflowUpdateResponse%20%3E%20(schema)%20%3E%20(property)%20is_deleted">Link to this property</a>

ModifiedOn Time

formatdate-time

<a href="#(resource)%20workflows%20%3E%20(model)%20WorkflowUpdateResponse%20%3E%20(schema)%20%3E%20(property)%20modified_on">Link to this property</a>

Name string

maxLength64

minLength1

<a href="#(resource)%20workflows%20%3E%20(model)%20WorkflowUpdateResponse%20%3E%20(schema)%20%3E%20(property)%20name">Link to this property</a>

ScriptName string

<a href="#(resource)%20workflows%20%3E%20(model)%20WorkflowUpdateResponse%20%3E%20(schema)%20%3E%20(property)%20script_name">Link to this property</a>

TerminatorRunning float64

<a href="#(resource)%20workflows%20%3E%20(model)%20WorkflowUpdateResponse%20%3E%20(schema)%20%3E%20(property)%20terminator_running">Link to this property</a>

TriggeredOn Time

formatdate-time

<a href="#(resource)%20workflows%20%3E%20(model)%20WorkflowUpdateResponse%20%3E%20(schema)%20%3E%20(property)%20triggered_on">Link to this property</a>

VersionID string

formatuuid

<a href="#(resource)%20workflows%20%3E%20(model)%20WorkflowUpdateResponse%20%3E%20(schema)%20%3E%20(property)%20version_id">Link to this property</a>

</details>

[Link to this property](<#(resource)%20workflows%20%3E%20(model)%20WorkflowUpdateResponse%20%3E%20(schema)>)

### Create/modify Workflow

Go

HTTPTypeScriptPythonGoTerraform

```
package main

import (
  "context"
  "fmt"

  "github.com/cloudflare/cloudflare-go"
  "github.com/cloudflare/cloudflare-go/option"
  "github.com/cloudflare/cloudflare-go/workflows"
)

func main() {
  client := cloudflare.NewClient(
    option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"),
  )
  workflow, err := client.Workflows.Update(
    context.TODO(),
    "x",
    workflows.WorkflowUpdateParams{
      AccountID: cloudflare.F("account_id"),
      ClassName: cloudflare.F("x"),
      ScriptName: cloudflare.F("x"),
    },
  )
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", workflow.ID)
}
```

200 example

```
{
  "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

200 example

```
{
  "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
  }
}
```