跳转至

忠诚度工作流构建器

工作流是一条自动奖励客户的规则。每个工作流都从一个触发器("当某事发生时")开始,可以根据条件("仅当……")进行分支,并执行一个或多个操作("执行这个")。您在画布上以可视化方式构建工作流。

从忠诚度仪表板打开构建器:点击 Manage Workflows,然后点击 Create Workflow,再选择现成的配方或 Start from scratch。要编辑现有工作流,请点击列表中的工作流名称。

工作流构建器:画布、工具栏和配置面板

构建器分为三个区域:

  • Toolbar(顶部)— 工作流名称、其计划和预算、状态以及操作按钮。参见 工具栏。
  • Canvas(中间)— 触发器和各步骤的可视化流程。
  • Config panel(右侧)— 所选步骤的设置。点击 Performance,此面板会改为显示该工作流的运行结果。

没有客户账户的订单

工作流会奖励客户,因此在访客结账时下的、未关联客户的订单不会运行任何工作流。


第 1 步 — 选择触发器

每个工作流都需要且只能有一个触发器。点击画布上的 Start when... 卡片,然后从菜单中选择一个触发器。要稍后更改,请选中该触发器并在配置面板中点击 Change——切换会清除该触发器的设置;如果您之前更改过设置,系统会先询问您。

选择触发器

触发器 触发时机……
Order Complete 订单已付款。可选择设置 Only orders with a subtotal of at least 金额(折扣后、运费和税费前的商品金额),或勾选 Skip orders paid entirely with discounts。
Customer Signup 创建了新的客户账户。可选勾选 Only if the email is verified at sign-up——之后才验证邮箱的客户不会被识别,因为 Shopify 不会发送第二个事件。
Customer Birthday 客户过生日,每天 UTC 时间 09:00 检查一次。选择 On the day 或 Days before(最多 30 天)。生日来自客户元字段(默认为 custom.birthday——打开 More options 可使用其他 namespace.key),或来自格式为 bday:MM-DD 的客户标签。
Product Purchase 购买了特定商品。选择商品、最低总数量(默认 1),以及这些商品合计金额需要落入的可选范围。
Collection Purchase 购买了所选系列中的商品。可选设置该系列商品合计金额需要落入的范围。
Order Fulfilled 订单已全部发货(默认)——或选择 Any shipment。
Refund Created 已发起退款。选择 Any refund、Full refund only 或 Partial refund only,以及可选的最低退款金额。

选择触发器后,其设置会在配置面板中打开。

选择单个变体

商品选择器会以变体形式显示商品。勾选所有变体即选中整个商品,之后添加的变体也会计入。只勾选部分变体则工作流仅限于这些变体——当一个商品同时包含礼品卡面值和其他商品时,这很有用。面板会分别统计,例如 "1 product, 9 variants"。

按金额设置奖励等级

Product Purchase 和 Collection Purchase 只有在所选商品(或系列商品)合计金额达到 From 某个值且 Under 另一个值时才会触发——例如从 $150 到 $200 以下。只计入符合条件的行项目,并按折扣后的价格计算,购物车中的其他商品不计入。下限包含在内,上限不包含,因此您可以为每个等级各建一个工作流($150–$200、$200–$250……以及最后一个从 $1,000 起且无上限的工作流),任何订单都只会触发其中一个。面板会回显您设置的范围("Matches from $150 to under $200"),无法匹配任何订单的范围会被标记。在消息中使用 {{ trigger.matched_amount }} 可显示计入的金额。若要在一个工作流中奖励整个阶梯,并将客户在一段时间内的购买计为一次,请改用 Reward Tiers。

全额或部分退款

当某次退款与该订单之前的退款合计退还整个订单总额时,该次退款计为全额——因此,如果您先退一部分、之后再退剩余部分,则第一次为部分退款,第二次为全额退款。在此之前的每次退款都是部分退款。在 Refund Created 下,Order contains product 等条件检查的是被退款的订单——例如,仅对包含您礼品卡商品的订单的退款运行工作流。工作流会对订单的每一次退款运行。

触发器决定可用的条件和操作

读取订单详情的条件(如 Order Amount)以及 Add Order Tag / Note 和 Reward Tiers 操作,只有在触发器提供订单数据时才会显示。例如,在 Customer Signup 或 Customer Birthday 下,这些内容会被隐藏,因为没有订单。如果您在添加了其中某个步骤后切换工作流的触发器,该步骤会被标记,并且在您把触发器改回或删除该步骤之前,工作流无法启用。

第 2 步 — 添加步骤

点击任一卡片下方的 + 按钮即可添加下一步。您可以添加条件或操作。要删除某个步骤,请点击其卡片上的 ✕。

添加步骤菜单,包含条件和操作

条件

条件是一道闸门。位于其 YES 分支上的步骤仅在检查通过时运行;位于 NO 分支上的步骤则在检查失败时运行。

在菜单中选择 Add condition,然后在配置面板的 Condition type 下拉框中选择要检查的内容。面板会以一句话显示,例如 "Go to YES when all of these are true",并且每项检查都提供通俗易懂的比较方式:

