新建触发器
新建
同样因有"人机交互-绑定机器"和 "人机交互-浮动授权"授权方式的设计,故不同的授权方式进入“触发器”功能区后,新建时存在编排组合差异:
- "人机交互-绑定机器":仅支持编排组合本地流程
- "人机交互-浮动授权":可混合编排组合机器人指挥官流程和本地流程
定时触发器
定时触发器,是指设定流程触发的时间,在指定时间运行指定的流程或流程组。
新建定时触发器的基本步骤:
- 输入定时触发器名称(初次保存后,再次编辑时不可更改)。
- 选择流程。
- "人机交互-浮动授权"授权方式:支持选择本地流程、机器人指挥官流程或流程组。
- "人机交互-浮动授权"授权方式:支持选择本地流程、流程组。
- 设置按"每日、每周、每月"循环运行或单次运行,或者按自定义CRON表达式。
- 设置启动时间,指计划的启动日期。
- 设置结束时间,单选项:
- 永不结束;
- 指定时间,即选择一个结束日期。
具体说明如下。
选择流程
- 授权方式"人机交互-浮动授权"下,支持选择本地流程、机器人指挥官流程或流程组,示例如下。

- 授权方式"人机交互-绑定机器"下,支持选择本地流程、流程组,示例如下。

设置计划
定时触发器的“设置计划”,支持“循环运行”、“单次运行”、“自定义 CRON 表达式”3种类型。

循环运行
当勾选“循环运行”时,还需要补充“执行频率”的设置,可供选择有:每日、每周、每月。
每日
执行频率为"每日"时,执行规则是单选项:(1)指定时间;(2)重复执行,需设置重复执行的规则。
- 指定时间,取值范围是"00:00"~"23:59"的任意时间。
- 重复执行,按小时的取值范围是每"1、2、4、6、8、12"小时的第"0~59"分钟各执行一次;按分钟的取值范围是每"1、5、10、15、30"分钟各执行一次。

当您选择"重复执行"时,示例如下。

每周
执行频率为" 每周"时,执行规则是选择"周一"至"周日"任意的一天或多天,并设置指定时间或重复执行的规则,示例如下。

当您选择"重复执行"时,示例如下。

每月
执行频率为"每月"时,你可以选择"1月"到"12月"任意的一个月或多个月,然后指定每月的"1日"到"31日"任意一日或多个日期,还可以指定"当月最后一日"进行智能匹配日期,最后选择指定时间或重复执行。

当您选择"重复执行"时,示例如下。

当您选择"当月最后一日"时,示例如下。

单次运行
当您选择"单次运行"时,只需要选择一个启动时间(年月日-时-分),示例如下。

自定义 CRON 表达式
自定义CRON表达式,是指基于CRON表达式表示的规则执行计划。

其中,CRON表达式,可以通过点击页面上的"?"问号图标查看说明。
关于 CRON 表达式
CRON表达式的结构为"分 时 天 月 周",使用空格隔开不同的信息域,比如" 5 1 * "表示"第5分钟 每小时 第1天 每月 每周",即"每月每周第1天的第5分钟"。
注:不包含"秒"和"年"。
CRON表达式允许的值和特殊符号,如下所示:
| 字段 | 允许值 | 允许的特殊字符 |
|---|---|---|
| 分(Minutes) | 0~59的整数 | * 和/ |
| 小时(Hours) | 0~23的整数 | * 和/ |
| 日期(DayofMonth) | 1~31的整数(需考虑月份对应的天数) | * 和/ |
| 月份(Month) | 1~12的整数 | * 和/ |
| 星期(DayofWeek) | 0~6的整数 | * 和/ |
允许使用的特殊符号,说明如下:
| 符号 | 说明 |
|---|---|
| / | 表示起始时间开始触发,然后每隔固定时间触发一次。例如,在Minutes域使用5/20,则意味着从第5分钟开始触发,每隔20分钟触发一次,则在5、25、45等时间点触发。 |
| | | 表示匹配该域的任意值。假如在Minutes域使用*,即表示每分钟都会触发事件。 |
注:不支持使用"L、W"和"?、#"等特殊符号。
启动触发器
启动触发器,是指下次流程机器人程序启动时将触发指定流程或流程组运行。
新建时,选择"启动触发器",页面如下图所示。

