流程编排

数据传递与变量

数据传递是流程自动化的核心。本篇详解如何用变量引用上一步的输出, 把数据精准地在触发器、动作、分支、循环之间流转。

变量的基本概念

在链盒中,每个步骤执行后都会产生输出数据。这些数据通过变量(也叫引用、公式)暴露给后续步骤。变量的格式是用双花括号包裹的路径, 例如 {{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()), 否则可能因类型不匹配报错。