Manual Trigger是n8n最基础但最实用的触发节点,它让你可以随时手动启动工作流。适合测试、调试和构建需要按需执行的自动化任务。本教程将从基础概念讲起,逐步深入,最后提供完整的可执行工作流示例。

Manual Trigger(手动触发器)是n8n核心节点中最简单的触发节点。当你在n8n界面中点击"Execute Workflow"按钮时,它就会启动工作流。
| 场景 | 说明 |
|---|---|
| 测试工作流 | 在正式部署前,快速测试每个节点是否工作正常 |
| 调试问题 | 无需等待外部事件触发,立即运行找出问题所在 |
| 按需执行 | 某些任务不需要自动化触发,用户手动点击启动 |
| 学习n8n | 初学者最佳选择,专注学习数据流动而不被触发机制困扰 |
| 一次性任务 | 处理临时性的自动化任务,比如数据迁移、一次性导出 |
{},需要用Set节点提供初始数据✨ 完成! Manual Trigger已添加。你会看到一个带有闪电⚡图标的节点。
{"message": "Hello n8n!"}🎉 恭喜! 你已经成功运行了第一个n8n工作流!
当你添加Manual Trigger后,点击节点打开配置面板,你会看到以下选项:
| 配置项 | 说明 | 何时使用 |
|---|---|---|
| Always Output Data | 即使没有输入数据也输出(不常用) | 特殊场景 |
| Execute Once | 工作流只执行一次 | 处理复杂逻辑防止重复 |
| Retry on Fail | 失败时重试 | Manual Trigger通常不需要(它不会失败) |
| On Error | 出错时的行为 | 选择继续或停止 |
💡 初学者建议:保持默认配置,重点关注下游节点即可。
在开始使用自动化前,你需要知道不同的触发节点何时使用:
| 触发节点类型 | 启动方式 | 典型用途 |
|---|---|---|
| Manual Trigger | 点击按钮手动启动 | 测试、调试、按需执行 |
| Schedule Trigger | 按时间表自动启动(如每天上午9点) | 定时任务(如每日报告、定期备份) |
| Webhook | 外部系统发送请求时启动 | 接收来自其他app的数据 |
| App Event | 集成应用中发生事件时启动 | Gmail收到新邮件、Slack发布消息 |
📌 核心区别:Manual = 手动,其他 = 自动
让我们创建一个实用的"任务管理器"工作流,展示Manual Trigger的真实应用。
创建一个工作流,当你手动点击时,收集任务信息并显示任务摘要。
第一步:添加Manual Trigger(已完成)
第二步:添加Set节点,设置任务数据
打开Set节点配置:
1. 点击"Add Field"
2. 添加以下字段:
- 字段名:"taskName" → 值:"完成项目报告"
- 字段名:"priority" → 值:"高"
- 字段名:"dueDate" → 值:"2024-12-20"
- 字段名:"status" → 值:"进行中"
- 字段名:"createdAt" → 值:"=new Date().toLocaleString('zh-CN')"(使用表达式获取当前时间)第三步:执行工作流
点击"Execute Workflow"按钮,在OUTPUT面板中你会看到:
{
"taskName": "完成项目报告",
"priority": "高",
"dueDate": "2024-12-20",
"status": "进行中",
"createdAt": "2024/12/2 11:49:00"
}第四步:保存工作流
点击顶部的"Save"按钮保存你的工作流。
下面是一个完整的、可以直接导入n8n的工作流JSON代码。这个工作流展示了Manual Trigger + Set节点的完整应用。
{
"name": "用户反馈收集工作流",
"nodes": [
{
"parameters": {
"options": {}
},
"id": "84e27025-41ea-4e1a-81ac-93c5bbdaa4f6",
"name": "Manual Trigger",
"type": "n8n-nodes-base.manualTrigger",
"typeVersion": 1,
"position": [250, 300]
},
{
"parameters": {
"mode": "manual",
"manualKeyValuePairs": [
{
"name": "userId",
"value": "user_12345"
},
{
"name": "feedbackContent",
"value": "产品界面很友好,但希望能有更多的教程资源"
},
{
"name": "feedbackType",
"value": "建议"
},
{
"name": "rating",
"value": "8"
},
{
"name": "status",
"value": "待审核"
},
{
"name": "submittedAt",
"value": "=new Date().toISOString()"
}
]
},
"id": "82d6f8b5-12e8-4f2a-9c61-5d3c8e9b1a4f",
"name": "处理反馈数据",
"type": "n8n-nodes-base.set",
"typeVersion": 3,
"position": [500, 300]
}
],
"connections": {
"Manual Trigger": {
"main": [
[
{
"node": "处理反馈数据",
"type": "main",
"index": 0
}
]
]
}
},
"active": false,
"settings": {},
"tags": ["manual-trigger", "tutorial", "beginner"],
"meta": {
"description": "Manual Trigger + Set节点示例:手动收集用户反馈并结构化数据"
}
}{
"userId": "user_12345",
"feedbackContent": "产品界面很友好,但希望能有更多的教程资源",
"feedbackType": "建议",
"rating": "8",
"status": "待审核",
"submittedAt": "2024-12-02T03:49:00.000Z"
}在Set节点中,你可以使用表达式而不是静态值:
// 获取当前日期
"=new Date().toLocaleDateString('zh-CN')"
// 生成随机ID
"=Math.random().toString(36).substr(2, 9)"
// 获取当前时间戳
"=Date.now()"如果你有很多字段要添加,可以:
✅ 要做:
❌ 不要做:
问题:尝试在一个工作流中添加多个Manual Trigger节点
解决方案:
问题:执行后Set节点没有输出数据
解决方案:
问题:写的JavaScript表达式没有执行
解决方案:
Manual Trigger 是你进入n8n自动化世界的完美起点:
[1] 官方文档: https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.manualworkflowtrigger/
[2] n8n系列教程: https://www.undsky.com/blog/?category=n8n%E6%95%99%E7%A8%8B#