文章:
本文解释了如何在项目中使用变量 — 变量适用于哪些地方、可用的数据有哪些,以及如何将其用于自动化和个性化。包括适用于电子邮件、Webhooks、按钮、课程等元素的变量列表、描述和示例。
变量的基本信息
变量是将个性化数据插入到项目不同元素中的便捷方式。它们可以用于以下地方:
1. 自动化中的Webhook
变量可以插入:
-
在 webhook URL 中,例如:
https://example.com/hook?user={user.email} -
在请求体参数中
-
在请求头中
这可以自动将个性化数据传递给第三方服务。
2. CTA(号召性用语)
在按钮和链接中可以使用变量来:
-
个性化按钮文本
-
通过链接传递数据,例如用户ID或UTM标签
3. 在参数中
变量可以用于表单或其他元素的参数中:
-
用户email
-
订阅ID
-
唯一代码和标签
-
在上下文中可用的任何其他变量
4. 在重定向链接中(如果不用于支付跳转)
可以手动在重定向链接中添加变量:
https://my.site.com/thanks?email={user.email}&course={course.title}
5. 在报价成功支付的重定向链接中
在报价成功支付后的重定向链接中,可以使用来自 contact.*、order.* 和 payment.* 块的变量
示例: https://my.site.com/success?order_id={order.id}&email={contact.email}&payment_price={payment.price}
5. 在课程信息块中
变量和条件块可在信息块文本中使用。例如:
-
按名字称呼:你好,{user.first_name}!
-
显示课程名称、日期、状态等。
-
联系人数据:{contact.name}、{contact.email} 及其他字段
-
当前课程的数据:{lesson.title}、{lesson.slug} 和其他课程字段
-
条件块 @if/@endif:根据联系人是否有标签、是否有报价访问权限等显示不同内容。
6. 在邮件中
在邮件中使用变量可以让沟通更加个性化和高效。借助 {имя}、{дата} 或 {название курса} 等变量,邮件看起来就像是专门写给客户的一样。这能提升信任感、参与度,以及用户将邮件读完或完成所需操作的可能性。此外,变量还能简化群发邮件的自动化流程,同时不失个性化方式。
7. 在通知中
在自动化操作中设置通知时,变量允许动态插入信息到通知中,例如用户名、订单号或提案名称。这简化并加速了创建通知的过程,使其在不同场景下更直观和适应性更强。
可用变量列表
在所有可以使用变量的地方可用的变量列表。
| 变量 | 值 |
|---|---|
| contact.id | 联系人ID |
| contact.user_id | 用户ID |
| contact.first_name | 联系人名字 |
| contact.last_name | 联系人姓氏 |
| contact.middle_name | 联系人的父名 |
| contact.name | 联系人全名 |
| contact.email | 联系人Email |
| contact.phone | 联系人电话 |
| contact.country | 联系人国家。例如:乌克兰 |
| contact.timezone | 联系人时区。例如:Europe/Kyiv |
| contact.currency | 联系人货币。例如:USD |
| contact.city | 联系人城市 |
| contact.utm_source | 联系人唯一utm_source列表(分隔符", ") |
| contact.utm_medium | 联系人的唯一 utm_medium 列表(分隔符 ", ") |
| contact.utm_campaign | 联系人的唯一 utm_campaign 列表(分隔符 ", ") |
| contact.utm_term | 联系人的唯一 utm_term 列表(分隔符 ", ") |
| contact.utm_content | 联系人的唯一 utm_content 列表(分隔符 ", ") |
| contact.field_<id> | 自定义字段(描述如下) |
| datetime | UTC 日期和时间格式 YYYY-MM-DD HH:mm:ss |
| contact.visit_source | 访问来源 |
| 这些变量在报价成功支付的重定向链接中可用。 | |
自定义字段
{contact.field_<id>}
示例 {contact.field_123}
<id> - 可以在联系人字段设置中获取的字段ID
(示例
https://sampleschool.kwiga.com/expert/crm/contacts?view=settings)
如何更改变量值
可以在变量后添加选项来改变其显示方式:添加文本、将字母转为大写,或格式化日期。
通用格式:{variable|option:value|option}。例如:{order.id|prefix:ORDER-} 或 {payment.paid_at|format:DD.MM.YYYY}。
| 您想得到什么 | 要写什么 |
|---|---|
| 在值前添加文本 | {order.id|prefix:ORDER-} -> 结果为 ORDER-123 |
| 在值后添加文本 | {order.id|suffix:-EU} -> 结果为 123-EU |
| 将编号设为固定长度 | {payment.number|pad:6} -> 结果为 000001 |
| 不用 0 填充,而使用自定义字符 | {payment.number|pad:6|padchar:_} -> 结果为 _____1 |
| 将所有字母转为大写 | {contact.city|upper} -> KYIV |
| 将所有字母转为小写 | {contact.city|lower} -> kyiv |
| 仅将首字母大写 | {contact.city|ucfirst} -> Kyiv |
| 按所需格式显示日期 | {payment.paid_at|format:DD.MM.YYYY} -> 结果为 24.12.2026 |
DD.MM.YYYY、MMMM YYYY、dddd 这类格式,可参考 Carbon 文档。对于 Y-m-d 和 H:i:s 这类格式,可参考 PHP 官方文档。
pad,会先将值补齐到所需长度,然后才应用其他选项。
条件块 @if / @endif
可根据条件显示或隐藏部分文本。如果条件为真,则显示该块;否则将其完全移除。
语法:@if(条件)...文本...@endif
示例:
@if({contact.has|offer:123})获取资料访问权限@endif
@if() 中的条件是任何返回 true 或 false 的变量。目前支持 {contact.has|...}(检查联系人归属)。
contact.has 条件——联系人检查
可用于检查联系人是否符合特定条件。返回 true 或 false。通常与条件块 @if/@endif 一起使用。
语法:{contact.has|类型:值}
| 类型 | 值 | 说明 |
|---|---|---|
offer |
报价 ID | 联系人拥有该报价的访问权限 |
order |
订单 ID | 联系人有一个具有该 ID 的订单 |
product |
产品 ID | 联系人拥有该产品的访问权限 |
tag |
标签 ID 或名称 | 联系人拥有该标签(支持西里尔字母和名称中的空格) |
list |
列表 ID | 联系人属于该列表 |
course |
课程 ID | 联系人已报名该课程 |
marathon |
课程 ID | course 的别名(marathon 是 course 的子类型) |
webinar |
网络研讨会 ID | 联系人拥有该网络研讨会的访问权限 |
closed_group |
封闭群组 ID | 联系人拥有该封闭群组的访问权限 |
| 指定多个条件——它们必须同时满足(AND 逻辑)。例如:{contact.has|offer:123|tag:VIP}
使用示例:
| {contact.has|offer:123} | 检查是否存在 ID 为 123 的报价 |
| {contact.has|tag:VIP} | 按名称检查标签 |
| {contact.has|tag:тест тег} | 带空格和西里尔字母的标签 |
| {contact.has|offer:123|tag:VIP} | 两个条件同时满足(AND) |
可以在CTA中额外使用的变量
-
在参数中
-
在重定向链接中(如果不用于支付跳转)
| 变量 | 值 |
|---|---|
| first_name | 申请中的名字 |
| last_name | 申请中的姓氏 |
| middle_name | 申请中的父名 |
| name | 申请中的全名 |
| 申请中的 Email | |
| phone | 申请中的电话 |
| field_<id> | 申请中的自定义字段 电话(如下描述) |
| utm_source | utm_source - 提交申请时的具体访问 |
| utm_medium | utm_medium - 提交申请时的具体访问 |
| utm_campaign | utm_campaign - 提交申请时的具体访问 |
| utm_term | utm_term - 提交申请时的具体访问 |
| utm_content | utm_content - 提交申请时的具体访问 |
| widget_landing | 提交申请的着陆页 Url |
| widget_landign_referer | 提交申请时着陆页的 Referer |
|
在某些表单中,可能会提供以下描述的变量,这些变量在自动化Webhook中可用 按订单({order.*}) - 如果选择了产品访问表单选项(完全访问/按提议) 按产品({product.*}) - 如果选择了产品访问表单选项 + 完全访问 按提议({offer.*}) - 如果选择了产品访问表单选项 + 按提议 |
|
自定义字段
{field_<id>}
示例 {contact.field_123}
<id> - 可以在联系人字段设置中获取的字段ID
(示例
https://sampleschool.kwiga.com/expert/crm/contacts?view=settings)
如果在放置CTA或Kwiga脚本以跟踪访问的页面上有带utm标签的访问,并且客户在着陆页上提交了没有utm标签的请求,则这些变量中将不存在它们。但它们将在上面描述的{contact.utm_...}变量中可用。
自动化Webhook中可用的变量(url、参数、邮件)
可用变量列表
| 变量 | 值 |
|---|---|
| referrer | 联系人的首次已知访问的 Referrer(Kwiga / 带有 CTA 的着陆页) |
| initial_page | 联系人的首次已知访问的 Url(Kwiga / 带有 CTA 的着陆页) |
| reg_from | 注册页面的 Url(Kwiga / 带有 CTA 的着陆页) |
| tags | 联系人的标签(分隔符 ", ") |
| description | 触发自动化的事件描述。例如:已为联系人添加标签 test_tag |
表单CTA变量
| 变量 | 值 |
|---|---|
| cta.id | 表单CTA ID |
| cta.uuid | 表单CTA UUID |
| cta.title | 表单CTA名称 |
| cta_request.form_data | 用户输入的数据列表(以换行符分隔) |
| 列表可以扩展。 | |
在以下事件触发时可用:
- 申请 CTA
产品变量
| 变量 | 值 |
|---|---|
| product.id | 产品 ID |
| product.title | 产品名称 |
| product.productable_type | 产品类型。可能的选项有:course, webinar, closed_group, custom_product |
| product.productable_id | 课程/网络研讨会/封闭群组/自定义产品的 ID |
在以下事件触发时可用:
- 已开通产品访问权限
- 产品访问权限已关闭
- 已注册参加网络研讨会
- 课程完成
- 已完成测验
- 取消了以前的测验结果
- 测验状态更改
- 订阅访问开始
- 订阅访问结束
- 开始观看课程
- 看完了课程
- 课程访问权限已打开
- 课程实践已全部完成
订单变量
| 变量 | 值 |
|---|---|
| order.id | 订单 ID |
| order.price | 最终价格。示例 10.99 |
| order.currency_code | 订单货币的代码格式。示例:USD |
| order.currency_symbol | 订单货币的符号格式。示例:$ |
| order.currency_short_title | 订单货币的缩写名称。示例:usd |
| order.order_stage_id | 漏斗状态 ID |
| order.order_stage_title | 漏斗状态名称 |
| order.funnel_id | 漏斗 ID |
| order.funnel_title | 漏斗名称 |
| order.paid_status | 订单支付状态 not_paid / partial_paid / paid |
| order.paid_status_title | 英文支付状态 |
| order.utm_source | 订单的utm_source |
| order.utm_medium | 订单的utm_medium |
| order.utm_campaign | 订单的utm_campaign |
| order.utm_term | 订单的utm_term |
| order.utm_content | 订单的utm_content |
| order.next_scheduled_payment_at | 下一次计划付款日期(适用于订阅和分期付款)。格式 YYYY-MM-DD HH:mm:ss |
| 这些变量在报价成功支付的重定向链接中可用。 | |
| 列表可以扩展。 | |
在以下事件触发时可用:
- 订阅已开始
- 订阅已续订
- 订单付款成功
- 新订单
- 优惠付款成功
- 优惠付款失败
- 优惠退款
- 已开通产品访问权限
- 订阅访问开始
- 订阅访问结束
支付变量
| 变量 | 值 |
|---|---|
| payment.id | 支付 ID |
| payment.price | 支付金额 |
| payment.currency_code | 支付货币的代码格式。示例:USD |
| payment.currency_symbol | 支付货币的符号格式。示例:$ |
| payment.currency_short_title | 支付货币的缩写名称。示例:usd |
| payment.created_at | 支付创建日期。格式 YYYY-MM-DD HH:mm:ss |
| payment.paid_at | 支付日期。格式 YYYY-MM-DD HH:mm:ss |
| payment.schedule_payment_at | 计划支付日期。格式 YYYY-MM-DD HH:mm:ss |
| payment.number | 订单中的支付序号 |
| 这些变量在报价成功支付的重定向链接中可用。 | |
| 列表可以扩展。 | |
在以下事件触发时可用:
- 优惠付款成功
- 优惠付款失败
- 优惠退款
优惠变量
| 变量 | 值 |
|---|---|
| offer.id | 提案 ID |
| offer.title | 提案名称 |
| 列表可以扩展。 | |
在以下事件触发时可用:
- 优惠付款成功
- 优惠付款失败
- 优惠退款
- 接受了免费优惠
- 订阅已开始
- 订阅已续订
- 订单付款成功
- 新订单
- 已开通产品访问权限
- 订阅访问开始
- 订阅访问结束
产品订阅变量
| 变量 | 值 |
|---|---|
| subscription.id | 产品订阅ID |
| subscription.order_id | 与产品订阅关联的订单 ID |
| subscription.start_at | 订阅开始日期。YYYY-MM-DD HH:mm:ss |
| subscription.end_at | 订阅最终结束日期。YYYY-MM-DD HH:mm:ss |
| subscription.order_end_at | 仅考虑已支付款项的订阅结束日期。YYYY-MM-DD HH:mm:ss |
| subscription.paid_at | 订阅首次付款日期。YYYY-MM-DD HH:mm:ss |
| 列表可以扩展。 | |
在以下事件触发时可用:
- 已开通产品访问权限
- 订阅访问开始
- 订阅访问结束
测验尝试变量
| 变量 | 值 |
|---|---|
| quiz_attempt.id | 尝试ID |
| quiz_attempt.number_version | 版本号 |
| quiz_attempt.quiz_id | 测验ID |
| quiz_attempt.course_id | 课程ID |
| quiz_attempt.course_lesson_id | 课程ID |
| quiz_attempt.status_id | 状态ID |
| quiz_attempt.status | 文本状态 |
| quiz_attempt.scores | 得分 |
| quiz_attempt.created_at | 尝试开始。格式 YYYY-MM-DD HH:mm:ss |
| quiz_attempt.finished_at | 尝试结束。格式 YYYY-MM-DD HH:mm:ss |
| quiz_attempt.count_questions | 测验中的问题数量 |
| quiz_attempt.count_questions_incorrect | 回答错误的问题数量 |
| quiz_attempt.count_questions_correct | 正确回答的问题数量 |
| quiz.title | 测验名称 |
| 列表可以扩展。 | |
在以下事件触发时可用:
- 已完成测验
- 取消了以前的测验结果
- 测验状态更改
课程变量
| 变量 | 值 |
|---|---|
| lesson.id | 课程ID |
| lesson.title | 课程名称 |
| lesson.slug | 课程 URL 部分 |
| 列表可以扩展。 | |
在以下事件触发时可用:
- 已完成测验
- 取消了以前的测验结果
- 测验状态更改
- 开始观看课程
- 看完了课程
- 课程访问权限已打开
- 课程实践已全部完成