Update workflow template

Replaces the contents of a workflow template. The interface is updated as fully defined; fields to be retained should also be provided in the request.

PUT https://moi.matrixorigin.cn/newmoi/workflow-templates/{id}

Preparation before calling

First query workflow template details to obtain the current complete definition; the fields to be retained should be copied to this request. Prepare a personal access token and target workspace ID that has access to the target workspace. Updating built-in templates also requires administrator rights.

Request body

namestringRequired
The updated template name. Custom templates cannot have the same name in the current workspace and language.
descriptionstring
Updated template description; this field will be cleared if not passed.
dsl_yamlstringRequired
Updated workflow DSL YAML.
runtime_fieldsstring
The updated runtime field JSON text; if not passed, the field will be cleared. Must be valid JSON when provided.
is_builtinboolean
Template type cannot be changed. When updating a custom template set to true, it will be rejected; the permissions of the built-in template are verified by the server based on the original template type.
template_keystring
Can be omitted to retain the original value when updating a built-in template; it is ignored and cleared in custom templates. It cannot be used to change the template type.

Request example

curl -X PUT "https://moi.matrixorigin.cn/newmoi/workflow-templates/$TEMPLATE_ID" \
  -H "X-API-Key: $AI_STUDIO_API_KEY" \
  -H "X-Workspace-ID: $WORKSPACE_ID" \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "<TEMPLATE_NAME>",
    "description": "<DESCRIPTION>",
    "dsl_yaml": "<WORKFLOW_DSL_YAML>",
    "runtime_fields": "{\"fields\":[]}",
    "is_builtin": false
  }'

Successful response

Returns 200 on success. data is the updated complete template object.

The response fields are as follows.

codestring
OK when successful.
msgstring
OK when successful.
data.idinteger
Template ID.
data.workspace_idstring
The ID of the workspace to which it belongs; the built-in template is an empty string.
data.created_bystring
Creator ID.
data.updated_bystring
Last updater ID.
data.template_keystring
Built-in template identifier; custom template is an empty string.
data.namestring
The updated name.
data.descriptionstring
Updated description.
data.languagestring
Template language.
data.dsl_yamlstring
Updated workflow DSL YAML.
data.runtime_fieldsstring
Updated runtime field JSON text.
data.is_builtinboolean
The original type of the template.
data.created_atstring
Creation time; may be omitted if not provided by the server.
data.updated_atstring
Last updated time; may be omitted if not provided by the server.

Successful response example

{
  "code": "OK",
  "msg": "OK",
  "data": {
    "id": 12,
    "workspace_id": "ws-001",
    "created_by": "user-001",
    "updated_by": "user-002",
    "template_key": "",
    "name": "daily-import-template",
    "description": "更新后的每日导入工作流模板",
    "language": "zh-CN",
    "dsl_yaml": "workflow: {}",
    "runtime_fields": "{\"fields\":[]}",
    "is_builtin": false,
    "created_at": "2026-08-18T10:00:00Z",
    "updated_at": "2026-08-18T11:00:00Z"
  }
}

Error response

codestring
Error code.
msgstring
Readable error message.
datanull
`null` in an error response.

Error response example

{
  "code": "ErrTemplateTypeImmutable",
  "msg": "不能修改模板类型",
  "data": null
}

Follow-up operations

Query workflow template details confirms the update result.

Last updated on