Skip to main content
PATCH
/
v1
/
workflows
/
{workflow_id}
Update Workflow
curl --request PATCH \
  --url https://api.cyberdesk.io/v1/workflows/{workflow_id} \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "name": "<string>",
  "main_prompt": "<string>",
  "input_schema": "<string>",
  "output_schema": "<string>",
  "includes_file_exports": true,
  "is_webhooks_enabled": true,
  "terminal_command_allowlist": [
    "<string>"
  ],
  "model_metadata": {
    "main_agent_model_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "cache_detection_model_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "fallback_model_1_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "fallback_model_2_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
  },
  "workflow_metadata": {
    "has_unaddressed_error": true,
    "last_errored_run_start": "2023-11-07T05:31:56Z",
    "last_errored_run_uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
  },
  "post_run_checks": [
    {
      "name": "<string>",
      "type": "run_attachment_exists",
      "description": "<string>",
      "file_target_mode": "exact",
      "file_names": [
        "<string>"
      ],
      "file_name_regex": "<string>",
      "expected_match_count": 2,
      "expected_match_count_ref": "<string>",
      "loop_input": "<string>",
      "loop_item_filename_template": "<string>",
      "check_prompt": "<string>",
      "model": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
    }
  ]
}
'
{
  "main_prompt": "<string>",
  "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "created_at": "2023-11-07T05:31:56Z",
  "updated_at": "2023-11-07T05:31:56Z",
  "name": "<string>",
  "input_schema": "<string>",
  "output_schema": "<string>",
  "includes_file_exports": false,
  "is_webhooks_enabled": false,
  "terminal_command_allowlist": [
    "<string>"
  ],
  "model_metadata": {
    "main_agent_model_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "cache_detection_model_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "fallback_model_1_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "fallback_model_2_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
  },
  "user_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "organization_id": "<string>",
  "includes_input_variables": false,
  "workflow_metadata": {
    "has_unaddressed_error": true,
    "last_errored_run_start": "2023-11-07T05:31:56Z",
    "last_errored_run_uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
  },
  "old_versions": [
    {}
  ],
  "tags": [
    {
      "name": "<string>",
      "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "organization_id": "<string>",
      "order": 123,
      "created_at": "2023-11-07T05:31:56Z",
      "updated_at": "2023-11-07T05:31:56Z",
      "description": "<string>",
      "emoji": "<string>",
      "color": "<string>",
      "group_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "is_archived": false,
      "workflow_count": 123,
      "group": {
        "name": "<string>",
        "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
        "organization_id": "<string>",
        "order": 123,
        "created_at": "2023-11-07T05:31:56Z",
        "updated_at": "2023-11-07T05:31:56Z",
        "description": "<string>",
        "emoji": "<string>",
        "color": "<string>"
      }
    }
  ],
  "post_run_checks": [
    {
      "name": "<string>",
      "type": "run_attachment_exists",
      "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "organization_id": "<string>",
      "order": 123,
      "created_at": "2023-11-07T05:31:56Z",
      "updated_at": "2023-11-07T05:31:56Z",
      "description": "<string>",
      "file_target_mode": "exact",
      "file_names": [
        "<string>"
      ],
      "file_name_regex": "<string>",
      "expected_match_count": 2,
      "expected_match_count_ref": "<string>",
      "loop_input": "<string>",
      "loop_item_filename_template": "<string>",
      "check_prompt": "<string>",
      "model": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "user_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
    }
  ]
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Headers

Idempotency-Key
string

Unique key for idempotent requests. If provided, the server ensures the request is processed at most once. Retries with the same key return the original response. SDKs auto-generate this for write requests.

Example:

"550e8400-e29b-41d4-a716-446655440000"

Path Parameters

workflow_id
string<uuid>
required

Body

application/json

Schema for updating a workflow

name
string | null
Maximum string length: 255
main_prompt
string | null
Minimum string length: 1
input_schema
string | null

JSON schema for validating merged run inputs. Sensitive root keys are exposed with a '$' prefix in schema validation (for example sensitive_input_values.api_key -> '$api_key').

output_schema
string | null

JSON schema for output data transformation

includes_file_exports
boolean | null

Enable AI-based file export detection

is_webhooks_enabled
boolean | null

Send webhook on run completion

terminal_command_allowlist
string[] | null

Optional workflow-level allowlist for execute_terminal_command. Set to an empty list or null to clear the allowlist.

model_metadata
WorkflowModelMetadata · object

Optional workflow-level model configuration metadata (main agent, cache detection, and fallbacks).

workflow_metadata
WorkflowInternalMetadataUpdate · object

Optional internal workflow metadata patch. Top-level null clears all workflow metadata. Omit this field to leave existing metadata unchanged. Set individual keys to null to remove only those keys.

post_run_checks
WorkflowPostRunCheckUpsert · object[] | null

Workflow-managed post-run checks, reconciled on save when present.

Response

Successful Response

Workflow response schema

main_prompt
string
required
Minimum string length: 1
id
string<uuid>
required
created_at
string<date-time>
required
updated_at
string<date-time>
required
name
string | null
Maximum string length: 255
input_schema
string | null

JSON schema for validating merged run inputs. Sensitive root keys are exposed with a '$' prefix in schema validation (for example sensitive_input_values.api_key -> '$api_key').

output_schema
string | null

JSON schema for output data transformation

includes_file_exports
boolean
default:false

Enable AI-based file export detection

is_webhooks_enabled
boolean
default:false

Send webhook on run completion

terminal_command_allowlist
string[] | null

Optional workflow-level allowlist for execute_terminal_command. When set, the agent may only run commands that exactly match one of the approved command templates.

model_metadata
WorkflowModelMetadata · object

Optional workflow-level model configuration metadata (main agent, cache detection, and fallbacks).

user_id
string<uuid> | null
organization_id
string | null
includes_input_variables
boolean
default:false
workflow_metadata
WorkflowInternalMetadata · object

Internal workflow metadata used for run/error tracking.

old_versions
Old Versions · object[] | null
tags
WorkflowTagResponse · object[] | null

Tags assigned to this workflow

post_run_checks
WorkflowPostRunCheckResponse · object[] | null

Post-run checks assigned to this workflow.