工作流
创建工作流
创建一条工作流(含触发器)。创建成功返回流程 processId。节点创建请使用 batch_create_process_nodes 工具。
触发器说明:
• triggerType=worksheet_event 工作表事件;schedule 定时。
•
• trigger.config.event 直接用后端落库取值(add/update/delete/add_or_update)。
publish=true 创建后直接尝试发布。
鉴权方式
AppKey + Sign 是应用密钥鉴权,由管理员创建,用于以应用管理员身份访问应用数据。
版本
请求地址
Header 参数
| 名称 | 类型 | 必填 | 描述 |
|---|---|---|---|
HAP-Appkey | string | 是 | HAP应用密钥 |
HAP-Sign | string | 是 | HAP签名 |
Body 参数
| 名称 | 类型 | 必填 | 描述 |
|---|---|---|---|
name | string | 是 | 工作流名称,必填。 |
description | string | 否 | 工作流说明,可选。 |
trigger | object | 是 | 触发器配置,必填。 |
trigger.nodeAlias | string | 否 | 触发节点别名,默认 trigger。 |
trigger.nodeId | string | 否 | 已有触发器的 nodeId(编辑场景使用,新建时不传)。 |
trigger.triggerType | string | 是 | 触发器类型。注意没有 trigger_ 前缀(与 build_v2 不同)。worksheet_event 工作表事件;schedule 定时;date_field 按日期字段;webhook HTTP 触发。 可选值: "worksheet_event""schedule""date_field""webhook" |
trigger.name | string | 否 | 触发节点显示名称,可选。 |
trigger.config | object | 是 | 触发器专属配置。字段集合由 triggerType 决定,每个字段的 description 用 [triggerType] 前缀标注适用范围。 各 triggerType 的当前必填字段:worksheet_event: worksheetId, event;schedule: startTime 且 loopType/cron 至少一个;date_field: worksheetId, event;webhook: worksheetId, event。 |
trigger.config.worksheetId | string | 否 | [worksheet_event 必填] 触发工作表 ID。 |
trigger.config.event | string | 否 | [worksheet_event 必填] 触发事件:add 新增;update 更新;delete 删除;add_or_update 新增或更新。 可选值: "add""update""delete""add_or_update" |
trigger.config.triggerFields | string[] | 否 | [worksheet_event] 更新触发监听字段 ID 数组;delete 时忽略。 |
trigger.config.filter | object | 否 | [worksheet_event] 触发筛选条件,满足条件的记录才进入流程。 |
trigger.config.filter.logic | string | 是 | 当前层子项的组合方式:and=全部满足,or=任一满足。 可选值: "and""or" |
trigger.config.filter.items | any[] | 是 | 本层子项列表,每项可为嵌套 Filter 或单条件 Condition。 |
trigger.config.filter.items.logic | string | 是 | 当前层子项的组合方式:and=全部满足,or=任一满足。 可选值: "and""or" |
trigger.config.filter.items.items | any[] | 是 | 本层子项列表,每项可为嵌套 Filter 或单条件 Condition。 |
trigger.config.filter.items.items.logic | string | 是 | 当前层子项的组合方式:and=全部满足,or=任一满足。 可选值: "and""or" |
trigger.config.filter.items.items.items | any[] | 是 | 本层子项列表,每项可为嵌套 Filter 或单条件 Condition。 |
trigger.config.filter.items.items.items.logic | string | 是 | 当前层子项的组合方式:and=全部满足,or=任一满足。 可选值: "and""or" |
trigger.config.filter.items.items.items.items | any[] | 是 | 本层子项列表,每项可为嵌套 Filter 或单条件 Condition。 |
trigger.config.filter.items.items.items.left | object | 是 | 左侧字段引用,必填。条件比较的是 left 对应字段;非字段值只能放在 right。 |
trigger.config.filter.items.items.items.op | string | 是 | 比较操作符。保存层会按字段控件 type/enumDefault 转为前端可识别的 conditionId。eq/ne 等于不等于;gt/gte/lt/lte 数值/日期比较;in/not_in 属于不属于(数组);empty/not_empty 空非空(不消费 right);contains/not_contains 包含不包含;all_contains 同时包含;belongs/not_belongs 属于不属于;subordinate_contains/not_subordinate_contains 下级包含不包含;checked/unchecked 检查项选中未选中。 可选值: "eq""ne""gt""gte""lt""lte""in""not_in""empty""not_empty""contains""not_contains""starts_with""not_starts_with""ends_with""not_ends_with""all_contains""belongs""not_belongs""subordinate_contains""not_subordinate_contains""checked""unchecked""title_eq""title_ne" |
trigger.config.filter.items.items.items.right | object | 否 | 右侧值。允许 kind=literal / field / systemField / record / template;不要用 kind=empty 表达空判断,empty/not_empty 操作符不传 right。单值传 ValueRef;in/not_in/contains/not_contains 必须传 ValueRef 数组(每项 ValueRef)。 |
trigger.config.filter.items.items.items.ignore_empty | boolean | 否 | 动态值为空时是否跳过。 |
trigger.config.filter.items.items.items.type | integer | 否 | 左侧字段控件类型,可选;不传由服务端按节点工作表和 fieldId 补齐。 |
trigger.config.filter.items.items.items.enumDefault | integer | 否 | 左侧字段 enumDefault,可选;不传由服务端按字段元数据补齐。 |
trigger.config.filter.items.items.left | object | 是 | 左侧字段引用,必填。条件比较的是 left 对应字段;非字段值只能放在 right。 |
trigger.config.filter.items.items.left.kind | string | 是 | — 可选值: "field" |
trigger.config.filter.items.items.left.node | object | 是 | 节点引用。创建流程时仅能通过 nodeAlias 引用触发节点自身。 |
trigger.config.filter.items.items.left.fieldId | string | 是 | — |
trigger.config.filter.items.items.op | string | 是 | 比较操作符。保存层会按字段控件 type/enumDefault 转为前端可识别的 conditionId。eq/ne 等于不等于;gt/gte/lt/lte 数值/日期比较;in/not_in 属于不属于(数组);empty/not_empty 空非空(不消费 right);contains/not_contains 包含不包含;all_contains 同时包含;belongs/not_belongs 属于不属于;subordinate_contains/not_subordinate_contains 下级包含不包含;checked/unchecked 检查项选中未选中。 可选值: "eq""ne""gt""gte""lt""lte""in""not_in""empty""not_empty""contains""not_contains""starts_with""not_starts_with""ends_with""not_ends_with""all_contains""belongs""not_belongs""subordinate_contains""not_subordinate_contains""checked""unchecked""title_eq""title_ne" |
trigger.config.filter.items.items.right | object | 否 | 右侧值。允许 kind=literal / field / systemField / record / template;不要用 kind=empty 表达空判断,empty/not_empty 操作符不传 right。单值传 ValueRef;in/not_in/contains/not_contains 必须传 ValueRef 数组(每项 ValueRef)。 |
trigger.config.filter.items.items.right.kind | string | 是 | — 可选值: "literal""field""systemField" |
trigger.config.filter.items.items.right.value | any | 否 | — |
trigger.config.filter.items.items.right.node | object | 否 | 节点引用。创建流程时仅能通过 nodeAlias 引用触发节点自身。 |
trigger.config.filter.items.items.right.fieldId | string | 否 | — |
trigger.config.filter.items.items.ignore_empty | boolean | 否 | 动态值为空时是否跳过。 |
trigger.config.filter.items.items.type | integer | 否 | 左侧字段控件类型,可选;不传由服务端按节点工作表和 fieldId 补齐。 |
trigger.config.filter.items.items.enumDefault | integer | 否 | 左侧字段 enumDefault,可选;不传由服务端按字段元数据补齐。 |
trigger.config.filter.items.left | object | 是 | 左侧字段引用,必填。条件比较的是 left 对应字段;非字段值只能放在 right。 |
trigger.config.filter.items.left.kind | string | 是 | — 可选值: "field" |
trigger.config.filter.items.left.node | object | 是 | 节点引用。创建流程时仅能通过 nodeAlias 引用触发节点自身。 |
trigger.config.filter.items.left.node.nodeAlias | string | 否 | 节点别名。 |
trigger.config.filter.items.left.fieldId | string | 是 | — |
trigger.config.filter.items.op | string | 是 | 比较操作符。保存层会按字段控件 type/enumDefault 转为前端可识别的 conditionId。eq/ne 等于不等于;gt/gte/lt/lte 数值/日期比较;in/not_in 属于不属于(数组);empty/not_empty 空非空(不消费 right);contains/not_contains 包含不包含;all_contains 同时包含;belongs/not_belongs 属于不属于;subordinate_contains/not_subordinate_contains 下级包含不包含;checked/unchecked 检查项选中未选中。 可选值: "eq""ne""gt""gte""lt""lte""in""not_in""empty""not_empty""contains""not_contains""starts_with""not_starts_with""ends_with""not_ends_with""all_contains""belongs""not_belongs""subordinate_contains""not_subordinate_contains""checked""unchecked""title_eq""title_ne" |
trigger.config.filter.items.right | object | 否 | 右侧值。允许 kind=literal / field / systemField / record / template;不要用 kind=empty 表达空判断,empty/not_empty 操作符不传 right。单值传 ValueRef;in/not_in/contains/not_contains 必须传 ValueRef 数组(每项 ValueRef)。 |
trigger.config.filter.items.right.kind | string | 是 | — 可选值: "literal""field""systemField" |
trigger.config.filter.items.right.value | any | 否 | — |
trigger.config.filter.items.right.node | object | 否 | 节点引用。创建流程时仅能通过 nodeAlias 引用触发节点自身。 |
trigger.config.filter.items.right.node.nodeAlias | string | 否 | 节点别名。 |
trigger.config.filter.items.right.fieldId | string | 否 | — |
trigger.config.filter.items.ignore_empty | boolean | 否 | 动态值为空时是否跳过。 |
trigger.config.filter.items.type | integer | 否 | 左侧字段控件类型,可选;不传由服务端按节点工作表和 fieldId 补齐。 |
trigger.config.filter.items.enumDefault | integer | 否 | 左侧字段 enumDefault,可选;不传由服务端按字段元数据补齐。 |
trigger.config.loopType | string | 否 | [schedule] 循环类型。cron 为空时必填;传 cron 时可省略或使用 custom/cron。 可选值: "hour""day""workday""week""month""year""custom""cron" |
trigger.config.cron | string | 否 | [schedule] Quartz cron 表达式。loopType=custom/cron 时必填;传入 cron 时优先使用该表达式。 |
trigger.config.startTime | string | 否 | [schedule 必填] 开始执行时间,必填。生成请求必须使用 yyyy-MM-dd HH:mm,不带秒、不带时区,例如 2026-05-13 09:00。 |
trigger.config.endTime | string | 否 | [schedule] 结束时间,可选。生成请求必须使用 yyyy-MM-dd HH:mm,不带秒、不带时区,例如 2027-12-31 23:59。 |
trigger.config.customCycle | object | 否 | [schedule] |
trigger.config.customCycle.unit | string | 是 | 周期单位。 可选值: "minute""hour""day""week""month" |
trigger.config.customCycle.interval | integer | 是 | 周期间隔,必须大于等于 1。 |
trigger.config.customCycle.weekdays | integer[] | 否 | 按周循环时的星期列表,1=周一,7=周日。 |
trigger.config.dateFieldId | string | 否 | [date_field] 日期字段 ID,。 |
trigger.config.executeTime | string | 否 | [date_field] 执行时间,格式 HH:mm:ss,[schedule] |
trigger.config.offset | object | 否 | [date_field] 相对日期字段的偏移量。负数表示提前,正数表示延后。 |
trigger.config.offset.days | integer | 否 | 天偏移。 |
trigger.config.offset.hours | integer | 否 | 小时偏移。 |
trigger.config.offset.minutes | integer | 否 | 分钟偏移。 |
trigger.config.samplePayload | object | 否 | [webhook] 示例 payload, |
publish | boolean | 否 | true 创建后直接尝试发布;默认 false。 |
响应参数
200调用成功| 名称 | 类型 | 描述 |
|---|---|---|
success | boolean | 是否调用成功 |
data | object | — |
data.processId | string | 创建成功的流程 ID |
data.workflowId | string | 创建成功的流程 ID(兼容字段) |
data.published | boolean | 是否已发布 |
error_code | integer | 错误代码 |
error_msg | string | 错误消息 |
curl -X POST "https://example.com/v3/app/workflows" \ -H "HAP-Appkey: {{HAP-Appkey}}" \ -H "HAP-Sign: {{HAP-Sign}}" \ -H "Content-Type: application/json" \ -d '{ "name": "string", "trigger": { "triggerType": "worksheet_event", "config": {} } }'{ "success": true, "data": { "processId": "string", "workflowId": "string", "published": true }, "error_code": 0, "error_msg": "string"}