You can now deploy and manage Workflows in Terraform
You can now create and manage Workflows using Terraform, now supported in the Cloudflare Terraform provider v5.11.0 ↗. Workflows allow you to build durable, multi-step applications -- without needing to worry about retrying failed tasks or managing infrastructure.
Now, you can deploy and manage Workflows through Terraform using the new cloudflare_workflow resource ↗:
resource "cloudflare_workflow" "my_workflow" {  account_id    = var.account_id  workflow_name = "my-workflow"  class_name    = "MyWorkflow"  script_name   = "my-worker"}Here are full examples of how to configure cloudflare_workflow in Terraform, using the existing cloudflare_workers_script resource ↗, and the beta cloudflare_worker_version resource ↗.
resource "cloudflare_workers_script" "workflow_worker" {  account_id  = var.cloudflare_account_id  script_name = "my-workflow-worker"
  content_file   = "${path.module}/../dist/worker/index.js"  content_sha256 = filesha256("${path.module}/../dist/worker/index.js")  main_module    = "index.js"}
resource "cloudflare_workflow" "workflow" {  account_id    = var.cloudflare_account_id  workflow_name = "my-workflow"  class_name    = "MyWorkflow"  script_name   = cloudflare_workers_script.workflow_worker.script_name}You can more granularly control the lifecycle of each Worker resource using the beta cloudflare_worker_version ↗ resource, alongside the cloudflare_worker ↗ and cloudflare_workers_deployment ↗ resources.
resource "cloudflare_worker" "workflow_worker" {  account_id = var.cloudflare_account_id  name       = "my-workflow-worker"}
resource "cloudflare_worker_version" "workflow_worker_version" {  account_id = var.cloudflare_account_id  worker_id  = cloudflare_worker.workflow_worker.id
  main_module         = "index.js"
  modules = [{    name         = "index.js"    content_file = "${path.module}/../dist/worker/index.js"    content_type = "application/javascript+module"  }]}
resource "cloudflare_workers_deployment" "workflow_deployment" {  account_id  = var.cloudflare_account_id  script_name = cloudflare_worker.workflow_worker.name
  strategy = "percentage"  versions = [{    version_id = cloudflare_worker_version.workflow_worker_version.id    percentage = 100  }]}
resource "cloudflare_workflow" "my_workflow" {  account_id    = var.cloudflare_account_id  workflow_name = "my-workflow"  class_name    = "MyWorkflow"  script_name   = cloudflare_worker.workflow_worker.name}- Get started with the Cloudflare Terraform provider (v5.11.0) ↗ and the new 
cloudflare_workflowresource ↗. 
Was this helpful?
- Resources
 - API
 - New to Cloudflare?
 - Directory
 - Sponsorships
 - Open Source
 
- Support
 - Help Center
 - System Status
 - Compliance
 - GDPR
 
- Company
 - cloudflare.com
 - Our team
 - Careers
 
- © 2025 Cloudflare, Inc.
 - Privacy Policy
 - Terms of Use
 - Report Security Issues
 - Trademark