注意事项:
当存在多个启动触发器时,只能开启一个。如有需要,启动触发器可以选择流程组,流程组中包含多个流程。
邮件触发器
邮件触发器,是指监听邮件收件服务器,当新收到的邮件满足邮件的匹配规则时,自动触发指定流程或流程组的运行。
新建时,选择"邮件触发器",页面如下图所示。

新建邮件触发器的基本步骤:
- 输入邮件触发器名称(初次保存后,之后不可更改)。
- 选择流程。支持选择本地流程、机器人指挥官流程或流程组。
- 选择要监听收件邮箱,如果下拉列表框没有收件邮箱可选,可点击右侧的"邮箱管理"按钮进行添加。
- 设置邮件匹配规则。
具体说明如下。
邮箱管理
添加邮箱时,需要选择邮件服务器收件协议类型、加密类型,输入收件服务器地址、端口、邮箱账号、密码(授权码),设置邮件检测间隔时间(1~9999分钟)。
保存邮箱信息前,可点击"测试收件服务器连接",检验是否能够正常连接。

支持添加企业邮箱,如:飞书邮箱、企业微信邮箱、钉钉邮箱等。
匹配规则
邮件触发器的匹配规则包括:发件人地址、抄送人地址、邮件主题、邮件正文、附件五个子匹配规则。各个子匹配规则之间可选择或(代表满足其中任意一个匹配条件即可)、并进行组合匹配。
子匹配规则可新建多条规则,规则之间可选择或、并(代表多个条件需要同时满足才行)进行组合。
匹配条件包括:包含、不包含、等于、不等于、开头等于、开头不等于、结尾等于、结尾不等于、正则、为空、不为空。

API 接口触发器
API 接口触发器,是指在安装流程机器人的本地设备上的第三方应用程序调用 API 接口时,自动触发指定流程或流程组的运行。
新建 API 接口触发器,输入名称、选择流程即可,后面的 URL 地址、HTTP 请求方法、HTTP 请求参数全部是自动生成,不可手动编辑。本地设备的第三方程序调用时,可直接复制URL 地址和HTTP 请求参数。
新建时,选择"API 接口触发器",页面如下图所示。

文件触发器
文件触发器,是指在安装 流程机器人 的本地设备上,监听指定文件夹内可匹配规则的文件新建、文件删除动作,自动触发指定流程或流程组的运行。

- 文件触发器支持对文件名、文件扩展名两个维度设置匹配规则,各匹配规则之间支持或、并进行组合匹配
- 匹配条件包括:包含、不包含、等于、不等于、开头等于、开头不等于、结尾等于、结尾不等于、正则、为空、不为空
- 建议将文件触发器监听内部不超过1000个文件的文件夹,否则存在一定的性能响应问题
应用触发器
应用触发器,是指用户通过“绑定机器”或“浮动授权”模式使用流程机器人时,都可以创建1个“应用触发器”,允许非本机的第三方应用,通过http.Post请求触发指定流程运行,任务完成后通过回调URL返回通知;同时支持可查询流程机器人的当前状态、取消触发后正在运行的任务。