条件 检查内容 选项
Order Amount 订单的 Subtotal (before tax/shipping)(税费和运费前的小计)、Total (after tax/shipping)(税费和运费后的总计)或 Discount amount(折扣金额) is at least, is more than, is at most, is less than, is exactly
Customer Tag Shopify 中客户的标签 has any of, has all of, has none of
First Order 这是否为该客户的首笔订单 is the first order, is a repeat order
Tier Level 客户当前的忠诚度等级,按等级高低比较 is, is not, is at least, is at most
Order contains product 订单中是否包含特定商品(或变体),以及最低数量 contains, does not contain
Product in Collection 所订购的商品是否属于某些系列 has a product from, has only products from, has no products from
Order Item Count 商品数量,按 Total quantity(总数量)或 Unique items(不同商品数)计 与 Order Amount 相同的五种比较
Customer Total Spent 客户的累计消费金额,不含本笔订单 与 Order Amount 相同的五种比较
Tier Reward Earned 前面的 Reward Tiers 步骤是否为本笔订单发放了等级奖励补充。工作流有 Reward Tiers 步骤后才会提供 earned a tier reward top-up, earned no top-up
Tier Reward Reduced 退款是否降低了等级奖励——参见 Refunds and Reward Tiers。工作流有 Reward Tiers Refund 步骤后才会提供 reduced the tier reward, left the tier reward as it was

要同时满足多项检查,请在面板中点击 + Add condition——每一行都必须通过,订单才会进入 YES 分支;否则订单进入 NO。点击某一行可打开它,点击垃圾桶图标可将其删除。

包含两项检查及其 YES 和 NO 分支的条件

First Order、Customer Total Spent 与 Tier Level 如何识别您的客户

Gift Card Hero 会自行统计每位客户的订单数和累计消费金额,从该客户首次获得奖励时开始计算——也就是其奖励余额创建的时间。在此之前的订单不计入。因此,对于尚未获得奖励的任何客户,First Order 都为真,即使他们以前在您的店里购物过;Customer Total Spent 则从零开始。两者都检查的是当前订单之前的客户情况。没有等级的客户永远无法通过 Tier Level 检查——即使是 "is not" 也不行。关于消费如何统计,请参见等级。

操作

操作是工作流实际执行的内容。

操作 作用
Issue Credit 向客户的奖励余额添加店铺余额。选择 Fixed amount 或 % of order,以及是否 Boost by customer tier。在 More options 下:maximum credit cap(最高余额上限)、余额过期时间以及备注。
Issue Cashback 将订单的一定百分比以店铺余额形式返还。设置 percentage 和可选的最高金额。计算从折扣后的商品金额开始,您可以加上运费和税费。在 More options 下:最低订单金额和备注。
Send Message 通过 email、SMS 或 Klaviyo event 向客户发送消息。对于邮件,请从模板开始——Credit earned、Tier changed、Credit expiring、Birthday reward、您保存过的模板,或空白模板——然后自由编辑。参见下方的发送消息。
Add Customer Tag 在 Shopify 中为客户添加一个或多个标签。
Remove Customer Tag 从客户身上移除一个或多个标签。
Add Order Tag / Note 在 Shopify 中为订单添加标签,并在其备注中添加一行,以便员工查询订单时能看到工作流执行了什么。仅适用于订单触发器。参见下方的为订单添加标记。
Reward Tiers 汇总客户在某个时间段内的购买,并计算其所达到等级的奖励——用一张表代替每个等级一个工作流。不发放店铺余额。参见下方的等级奖励。
Reward Tiers Refund 在 Refund Created 下:计算退款对被退款订单的 Reward Tiers 奖励产生的影响——退款前的奖励、退款后的奖励以及扣减的金额。参见下方的退款与 Reward Tiers。
Update Tier Up one tier、Set to a specific tier 或 Recalculate from spend。参见等级。
Wait / Delay 在后续步骤运行前,将工作流暂停若干分钟、小时或天。参见使用 Wait / Delay 延迟奖励。

要将已选中的操作换成另一个操作,请点击配置面板顶部的 Change。与触发器一样,切换会清除该步骤的设置。

每个操作一个渠道

邮件、短信和 Klaviyo 事件各自是独立的操作——要同时通过邮件和短信联系客户,请添加两个 Send Message 操作。渠道、变量和测试详见发送消息。

Issue Credit 与 Issue Cashback 如何计算金额

  1. 基数。 Issue Credit 选择 Fixed amount 时,每笔订单发放该固定金额。选择 % of order 时——以及对于 Issue Cashback——基数为订单小计:折扣后、运费前的商品金额。Issue Cashback 允许您在基数上增加内容:点击 "Based on" 旁边的 Change,然后勾选 + shipping 和/或 + tax。如果价格含税,则不勾选 + tax 会将税费部分从基数中扣除。
  2. 等级加成。 开启 Boost by customer tier(默认开启)时,金额会乘以客户的等级倍数。没有等级的客户不享受加成。
  3. 上限。 最高余额(或返现金额)在加成之后应用,两种模式均如此——因此 2 倍等级的客户获得的金额永远不会超过上限。
  4. 取整。 结果四舍五入到分。金额为零则不发放任何内容。

Issue Cashback 在 More options 下的 Only for orders of at least 会按相同的基数进行检查,因此在基数中加入运费或税费也会计入最低金额。

计算加成所用的等级,是本笔订单计入之前客户所处的等级。使客户晋升到更高等级的订单,按旧等级获得奖励;下一笔订单才会按新等级计算。

Credit expires(Issue Credit,位于 More options 下)提供 Store default 和 After N days 两个选项。目前,Store default 表示余额不会过期——店铺没有全局过期设置。选择 After N days 可为余额设置过期日期。Issue Cashback 没有过期选项,因此返现不会过期。关于过期的运作方式,请参见 Money FAQ。

奖励计入客户的余额

店铺余额和返现会计入客户唯一的奖励余额,客户可使用其奖励代码进行消费。参见客户如何兑换奖励。

使用 Wait / Delay 延迟奖励

