跳转至

从零开始使用n8n-环境搭建与快速入门

n8n 最近的热度很高,这里不想做太多的介绍,最近也在使用n8n 做些项目,所以也从基础开始记录以下学习的过程。

环境搭建

命令行运行

npx n8n

docker 运行

1
2
3
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

我这里使用的是 npx 方式,运行成功以后,打开 http://127.0.0.1:5678 即可,首次打开需要初始化一个账号,填写用户名和密码即可。

Very quick quickstart

这里以一个非常简单的实例来体验一下n8n 的基础操作,感受一下它是怎么运行的。打开官方 quickstart 链接,https://n8n.io/workflows/1700-very-quick-quickstart/

image.png

点击 Copy template to clipboard(json)

image.png

返回到n8n 界面,点击 右上角 create workflow 按钮

image.png

在新创建的画布上直接按 ctrl+v ,粘贴刚才复制的json,n8n 会将json 转换为可视化组件展示。

image.png

这个工作流有三个节点,从左到右依次为:

  1. 触发器,这个触发器的触发条件为点击 "Test Workflow" 按钮
  2. 获取假数据,这个节点会输出一个模拟数据数组
  3. 提取数据,这个节点会提取第二个节点中的一些数据

我们先不做任何修改,直接点击下面的 Test workflow 按钮,看看执行结果怎样的

image.png

点击Test Workflow 按钮以后,这个工作流非常快的就执行结束了,且上面三个节点都标记了✅,说明每个节点都执行成功了,真不错,非常顺利,接下来点击上面的 Executions 查看一下详细的执行过程。

image.png

在 Executions 界面,详细记录了运行历史

image.png

点击刚才运行的记录,在右侧将会展示执行流程,可以双击每个节点来查看具体的输入和输出,我们依次来点击一下这三个节点.

  1. 触发器节点

image.png

这个节点,是通过点击界面上的Test workflow 按钮来执行的,所以没有输入和输出。

在输出栏有三种类型,Schema, Table, JSON ,可以切换展示。

image.png

  1. 获取假数据节点

image.png

左边展示的是这个节点的输入(Input),对于这个假数据节点,这里的输入也就是上一个节点的输出,由于上一个节点没有任何输出,所以这里也没有任何输入数据。

右边展示的是这个节点的输出内容,我这个切换成Table视图了, 可以看到该节点输出了5条数据。

  1. 提取数据节点

image.png

这个节点的输入是上一个节点的输出,也就是第二个节点输出的5条数据,数据结构为

[
    {
      "id": "23423532",
      "name": "Jay Gatsby",
      "email": "gatsby@west-egg.com",
      "notes": "Keeps asking about a green light??",
      "country": "US",
      "created": "1925-04-10"
    }
    ...
]

这个节点提取了上一个节点json 结构中的三个字段, 并生成一个新的对象列表

原数据字段 新数据字段
id customer_id
name customer_name
notes customer_description

image.png

最终生成的内容为

image.png

尝试修改节点3

返回 Editor 界面,双击节点3

先将左边 INPUT 改为Schema 视图,这种视图有利于之后的拖拽

image.png

我想在输出内容中添加一个customer_created 字段,使用左侧输入的created 字段。

image.png

有两种方式,第一种,将左边INPUT schema 视图中的 Customer Datastore 下面的 created 字段直接拖拽到 Drag input fields here or Add Field,此时已经添加了一个新的字段,之后再修改一下名字,改为 customer_created。

image.png

第二种是点击 “Drag input fields here or Add Field” 区域,这时会添加添加一个新的字段,name处填写customer_created,再将左边 created 拖拽到 value 表单处。

image.png

编辑好以后,点击上面的 Test step 按钮,此时,新的字段就可以添加成功了。

image.png

添加节点

点击节点3后面的 ➕ 号,在弹出的组件框中搜索 customer ,点击 Customer Messenger (n8n training) 组件

image.png

将左边 customer_id 拖拽到 Customer ID 表单处,在下面的 Message 表单输入以下内容

Hi {{ $json.customer_name }}. Your description is: {{ $json.customer_description }}

image.png

点击 Test step 按钮

image.png

此时可以看到输出的内容为

1
2
3
4
5
6
[
    {
      "output": "Sent message to customer 23423532:  Hi Jay Gatsby. Your description is: Keeps asking about a green light??"
    },
    ...
]

上面的value 内容

Hi {{ $json.customer_name }}. Your description is: {{ $json.customer_description }}`  Message 里其实就是输入了一个模版,`{{ $json.customer_name }}

这个是 Expressions,简单来讲就是JS 的表达式,这个后面再详细介绍,不过对于这种简单的表达式,我们可以直观的看出来就是在获取前置节点中的字段值。

如果故意写错某个字段,这里会做校验,json.customer_names 是一个不存在的字段名,n8n 会标红,正常的是标绿。

image.png

总结

本文使用官方的 quickstart 案例演示了n8n 4种简单的节点,以及n8n 最基础的操作 1. 工作流是如何开始执行的,本例中是采用的人工点击触发的,后面还有很多种触发方式 2. 数据是如何流转的,前置节点的输出可以作为后续节点的输入 3. 通过 {{ }} 表达式引用节点的数据 4. 当输入是个列表时,后续节点可以对列表数据进行迭代

作为系列文章的开篇,本文内容并不是太多,只是先让大家对n8n 有个直观的感觉,体验一下最最基本的操作,实际上手体验一下。

下一篇,准备接入一个大模型节点,做一个对话的Agent。