Create workflow template¶
Create a custom workflow template in the current workspace. Custom templates are only visible in the current workspace; built-in templates require administrator privileges.
POST https://moi.matrixorigin.cn/newmoi/workflow-templates
Preparation before calling¶
Prepare the workflow DSL with personal access token for target workspace access, target workspace ID, and template. Creating built-in templates also requires administrator rights.
Request body¶
namestringRequired- Template name. Custom templates cannot have the same name in the current workspace and current language.
descriptionstring- Template description.
dsl_yamlstringRequired- The YAML text of the workflow DSL.
runtime_fieldsstring- The JSON text of the runtime field definition; must be a valid JSON string when provided.
is_builtinboolean- Whether to create a built-in template, the default is false. Setting to true requires administrator privileges and cannot use the system-managed built-in template ID.
template_keystring- The identifier of the built-in template. The server ignores this field when creating a custom template and returns an empty string; it cannot be repeated in the same language.
Request example
curl -X POST "https://moi.matrixorigin.cn/newmoi/workflow-templates" \
-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 a newly created template. Save data.id, this value will be needed for subsequent query, update or deletion of templates.
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- Template name.
data.descriptionstring- Template description.
data.languagestring- Template language, such as zh-CN.
data.dsl_yamlstring- Saved workflow DSL YAML.
data.runtime_fieldsstring- JSON text of the saved runtime field; empty string if not configured.
data.is_builtinboolean- Whether it is a built-in 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-001",
"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-18T10:00:00Z"
}
}
Error response¶
codestring- Error code.
msgstring- Readable error message.
datanull- `null` in an error response.
Error response example
{
"code": "ErrParamInvalid",
"msg": "请求参数无效",
"data": null
}
Follow-up operations¶
Use data.id query workflow template details.
Last updated on