从零开始使用n8n-环境搭建与快速入门
n8n 最近的热度很高,这里不想做太多的介绍,最近也在使用n8n 做些项目,所以也从基础开始记录以下学习的过程。
环境搭建¶
命令行运行
docker 运行
我这里使用的是 npx 方式,运行成功以后,打开 http://127.0.0.1:5678 即可,首次打开需要初始化一个账号,填写用户名和密码即可。
Very quick quickstart¶
这里以一个非常简单的实例来体验一下n8n 的基础操作,感受一下它是怎么运行的。打开官方 quickstart 链接,https://n8n.io/workflows/1700-very-quick-quickstart/
点击 Copy template to clipboard(json)
返回到n8n 界面,点击 右上角 create workflow 按钮
在新创建的画布上直接按 ctrl+v ,粘贴刚才复制的json,n8n 会将json 转换为可视化组件展示。
这个工作流有三个节点,从左到右依次为:
- 触发器,这个触发器的触发条件为点击 "Test Workflow" 按钮
- 获取假数据,这个节点会输出一个模拟数据数组
- 提取数据,这个节点会提取第二个节点中的一些数据
我们先不做任何修改,直接点击下面的 Test workflow 按钮,看看执行结果怎样的
点击Test Workflow 按钮以后,这个工作流非常快的就执行结束了,且上面三个节点都标记了✅,说明每个节点都执行成功了,真不错,非常顺利,接下来点击上面的 Executions 查看一下详细的执行过程。
在 Executions 界面,详细记录了运行历史
点击刚才运行的记录,在右侧将会展示执行流程,可以双击每个节点来查看具体的输入和输出,我们依次来点击一下这三个节点.
- 触发器节点
这个节点,是通过点击界面上的Test workflow 按钮来执行的,所以没有输入和输出。
在输出栏有三种类型,Schema, Table, JSON ,可以切换展示。
- 获取假数据节点
左边展示的是这个节点的输入(Input),对于这个假数据节点,这里的输入也就是上一个节点的输出,由于上一个节点没有任何输出,所以这里也没有任何输入数据。
右边展示的是这个节点的输出内容,我这个切换成Table视图了, 可以看到该节点输出了5条数据。
- 提取数据节点
这个节点的输入是上一个节点的输出,也就是第二个节点输出的5条数据,数据结构为
这个节点提取了上一个节点json 结构中的三个字段, 并生成一个新的对象列表
原数据字段 | 新数据字段 |
---|---|
id | customer_id |
name | customer_name |
notes | customer_description |
最终生成的内容为
尝试修改节点3¶
返回 Editor 界面,双击节点3
先将左边 INPUT 改为Schema 视图,这种视图有利于之后的拖拽
我想在输出内容中添加一个customer_created 字段,使用左侧输入的created 字段。
有两种方式,第一种,将左边INPUT schema 视图中的 Customer Datastore 下面的 created 字段直接拖拽到 Drag input fields here or Add Field,此时已经添加了一个新的字段,之后再修改一下名字,改为 customer_created。
第二种是点击 “Drag input fields here or Add Field” 区域,这时会添加添加一个新的字段,name处填写customer_created,再将左边 created 拖拽到 value 表单处。
编辑好以后,点击上面的 Test step 按钮,此时,新的字段就可以添加成功了。
添加节点¶
点击节点3后面的 ➕ 号,在弹出的组件框中搜索 customer ,点击 Customer Messenger (n8n training) 组件
将左边 customer_id 拖拽到 Customer ID 表单处,在下面的 Message 表单输入以下内容
点击 Test step 按钮
此时可以看到输出的内容为
上面的value 内容
这个是 Expressions,简单来讲就是JS 的表达式,这个后面再详细介绍,不过对于这种简单的表达式,我们可以直观的看出来就是在获取前置节点中的字段值。
如果故意写错某个字段,这里会做校验,json.customer_names 是一个不存在的字段名,n8n 会标红,正常的是标绿。
总结¶
本文使用官方的 quickstart 案例演示了n8n 4种简单的节点,以及n8n 最基础的操作
1. 工作流是如何开始执行的,本例中是采用的人工点击触发的,后面还有很多种触发方式
2. 数据是如何流转的,前置节点的输出可以作为后续节点的输入
3. 通过 {{ }}
表达式引用节点的数据
4. 当输入是个列表时,后续节点可以对列表数据进行迭代
作为系列文章的开篇,本文内容并不是太多,只是先让大家对n8n 有个直观的感觉,体验一下最最基本的操作,实际上手体验一下。
下一篇,准备接入一个大模型节点,做一个对话的Agent。
