90%的n8n用户不知道:这17个功能太强了
90%的n8n用户不知道:这17个功能太强了
90%的n8n用户不知道:这17个功能太强了 90%的n8n用户不知道:这17个功能太强了 Modified June 17, 2025 No access n8n 技巧 00:00 n8n高效使用技巧播客 Unable to preview. Please download the file. No access 结构化输入处理 00:00 No access 标准化输出演示 00:00 No access cURL快速导入演示 00:00 错误处理配置 默认行为:一个请求失败,整个工作流停止。 问题场景: Code block Plain Text Copy ["https://www.baidu.com/", "http://examples1.com/page", "https://www.qq.com/"] 第二个链接错误,后面的都不执行了。 解决方案: 1. 点击 HTTP Request 的 "Settings" 2. "On Error" 改为 "Continue" 3. 错误节点跳过,继续执行后续 批量处理数据时必须设置。 No access 错误处理配置演示 00:00 失败重试 网络请求最容易出问题。必须配置重试。 设置项: 1. 最大重试次数(建议 3 5 次) 2. 重试间隔时间(指数退避最好) 重要:确保 API 调用幂等性。重试不能产生脏数据。 Session 管理:让 AI 记住对话 当我第一次使用 n8n 时,完全不知道这个 session 的概念。直到我发现一个奇怪的现象:AI Agent 完全记不住上下文。 没有 Session 管理的问题: ❓ 我问第一个问题:"香蕉的英文怎么说?" AI 回答:"香蕉的英文是 banana" ❓ 然后我问第二个问题:"我刚刚问你的是什么?" AI 回答:"你刚刚问我的是:“我刚刚问你的是什么”" 你会说 AI 很傻对不对?其实是我自己使用的姿势不对? 开启 Session 管理后的奇迹: 同样的对话流程,开启 Session 后: ❓ 我问:"钢铁侠的英文怎么说?" AI 回答:"钢铁侠的英文是 Iron Man" 我问:"我刚刚问你的是什么?" AI 回答:"你刚刚问我的是钢铁侠的英文怎么说" 简而言之:Session 让 AI Agent 记住正在进行对话的上下文。没有它,AI 只能接受单个提示并独立回答,完全不知道过去的对话发生了什么。 Session ID 的两种设置方式 方式一:Chat Trigger 自动生成 使用 Chat Trigger 时,session ID 自动生成并管理: • 每个聊天窗口有独立的 session {{ $json.sessionId }} • 重新加载页面 session 保持不变 • 适合内部测试和演示 方式二:外部触发器手动设置 比如使用 Telegram 触发器,需要手动配置: 1. 在 AI Agent 节点的 Memory 设置中 2. Session ID 使用:{{ $json.message.chat.id }}(Telegram 的聊天 ID) 3. 这样每个 Telegram 聊天都有独立的记忆 为什么用聊天 ID? • 每个 Telegram 聊天有唯一的 chat.id • 群聊和私聊的 ID 不同,记忆互不干扰 • 重启工作流后记忆依然保持 No access session 管理演示 00:00 记忆存储:Simple Memory vs Redis Simple Memory: • 工作流结束,记忆消失 • 适合短期对话测试 • 不需要额外配置 Redis(推荐): • 持久化存储 • 设置过期时间(0 = 永久) • 支持分布式部署 安全性与凭证管理:血的教训 这是我踩过最大的坑。 以前图省事,API 密钥直接写在 header 或 query 参数里。结果呢?工作流分享出去时,所有密钥都暴露了。更要命的是,下载的 workflow 文件里密钥是明文存储的。 真实案例:Gemini API 的安全配置 之前我在 HTTP Request 节点调用 Gemini API 时,直接在 Query Parameters 里写: ❌ 错误做法: Code block Plain Text Copy Query Parameters: key: AIzaSyBxxxxxxxxxxxxxxxxxxxxxxx 这样做的后果: • 工作流文件里明文保存 API 密钥 • 分享工作流 = 泄露密钥 • 版本控制系统里也会有敏感信息 ✅ 正确做法:使用凭证管理 操作步骤: 1. 在 Authentication 里选择 Generic Credential Type 2. Generic Auth Type 选择 Query Auth 3. 创建凭证: ◦ Name: Gemini API Key ◦ Query Parameter Name: key ◦ Query Parameter Value: AIzaSyBxxxxxxxxxxxxxxxxxxxxxxx No access 凭证管理演示 00:00 No access n8n 技巧 00:00 No access n8n 技巧 00:00 n8n高效使用技巧播客 Unable to preview. Please download the file. n8n高效使用技巧播客 Unable to preview. Please download the file. No access 结构化输入处理 00:00 No access 结构化输入处理 00:00 No access 标准化输出演示 00:00 No access 标准化输出演示 00:00 No access cURL快速导入演示 00:00 No access cURL快速导入演示 00:00 错误处理配置 默认行为:一个请求失败,整个工作流停止。 问题场景: 第二个链接错误,后面的都不执行了。 解决方案: 1. 点击 HTTP Request 的 "Settings" 2. "On Error" 改为 "Continue" 3. 错误节点跳过,继续执行后续 批量处理数据时必须设置。 No access 错误处理配置演示 00:00 No access 错误处理配置演示 00:00 失败重试 网络请求最容易出问题。必须配置重试。 设置项: 1. 最大重试次数(建议 3 5 次) 2. 重试间隔时间(指数退避最好) 重要:确保 API 调用幂等性。重试不能产生脏数据。 Session 管理:让 AI 记住对话 当我第一次使用 n8n 时,完全不知道这个 session 的概念。直到我发现一个奇怪的现象:AI Agent 完全记不住上下文。 没有 Session 管理的问题: ❓ 我问第一个问题:"香蕉的英文怎么说?" AI 回答:"香蕉的英文是 banana" 我问第一个问题:"香蕉的英文怎么说?" AI 回答:"香蕉的英文是 banana" ❓ 然后我问第二个问题:"我刚刚问你的是什么?" AI 回答:"你刚刚问我的是:“我刚刚问你的是什么”" 然后我问第二个问题:"我刚刚问你的是什么?" AI 回答:"你刚刚问我的是:“我刚刚问你的是什么”" 你会说 AI 很傻对不对?其实是我自己使用的姿势不对? 开启 Session 管理后的奇迹: 同样的对话流程,开启 Session 后: ❓ 我问:"钢铁侠的英文怎么说?" AI 回答:"钢铁侠的英文是 Iron Man" 我问:"我刚刚问你的是什么?" AI 回答:"你刚刚问我的是钢铁侠的英文怎么说" 我问:"钢铁侠的英文怎么说?" AI 回答:"钢铁侠的英文是 Iron Man" 我问:"我刚刚问你的是什么?" AI 回答:"你刚刚问我的是钢铁侠的英文怎么说" 简而言之:Session 让 AI Agent 记住正在进行对话的上下文。没有它,AI 只能接受单个提示并独立回答,完全不知道过去的对话发生了什么。 Session ID 的两种设置方式 方式一:Chat Trigger 自动生成 使用 Chat Trigger 时,session ID 自动生成并管理: • 每个聊天窗口有独立的 session {{ $json.sessionId }} • 重新加载页面 session 保持不变 • 适合内部测试和演示 方式二:外部触发器手动设置 比如使用 Telegram 触发器,需要手动配置: 1. 在 AI Agent 节点的 Memory 设置中 2. Session ID 使用:{{ $json.message.chat.id }}(Telegram 的聊天 ID) 3. 这样每个 Telegram 聊天都有独立的记忆 为什么用聊天 ID? • 每个 Telegram 聊天有唯一的 chat.id • 群聊和私聊的 ID 不同,记忆互不干扰 • 重启工作流后记忆依然保持 No access session 管理演示 00:00 No access session 管理演示 00:00 记忆存储:Simple Memory vs Redis Simple Memory: • 工作流结束,记忆消失 • 适合短期对话测试 • 不需要额外配置 Redis(推荐): • 持久化存储 • 设置过期时间(0 = 永久) • 支持分布式部署 安全性与凭证管理:血的教训 这是我踩过最大的坑。 以前图省事,API 密钥直接写在 header 或 query 参数里。结果呢?工作流分享出去时,所有密钥都暴露了。更要命的是,下载的 workflow 文件里密钥是明文存储的。 真实案例:Gemini API 的安全配置 之前我在 HTTP Request 节点调用 Gemini API 时,直接在 Query Parameters 里写: ❌ 错误做法: 这样做的后果: • 工作流文件里明文保存 API 密钥 • 分享工作流 = 泄露密钥 • 版本控制系统里也会有敏感信息 ✅ 正确做法:使用凭证管理 操作步骤: 1. 在 Authentication 里选择 Generic Credential Type 2. Generic Auth Type 选择 Query Auth 3. 创建凭证: ◦ Name: Gemini API Key ◦ Query Parameter Name: key ◦ Query Parameter Value: AIzaSyBxxxxxxxxxxxxxxxxxxxxxxx ◦ Name: Gemini API Key ◦ Query Parameter Name: key ◦ Query Parameter Value: AIzaSyBxxxxxxxxxxxxxxxxxxxxxxx No access 凭证管理演示 00:00 No access 凭证管理演示 00:00 好处显而易见: • 凭证集中管理,一处修改处处生效 • 工作流文件中不包含敏感信息 • 导出的 JSON 文件只有凭证引用,没有实际密钥 • 不同环境可以用不同凭证 • 团队成员各自配置自己的密钥 这个习惯一定要养成。安全问题无小事,别等出事了才后悔。 常见陷阱和解决方案 API 限流 问题:频繁调用 API 被限制。 解决: 1. 添加延时节点 2. 实现指数退避 数据格式不一致 问题:不同来源数据格式差异大。 解决: 1. 统一入口处数据格式化 2. 使用 Set 节点标准化字段 3. 添加数据验证逻辑 写在最后 n8n 的强大之处在于灵活性。这些技巧只是起点,结合实际业务场景,你会发现更多玩法。 记住:工具只是手段,解决问题才是目的。掌握这些技巧后,专注于业务逻辑的实现,让 n8n 成为你的得力助手。 开始实践吧!每天用一个新技巧,一个月后你就是 n8n 专家了。 References • n8n Tutorial: 37 Tips and Tricks (n8n Masterclass) n8n Tutorial: 37 Tips and Tricks (n8n Masterclass) 🔗 原文链接:https://mp.weixin.qq.com/s/zkEDfV0dZXhxQ 4dI5QuCQ 作者:林月半子的AI笔记 n8n 作为开源自动化工具,强大到让人惊叹。但很多人只用了它 30% 的功能。 ❓ 不信?问自己几个问题: • 数据钉选用过吗?调试工作流的神器 • Session 管理配过吗?让 AI 记住上下文的关键 • 结构化输出处理过吗?告别手动解析 JSON • cURL 导入用过吗?一键配置 HTTP 请求 • 凭证管理设置过吗?保护 API 密钥不泄露 不信?问自己几个问题: • 数据钉选用过吗?调试工作流的神器 • Session 管理配过吗?让 AI 记住上下文的关键 • 结构化输出处理过吗?告别手动解析 JSON • cURL 导入用过吗?一键配置 HTTP 请求 • 凭证管理设置过吗?保护 API 密钥不泄露 如果这些功能你超过一半没用过,说明还有巨大的提升空间。 今天分享一套完整的 n8n 加速开发技巧。这些都是实战中总结的经验,能让你的工作效率翻倍。 新手从头开始,老手直接跳到感兴趣的部分。每个技巧都有实际的操作演示和踩坑经验。 部分功能演示 💡 工作流文件 链接:https://pan.quark.cn/s/1b85b4675fc4 工作流文件 链接:https://pan.quark.cn/s/1b85b4675fc4 开始阅读前,我用本文内容生成了一个 AI播客 ,用对话形式解读 n8n 高效使用技巧。 先听播客再看文章,理解效果更佳! 本播客由扣子空间(space.coze.cn)一键生成 space.coze.cn 画布操作 快速添加节点 最简单也最重要的技巧。 操作步骤: 1. 画布空白处按 Tab 键 2. 输入关键字:Webhook、Telegram、Set 等 3. 选择节点,按 Enter 确认 这比鼠标点击快太多了。熟练后,搭建工作流的速度会有质的提升。 便签管理 复杂工作流最大的问题?看不懂。 即使每个节点都有名称,但整体逻辑和处理流程还是不够清晰。特别是长工作流,一眼看过去完全摸不着头脑。 便签就是解决这个问题的神器。 操作步骤: 1. Shift + S 快速新增便签,或右键选择 2. 支持 Markdown 语法 3. 右键可以改颜色、删除 这样做的好处?半年后再看工作流,或者交给同事维护,都能快速理解整体架构和核心逻辑。 团队协作时更是必备。新人接手项目,通过便签注释就能快速上手。 节点命名技巧 默认节点名称没什么意义。改名很重要。 两种方式: 1. 点击节点标题直接编辑 2. 选中节点按空格键 命名建议: • 描述功能:获取用户数据、发送通知邮件 • 加上序号:01 数据验证、02 格式转换 • 标注关键信息:API调用(限流)、数据库查询(只读) 暂停节点执行 调试时经常用到。 操作方法: • 选中节点按 D 键 • 或右上角三个点选择"Deactivate" • 节点变灰色表示被跳过 调试复杂工作流时,可以先停用部分节点,逐步测试。 工作流管理 保存机制 快捷键: • Ctrl + S (Windows) • Cmd + S (Mac) 橙色保存按钮亮起表示有未保存更改。 每次重要修改后立即保存。血的教训:浏览器崩溃丢失几小时工作。 执行历史查看 点击编辑器上方"Execution 执行"标签。 能看到: • 每次执行结果 • 成功/失败状态 • 详细错误信息 • 节点输出数据 筛选功能:选择"成功"或"错误"类型,快速定位问题。 调试工作流时,这里是第一手资料。 数据钉选(Pin Data) 什么时候用: • API 调用收费 • 执行时间很长 • 外部依赖不稳定 操作步骤: 1. 执行一次获得数据 2. 选中节点按 P 键 3. 数据被"钉住",重新加载也不丢失 4. 再按 P 取消 实战经验:调试下游节点时,先把上游耗时的节点数据钉住。效率飞升。 Mock 数据:没有真实数据时,可以手动创建测试数据钉选。 No access Pin Data演示 00:00 No access Pin Data演示 00:00 工作流历史 点击"计时器"图标查看版本历史。 功能: • 版本对比 • 一键还原 • 下载备份 大型项目必须开启。出问题时能快速回滚到稳定版本。 时间上下文:让 AI 知道"现在" ❓ 问题:默认情况下,AI 模型没有任何当前时间的上下文。 你问它:"今天是几号?" AI 给出的答案都是错误的。 问题:默认情况下,AI 模型没有任何当前时间的上下文。 你问它:"今天是几号?" AI 给出的答案都是错误的。 解决方案:在 AI Agent 的系统提示词中添加时间上下文。 操作步骤: 1. 打开 AI Agent 节点配置 2. 展开 "Options" 选项 3. 启用 "System Message" 4. 在系统消息中添加: 效果对比: ❌ 添加前: 用户:"今天是几号?" AI:给出了错误答案 ✅ 添加后: 用户:"今天是几号?" AI:"今天是2025年6月10日。" 结构化数据处理:输入与输出的标准化 让我们通过一个完整的例子来理解数据结构化的重要性:多渠道AI文章生成器。 这个工作流需要解决两个核心问题: 1. 输入标准化 不同渠道的数据格式不同 2. 输出结构化 AI生成的内容需要标准化处理 结构化输入处理 实际场景:用户从不同渠道输入话题,AI 生成对应文章。 第一步:Chat Message 输入 最开始用 n8n 自带的 Chat Message 作为输入节点。在 AI Agent 中配置: 这是 Chat Message 的默认变量,测试正常,能够接收话题并生成文章。 问题出现:想要支持 Telegram 输入 当你想让这个工作流同时支持 Telegram 触发时,问题来了: Telegram 的输入不是用 chatInput 字段,而是其他字段名(比如 message.text)。 解决方案:使用 Set 节点标准化输入 在 AI Agent 之前添加一个 Set 节点,命名为"输入标准化": Set 节点配置: 这样做的好处: • $json.message.text:处理 Telegram 输入 • $json.chatInput:处理 Chat Message 输入 无论输入来自哪个渠道,AI Agent 都能收到统一的 {{ $json.chatInput }} 数据。 结构化输出处理 解决了输入标准化,现在面临输出问题。 当前输出的问题: AI 生成的文章是这样的: 标题和正文全部糅杂在一起,后续处理很麻烦。如果要发送到不同平台,需要分别提取标题和正文,非常不便。 解决方案:结构化输出配置 Step 1:在 AI Agent 提示词中指定输出格式 Step 2:启用格式化输出开关 在 AI Agent 节点中打开"格式化输出"选项。 Step 3:添加 Structured Output Parser 1. 启用格式化输出后,会出现额外的 "Output Parser" 分支 2. 添加 "Structured output parser" 节点 3. 将 JSON 格式定义粘贴进去 最终输出效果: 这样的好处: • 标题和正文分离,便于后续处理 • 结构统一,可以直接发送到任意平台 • 数据标准化,支持批量处理和自动化发布 • 便于扩展,可以轻松添加更多字段(如摘要、标签等) 通过输入输出的双重标准化,这个工作流就具备了真正的通用性和可扩展性。 HTTP Request 进阶技巧 cURL 导入配置 复杂 API 配置很痛苦。n8n 支持直接导入 cURL 命令。 操作: 1. 复制 API 文档的 cURL 示例 2. 在 HTTP Request 节点点击导入 3. 配置自动填充,再微调即可 这功能救命。特别是 OAuth、复杂 headers 的 API。