【n8n教程】:Schedule Trigger节点,让工作流自动运行!
📌 什么是 Schedule Trigger(定时触发器)?
在日常工作中,是否有些任务需要定期重复?比如每天早上8点发送邮件汇总、每周一检查数据更新、或者每小时同步一次数据?
Schedule Trigger(定时触发器) 就是解决这类问题的完美工具。它让你的 n8n 工作流按照指定的时间表自动运行,就像 Unix 系统中的 Cron 一样。你不需要手动点击"执行"按钮,一切都会自动进行。
点击获取最新AI资讯、n8n工作流、开发经验分享
or 直接搜索V X:undsky
🎯 核心概念速览
| 概念 | 说明 |
|---|---|
| 触发间隔 | 定义工作流运行的时间单位(秒、分、小时、天、周、月或自定义 Cron 表达式) |
| 时区 | n8n 使用工作流时区或实例时区来计算执行时间 |
| 激活状态 | 工作流必须处于激活状态,Schedule Trigger 才能工作 |
| Cron 表达式 | 用于高级时间控制的标准 Unix 命令格式 |
⚙️ 五种基础调度方式
1️⃣ 按秒数触发
使用场景: 快速测试、高频数据同步
配置方式:
- Seconds Between Triggers:输入秒数(例:
30= 每30秒运行一次)
示例: 每10秒检查一次 API 状态
秒数:10
2️⃣ 按分钟触发
使用场景: 定期检查系统状态、同步数据
配置方式:
- Minutes Between Triggers:输入分钟数(例:
5= 每5分钟运行一次)
示例: 每5分钟从 Google Sheets 中读取数据
分钟数:5
3️⃣ 按小时触发
使用场景: 定期生成报告、每小时同步一次数据
配置方式:
- Hours Between Triggers:输入小时数
- Trigger at Minute:指定分钟数(0-59)
示例: 每6小时在第30分钟时运行
小时数:6
分钟数:30
(意味着:00:30, 06:30, 12:30, 18:30)
4️⃣ 按天数触发
使用场景: 每天定时发送邮件、每日数据备份
配置方式:
- Days Between Triggers:输入天数
- Trigger at Hour:选择运行的小时(0-23)
- Trigger at Minute:输入分钟数(0-59)
示例: 每两天在上午9点15分运行
天数:2
小时:9
分钟:15
(意味着:周一 09:15, 周三 09:15, 周五 09:15...)
5️⃣ 按周数触发
使用场景: 每周定时任务、周期性报告
配置方式:
- Weeks Between Triggers:输入周数
- Trigger on Weekdays:选择运行的工作日(可多选)
- Trigger at Hour:选择运行小时
- Trigger at Minute:输入分钟数
示例: 每两周在周一下午3点30分运行
周数:2
工作日:周一
小时:15(3 PM)
分钟:30
(意味着:第1个周一 15:30, 第3个周一 15:30...)
🚀 高级用法:自定义 Cron 表达式
对于复杂的调度需求,你可以使用 Cron 表达式。
📖 Cron 表达式结构
n8n 的 Cron 表达式有 6 个字段(包括秒):
秒 分 小时 日期 月份 周几
* * * * * *
🔧 常用 Cron 表达式示例
| 需求 | Cron 表达式 | 说明 |
|---|---|---|
| 每10秒 | */10 * * * * * | 从每分钟的第10秒开始,每隔10秒运行 |
| 每5分钟 | */5 * * * * | 每5分钟运行一次 |
| 每小时 | 0 * * * * | 每小时的整点运行 |
| 每天6点 | 0 6 * * * | 每天早上6点运行 |
| 每周一12点 | 0 12 * * 1 | 每周一中午12点运行 |
| 每月1号 | 0 0 1 * * | 每月1号午夜运行 |
| 每3天 | 0 0 */3 * * | 每隔3天午夜运行 |
| 工作日9点 | 0 9 * * 1-5 | 周一到周五上午9点运行 |
| 工作时间每小时 | 0 9-17 * * * | 每天9点到17点(工作时间),每小时整点运行 |
| 按季度运行 | 0 0 1 1,4,7,10 * | 1月、4月、7月、10月的1号午夜运行 |
💡 快速生成 Cron 表达式
不确定如何写 Cron 表达式?访问 Crontab Guru 网站,它提供了可视化编辑器,帮你快速生成和验证表达式。
🛠️ 快速开始:三步设置
步骤 1:添加 Schedule Trigger 节点
- 打开或创建一个 n8n 工作流
- 点击添加第一步或加号按钮
- 搜索 “Schedule Trigger” 或 “定时”
- 从结果中选择 Schedule Trigger 节点
步骤 2:配置触发间隔
在节点的左侧面板中:
- 选择 Trigger Interval(触发间隔)
- 根据需求选择时间单位(天、周、月等)
- 填入相应的时间参数
示例配置(每天早上8点运行):
Trigger Interval: Days
Days Between Triggers: 1
Trigger at Hour: 8
Trigger at Minute: 0
步骤 3:连接后续节点和激活
- 将你的业务逻辑节点(如发送邮件、更新数据库等)连接到 Schedule Trigger
- 保存工作流
- 点击工作流右上角的切换开关,将状态改为激活
- 完成!工作流现在会按照你设定的时间表自动运行
⚠️ 常见问题与解决方案
❌ 问题 1:工作流在错误的时间运行
原因: 时区配置不正确
解决方案:
- 检查全局时区(云版本用户):进入 Admin 面板 → 设置 → 时区
- 检查工作流时区:打开工作流 → 右上角三点菜单 → 设置 → 修改时区
- 保存后重新激活工作流
❌ 问题 2:Cron 表达式错误
错误提示: “Invalid cron expression”
解决方案:
- 检查表达式语法是否正确
- 在 Crontab Guru 验证表达式
- 确保表达式符合 n8n 的六字段格式(包括秒)
❌ 问题 3:修改触发间隔后没有生效
原因: 修改调度参数需要重新激活工作流才能生效
解决方案:
- 将工作流切换为停用状态
- 修改 Schedule Trigger 的参数
- 再次将工作流切换为激活状态
重要提示: 工作流的执行时间从激活时刻开始计算。例如,如果你在 11:30 激活一个"每2小时"的工作流,它会在 13:30 首次运行。
❌ 问题 4:变量在 Cron 表达式中不生效
原因: 变量的值只在工作流激活时评估一次
解决方案: 如果需要修改变量值,必须:
- 停用工作流
- 修改变量值
- 重新激活工作流
💼 实战案例:每日邮件提醒工作流
现在让我们一起构建一个实用的工作流:每天早上8点从 Google Sheets 读取待办事项,并发送邮件提醒
工作流结构
Schedule Trigger (每天8点)
↓
Google Sheets: 读取待办事项
↓
Code: 格式化数据为 HTML
↓
Gmail: 发送邮件
完整工作流 JSON 代码
{
"nodes": [
{
"parameters": {
"triggerInterval": "days",
"daysInterval": 1,
"triggerAtHour": 8,
"triggerAtMinute": 0
},
"id": "1",
"name": "Schedule Trigger",
"type": "n8n-nodes-base.scheduleTrigger",
"typeVersion": 1,
"position": [
250,
300
]
},
{
"parameters": {
"resource": "spreadsheet",
"operation": "read",
"spreadsheetId": "YOUR_SHEET_ID",
"sheetName": "Tasks",
"options": {}
},
"id": "2",
"name": "Google Sheets",
"type": "n8n-nodes-base.googleSheets",
"typeVersion": 3,
"position": [
450,
300
]
},
{
"parameters": {
"code": "// 格式化待办事项为 HTML\nconst tasks = $input.all();\nlet htmlContent = '<h2>📋 今日待办事项</h2><ul>';\n\ntasks.forEach(task => {\n if (task.json.status === 'Pending') {\n htmlContent += `<li><strong>${task.json.title}</strong> - ${task.json.description}</li>`;\n }\n});\n\nhtmlContent += '</ul>';\n\nreturn [{ json: { htmlBody: htmlContent } }];"
},
"id": "3",
"name": "Code",
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
650,
300
]
},
{
"parameters": {
"operation": "sendEmail",
"toEmail": "your-email@example.com",
"subject": "📨 今日待办事项提醒",
"emailType": "html",
"htmlBody": "={{ $node[\"Code\"].json.htmlBody }}"
},
"id": "4",
"name": "Gmail",
"type": "n8n-nodes-base.gmail",
"typeVersion": 2,
"position": [
850,
300
]
}
],
"connections": {
"Schedule Trigger": {
"main": [
[
{
"node": "Google Sheets",
"type": "main",
"index": 0
}
]
]
},
"Google Sheets": {
"main": [
[
{
"node": "Code",
"type": "main",
"index": 0
}
]
]
},
"Code": {
"main": [
[
{
"node": "Gmail",
"type": "main",
"index": 0
}
]
]
}
}
}
🔑 设置步骤
-
添加 Schedule Trigger 节点
- 触发间隔:每天(Days)
- 时间:早上8点
- 保持其他默认设置
-
配置 Google Sheets 节点
- 选择你的 Google Sheets 账户
- 输入你的电子表格 ID
- 选择包含待办事项的工作表名称(如 “Tasks”)
- 列名称应包括:
title、description、status
-
配置 Code 节点
- 复制上面提供的代码
- 该代码会自动筛选状态为 “Pending” 的任务,并格式化为 HTML 列表
-
配置 Gmail 节点
- 选择你的 Gmail 账户
- 填入接收邮件的电子邮件地址
- 主题:
📨 今日待办事项提醒 - 邮件类型:HTML
- 邮件正文:链接到 Code 节点的
htmlBody输出
-
保存并激活
- 点击保存
- 点击右上角的激活开关
- 工作流现在会在每天早上8点自动运行
✅ 测试工作流
在完全依赖自动调度之前,先手动测试一下:
- 点击任何节点的执行按钮
- 检查输出数据是否符合预期
- 查看邮件是否正确发送
- 一切正常后,再激活工作流
📚 时区完全指南
为什么时区很重要?
如果你在纽约,但 n8n 实例在伦敦,时区差异可能导致工作流在错误的时间运行。
三层时区设置(优先级从高到低)
-
工作流级别时区(最优先)
- 打开工作流 → 右上角三点菜单 → 设置
- 在 Timezone 下拉菜单选择你的时区
- 保存更改
-
n8n 实例时区(次优先)
- 云版本:进入 Admin 面板 → 设置 → 修改时区
- 自托管版本:设置环境变量
GENERIC_TIMEZONE
示例(Linux/Mac):
export GENERIC_TIMEZONE="Asia/Shanghai" -
系统时区(如果以上都未设置)
- 自托管默认为 “America/New_York”
- 云版本默认为 “GMT”
🌍 常用时区代码
| 地区 | 时区代码 |
|---|---|
| 中国 | Asia/Shanghai |
| 纽约 | America/New_York |
| 伦敦 | Europe/London |
| 东京 | Asia/Tokyo |
| 悉尼 | Australia/Sydney |
| 印度 | Asia/Kolkata |
| 新加坡 | Asia/Singapore |
🎓 最佳实践
✅ 应该这样做
- 总是测试你的工作流——在完全自动化之前,使用手动执行测试
- 选择低峰时段运行——避免在高流量时段执行资源密集型任务(比如半夜运行备份)
- 使用明确的名称——给工作流起清晰的名字(如"Daily Email at 8 AM")
- 监控执行日志——定期检查 Executions 标签,确保工作流按预期运行
- 记录你的 Cron 表达式——在工作流中添加注释说明为什么选择这个时间表
❌ 应该避免
- 不要在秒级频率下运行重型工作——会消耗大量资源
- 不要忘记激活工作流——很多人设置后忘记激活
- 不要在生产环境中测试——先在测试工作流中调试
- 不要忽视时区问题——错误的时区会导致工作流在意想不到的时间运行
- 不要使用太复杂的 Cron 表达式——使用基础配置往往更清晰可维护
🎯 总结
Schedule Trigger 是 n8n 中最强大的功能之一,它将一次性任务转变为持久的自动化流程。通过掌握以下几点,你可以构建无数有用的自动化:
- ✅ 理解基础的触发间隔配置(秒、分、小时、天、周、月)
- ✅ 学会使用 Cron 表达式处理复杂的调度需求
- ✅ 正确配置时区,确保工作流在预期时间运行
- ✅ 激活工作流并监控执行状态
- ✅ 遵循最佳实践,构建可靠的自动化系统
6583

被折叠的 条评论
为什么被折叠?