支持触发3种(flowType)流程运行:
- Commander:表示人机交互-流程机器人,在“浮动授权”模式下“机器人指挥官流程”列表中的流程
- Local:表示人机交互-流程机器人,在“绑定机器”模式下“本地流程”列表中的流程
- UnattendedBot:表示无人值守-流程流程机器人,在本地已经运行过的流程
具体使用,可参考附带的Python示例代码
import requests
import json
# ------------------------------------------------------------
# MCP HTTP Client Example
# This script demonstrates how to interact with an MCP server
# using various call types: UnattendedBot, Commander, Local.
# ------------------------------------------------------------
# MCP HTTP endpoint (replace with actual server address)
url = "http://127.0.0.1:8321/AttendedWorker/mcp"
# HTTP headers with bearer token authorization
headers = {
"Authorization": "Bearer YOUR_BEARER_TOKEN", # Replace with actual token
"Content-Type": "application/json"
}
# ------------------------------------------------------------
# 1. Unattended Bot Call (robot runs automatically on server)
# ------------------------------------------------------------
unattended_data = {
"method": "tools/call",
"params": {
"id": "task-001", # Unique task ID for tracking
"name": "UnattendedBot", # Tool or flow name
"arguments": {
"flowType": "UnattendedBot",
"flowId": 123,
"flowVersionId": 456,
"parameters": [
{
"parameterName": "strName",
"parameterType": 1,
"parameterValue": "strValue"
},
{
"parameterName": "numName",
"parameterType": 3,
"parameterValue": 100
},
{
"parameterName": "boolName",
"parameterType": 2,
"parameterValue": True
},
{
"parameterName": "credName",
"parameterType": 4,
"userName": "credUser",
"userPassword": "credPwd"
}
],
# Optional: return result to this URL via HTTP POST
"returnUrl": "http://your-callback-server/return"
}
}
}
# ------------------------------------------------------------
# 2. Commander Flow Call (executed by AttendedWorker remotely)
# ------------------------------------------------------------
commander_data = {
"method": "tools/call",
"params": {
"id": "task-002",
"name": "commander flow1",
"arguments": {
"flowType": "Commander",
"parameters": [
{
"parameterName": "strName",
"parameterType": 1,
"parameterValue": "strValue"
},
{
"parameterName": "numName",
"parameterType": 3,
"parameterValue": 100
},
{
"parameterName": "boolName",
"parameterType": 2,
"parameterValue": True
},
{
"parameterName": "credName",
"parameterType": 4,
"userName": "credUser",
"userPassword": "credPwd"
}
],
"returnUrl": "http://your-callback-server/return"
}
}
}
# ------------------------------------------------------------
# 3. Local Flow Call (executed by local AttendedWorker)
# ------------------------------------------------------------
local_flow_data = {
"method": "tools/call",
"params": {
"id": "task-003",
"name": "local flow1",
"arguments": {
"flowType": "Local",
"parameters": [
{
"parameterName": "strName",
"parameterType": 1,
"parameterValue": "strValue"
},
{
"parameterName": "numName",
"parameterType": 3,
"parameterValue": 100
},
{
"parameterName": "boolName",
"parameterType": 2,
"parameterValue": True
},
{
"parameterName": "credName",
"parameterType": 4,
"userName": "credUser",
"userPassword": "credPwd"
}
],
"returnUrl": "http://your-callback-server/return"
}
}
}
# ------------------------------------------------------------
# 4. Check if worker is currently executing a task
# ------------------------------------------------------------
check_status_data = {
"method": "tools/call",
"params": {
"name": "check_worker_status"
}
}
# ------------------------------------------------------------
# 5. Stop currently running task by ID
# ------------------------------------------------------------
stop_task_data = {
"method": "tools/call",
"params": {
"id": "task-001", # Same ID used in task call
"name": "stop_task"
}
}
# ------------------------------------------------------------
# Select which data payload to send
# ------------------------------------------------------------
# You can replace this with commander_data, local_flow_data, etc.
request_payload = unattended_data
# ------------------------------------------------------------
# Send the HTTP POST request
# ------------------------------------------------------------
json_data = json.dumps(request_payload)
response = requests.post(url, headers=headers, data=json_data)
# ------------------------------------------------------------
# Handle and print the response
# ------------------------------------------------------------
print("HTTP status code:", response.status_code)
print("Response content:", response.text)
# ------------------------------------------------------------
# Notes on response types:
# ------------------------------------------------------------
# 1. Protocol Error (bad request/authorization/etc.)
# {
# "error": {
# "code": -32700,
# "message": "Parse error"
# }
# }
# Common error codes:
# -32700 : JSON parse error
# -32001 : Authentication failed (invalid token)
# -32600 : Invalid params
# -32601 : Method not found
# -32602 : Tool name not found (e.g., wrong flow name)
# -32603 : Internal server error
# 2. Execution Result - Failure
# {
# "result": {
# "content": [{"type": "text", "text": "error message"}],
# "isError": true
# }
# }
# 3. Execution Result - Success
# {
# "result": {
# "content": [{"type": "text", "text": "success message"}],
# "isError": false
# }
# }
# ------------------------------------------------------------
# About returnUrl:
# If specified, the client will POST execution result to it.
# The returnUrl must respond with HTTP 200 status code.
# Otherwise, the client will retry the POST up to 5 times.
# ------------------------------------------------------------