Wait / Delay 操作会将其后的步骤暂停,直到设定的时间过去。输入数字并选择 Minutes、Hours 或 Days;新步骤默认为一天。

它适合用于将奖励推迟到退款期限之后。例如:Order Complete → Wait / Delay 14 days → Issue Cashback。

等待结束时会发生以下情况:

  • 步骤按照下单时的订单状态继续执行。 奖励根据开始时的订单计算——等待期间的部分退款不会减少奖励,而且从未发放的余额无法追回。
  • 全额退款会使奖励作废。 如果到时订单已全额退款,剩余步骤将不再运行——不发放余额,也不发送消息。
  • 已删除的工作流,或您取消的待处理订单,不会继续执行。
  • 关闭工作流不会停止等待中的订单。 已暂停的运行会继续完成,即使工作流现已停用,除非您取消它——参见在有进行中的订单时关闭工作流。发放余额时仍然适用消费限额。
  • 如果 Gift Card Hero 此时无法向 Shopify 核实订单,步骤会继续执行,而不会丢弃奖励。

恢复运行按计划进行,因此步骤可能会在时间到达后稍晚开始。无论有多少个等待步骤,工作流都只计为一次运行。在 Test workflow 中,Wait / Delay 步骤不会真正等待;测试会显示它将暂停多久,然后继续。

关于退款与回收如何相互作用,请参见 Money FAQ。

使用 Add Order Tag / Note 为订单添加标记

Add Order Tag / Note 会写入启动该工作流的订单,因此无论谁在 Shopify 中打开它,或在收银台查询它,都能看到发生了什么。填写以下任一项或两项:

  • Tags to add——例如 wine-reward-70。订单已有的标签会保留。Shopify 允许每个标签最多 40 个字符;超过的部分会被截断到 40 个字符。
  • Note line——例如 Wine reward $70 - NOT REDEEMED ({{ order.name }})。它会作为新行添加到订单现有备注的下方;订单上已有的备注永远不会被替换。

两个字段都可以使用与消息相同的变量——{{ order.name }} 最常用。点击 Insert variable 即可将变量添加到备注行中。

