n8n:从零搭建第一个自动化流:Webhook监听+数据处理全流程解析
n8n 是一个开源的低代码工作流自动化工具,常用于将不同的服务和工具连接起来,完成自动化操作。它的名字源自 “nodemation”(node + automation)。
一、 n8n 是什么?
n8n 是一个开源的低代码工作流自动化工具,常用于将不同的服务和工具连接起来,完成自动化操作。它的名字源自 “nodemation”(node + automation)。
它是 Zapier、Make(Integromat)、IFTTT 的开源替代品,具备以下优势:
- ✅ 自托管:自己部署,数据完全可控
- ✅ Fair-code 授权:免费使用,无节点限制
- ✅ 高度可扩展:支持 JS 脚本、HTTP 请求、自定义节点
- ✅ 支持中文界面:可手动切换语言
二、 快速体验
1. 一键启动(推荐 Docker)
docker volume create n8n_datadocker run -it --rm --name n8n -p 5678:5678-v n8n_data:/home/node/.n8n docker.n8n.io/n8nio/n8n
启动后访问:http://localhost:5678
本地创建一个账号,其他SKIP即可
2. 云端试用
无需本地部署,可直接访问:n8n.cloud
三、 Hello World:第一个工作流
通过一个简单示例了解 n8n 的基本流程:
目标:监听 Webhook,请求进来后,设置一段 JSON 并响应返回
节点结构:
Webhook→Set→Respond to Webhook
步骤说明:
-
Webhook 节点:接收 GET 请求
-
Set 节点:设置 JSON 内容(如 {“message”: “hello 燧火智能”})
- Respond 节点:将内容返回给请求端
你可以用 CURL 测试 Webhook URL,验证数据是否成功返回
curl http://localhost:5678/webhook/1234567890
返回结果:hello 燧火智能
👇 完整的工作流JSON,复制粘贴即可
{
"nodes"
:
[
{
"parameters"
:
{
"path"
:
"6e1432fd-a960-4f9e-8987-1709d787b439"
,
"responseMode"
:
"responseNode"
,
"options"
:
{}
},
"type"
:
"n8n-nodes-base.webhook"
,
"typeVersion"
:
2
,
"position"
:
[
0
,
0
],
"id"
:
"280a8e90-42f2-49e2-82a7-1363e02f2904"
,
"name"
:
"Webhook"
,
"webhookId"
:
"6e1432fd-a960-4f9e-8987-1709d787b439"
},
{
"parameters"
:
{
"mode"
:
"raw"
,
"jsonOutput"
:
"{\n \"message\": \"hello 燧火智能\"\n}\n"
,
"options"
:
{}
},
"type"
:
"n8n-nodes-base.set"
,
"typeVersion"
:
3.4
,
"position"
:
[
220
,
0
],
"id"
:
"73c27d7c-edb5-4473-b9d6-e610ae91fab8"
,
"name"
:
"Edit Fields"
},
{
"parameters"
:
{
"respondWith"
:
"text"
,
"responseBody"
:
"={{ $json.message }}"
,
"options"
:
{}
},
"type"
:
"n8n-nodes-base.respondToWebhook"
,
"typeVersion"
:
1.2
,
"position"
:
[
440
,
0
],
"id"
:
"2e31a6ac-85cb-4c89-b4cb-e70826ecdd06"
,
"name"
:
"Respond to Webhook"
}
],
"connections"
:
{
"Webhook"
:
{
"main"
:
[
[
{
"node"
:
"Edit Fields"
,
"type"
:
"main"
,
"index"
:
0
}
]
]
},
"Edit Fields"
:
{
"main"
:
[
[
{
"node"
:
"Respond to Webhook"
,
"type"
:
"main"
,
"index"
:
0
}
]
]
}
},
"pinData"
:
{},
"meta"
:
{
"instanceId"
:
"b3260713698838c44c1feb4c85f8df1b994dbf97b5dd2e2a2066a6ef03ce31ca"
}
}
四、 核心概念扫盲
- Node(节点):执行一个功能操作,例如 HTTP 请求、格式转换、发送消息等
- Workflow(工作流):一组节点组合形成的自动化流程
- Trigger(触发器):启动工作流的事件,如 Webhook 请求、定时器等
五 中文化界面设置
参考开源方案:https://github.com/other-blowsnow/n8n-i18n-chinese
1、先到release下载语言包 https://github.com/other-blowsnow/n8n-i18n-chinese/releases
2、通过docker 启动
docker run -it --rm --name n8ntest \-p 5678:5678 \-v [n8n-i18n-chinese 解压后的dist目录]:/usr/local/lib/node_modules/n8n/node_modules/n8n-editor-ui/dist \-e N8N_DEFAULT_LOCALE=zh-CN \-e N8N_SECURE_COOKIE=false \n8nio/n8n
重新启动后就可以看到中文界面了
六、 进阶实践:从客户数据源提取并格式化信息
这是一个更完整的工作流示例,用于演示如何从数据源中获取客户信息并进行字段处理。
场景说明
通过一个自定义"客户数据源"节点获取客户列表,并使用 Set 节点进行字段清洗与拼接。
节点结构:
手动触发→客户数据源→字段清洗与转换
辅助说明:
使用了多个 Sticky Note 节点进行视觉注解。
节点说明
✅ 手动触发 用于本地测试,代替 Webhook 或定时器
✅ 客户数据源 模拟拉取客户信息,设置为 getAllPeople 并启用 returnAll: true
✅ 字段清洗与转换(Set 节点) 提取字段并格式化,如下:
客户ID:{{$json.id}}
客户名称:{{$json.name}}
备注:{{$json.notes}}
测试字段:测试ID:{{$json.id}}
✅ Sticky Notes 说明 包含文字提示:“获取演示数据”、"提取数据并准备传入下一个节点"等,有助于协作和文档化
可以看到点击运行,完成了数据格式化
这个场景能够实现很多业务场景的能力
📦 工作流 JSON
{
"name": "第一个工作流",
"nodes": [
{
"parameters": {
"operation": "getAllPeople",
"returnAll": true
},
"id": "444782d7-7927-436f-a586-5ec98c74a004",
"name": "客户数据源",
"type": "n8n-nodes-base.n8nTrainingCustomerDatastore",
"position": [
2860,
980
],
"typeVersion": 1
},
{
"parameters": {
"content": "## 关于快速上手工作流\n\n这是一个简化的工作流示例,演示如何从数据源获取客户信息并进行字段处理。",
"height": 220,
"width": 300
},
"id": "6aac7331-2126-43b3-9c88-23fa01c9bc7e",
"name": "说明",
"type": "n8n-nodes-base.stickyNote",
"position": [
2320,
700
],
"typeVersion": 1
},
{
"parameters": {
"content": "**获取演示数据**",
"height": 300,
"width": 220
},
"id": "65cf9de9-b96f-4469-b383-b759c03fb660",
"name": "备注1",
"type": "n8n-nodes-base.stickyNote",
"position": [
2800,
880
],
"typeVersion": 1
},
{
"parameters": {
"content": "**提取数据并准备传入下一个节点**",
"height": 300,
"width": 220
},
"id": "0da243cf-6644-47b2-a9ca-d79d45d66bb1",
"name": "备注2",
"type": "n8n-nodes-base.stickyNote",
"position": [
3080,
880
],
"typeVersion": 1
},
{
"parameters": {},
"id": "d0938ffb-fb75-47c2-b9ee-1918765c1be8",
"name": "手动触发(测试用)",
"type": "n8n-nodes-base.manualTrigger",
"position": [
2620,
980
],
"typeVersion": 1
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "df041e3c-fc09-4ba2-8e6b-37f2c6a02526",
"name": "客户ID",
"type": "string",
"value": "={{ $json.id }}"
},
{
"id": "bf288953-4fef-4f55-a45f-c223714919c0",
"name": "客户名称",
"type": "string",
"value": "={{ $json.name }}"
},
{
"id": "1cff0b21-6740-4697-9d2c-9bcb045af0be",
"name": "备注",
"type": "string",
"value": "={{ $json.notes }}"
},
{
"id": "3de31c84-a64e-4f0f-9cfb-d24bdd488773",
"name": "测试字段",
"type": "string",
"value": "=测试ID: {{ $json.id }}"
}
]
},
"options": {}
},
"id": "213d52ab-2083-4899-b412-1ba80cad071c",
"name": "字段清洗与转换",
"type": "n8n-nodes-base.set",
"position": [
3140,
980
],
"typeVersion": 3.3
},
{
"parameters": {
"content": "## 关于快速上手工作流\n\n这是一个简化的工作流示例,演示如何从数据源获取客户信息并进行字段处理。",
"height": 220,
"width": 300
},
"id": "b57eed87-9c98-4680-a6c9-b1c4825b3f51",
"name": "说明1",
"type": "n8n-nodes-base.stickyNote",
"position": [
2320,
700
],
"typeVersion": 1
},
{
"parameters": {
"content": "**获取演示数据**",
"height": 300,
"width": 220
},
"id": "000a99b2-cc8d-41e6-ab4c-7c829ba53767",
"name": "备注",
"type": "n8n-nodes-base.stickyNote",
"position": [
2800,
880
],
"typeVersion": 1
},
{
"parameters": {
"content": "**提取数据并准备传入下一个节点**",
"height": 300,
"width": 220
},
"id": "53c9f14f-2457-4d78-a0e8-a78ab3bda727",
"name": "备注3",
"type": "n8n-nodes-base.stickyNote",
"position": [
3080,
880
],
"typeVersion": 1
}
],
"pinData": {},
"connections": {
"客户数据源": {
"main": [
[
{
"node": "字段清洗与转换",
"type": "main",
"index": 0
}
]
]
},
"手动触发(测试用)": {
"main": [
[
{
"node": "客户数据源",
"type": "main",
"index": 0
}
]
]
}
},
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "c3302e76-1ef5-4a3d-9fda-17d7c05e8cb0",
"meta": {
"templateCredsSetupCompleted": true,
"instanceId": "b3260713698838c44c1feb4c85f8df1b994dbf97b5dd2e2a2066a6ef03ce31ca"
},
"id": "jM3QBAXjfa0WvYoy",
"tags": []
}
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)