变量替换与公式

变量替换是形如 {{...}} 的变量,在反应触发时被插入消息文本、动作字段和按钮模板中。未识别的变量替换保持原样不变。除变量外,还支持用于计算的公式。消息编辑器中的**"变量替换"**按钮可帮助你插入变量。

发送者数据

  • {{first_name}}{{last_name}} — 名和姓。
  • {{username}} — 用户的 @username
  • {{user_id}} — Telegram 数字 ID。

事件与聊天数据

  • {{text}}(即 {{received_message}})— 传入消息的文本。
  • {{message_id}}(即 {{received_message_id}})— 传入消息的 ID。
  • {{chat_id}}{{chat_title}}(即 {{chat_name}})— 发生事件的聊天。
  • {{topic_id}}{{topic_url}} — 话题(用于论坛群组)。

日期与时间

  • {{date}} — 日期(YYYY-MM-DD),{{time}} — 时间(HH:MM),{{datetime}} — 日期和时间。
  • 自定义格式:{{date:DD.MM.YYYY HH:mm}} — 支持令牌 YYYYYYMMDDHHmmss

用户参数

  • {{param.key}}(即 {{params.key}}{{recipient.key}})— 订阅者参数的值。参数由"修改参数"、"保存消息"动作以及对话回复填充。

执行上下文(ctx)

  • {{ctx.key}}(即 {{context.key}})— 当前执行的临时值:传入 Webhook 的数据、动作结果(网页请求、数据源查询、AI)、按钮还原数据(Carry)、循环元素。
  • 列表循环中,元素通过其别名访问,例如 {{item.name}}

公式

构造 {{= 表达式}} 直接在文本中计算表达式。同一引擎也用于**"计算"**动作和决策表条件。在表达式中可按名称引用参数和 ctx 值,支持算术、比较、逻辑运算以及数十个带中文别名的函数(如 ROUNDIFCONCAT 等)。

示例:{{= ROUND(param.total * 0.9) }} — 从参数中的金额计算 10% 折扣。

完整语法和函数列表参阅公式章节。

变量替换中的 HTML

消息以 HTML 标记发送。为避免替换后的值破坏排版(例如用户名中包含 <),替换的值默认会被转义:HTML 字符变为安全文本。你直接写在反应文本中的标签(<b><a> 等)则保持不变。

如果某个值本身已包含现成的标记(例如保存在参数中、带有 <b>...</b> 的公告),并且你想原样插入,请在变量替换前加上 &

  • {{& key}} — 用于 {{...}} 变量替换的原始插入。
  • {&user:key}{&recipient:key}{&global:key} — 用于 namespace 变量替换的原始插入。

& 前缀仅对该单个变量替换关闭转义——你需要为值来源的可信度负责。受订阅者控制的令牌({{first_name}} 等)最好保持转义。

从其他构造器导入机器人时,namespace 变量替换 {user:…}/{recipient:…}/{global:…} 会自动迁移为原始形式 {&…}——它们通常存放带有现成标记的值,与源构造器的工作方式一致。

格式说明

变量替换 {{...}} 适用于文本、说明文字、请求体和按钮模板。请为参数和 ctx 键取简短的英文名称(emailtotalorder_id)——这样引用更方便。

下一步