10 分钟搭第一个 n8n 自动化:从“新文章通知我”开始,不用写一行代码
【免费下载链接】n8nFair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.项目地址: https://gitcode.com/GitHub_Trending/n8/n8n
“每天打开十来个网站刷更新”这件事,值得被自动化掉。你真正想要的不是刷新页面,而是在新内容出现的那一刻收到通知——而 n8n 正好把这个场景压缩成了三个动作:选一个触发器、接一个通知节点、激活。全程不需要写一行代码,本文用 n8n 仓库中的真实源码带你走完这条最小路径。
两条启动路径:云上注册,还是自托管
n8n 是一个基于 Node.js/TypeScript 的公平代码(fair-code)工作流自动化平台,前端编辑器用 Vue3 构建,后端引擎负责调度与执行。在开始搭建工作流之前,先决定它跑在哪里——两条路任选其一。
路径一:云上注册,30 秒起步。访问官方云服务(仓库 README 中标注的app.n8n.cloud)直接注册,浏览器打开就是可视化编辑器,无需安装任何东西,适合想先体验、不想碰服务器的人。注意:云端注册的流程会引导你选择计划,个人体验可以从小流量开始。
路径二:自托管,一条命令搞定。仓库 README.md 的 Quick Start 部分给出了官方一键安装脚本:
curl -fsSL https://get.n8n.io | sh该脚本位于 docker/get-n8n.sh,内部通过 docker compose 拉起完整的 n8n 栈(主服务、代码沙箱 runner、任务执行器等),并自动生成.env配置。若想手动控制每个细节,也可以按 README 提供的传统 Docker 命令部署:
docker volume create n8n_data docker run -it --rm --name n8n -p 5678:5678 -v n8n_data:/home/node/.n8n docker.n8n.io/n8nio/n8n容器镜像定义在 docker/images/n8n/Dockerfile:默认暴露 5678 端口,数据持久化到/home/node/.n8n卷。启动后打开http://localhost:5678即可进入编辑器。README 中明确写着:编辑器地址就是http://localhost:5678。
无论哪条路,你面对的都是同一套界面——拖拽式画布。第一次登录,建议直接在主界面的模板库里逛一圈:仓库文档显示平台有1500+ 集成与 9000+ 社区模板,几乎任何“A 事件触发 B 动作”的组合都已有人搭过。
最小流程:RSS 触发器 + 通知节点
搭第一个自动化,我推荐“新文章通知我”这个场景:它只有两个节点,却能让你完整理解 n8n 的工作流模型——触发器节点(什么时候开始)与操作节点(触发后做什么)。
在画布上新建空白工作流,第一步:搜索并添加RSS Feed Trigger节点。这个节点在仓库中的实现位于 packages/nodes-base/nodes/RssFeedRead/RssFeedReadTrigger.node.ts。源码里它的定位是polling: true,描述为 “Starts a workflow when an RSS feed is updated”(当 RSS 源更新时启动工作流),唯一必填参数是 Feed URL。也就是说:n8n 会按轮询间隔去拉取订阅源,一旦发现新条目就触发一次执行。
它的触发逻辑值得一看——这正是它不会把历史文章重复推送一遍的原因。poll()方法里,节点把上次检查的时间记录在工作流的静态数据中:
const pollData = this.getWorkflowStaticData('node') as PollData; const dateToCheck = Date.parse( pollData.lastItemDate ?? pollData.lastTimeChecked ?? moment().utc().format(), );然后遍历本次拉取到的条目,只把isoDate晚于上次检查时间的条目返回:
feed.items.forEach((item) => { if (item.isoDate && Date.parse(item.isoDate) > dateToCheck) { returnData.push(item); } });拉取完成后,再用当前 feed 中最新条目的时间覆盖pollData.lastItemDate,作为下次判断的基准。每次触发产出的数据里,包含了标题、链接、发布时间、摘要等标准 RSS 字段——这些字段就是下一步通知内容的原材料。
第二步:接一个通知节点。n8n 的通知选择非常多,两处最容易上手的实现:
- 发邮件:添加Send Email节点(实现见 packages/nodes-base/nodes/EmailSend/EmailSend.node.ts),使用 SMTP 协议发送,配置发送人、收件人、主题即可。它支持 HTML 与纯文本两种格式,主题和正文都可以直接用表达式引用上游字段,例如
{{ $json.title }}。 - 发到 Telegram:添加 Telegram 节点(实现见 packages/nodes-base/nodes/Telegram/Telegram.node.ts),操作选
sendMessage,填入 chatId(可以是你的个人 ID 或群组 ID)和文本。机器人消息天然适合“短标题 + 链接”的推送形态。
把 RSS 触发器连到通知节点,填好参数,点击Execute workflow手动跑一次验证,最后把工作流状态切到Active——自动化就上线了。整个过程不写一行代码,耗时基本都在填参数上。
上图就是 n8n 的可视化编辑器:左侧是可搜索的节点库,中间画布负责连线编排,右侧是当前节点的参数面板——刚才描述的最小流程,正是在这样的画布上完成的。
三个立刻能用的模板变体
“新文章通知我”只是一个起点,同样的骨架稍作调整就能覆盖三种常见需求,而且每种都对应仓库里现成的节点类型:
1. 定时汇总:Schedule Trigger + RSS/邮件。如果你不想要“实时轰炸”,可以用Schedule Trigger(实现见 packages/nodes-base/nodes/Schedule/ScheduleTrigger.node.ts)替代 RSS 触发器:它支持按分钟、小时、天等间隔触发,也支持 Cron 表达式,典型用法是每天早上 8 点把前一天的文章清单汇总成一封邮件。触发器之后的流程与前面完全一致。
2. 即时回调:Webhook + Telegram。如果你的信息来源有 Webhook(比如 GitHub 的 release 通知、代码仓库的提交事件),可以改用Webhook节点(实现见 packages/nodes-base/nodes/Webhook/Webhook.node.ts):它提供一个可公网访问的 URL,对方把事件 POST 进来,n8n 即刻触发下游的 Telegram 消息。相比轮询 RSS,Webhook 是“事件到达才执行”,延迟最低,也最省资源。
3. 从文章到卡片:RSS + 更多处理节点。在 RSS 触发器与通知节点之间,还可以插入任意中间节点——比如用 HTML 提取节点把摘要清洗成纯文本、用代码节点拼接消息模板,甚至接上 AI 节点让模型先写一段推荐语再推送。这正是 n8n 与普通“IFTTT 式”工具的区别:节点可以随意串联,每个节点都能拿到上游完整数据做变换。
从第一个工作流开始
回到最初的问题:为什么是 n8n?因为它的学习曲线几乎是平的——两个节点就能跑通一个真实可用的自动化,而当你需要更复杂的能力(代码节点、AI 编排、条件分支)时,同一套界面又不会成为天花板。仓库里 1500+ 集成、9000+ 模板,意味着你今天搭的“新文章通知”,明天稍加改动就能变成客服工单提醒、运营数据播报、CI 构建通知。
10 分钟,一个节点、一个节点、一次激活。你的第一条自动化,现在就可以开始了。
【免费下载链接】n8nFair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.项目地址: https://gitcode.com/GitHub_Trending/n8/n8n
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考