数据传递与变量
数据传递是流程自动化的核心。本篇详解如何用变量引用上一步的输出, 把数据精准地在触发器、动作、分支、循环之间流转。
变量的基本概念
在链盒中,每个步骤执行后都会产生输出数据。这些数据通过变量(也叫引用、公式)暴露给后续步骤。变量的格式是用双花括号包裹的路径, 例如 {{trigger.subject}} 表示触发器输出的 subject 字段。
三类核心变量
触发器变量 {{trigger.*}}
触发器的输出数据。不同触发器输出结构不同——邮件触发器输出主题、正文、附件等; 定时触发器输出当前时间;Webhook 触发器输出请求的 headers、body、query。 在触发器节点上点击「测试」可以预览完整的输出结构,知道有哪些字段可用。
步骤变量 {{steps.<name>.*}}
每个动作执行后的输出。<name> 是该步骤的名称(在编辑器里可自定义)。 例如 AI 摘要步骤命名为 ai_summary,其输出文本就是{{steps.ai_summary.text}}。建议给步骤起有意义的名字, 方便引用和排查。
循环变量 {{loop.*}}
在循环节点内部可用。{{loop.item}} 是当前正在处理的元素,{{loop.index}} 是当前序号(从 0 开始)。循环外的步骤不能引用 loop 变量。
如何在配置中引用变量
几乎所有动作的输入字段都支持变量引用。你可以在文本框里直接输入{{trigger.body}},也可以把变量嵌入到更长文本中,例如:
客户 {{trigger.from}} 提交了反馈:
{{trigger.body}}
AI 摘要:{{steps.ai_summary.text}}引用数组或对象字段时用点号逐层访问,例如{{trigger.attachments.0.filename}} 表示附件列表中第一个附件的文件名。
公式函数
除了直接引用,链盒还内置了公式函数,用于在引用时对数据做转换。常用包括:
{{text(trigger.body).substring(0, 100)}}—— 截取前 100 字符{{toJson(trigger.body)}}—— 转成 JSON 字符串{{now()}}—— 当前时间{{text(trigger.body).trim()}}—— 去除首尾空格
完整的公式列表见公式与函数参考。
常见问题
变量显示为空
最常见原因是字段路径写错。先用触发器的「测试」功能查看真实输出结构, 确认字段名(注意大小写)。其次是引用了尚未执行的步骤——变量只能引用在当前步骤之前执行过的步骤。
引用数组里的元素
如果上游输出是列表(如多条查询结果),直接 {{steps.query.rows}}引用的是整个列表。要逐个处理需配合循环节点;要取特定一个用索引, 如 {{steps.query.rows.0}}。
数据类型转换
字段输入框默认按字符串处理。如果动作需要数字、布尔、JSON 等类型, 用对应公式转换(如 toInt()、toJson()), 否则可能因类型不匹配报错。