你可能已经有过这样的体验:
照着教程,把 n8n 的节点一个个拖好了,看起来流程也连上了,可一运行就出问题——要么取不到数据,要么内容是空的,要么根本不知道“下一步该填什么”。
很多人第一反应是:
是不是我操作错了?
是不是我不适合搞这些自动化工具?
但真相往往不是这样。
你现在遇到的卡点,其实集中在同一件事上:
你还没真正理解「变量」在工作流里是怎么用的。
而偏偏,变量又是 n8n 里最绕、但也是最关键的东西。
为什么新手一定会在“变量”这里卡住
站在新手视角想一想:
- 节点是一个个点出来的
- 线也连上了
- 可一到“填值”的地方,就开始慌了
输入框里冒出来一堆 {{ }}、$json、$input,
看着像代码,但又不像代码。
问题并不是你不懂编程,
而是 没人用“人话”告诉你:这些东西到底在干嘛。
你可以先记住一句话:
在 n8n 里,变量就是“上一步留下来的结果”。
节点之间并不是各干各的,
而是:前一个节点产出数据,后一个节点接着用。
而变量,就是这条“传数据的通道”。
从一个最常见的真实场景说起
假设你做了这样一件事:
- 用 RSS 节点抓了 30 条资讯
- 下一步,你想拿到每条资讯的标题,再处理一下
这时候问题就来了:
这 30 条数据,是怎么交到下一个节点手里的?
答案是:
它们被打包成了一份“输入数据”,传给了下一个节点。
而你在下一个节点里要做的,就是:
👉 用变量,把需要的那一部分数据“取出来”。
第一步必须搞懂的:当前节点的输入变量
这是新手用得最多、也最容易混乱的一类。
你现在在做什么
你站在某一个节点里,想用“上一个节点给你的数据”。
为什么要这样做
因为当前节点,本身不产出内容,它只是“加工者”。
原材料,全部来自上一步。
最常用的两个变量
- 获取当前输入的数据本身
$json- 可以理解为:
“当前这条数据长什么样?”
- 获取所有输入的数据
$input- 它拿到的是一个“列表”,而不是一条
你只要记住一个判断方式就行:
- 如果你是“一条一条处理”,用
$json - 如果你是“整体看一眼”,才会用
$input
如果这里选错了,最直接的结果就是:
- 明明有数据,却显示为空
- 或者一次性塞进来一堆,看不懂结构
第二个高频场景:获取「其他节点」的数据
很多工作流并不是一条直线。
比如:
- 一个节点负责抓数据
- 另一个节点负责筛选
- 后面的节点,可能要同时用到它们的结果
这时候,只看“上一个节点”就不够了。
你现在在做什么
你需要明确告诉 n8n:
👉 我要用的是哪个节点的数据。
正确的思路是
- 不靠记名字
- 不手写
- 而是:在表达式里,直接选节点、拖字段
n8n 会自动帮你生成类似这样的逻辑:
从「某某节点」
拿「当前这一条」
里的某个字段
只要你能在界面里“点到它”,
那这个变量,大概率就是能用的。
第三个非常实用的:时间和日期变量
很多人一开始意识不到这一类变量有多重要。
直到你遇到这些需求:
- 只处理 24 小时内的数据
- 每天定时跑一次
- 判断今天是不是某个日期
这时候,时间变量就成了刚需。
常见用法你只要记两个
- 当前时间
- 用来判断“现在是几点、哪一天”
- 基于当前时间做计算
- 比如:
- 往前推 24 小时
- 对比发布时间
- 比如:
你不需要记复杂公式,
只要知道:
👉 这些变量的目的,是帮你“筛选时间范围”。
如果这里不用变量,
你就只能手动改条件,自动化也就失去意义了。
新手最容易踩的 3 个坑
① 变量能写,但运行没结果
大概率不是你写错,
而是 数据结构和你想的不一样。
判断方法很简单:
👉 先把 $json 整个打印出来,看它到底长什么样。
② 文档里有,但你这里用不了
这是 n8n 的常态,不是你的问题。
判断标准只有一个:
👉 输入框里点 . 能自动出来的,才是当前能用的。
③ 想一次性学完所有变量
结果只会是:越学越乱。
对 80% 的日常工作流来说:
- 当前节点输入
- 其他节点输出
- 时间变量
这三类,就已经够用了。
最后:变量不是技术,是工作流思维
你现在学会的,并不是几段写法,
而是一种判断方式:
我现在要用的数据,来自哪里?
只要这个问题想清楚了:
- 用不用 n8n
- 用不用代码
- 变量长什么样
反而都变成了次要问题。
你今天解决的,可能只是
“怎么取到一个标题、一个链接”。
但当你习惯用变量把节点连起来,
你会慢慢发现:
真正麻烦的,从来不是操作,
而是以前那些不该手动做的重复判断。
而这,正是自动化工作流存在的意义。