需要注意以下几点:

  • 每行只添加一次。 如果订单备注中已经有完全相同的一行——因为同一订单被再次处理,或其他工作流写入了相同文字——则不会重复添加。
  • 退款会标记原订单。 在 Refund Created 下,该步骤会为被退款的订单添加标签和备注。例如,一个设置为 Full refund only 的 Refund Created 工作流,加上针对您奖励商品的 Order contains product 条件,可以添加 wine-reward-void 标签以及 Wine reward VOID ({{ order.name }}) 这一行;另一个设置为 Partial refund only 的工作流可以添加 wine-reward-check,以便员工手动核对奖励。
  • 在等待之后和分支内同样有效。 位于 Wait / Delay 之后的步骤,或位于条件的 YES 或 NO 分支上的步骤,仍会标记同一订单。
  • Test workflow 会显示它将写入的标签和备注行(示例订单号为 #1001),而不会修改任何订单。

使用 Reward Tiers 设置等级奖励

Reward Tiers 根据客户的消费金额支付奖励,并将客户在一个时间窗口内的购买计为一次,因此将一笔 $600 的购买拆分为四笔 $150 的订单,获得的奖励与一笔 $600 的订单相同,而不是四倍的 $150 奖励。

Reward Tiers 步骤:计数内容、时间窗口和等级表

在步骤中进行设置:

  • Count——每笔订单计入的内容:The trigger's products(在 Product Purchase 或 Collection Purchase 下,即触发器匹配的行项目)、Chosen products(所选商品)、Products from collections(系列中的商品)或 The whole order(订单小计)。行项目按折扣后的价格计算。
  • Add up within——时间窗口,以小时为单位(默认 24,最多 720)。
  • Tiers——包含 From 和 Reward 的行:从每个金额起(含),窗口内的购买可获得该奖励。例如:从 $150 → $40,从 $200 → $50,从 $300 → $65 …… 从 $1,000 → $300。点击 Add tier 添加一行(最多 50 行)。各行按金额排序;金额和奖励必须大于零,两行不能从同一金额开始,且较高等级的奖励不能低于较低等级。
  • Add up purchases of——客户账户(默认),或订单上的邮箱地址。

时间窗口的运作方式:客户的第一笔符合条件的订单会开启窗口,此后直到窗口长度过去之前的每笔订单都会加入该窗口。之后的订单会开启新的窗口。每笔订单获得的是窗口已达到的等级奖励,减去该窗口中更早的订单已获得的部分:

订单 窗口总额 等级奖励 本笔订单获得
$150 $150 $40 $40
$150 $300 $65 $25
$150 $450 $80 $15
$150 $600 $125 $45

合计 $125——与一笔 $600 的订单相同。

在此步骤之后,可在消息或订单备注中使用以下变量:{{ reward.delta }}(本笔订单获得的金额)、{{ reward.amount }}(窗口已达到的等级奖励)以及 {{ reward.window_total }}(窗口内的购买总额)。将消息和订单标记放在 Tier Reward Earned 条件的 YES 分支上,这样不增加任何新奖励的订单就不会发送邮件:

  1. 触发器:Product Purchase — Gift Card - Dollar Value
  2. Reward Tiers——计入触发器的商品,时间窗口 24 小时,使用您的表
  3. 条件:Tier Reward Earned——YES:Send Message("Your wine reward: {{ reward.delta }}")以及 Add Order Tag / Note(Wine reward +{{ reward.delta }} ({{ order.name }}))

需要注意以下几点:

  • 不发放店铺余额。 此步骤只计算金额;如何交付奖励由后续步骤决定。
  • 重复处理订单不会产生任何变化。 重试或重复的事件会发现订单已计入,并给出相同结果;奖励不会重复获得,消息也不会重复发送。
  • 退款会降低奖励。 当计入的商品被退款时,退款金额会从窗口总额中扣除,并根据剩余金额重新计算奖励——参见退款与 Reward Tiers。
  • 每个工作流只能有一个 Reward Tiers 步骤。 它需要订单,因此在 Customer Signup、Customer Birthday 或 Refund Created 下不提供(这些情况请使用 Reward Tiers Refund)。
  • Test workflow 会显示订单将计入的内容、窗口总额、等级和补充金额——对于现有客户,包括其当前窗口内的真实订单——但不记录任何内容。

退款与 Reward Tiers

奖励取决于窗口内购买所达到的等级,因此降低购买金额的退款也会降低奖励。这会针对每一笔退款自动发生——您无需构建任何内容:

  • 部分退款会将奖励降至剩余金额对应的等级。 一笔 $300 的订单获得了 $65;退款 $150,窗口中剩余 $150——即 $40 等级——因此扣减 $25 的奖励。
  • 窗口中唯一订单的全额退款会扣除全部奖励($65 → $0)。
  • 对多笔订单中某一笔的退款会重新计算整个窗口。 两笔 $150 的订单分别获得 $40 和 $25;退款第二笔后,窗口回到 $150——$40——因此扣减其 $25。
  • 窗口中的下一笔订单从较低的奖励开始计算。 退款一笔 $300 订单中的 $150,然后在窗口内再购买 $150:窗口总额又回到 $300,该订单获得 $25。
  • 只有计入的行项目才有影响。 退款的未计入商品(葡萄酒、其他商品)、运费,或没有行项目的款项,都不会产生任何变化。
  • 退款只应用一次。 如果 Shopify 重复发送同一笔退款,第二次不会有任何变化。
  • 窗口保持其起始时间:退款其第一笔订单不会移动窗口。

要通知客户或员工,请添加一个带有 Reward Tiers Refund 步骤的 Refund Created 工作流。它会读取退款产生的影响:

  • Reward Tiers workflow——其 Reward Tiers 步骤计入了该订单的工作流。如果您的店铺只有一个,系统会自动选择;如果有多个,则需要选择其中一个——在您选择之前,该工作流无法启用。
  • 此步骤之后可使用:{{ reward.previous_amount }}(退款前窗口的奖励)、{{ reward.amount }}(退款后的奖励)、{{ reward.reversed }}(被扣减的金额)和 {{ reward.window_total }}(窗口中剩余的购买金额),以及它们的 _value 版本(纯数字)。
  • 将订单标记——以及消息(如需要)——放在 Tier Reward Reduced 的 YES 分支上。如果退款后窗口仍处于同一等级,则不扣减任何金额,并走 NO 分支。

例如:

  1. 触发器:Refund Created — Any refund
  2. Reward Tiers Refund — Gift for Gifting
  3. 条件:Tier Reward Reduced——YES:Add Order Tag / Note(wine-reward-reduced,Wine reward {{ reward.previous_amount }} → {{ reward.amount }} ({{ order.name }}))

Test workflow 会模拟退款,就像 Reward Tiers 工作流已单独计入了样本订单一样:全额退款,或在 Partial refund only 下退一半。请将 Reward Tiers 步骤计入的商品及其价格添加到样本中。

已发放的奖励不会被追回

Gift Card Hero 无法得知奖励是否已经发放——例如,葡萄酒是否已在收银台领取。新奖励反映的是这些购买现在的价值;如果旧奖励已被兑换,请在收银台根据订单备注进行处理。此外,如果在此类退款后,客户在同一窗口内再次购买,新订单会从较低的奖励开始获得补充金额——因此客户获得的可能会多于其实际领取的金额。对于 24 小时的窗口,这种情况很少见,但值得注意。


发送消息

Send Message 操作会通过一次一种渠道向客户发送消息:email、SMS 或 Klaviyo event。选择渠道,编写(或选择)消息即可,之后工作流的其余部分会继续运行,无论消息发生什么——消息只是附带效果,而不是闸门。

Send Message 操作:渠道选择器、消息字段和实时预览

不支持应用内消息

没有应用内通知渠道。早期版本中设置为 In-app notification 的遗留步骤从未发送过任何内容;编辑器会将此类步骤显示为 Email。请选择一个渠道以实际发送。

选择渠道

渠道 所需内容
Email 默认从 Gift Card Hero email 发送,或在您将其选为 Send from 后,从您自己的邮件服务器发送——参见下方的投递。使用 Gift Card Hero 邮件无需连接任何额外内容。
SMS 需要在 Settings → Integrations 下连接短信服务商(目前为 Onfon Media)。
Klaviyo event 需要在 Settings → Integrations 下连接 Klaviyo。Gift Card Hero 发送事件;您在 Klaviyo 中构建的 Flow 负责发送实际消息。

要连接以上任一渠道,请参见集成。

渠道未就绪时工作流无法启用

当 Send Message 步骤本身使用未连接服务商的 SMS、未连接 Klaviyo 的 Klaviyo 事件,或未设置邮件服务器的邮件时,Activate 会被拒绝。保存为 Draft 始终允许,因此您可以先构建工作流的其余部分。选择未连接的渠道后,面板会显示一条警告,并附带一个按钮,点击后会在新标签页中打开 Settings → Integrations。

编写消息

  • Email——从模板开始,然后自由编辑主题、消息和按钮。参见下方的邮件:模板与编辑。
  • SMS——一个 Text message 字段,首次切换到 SMS 时会预填一段简短的内置文本。
  • Klaviyo event——一个 Klaviyo event name 字段(可选;参见下文),以及该事件携带的属性的只读列表。这里无需编写消息正文——客户看到的内容由您的 Klaviyo Flow 编写。

在 Email 和 SMS 中,点击 Insert variable 即可在光标处插入变量,而无需手动输入。下方的实时 Preview 会显示渲染后的消息——邮件为主题、正文和按钮,短信为文本及其分段数,Klaviyo 为事件名称及其属性——在您停止输入后片刻更新。

邮件:模板与编辑

无论从哪种模板开始,每个字段都可以自由编辑——一旦您输入了任何内容,就不存在只读的"内置"状态。

Template 下拉框、替换确认和 "Started from"

Template 下拉框列出四个内置模板——Credit earned、Tier changed、Credit expiring、Birthday reward——然后是 Your templates(您之前保存过的模板),最后是 Blank。Manage templates 会在新标签页中打开忠诚度邮件。

内置名称只是起始文本,不是触发器

只有当您的触发器和步骤使其发送时,工作流才会发送 Tier changed 或 Credit expiring 的文案——没有任何触发器会在等级变化或余额即将过期时触发。例如,要宣布新等级,请在 Update Tier 步骤之后紧接着放置一个 Send Message。Gift Card Hero 还会在余额过期前发送其自身的提醒——参见 Money FAQ。

  • 当 Subject 和 Message 尚未修改时选择模板,会立即填入这些内容。
  • 如果您已经写好了自己的文字,然后再选择模板,Gift Card Hero 会先进行确认:"Replace your subject and message with the [template] template?"(用 [template] 模板替换您的主题和消息?)——Replace 会填充这些字段,Cancel 则保留您的文字不变。

您对内置模板的主题、消息或按钮进行的第一次编辑,会将该模板的文本复制到此步骤中——输入操作从不修改内置模板本身,也不影响使用它的其他步骤。此后,Started from [name] · edited 会出现在 Template 下拉框下方,表示此步骤现在保存的是自己的副本。如果它所基于的已保存模板已被删除,则会显示 Started from a deleted template。

点击 + Add a button 可在消息下方添加一个按钮:Button label(例如 "Shop now")和 Button link,后者必须是完整的 https:// 地址——Liquid 在此同样有效,因此 https://{{ shop.domain }} 会将客户引导至您的店面。标签留空则不显示按钮。四个内置模板已带有指向您店面的 Shop now 按钮。

点击 View email 可查看客户实际收到的消息:页面顶部为您的店铺名称,然后是消息内容、按钮(如有),以及包含您店铺名称和邮箱的页脚。

View email:客户收到的消息样式

Save as template 会将此步骤当前的主题、消息和按钮(及其翻译)以您选择的名称保存,以便下一个工作流可以从中开始,而不必从空白页面开始——请在忠诚度邮件中管理已保存的模板。从已保存模板开始的步骤会保留自己的副本:之后编辑或删除已保存的模板,永远不会更改工作流中已有的邮件。

语言

如果您的店铺在 Shopify 中发布了多种语言,邮件或短信步骤会在文本上方显示 Language 下拉框。第一项是您店铺的主语言,标注为 (default);其他每种已发布的语言都会显示其翻译进度——translated、incomplete 或 uses default。

邮件步骤上的 Language 下拉框

选择一种语言即可编写其主题、消息和按钮标签(或其短信文本)。空字段会以灰色显示默认文本,并附带 Falls back to English。按钮的链接在所有语言中都相同。

发送消息时,Gift Card Hero 会使用 Shopify 中记录的客户语言。它先查找完全匹配(pt-BR),再查找仅语言部分(pt),否则发送默认语言。邮件绝不会只有部分翻译:只有当翻译同时包含主题和消息时才会使用,否则整封邮件都以默认语言发送。编辑器会在字段下方对此进行说明。Klaviyo 事件没有翻译——语言由您的 Flow 处理。

变量

变量 内容 示例
customer.first_name 客户的名字 Jane
customer.last_name 客户的姓氏 Doe
customer.name 用于问候的名称:名字;未知时为 "there" Jane
customer.email 客户的邮箱地址 jane.doe@example.com
customer.phone 客户的电话号码,采用国际格式 +254712345678
customer.locale Shopify 报告的客户语言;未知时为空 fr
reward.amount 本次运行中此工作流先前发放的店铺余额,按您的货币格式显示;若无则为空。在 Reward Tiers 步骤之后:购买所达到的等级奖励。在 Reward Tiers Refund 步骤之后:退款后剩余的奖励 $10.00
reward.amount_value 同一金额,以纯数字显示 10
reward.delta Reward Tiers:本笔订单获得的金额——等级奖励减去窗口中更早的订单已获得的部分(仅限 Reward Tiers 工作流) $10.00
reward.delta_value 同上,以纯数字显示(仅限 Reward Tiers 工作流) 10
reward.window_total Reward Tiers:客户在窗口内的购买合计,包括本笔订单;退款后则为剩余金额(仅限 Reward Tiers 工作流) $150.00
reward.window_total_value 同一总额,以纯数字显示(仅限 Reward Tiers 工作流) 150
reward.previous_amount Reward Tiers Refund:退款前窗口的奖励(仅限包含 Reward Tiers Refund 步骤的退款工作流) $25.00
reward.previous_amount_value 同上,以纯数字显示(仅限 Reward Tiers Refund) 25
reward.reversed Reward Tiers Refund:退款扣减的奖励金额——退款前的奖励减去退款后的奖励(仅限 Reward Tiers Refund) $15.00
reward.reversed_value 同上,以纯数字显示(仅限 Reward Tiers Refund) 15
wallet.balance 客户的店铺余额,按您的货币格式显示 $25.00
wallet.balance_value 以纯数字显示的余额 25
wallet.currency 余额的货币 USD
tier.name 客户的忠诚度等级;没有等级时为空 Silver
tier.next_name 下一个更高的等级;处于最高等级或没有等级时为空 Gold
tier.spend_to_next 客户要达到下一等级还需消费的金额,按您的货币格式显示 $150.00
tier.spend_to_next_value 同上,以纯数字显示 150
order.name 订单号(仅限订单触发器) #1001
order.total 订单总额,按您的货币格式显示(仅限订单触发器) $120.00
order.total_value 以纯数字显示的订单总额(仅限订单触发器) 120
trigger.matched_amount 触发器匹配的商品或系列商品在折扣后的合计金额,按您的货币格式显示(仅限 Product / Collection Purchase 触发器) $100.00
trigger.matched_amount_value 同一金额,以纯数字显示(仅限 Product / Collection Purchase 触发器) 100
workflow.name 此工作流的名称 Your workflow
shop.name 您的店铺名称 Your Store
shop.domain 您的店面域名 your-store.com
shop.email 您店铺的联系邮箱 hello@your-store.com

在这些变量出现之前使用的四个 Liquid 变量,在您尚未重写的任何消息中仍然有效:{{amount}}、{{balance}}、{{customer_name}} 和 {{store_name}}——其值与 reward.amount、wallet.balance、customer.name 和 shop.name 相同。新消息请使用上表中的变量。

Liquid 基础知识

消息是一个小型 Liquid 模板。以下两点几乎涵盖了商家所需的全部内容:

  • 输出变量:使用双花括号,例如 Hi {{ customer.first_name }}, your balance is {{ wallet.balance }}.
  • 仅在某些情况下显示内容:使用 {% if %}…{% endif %}:
{% if reward.amount_value > 0 %}You also earned a reward on this order!{% endif %}

当条件为假时,标签之间的内容都不会显示——不会留下空行,也不会残留多余的标点。

包含 Liquid 错误的消息无法保存:构建器会指出对应字段,并说明问题所在。

短信长度与分段

短信按分段计费:普通文字消息每段可容纳 160 个字符,之后每段为 153 个字符。只要有一个字符超出基本拉丁字母表——表情符号、弯引号、许多带重音的字母——整条消息就会切换到每段仅能容纳 70 个字符(第一段之后为 67 个)的模式,因此一个多余的字符就可能使消息成本翻倍。Text message 字段下方的计数是您输入内容的长度,上限为 1,000 个字符。消息占用的分段数显示在预览中:它计算的是渲染后的文本——变量已用示例值填充,而不是 {{ }} 标签本身——因此较长的客户姓名或金额仍可能增加一个分段。

投递

每个渠道在面板底部都以 Delivery 分组结尾——说明消息如何发出,以及谁有权接收。

Delivery 分组:Send from 和同意复选框

Send from(仅限邮件)是邮件发出所经过的通道:

选项 发件人显示为
Gift Card Hero email <Your store name> <giftcardhero@syncube.email>,回复将发送至您店铺的邮箱。始终可用。
Your mail server (SMTP) 在 Settings → Integrations 中为其设置的地址。在那里连接邮件服务器之前,显示为 "— not set up" 且不可选。

Manage senders 会在新标签页中打开 Settings → Integrations。在此选项出现之前保存的步骤,会继续沿用您店铺全局的邮件设置(参见集成),直到您在此为其选择发件人。

如果步骤设置使用的邮件服务器停止工作,邮件仍会发出——改为通过 Gift Card Hero email 发送——并且该步骤的结果会说明这一点。通过损坏的邮件服务器发送的 Send test 会直接失败而不会回退,并提示 "Your mail server isn't set up",以便您在客户发现问题之前得知。当邮件步骤所选的邮件服务器未设置时,工作流无法被启用——参见上方的警告。

对于短信和 Klaviyo,此分组显示的是连接状态,而不是 Send from——即网关或 Klaviyo 是否已连接。

每个渠道在此处还有各自的同意复选框:短信为 "Only send to customers subscribed to SMS marketing",邮件和 Klaviyo 为 "Only send to customers subscribed to email marketing"。它会按照 Shopify 为该渠道记录的客户营销同意情况进行判断。

同意复选框对短信默认开启,对邮件和 Klaviyo 默认关闭——切换渠道会将其重置为该默认值,即使您之前更改过。只有在您确定每位收件人都同意接收短信时,才为短信关闭此项;无论如何,奖励类的事务性消息仍会占用一个分段的费用。

Klaviyo 事件与构建 Flow

Klaviyo 步骤发送的是一个事件(指标),而不是消息——您的 Klaviyo 账户会将该事件转换为您 Flow 所发送的任何内容。事件名称默认为 Loyalty: <workflow name>;您可以输入自己的名称(最多 128 个字符),以定位特定的 Flow。当您的账户中有多个 Send Message 步骤都会输入 Klaviyo 时,这很有用。

事件会将上表中的每个变量(不包括四个旧变量)作为属性携带,另外还有 workflow_id、step_id 和 is_test。它通过邮箱关联到客户资料——没有邮箱记录的客户无法接收 Klaviyo 事件。

请以与提醒或兑换通知相同的方式,在 Klaviyo 中构建由此指标触发的 Flow——没有 Flow 支撑的事件会到达 Klaviyo,然后什么也不做。

发送测试

有两种不同的测试方式,用途各不相同:

  • 工具栏中的 Test workflow 会以模拟运行的方式运行整个工作流。对于 Send Message 步骤,它会显示渲染后的主题和文本(或 Klaviyo 事件及其属性),以及脱敏后的收件人——并且不会联系任何邮件、短信或 Klaviyo 服务商。
  • Send Message 操作自身编辑器中的 Send test,会发送一条真实消息——使用示例客户、奖励和余额数值——发送到您输入的邮箱或电话号码;对于邮件,默认填入您店铺自己的邮箱地址。短信测试是真实的、会计费的消息。邮件测试始终通过该步骤自己的发件人发出,绝不会回退到其他发件人;如果该发件人未设置,测试会直接失败,并提示 "Your mail server isn't set up",而成功的测试会同时确认所用的地址和发件人。Klaviyo 测试会向您输入的邮箱发送一个真实事件,并带有 is_test: true,以便您针对它完成 Flow 的构建。在所测试的渠道连接之前,Send test 处于禁用状态。如果该步骤有翻译,测试会以当前选中的语言发送。

消息未发送的情况

Send Message 步骤绝不会中断工作流的其余部分——无论消息发生什么,后续步骤仍会运行。此外,每个步骤对每笔订单或每个事件最多只发送一次:重试的任务或 Shopify 重复发送的 webhook 永远不会导致同一条消息被发送两次。

当消息未能发出时,Test workflow 会直接在该步骤上说明原因。对于实际运行,同样的原因会记录在该步骤上,但管理后台不会列出每一次实际运行——请对同一客户使用 Test workflow 来重现问题。

提示内容 发生了什么
no email address is known for this customer 渠道为邮件或 Klaviyo,且该客户没有邮箱记录。
no usable phone number is known for this customer 渠道为 SMS,且无法为该客户找到可用的电话号码。
the customer is not subscribed to SMS marketing / email marketing 投递 中的同意复选框在此步骤上已勾选,且 Shopify 未将该客户标记为已订阅该渠道。
no SMS gateway is connected (Settings → Integrations) 短信服务商未连接——或在此步骤启用后被断开。
Klaviyo is not connected (Settings → Integrations) 同上,适用于 Klaviyo 步骤。
the message shows the reward amount, but this run issued no store credit 消息中某处输出了 {{ reward.amount }}(或旧版 {{amount}},或 reward.delta / reward.window_total / reward.previous_amount / reward.reversed),但此次运行没有发放任何店铺余额——因此客户绝不会被告知他们获得了 "$0.00"。在 {% if %} 中测试 reward.amount_value 而不输出金额(如 Liquid 基础知识 示例中所示),可以避免此问题。在 Reward Tiers 步骤之后,此情况永远不会适用——请改为根据 Tier Reward Earned 分支;在 Reward Tiers Refund 步骤之后,则根据 Tier Reward Reduced 分支。
already sent for this event by an earlier attempt 重试或重复的 webhook 再次尝试发送同一步骤的消息。

消息也可能失败——服务商拒绝了它,或模板未能渲染——此时步骤的结果会显示 Gift Card Hero 收到的错误信息。


分支示例

一种常见模式是为更大的订单提供更丰厚的奖励:

  1. 触发器:Order Complete
  2. 添加条件:Order Amount is more than 100
  3. 在 YES 分支上添加 Issue Cashback,比例为 10%
  4. 在 NO 分支上添加 Issue Cashback,比例为 5%

当您将条件插入现有链条的中间时,位于其后的步骤会自动移到 YES 分支上。

验证与保存

在工作流有效之前,Save 按钮保持禁用——它需要名称、触发器以及至少一个步骤。

保存时,Gift Card Hero 还会检查每个步骤的设置。如果缺少必填字段,或数字超出范围(例如,百分比必须在 0.1 到 100 之间),构建器会显示错误横幅,并高亮需要修正的具体字段。请更正后再次保存。以下情况同样如此:触发器金额范围的上限不大于下限(因为没有订单能与之匹配);Reward Tiers 表中存在空白、零、重复或递减的行;以及结束时间早于开始时间的计划。

首次保存新工作流时,它会成为Draft。对已Active工作流的更改会在保存后立即生效。

工具栏

构建器工具栏:计划、预算、推广、状态和按钮

左侧是:工作流名称,然后是 Schedule、Budget、Advertise,以及状态徽章(若有未保存的更改,还会显示 Unsaved)。

  • Schedule: Always on——可选择将工作流限制在某个时间段内。选择开始和结束的日期与时间(或预设,如 Next 30 days);留空结束时间表示没有结束时间;点击 Always on 可清除。工作流只会奖励发生在该时间段内的事件——因此,在结束日期之前下的订单即使处理稍晚,仍会获得奖励。结束时间必须晚于开始时间。在时间段之外,徽章会显示 Scheduled(尚未开始)或 Ended(已结束)。
  • Budget: No cap——此工作流的 Monthly budget cap(月度预算上限)。一旦它在日历月(UTC)内发放的余额将超过上限,工作流就会停止发放余额并被暂停。留空表示没有上限。全店范围的上限和每位客户的上限在忠诚度的 Settings 页面中设置——参见 Money FAQ。
  • Advertise——创建或关联店面促销;参见为工作流的奖励做广告。在保存工作流之前,该按钮处于禁用状态。

在右侧,工作流保存一次之后会显示:

测试工作流(模拟运行)

在启用之前,或每次更改已上线的工作流之后,请先进行模拟。不会发放任何余额,也不会发送任何消息——包括邮件、短信或 Klaviyo。测试会按照画布当前的状态运行,包括您尚未保存的编辑。Test workflow 会在工作流首次保存后出现。

  1. 点击工具栏中的 Test workflow。
  2. 选择以谁的身份进行测试。New customer 为默认值:一位首次购物、没有标签、没有等级、也没有消费的顾客。选择 Existing customer 后输入 Email;Gift Card Hero 会查找该客户,显示带有其姓名、等级和订单数的绿色徽章,并填入其真实的标签、等级和消费金额。
  3. 填写订单。对话框只显示您的工作流实际读取的字段——顶部有一行 "This workflow checks…" 列出这些字段。订单触发器始终显示 Subtotal;其他字段(Customer tags、Tier、Lifetime spent、Treat as this customer's first order、Order total、Discount、Products)在某个条件需要时才会出现。其他所有内容都位于 More options 下。当触发器或 Reward Tiers 步骤涉及商品金额时,还需为每个示例商品设置 Price。
  4. 点击对话框标题栏中的 Run test。

Test workflow(模拟运行)结果

结果会列出工作流所做的检查(以及每项检查走的是 YES 还是 NO 分支),然后列出每个操作将执行的内容。Send Message 步骤会显示它将发送的内容以及发送给谁(已脱敏)——关于消息未能发出时的措辞,参见消息未发送的情况。底部的绿色框会显示客户将获得的余额;如果没有,则显示 No credit would be issued 及原因。如果触发器自身的过滤条件不匹配(例如订单低于您设置的最低金额),测试会显示 Workflow would not run 及原因。

模拟“假设”客户

更改 Tier、Treat as this customer's first order 或 Lifetime spent 字段,即可模拟客户处于某个等级、是首笔订单或达到某个消费水平的情况——无需真实的客户即可满足条件。

测试也会遵守您的消费限额:如果某个上限会阻止奖励,测试会显示它已被阻止。

启用、停用与状态

工作流有三种您可以选择的状态,以徽章形式显示:

  • Draft——新建且尚未运行。
  • Active——正在实时事件上运行。
  • Inactive——已保存但已暂停。

另外两个标签是根据计划和限额计算得出的:Scheduled 和 Ended(参见工具栏),以及当预算上限使工作流停止时,工作流列表中显示的 Paused by guardrail。在构建器中,因护栏而暂停的工作流显示为 Inactive,并带有 Paused by guardrail 横幅,横幅会说明达到了哪个上限,并附有 Reactivate 按钮;重新启用不会提高上限,因此工作流可能会再次暂停。

点击 Activate 可开启工作流,或点击 Deactivate 暂停它。请先保存更改——Activate 作用于已保存的工作流。启用和停用可能需要一些时间,因为 Gift Card Hero 会在后台连接(或断开)相应的 Shopify 事件。

在以下情况下,Activate 会被拒绝,并在相关步骤上显示问题:

  • 某个步骤需要触发器无法提供的数据(例如在 Customer Signup 下使用 Add Order Tag / Note);
  • Reward Tiers Refund 步骤没有可读取的 Reward Tiers 工作流,或有多个工作流但未选择;
  • Send Message 步骤使用了未连接的渠道或发件人(参见发送消息)。

在有进行中的订单时关闭工作流

订单可能仍在工作流中运行——正在排队等待处理,或在 Wait / Delay 步骤中等待。当您点击 Deactivate 且存在待处理订单时,Gift Card Hero 会列出它们(订单、客户以及 "waiting N min" 或 "continues in 3 days")并询问:

  • Turn off, finish these——默认选项。列出的订单仍会获得此工作流的奖励。
  • Turn off and cancel these——这些订单将永远不会获得此工作流的奖励。此操作无法撤销。

在订单仍在处理时关闭工作流

如果您选择完成这些订单,Inactive 工作流在仍有剩余订单时会持续显示一个横幅,其中包含 Cancel them(确认后)和 Refresh 按钮。无论选择哪种方式,已处理的订单都不会受影响。

绩效

Performance 会将配置面板替换为该工作流运行情况的摘要。可在 7d、30d、90d 和 All 之间切换。它会显示 Runs(以及其中有多少次执行了操作)、Customers rewarded、Net credit(已发放的余额,减去退款收回的余额,再减去已过期的余额)、Orders rewarded,以及两项估算——Credit spent(客户已使用的已发放余额比例)和使用该余额的订单所产生的 Revenue——另外还有一张每日运行次数图表。如果消费限额阻止了奖励,横幅会说明这一点,并附带详情和订单链接。

Performance 面板

Results on canvas 会将计数添加到步骤本身上。如需查看所有工作流的数字,请参见忠诚度分析。

删除

点击垃圾桶图标,确认后即可永久删除工作流。如果工作流处于启用状态,会先断开其底层的 Shopify 事件。仍在处理中的订单会被取消——确认对话框会告诉您数量。与该工作流关联的促销会变为草稿并停止显示,但会保留在您的促销列表中。此操作无法撤销。您也可以在 Loyalty Workflows 列表中选择多个工作流,然后使用 Delete workflows。

为工作流的奖励做广告

构建工作流不会自动告知任何人。在工具栏中点击 Advertise(工作流保存且没有未保存的更改之后),即可创建或关联一个促销——店面上显示的弹出式提示卡片和/或横幅,其中的奖励数字实时取自工作流。只有发放余额或返现的工作流才能进行广告。参见促销挂件。