Skip to content
Start here

Create/modify Workflow

client.Workflows.Update(ctx, workflowName, params) (*WorkflowUpdateResponse, error)
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
workflowName string
maxLength64
minLength1
params WorkflowUpdateParams
AccountID param.Field[string]

Path param

ClassName param.Field[string]

Body param

maxLength255
minLength1
ScriptName param.Field[string]

Body param

maxLength255
minLength1
Concurrency param.Field[WorkflowUpdateParamsConcurrency]Optional

Body param

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
DefaultRetention param.Field[WorkflowUpdateParamsDefaultRetention]Optional

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

ErrorRetention WorkflowUpdateParamsDefaultRetentionErrorRetentionUnionOptional

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

One of the following:
UnionInt
UnionString
SuccessRetention WorkflowUpdateParamsDefaultRetentionSuccessRetentionUnionOptional

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

One of the following:
UnionInt
UnionString
Limits param.Field[WorkflowUpdateParamsLimits]Optional

Body param

Steps int64Optional
maximum9007199254740991
minimum1
Schedules param.Field[[]WorkflowUpdateParamsSchedule]Optional

Body param

Cron string
maxLength256
minLength1
ReturnsExpand Collapse
type WorkflowUpdateResponse struct{…}
ID string
formatuuid
ClassName string
CreatedOn Time
formatdate-time
IsDeleted float64
ModifiedOn Time
formatdate-time
Name string
maxLength64
minLength1
ScriptName string
TerminatorRunning float64
TriggeredOn Time
formatdate-time
VersionID string
formatuuid

Create/modify Workflow

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